Lampen schakelen met je smartphone & een Raspberry Pi

Door WeeJeWel op zondag 24 februari 2013 16:06 - Reacties (167)
Categorie: Home Automation, Views: 29.641

Michel ten Hove heeft een tutorial geschreven die aansluit op mijn vorige blog Lampen schakelen met een Raspberry Pi. Hij heeft een webinterface gemaakt zodat je met je smartphone of computer je lampen kan schakelen.

Ik post dit hier voor hem omdat hij zelf geen tweakblog heeft en ik dit soort acties alleen maar leuk vind :) Voor support en reacties mag je dus ook bij hem terecht!

Download de tutorial en bestanden: https://www.dropbox.com/s...ject%20Klikaanklikuit.zip

Volgende: Kamer vrij in Enschede 03-'13 Kamer vrij in Enschede
Volgende: ProTube 2.4 02-'13 ProTube 2.4

Reacties


Door Tweakers user gradtje, zondag 24 februari 2013 23:14

Elektrische deken... :p

Goed werk man !

Door Tweakers user gradtje, maandag 25 februari 2013 00:05

Het werkt !
Wel had ik even mijn sudoers-file om zeep geholpen (ondanks dat ik toch strak je tutorial aan had gehouden)
Voor de mensen die dat ook van plan zijn: Voordat je visudo doet, zet eerst even een wachtwoord op root middels sudo passwd root. Mocht je je sudoers file toch versjteerd hebben, middels pkexec visudo kun je dat weer rechtbreien (pffff)

Door Tweakers user PuceTundra, maandag 25 februari 2013 14:28

Leuke tip! Ga dit zeker even uitproberen binnenkort.

Door Tom, maandag 25 februari 2013 17:21

@gradtje: Welke schakelaars gebruik jij? Die van kaku?
Ben verder ook benieuwd hoe ver je kan schakelen?
Mijn RF Transmitter is onderweg, kan niet wachten.... :*)

Door Tweakers user micheltenhove, maandag 25 februari 2013 20:16

Ik kom hier bijna mijn hele huis door met het zendertje van iPrototype.. :) Daar zit zelfs nog een antenne aansluiting aan die ik niet gebruik op dit moment..

Door Gijs de Vries, maandag 25 februari 2013 22:05

Hoi mensen.
als het goed is word morgen mijn zender verstuurd dus heb hem woensdag binnen,
als dit dan allemaal werkt dan, heb ik eigenlijk al weer een volgende uitdaging.

zou het mogelijk zijn om 2 of meer draadloze Temperatuur sensors te laten loggen op de Mqsl db van de Raspberry Pi?

kan iemand daar zich verder in verdiepen met programeren en daar een uitleg van schrijven.
heb zelf geen ervaring met code taal linux enz. maar via een uitleg lukt het wel.

alvast hartelijk dank voor deze uitleg. :)

Door Tom, maandag 25 februari 2013 22:24

Erg leuk. ik heb ook een temperatuur sensor gekocht, zou inderdaad wel leuk zijn om dat ook werkend te krijgen.
Mijn bestelling wordt hopelijk morgen ook verzonden... Laten wij hopen... heb er wel zin in om ermee aan de gang te gaan..

Door Tom, maandag 25 februari 2013 22:37

Mag ik wel even vragen aan iedereen die dit al heeft nu. Welke stopcontacten gebruik jij?
Vooral tegen micheltenhove, omdat die een erg groot bereik heeft.

Door Gijs de Vries, maandag 25 februari 2013 22:37

ik heb hier een link gevonden maar kom er niet uit.
miss iemand hier die het kan uitleggen wat ze bedoelen?

http://nathan.chantrell.net/tinytx-wireless-sensor/

gr Gijs

Door Tweakers user micheltenhove, maandag 25 februari 2013 22:55

Tom, ik maak gebruik van de impuls stekkerblokken van de Action. Deze kosten wél 10 euro per set van 3.. ;) !

Door Tweakers user WeeJeWel, dinsdag 26 februari 2013 00:00

Gijs de Vries schreef op maandag 25 februari 2013 @ 22:05:
Hoi mensen.
als het goed is word morgen mijn zender verstuurd dus heb hem woensdag binnen,
als dit dan allemaal werkt dan, heb ik eigenlijk al weer een volgende uitdaging.

zou het mogelijk zijn om 2 of meer draadloze Temperatuur sensors te laten loggen op de Mqsl db van de Raspberry Pi?

kan iemand daar zich verder in verdiepen met programeren en daar een uitleg van schrijven.
heb zelf geen ervaring met code taal linux enz. maar via een uitleg lukt het wel.

alvast hartelijk dank voor deze uitleg. :)
't is niet echt een uitdaging als iemand het al voor je uitzoekt he ;)

Door Tweakers user micheltenhove, dinsdag 26 februari 2013 00:08

Ik heb zojuist een kleine update gedaan van de index.php file, deze praat nu met een MySQL database zodat de laatst doorgegeven status van de schakelaars wordt onthouden in de database. Deze status echo ik op de site zodat je kan zien of een schakelaar aanstaat of niet. Ik post dit stuk code dit weekend denk ik.. :)

Edit: Een groot nadeel van deze optie is dat je de meegeleverde afstandsbediening niet moet gebruiken, de Raspberry pikt namelijk geen signaal van je afstandsbediening op. Volgens WeeJeWel is het wellicht een optie om een 433/434MHz ontvanger op je raspberry te plaatsen zodat de wijzigingen via de afstandsbediening ook opgepikt worden. Die klus is mij alleen een beetje té uitdagend.. ;)

[Reactie gewijzigd op dinsdag 26 februari 2013 00:14]


Door Tweakers user gradtje, dinsdag 26 februari 2013 00:25

@Tom en iedereen: Ik gebruik kaku`s maar heb ook een setje van de action gehaald. Die van de action lijken een stuk gevoeliger, ik kan ze met gemak door het hele huis schakelen.

@Tom @GijsdeVries: Ik heb ook een tempsensor, een DS18b20, dit is een onewire sensor aangesloten via een (USB) DS9490. Voordeel van de onewire is dat je meerdere onewire sensoren/IO/AD aan 1 draad kunt hangen. Dus meerdere sensoren op een draad is zonder meer mogelijk. Overigens laat ik de temperatuur loggen in rrdtool.

Door gijs de vries, dinsdag 26 februari 2013 07:29

@grandtje

Ok dan kan je er wel een paar achter elkaar hangen. Alleen hoe krijg ik dat draadloos?
Gr gijs

Door Tweakers user i-chat, dinsdag 26 februari 2013 09:21

micheltenhove schreef op dinsdag 26 februari 2013 @ 00:08:
Ik heb zojuist een kleine update gedaan van de index.php file, deze praat nu met een MySQL database zodat de laatst doorgegeven status van de schakelaars wordt onthouden in de database. Deze status echo ik op de site zodat je kan zien of een schakelaar aanstaat of niet. Ik post dit stuk code dit weekend denk ik.. :)
tip: waarom gebruik je voor zo iets simpels in goden's naam een mysql server, terwijl je enkel een lijst met statussen wilt kunnen onthouden ... het zou natuurlijk al wat mooier zijn als je ook je 'schakelaars' en andere config in die db opslaat zodat het php bestand in het geheel niet meer hoeft te worden gewijzigd ....

maar zelfs dan nog... is mysql overbodig zware load... mijn suggestie zou dan ook zijn... OF op een simpel data.txt te gebruiken, OF (als je dat zo graag wilt), je code om te zetten naar sqlite (die standaard al in php5 verwerkt is)...
Edit: Een groot nadeel van deze optie is dat je de meegeleverde afstandsbediening niet moet gebruiken, de Raspberry pikt namelijk geen signaal van je afstandsbediening op. Volgens WeeJeWel is het wellicht een optie om een 433/434MHz ontvanger op je raspberry te plaatsen zodat de wijzigingen via de afstandsbediening ook opgepikt worden. Die klus is mij alleen een beetje té uitdagend.. ;)
er schijnen al redelijk wat topics over te bestaan ... en lirc moet dat soort recievers gewoon kunnen uitlezen... een veel interessanter verhaal zou zijn of zo'n protocol ook voorziet in een status melding... van KAKU zou ik dat in ieder geval wel verwachten omdat ze ook zo'n home-station bieden, stilletjes hoop ik dus ook dat er iemand is die hier meer over weet...

maar ik begin wel heel nieuwsgierig te worden, zou zo iets als dit ook als plugin in nas4free te intergeren zijn... de meesten mensen die dit pakket gebruiken laten hun pc al dag en nacht aan staan, en hebben dus eigenlijk geen rasbPI nodig,

[Reactie gewijzigd op dinsdag 26 februari 2013 09:24]


Door Tom, dinsdag 26 februari 2013 09:50

Ben het hier helemaal mee eens. MySQL op raspberry pi is erg zwaar.
Ik ga ook gewoon een bestandje gebruiken. Rock hard .txt!

Door Tweakers user micheltenhove, dinsdag 26 februari 2013 13:45

Misschien is een MySQL inderdaad wat overkill, maar het enige waar ik wat meer ervaring mee heb. Misschien toch eens kijken naar een .TXT bestand inderdaad, dat is minstens zo effectief! :)

Door Tweakers user WeeJeWel, dinsdag 26 februari 2013 13:56

Opvragen:
$lights = json_decode( file_get_contents( 'status.txt') );

Opslaan:
file_put_contents( json_encode('status.txt'), $lights );

Zoiets is wel simpel :P

Door Tweakers user Kiwi, dinsdag 26 februari 2013 19:49

Geweldig dat je dit hebt gemaakt, ik ga het morgen zelf proberen werkend te krijgen! :)

Ook wil ik proberen om een Android app te maken voor hierbij, maar ik zou niet weten hoe ik dan vanaf de telefoon de actie van die button kan aanroepen. Heeft iemand een idee daarvoor? :p

[Reactie gewijzigd op dinsdag 26 februari 2013 19:49]


Door Tweakers user WeeJeWel, dinsdag 26 februari 2013 19:57

TerrorKiwi schreef op dinsdag 26 februari 2013 @ 19:49:
Geweldig dat je dit hebt gemaakt, ik ga het morgen zelf proberen werkend te krijgen! :)

Ook wil ik proberen om een Android app te maken voor hierbij, maar ik zou niet weten hoe ik dan vanaf de telefoon de actie van die button kan aanroepen. Heeft iemand een idee daarvoor? :p
https://www.dropbox.com/s/z95ovutaojt5efq/LightsRemote.zip

Wel ff de url enzo aanpassen :)

Door Tom, dinsdag 26 februari 2013 20:22

WeeJeWel schreef op dinsdag 26 februari 2013 @ 13:56:
Opvragen:
$lights = json_decode( file_get_contents( 'status.txt') );

Opslaan:
file_put_contents( json_encode('status.txt'), $lights );

Zoiets is wel simpel :P
Correctie:
Opslaan:
file_put_contents('status.txt', json_encode($lights) );

Ik ga dit gebruiken voor mijn remote. Ik heb die van action vanmiddag gekocht, koopje. 10 Euro. manmanman, kaku is ruim 30 euro.

Door Tweakers user micheltenhove, dinsdag 26 februari 2013 22:38

Tom en Weejewel, maak je dan voor ieder stekkerblok een aparte txt aan o.i.d.? Kan je uit een txt bestand bepaalde resultaten halen en die ergens neerzetten?

Door Tweakers user i-chat, woensdag 27 februari 2013 01:09

@tom, ik wil ook nog graag naar de action mare hebben ze daar alleen stekkerblokken of ook iets van fittings... ik zie mezelf nog geen tekkerblok aan het plafont schroeven maar wil eigenlijk mijn plaffont-lampen ook op afstand kunnen schakelen

veiligheid voor bezit en huisdieren, evenals extra licht voor bewakings systemen...

Door Tom, woensdag 27 februari 2013 07:35

@i-chat. Ze hebben alleen stopcontact adapters. Zowel een setje voor binnen als voor buiten. Max. 1

Door Tom, woensdag 27 februari 2013 07:37

Max 10 euro. Excuses. Mobiel posten is lastig :)
Ik krijg vanmiddag de spullen binnen.

Door Gijs de Vries, woensdag 27 februari 2013 15:31

Hoi

ik heb helemaal geen kaas gegeten van ++C , maar doe mijn best het te snappen en leren.
vandaag mijn zender binnen en meteen aan de slag maar
nu heb ik het stappenplan gevolgd en loop ik vast bij stap :
12. Versie compileren met het merk dat jij gebruikt:

ik gebruik KAKU,

wat moet ik nu precies in de comand line type ?

als iemand mij wilt helpen graag ( liefst telefoisch 0616298485 )

Gr Gijs

Door Tweakers user micheltenhove, woensdag 27 februari 2013 17:36

Gijs, wat probeer je nu precies te doen? Gewoon de KAKU's aan de gang helpen via je CLI?

Door Gijs de Vries, woensdag 27 februari 2013 19:06

ik heb het nu wel werkend via de CLI alleen via de webinterface krijg ik het niet werkend.

Gr gijs

Door Tweakers user micheltenhove, woensdag 27 februari 2013 20:05

https://drive.google.com/...BeTQNH0dIgTl9mZjNSVlBMX3c

i-Chat, is er met een .txt file of sqlite database te realiseren wat ik in bovenstaand bestand heb gerealiseerd?

Door Tom, woensdag 27 februari 2013 20:32

Nou heren. Ik heb het werkend gekregen. En ziet er via web app perfect uit. Moet je nagaan. Wat je bij homewizard voor 200 euro koopt heb je zo binnen 60 euro voor elkaar!! En nog leuk ook. Bedankt iedereen!! (en bereik is super, nog meer dan originele afstandsbediening van de set, action)

Door Pino en Tommie, woensdag 27 februari 2013 22:04

Ik heb het ook werken met een action setje. Ik wil nu proberen om alle stopkontakten te schakelen met 1 knop (Nu gaat elk stopkontakt met een eigen knop). Het commando voor het aanzetten van 1 stopkontakt is "sudo ./action 1 A on" Wat nou als ik meerdere stopkontakten wil schakelen. Kun je meerdere dipchannels tegelijk ingeven. bijvoorbeeld:
"sudo ./action 0,1,255 A on" of bijvoorbeeld "sudo ./action ALL A on". Als jullie me hier mee kunnen helpen ben ik weer een stapje verder.

Bedankt !!!

Door Tom, woensdag 27 februari 2013 22:07

Als je PHP gebruikt kan je door een array met dipchannels lopen en uitvoeren, maar er moet wel vertraging in zitten omdat er anders een collusion optreed in de lucht.
PHP Arrays
PHP Foreach
Als je er niet uitkomt hoor ik het wel..

Door Tweakers user sebastiaanwezen, donderdag 28 februari 2013 11:27

Gisteren een Klik Aan Klik Uit starterspakket (APA3-1500R http://www.klikaanklikuit.nl/shop/apa3-1500r/) gekocht. Met 20% korting bij de Karwei, 15 euro :)

Getest en werkend gekregen met Raspberry Pi (Raspbmc) en RF ontvanger (ook in combinatie met Boblight). http://img407.imageshack.us/img407/7847/imag0249u.jpg

Hopelijk ook werkend te krijgen met een dimmer van Klik Aan Klik Uit.

Nu bezig met een webinterface http://img20.imageshack.us/img20/1421/interfacem.png

Door Tweakers user i-chat, donderdag 28 februari 2013 12:41

is er trouwens geen mogelijkheid om sudo uit de vergelijking te trappen, ik geef niet graag rechten aan zoiets als apache met php.... daar komt gedonder van... (was pas nog een blog over)...

welicht door de rechte op die com interface in een eigen groep te zetten, eentje waar user www ook aan kan zitten????

dat een vervelende hacker je lichten uit kan zetten is nog tot daar aan toe, maar verder moet toch niet kunnen...

Door Tweakers user micheltenhove, donderdag 28 februari 2013 15:23

momenteel mag de www-data toch alleen maar in je lights map een commando uitvoeren? Of kan de www-data user daar alles doen?

Door Tweakers user WeeJeWel, donderdag 28 februari 2013 23:53

sebastiaanwezen schreef op donderdag 28 februari 2013 @ 11:27:
Gisteren een Klik Aan Klik Uit starterspakket (APA3-1500R http://www.klikaanklikuit.nl/shop/apa3-1500r/) gekocht. Met 20% korting bij de Karwei, 15 euro :)

Getest en werkend gekregen met Raspberry Pi (Raspbmc) en RF ontvanger (ook in combinatie met Boblight). http://img407.imageshack.us/img407/7847/imag0249u.jpg

Hopelijk ook werkend te krijgen met een dimmer van Klik Aan Klik Uit.

Nu bezig met een webinterface http://img20.imageshack.us/img20/1421/interfacem.png
Dan moet je zelf even de RemoteSwitchNew library porten, is niet al te veel werk ;)

https://bitbucket.org/fuz...wiki/Home#NewRemoteSwitch

Door Tweakers user TheLostSonOfGod, vrijdag 01 maart 2013 05:30

Ik krijg de pi niet werkend zover dat hij mijn Elro AB440S. Tijdens het solderen heb ik per ongeluk eerst de draden verwisselt, zou ik daarmee de TX-module kunnen hebben verprutst?

Ik heb namelijk nu geen idee waarom hij het niet doet, aangezien er zoveel punten zijn waarop het fout kan gaan.

Software installatie verliep zonder problemen, maar als ik nu het commando geef gebeurt er niets:

sudo ~/wiringPi/examples/lights/elro 15 A on

Door Tweakers user WeeJeWel, vrijdag 01 maart 2013 08:52

check ff met een ledje of er wel wat wordt geoutput :)

Door mwil, vrijdag 01 maart 2013 16:02

TOP!
Thnx, goeie handleiding!

Werkt meteen :)

Door mwil, vrijdag 01 maart 2013 21:14

Wat ik me nog afvraag: als ik de aansluiting van pin 8 (TX) zou splitsen, kan je dan een tweede zender (met eigen stroom uiteraard) aansluiten (die natuurlijk hetzelfde zenden)?
Zit nu met het probleem dat m'n muren te dik/gewapend zijn om ook boven aan te kunnen sturen.

Door Tweakers user WeeJeWel, vrijdag 01 maart 2013 21:23

mwil schreef op vrijdag 01 maart 2013 @ 21:14:
Wat ik me nog afvraag: als ik de aansluiting van pin 8 (TX) zou splitsen, kan je dan een tweede zender (met eigen stroom uiteraard) aansluiten (die natuurlijk hetzelfde zenden)?
Zit nu met het probleem dat m'n muren te dik/gewapend zijn om ook boven aan te kunnen sturen.
ofcourse :)

Door Tweakers user micheltenhove, vrijdag 01 maart 2013 23:39

Volgens mij heeft de transmitter van iPrototype ook een antenne aansluiting, misschien dat die nog een boost geeft?

Door Tweakers user mwil, vrijdag 01 maart 2013 23:45

i know, heb de iPrototype in gebruik (wachten op ebay ? nah! geen geduld) , met een cm of 10 antenne ...Wat ik nog kan proberen is om er 12V op te zetten ipv de 5 van nu.

Door Tweakers user mwil, vrijdag 01 maart 2013 23:54

Nog een mogelijkheid voor mensen die groepen willen kunnen schakelen of meerdere type ontvangers willen combineren.

Maak een bash-script aan (mijne heet unified) met de volgende inhoud:

#!/bin/bash
program=$1

if [ $program = "action" ]
then
#usage: ./action dipchannel socket state
dipchannel=$2
socket=$3
state=$4
./action $dipchannel $socket $state
fi

if [ $program = "alles" ]
then
state=$2
#usage: ./action dipchannel socket state
./action 3 A $state
./action 3 B $state
./action 3 C $state
#./kaku M 10 $state
fi

if [ $program = "kaku" ]
then
#usage: ./kaku address device state
address=$2
device=$3
state=$4
./kaku $address $device $state
fi


Nu het script uitvoerbaar maken uiteraard (chmod +x unified)

Vervolgens pas je de verwijzing naar het progje in je index.php aan:

shell_exec('cd /wiringPi/examples/lights; sudo ./unified '.$_POST["button"].'');


Om nu bv. "alles" te gebruiken vul je bij de button-value "alles on" of "alles off" in.

Om een ontvanger van de Action aan te sturen moet je button-value "action 3 A on" in (of off) hebben.

Om een ontvanger van kaku aan te sturen moet je button-value "kaku M 10 on" hebben.

Door Tweakers user micheltenhove, zaterdag 02 maart 2013 00:41

Bedankt voor je fijne toevoeging mwil! :) Ik ga 'm zeker opnemen in mijn tutorial als je dit niet erg vindt? :)

Edit: Ik heb mijn raspberry nu bijna klaar, ik kan nu ook de status van de lampen zien, alhoewel dit helaas niet 100% betrouwbaar is en ook niet te maken is denk ik.

http://oi49.tinypic.com/35alis6.jpg

[Reactie gewijzigd op zaterdag 02 maart 2013 00:52]


Door Tweakers user mwil, zaterdag 02 maart 2013 00:57

Aangezien je het wil toevoegen, heb ik het script maar even universeel gemaakt:


#!/bin/bash
program=$1

if [ $program = "action" ]
then
#usage: ./action dipchannel socket state
dipchannel=$2
socket=$3
state=$4
./action $dipchannel $socket $state
fi

if [ $program = "kaku" ]
then
#usage: ./kaku address device state
address=$2
device=$3
state=$4
./kaku $address $device $state
fi

if [ $program = "blokker" ]
then
#usage: ./blokker device state
device=$2
state=$3
./blokker $device $state
fi

if [ $program = "elro" ]
then
#usage: ./elro systemcode socket state
systemcode=$2
socket=$3
state=$4
./elro $systemcode $socket $state
fi

if [ $program = "groep1" ]
then
state=$2
./action 3 A $state
./action 3 B $state
./action 3 C $state
./kaku M 10 on
fi


maareuh .. status uitlezen.. nice, kan niet wachten op de uitleg ;-)

Door Tweakers user i-chat, zaterdag 02 maart 2013 16:38

ik heb eens bij de action gekeken - maar het nadeel van die dingen lijkt dat het allemaal stekker blokken zijn... voor individuele lampen en sfeer lichtjes etc lijkt me dat geen probleem,
maar ik wil graag mijn plafond lampen ook op deze manier kunnen schaken,


nu weet ik dat kaku wel wat mini schakelingen heeft, maar die zijn met 20 tot 30 euro per stuk veeel te duur, dus als iemand toevallig een goedkopere meerkanaals doosje kent waar je de draden uit het plafond in kunt prikken houd ik me zeer aanbevolen, ik zie het niet echt zetten om die stekkerblokken van bijv de action uit elkaar te trekken...

een van de problemen die ik tegen kom is dat ik werkelijk geen idee heb wat voor zoektermen (bijv merken) nog enig resultaat zouden kunnen geven...

Door Tweakers user WeeJeWel, zaterdag 02 maart 2013 16:41

Je kunt toch de kabels in de plafond verbinden met stekkers, als dat fysiek past :)

Door Tweakers user i-chat, zaterdag 02 maart 2013 21:12

@weetjewel, niet echt, ik heb in het midden van de huiskamer bijv 1 doos zitten waar ooit een hotel schakeling in zat, echter is die al lang in onbruik geraakt, en heb ik tijdens het behang trekken die andere doos niet eens terug-gevonden :P wat ik dus gedaan heb is de 2e schakeldraad met een 2e lam verbonden en op de muur een dubben scahkelaar... dit is wel leuk maar hiermee kan ik lampen niet automagisch aan laten gaan, iets wat ik eigenlijk heel graag zou willen bijv door als ik thuis ben .. het licht automagisch aan te laten springen rond zons ondergang of als de weerst verwachting aangeeft dat er bewolking is...

maar bijv ook op gezette tijden als ik niet thuis ben dat schijnt inbrekers af te weren (tot op zekere hoogte / heb ik wel eens gehoord...

ik had eigenlijk gehoopt dat er schakel dozen zouden hebben bestaan waar je behalve 2 schakelaars ook een ir ontvanger had... zodat je behalve op de muur niets hoeft aan te passen

Door Tweakers user micheltenhove, zondag 03 maart 2013 17:16

Bij deze alvast een stukje extra handleiding om ook de actuele status van een lamp te zien. Er kunnen hier en daar wat foutjes instaan.

Ik zie jullie feedback graag tegemoet! :)

edit: nieuwe link: https://docs.google.com/f...H0dIgeklNUVVxNk4wdlU/edit

[Reactie gewijzigd op zondag 03 maart 2013 23:01]


Door Tom, zondag 03 maart 2013 17:52

Timers kan je zetten met cronjobs (zie google).
Met PHP kan je het tijdstip van zonsondergang opkomst berekenen (date_sunset en date_sunset).
Waar ik nog een oplossing voor zoek is het beheren van cronjobs in PHP.. Iemand een oplossing hiervoor? Of gebruik maken van een PHP script die als daemon draait?

Door Rik1980, zondag 03 maart 2013 19:56

Echt geweldig dit! Al heel lang naar opzoek....
En gewoon leuk om zelf van alles in elkaar te zetten.

Maar mis ik iets in de handleiding V2?

Basis Configuratie plakken:
(zie smbconfig.txt)

Door Tweakers user micheltenhove, zondag 03 maart 2013 23:01

Rik1980, heb het voor je aangepast, vergeten bestand toe te voegen.

Door Tweakers user micheltenhove, zondag 03 maart 2013 23:10

Tom schreef op zondag 03 maart 2013 @ 17:52:
Timers kan je zetten met cronjobs (zie google).
Met PHP kan je het tijdstip van zonsondergang opkomst berekenen (date_sunset en date_sunset).
Waar ik nog een oplossing voor zoek is het beheren van cronjobs in PHP.. Iemand een oplossing hiervoor? Of gebruik maken van een PHP script die als daemon draait?
Google:
http://net.tutsplus.com/t...ing-cron-jobs-with-php-2/

Door Richard, maandag 04 maart 2013 13:32

super mooie tutorial, ik heb helaas alleen problemen met punt 16 voor de visudo aanpassing. Kan iemand mij vertellen hoe hij dit gedaan heeft?

Door Richard, maandag 04 maart 2013 14:21

helemaa ik heb in de terminal het volgende getypt:
'sudo visduo'

dan heb ik het volgende helemaal onderaan geplaatst:
www-data ALL=(ALL) NOPASSWD: /wiringPi/examples/lights/./

in de terminal kan ik mijn klikaanklikuitschakelaars omzetten, maar niet via de webinterface.

ik heb de frequenties ook al aangepast in de index.php (in 1 M en bij een andere knop M 1)

Door Richard, maandag 04 maart 2013 14:23

ook heb ik bovenaan ipv sudo ./action nu sudo ./kaku gedaan

Door Tweakers user micheltenhove, maandag 04 maart 2013 14:37

Richard, kijk je PHP bestand goed na, een spatie té weinig in het shell_exec commando leverde bij mij al op dat het niet werkte zonder dat er een fout gegenereerd werd.

Je ingevoerde visudo regel ziet er goed uit namelijk.

Door Richard, maandag 04 maart 2013 15:54

Heel raar maar ik zie geen fouten, ik heb hel volgende:

index.php
<?php
if ( isset($_POST['button']) ) {
shell_exec('cd /wiringPi/examples/lights; sudo ./kaku '.$_POST["button"].'');
}
?>

<!DOCTYPE html>
<!--[if lt IE 7 ]><html class="ie ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--><html lang="en"> <!--<![endif]-->
<head>

<!-- Basic Page Needs
================================================== -->
<meta charset="utf-8">
<title>Licau</title>
<meta name="description" content="">
<meta name="author" content="">

<!-- Mobile Specific Metas
================================================== -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

<!-- CSS
================================================== -->
<link rel="stylesheet" href="stylesheets/base.css">
<link rel="stylesheet" href="stylesheets/skeleton.css">
<link rel="stylesheet" href="stylesheets/layout.css">

<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

<!-- Favicons
================================================== -->
<link rel="shortcut icon" href="images/favicon.ico">
<link rel="apple-touch-icon" href="images/light.png">
<link rel="apple-touch-icon" sizes="72x72" href="images/light.png">
<link rel="apple-touch-icon" sizes="114x114" href="images/light.png">

</head>
<body>


<!-- Primary Page Layout
================================================== -->

<!-- Delete everything in this .container and get started on your own site! -->

<div class="container">
<div class="sixteen columns">
<h1 class="remove-bottom" style="margin-top: 40px"><img src="./images/light.png"> Licau</h1>
<h5>Version 0.1</h5>
<hr/>
<h3>Beneden</h3>
<legend>Woonkamer</legend>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<button class="button" type="submit" name="button" value="1 M on" />aan</button>
<button class="button" type="submit" name="button" value="1 M off" />uit</button>
</form>
<hr/>

<h3>Boven</h3>
<legend>Hal</legend>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<button class="button" type="submit" name="button" value=" 1 M on" />aan</button>
<button class="button" type="submit" name="button" value=" 1 M off" />uit</button>
</form>

<hr/>
</div>


</div><!-- container -->


<!-- End Document
================================================== -->
</body>
</html>
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification


# User alias specification


# Cmnd alias specification


# User privilege specification
root ALL=(ALL:ALL) ALL


# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL


# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
pi ALL=(ALL) NOPASSWD: ALL
www-data ALL=(ALL) NOPASSWD: /wiringPi/examples/lights/./

Door Rik1980, maandag 04 maart 2013 16:09

Hier lijkt alles te werken.
Kan alleen nog niet controleren of thuis het licht aan en/of uit gaat.

@ micheltenhove; bedankt voor het bijwerken van het bestand.
Ik heb alleen de marge van de knop (breedte 40px) aangepast zodat. Op mijn mobiel alles op één regel past.

Door Tweakers user micheltenhove, maandag 04 maart 2013 21:45

Richard, doe maar eens tussen kaku en '.$_POST een extra spatie, dat wil soms nog wel eens uitmaken. :)

Rik1980, fijn dat het werkt! :) Op sommige toestellen zal de button wel té breed zijn inderdaad.

Ik heb er inmiddels ook een login op gebouwd, deze werkt perfect. Mensen nog geintresseerd?

[Reactie gewijzigd op maandag 04 maart 2013 21:47]


Door Tweakers user svenvv2, dinsdag 05 maart 2013 14:26

Pino en Tommie schreef op woensdag 27 februari 2013 @ 22:04:
Ik heb het ook werken met een action setje. Ik wil nu proberen om alle stopkontakten te schakelen met 1 knop (Nu gaat elk stopkontakt met een eigen knop). Het commando voor het aanzetten van 1 stopkontakt is "sudo ./action 1 A on" Wat nou als ik meerdere stopkontakten wil schakelen. Kun je meerdere dipchannels tegelijk ingeven. bijvoorbeeld:
"sudo ./action 0,1,255 A on" of bijvoorbeeld "sudo ./action ALL A on". Als jullie me hier mee kunnen helpen ben ik weer een stapje verder.

Bedankt !!!
Ik weet dat het wat laat is, maar je kan met de dipswitches meerdere schakelaars 1 kanaal geven. Ik heb echter de code wat aangepast om ook het commando 'master' als code te accepteren(om wat meer opties met schakelen te hebben)

#include <wiringPi.h>
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>
#include <unistd.h>
#include <ctype.h>
#include <iostream>
#include "RemoteSwitch.cpp"

using namespace std;

int main(int argc, char **argv)
{
int pin_out = 15; // Pin out using wiringPi pin numbering scheme (15 = TxD / BCM GPIO 14, see https://projects.drogon.net/raspberry-pi/wiringpi/pins/)
int channel = 0;
char socket = 'A';
bool state = false;
bool master = false;
int x = 0;
//declare the five different sockets used in the master mode.
char A = 'A';
char B = 'B';
char C = 'C';
char D = 'D';
char E = 'E';


if( argc != 4 ) { // not enough arguments
std::cout << "usage: " << argv[0] << " dipchannel socket state" << std::endl;
std::cout << "example: " << argv[0] << " 0 A on" << std::endl;
return 0;
} else {
channel = atol(argv[1]);
string socketstr = argv[2];
string statestr = argv[3];

if( socketstr.compare("master") == 0 ) { //See if master has been specified.
master = true;
} else {
master = false;
socket = *argv[2]; // no master specified, proceed as normal.
}

if( statestr.compare("on") == 0 ) {
state = true;
} else {
state = false;
}


}

// load wiringPi, Very inportant!
if(wiringPiSetup() == -1)
{
printf("WiringPi setup failed. Maybe you haven't installed it yet?");
exit(1);
}

// setup pin and make it low, without making it low first it won't always work.
pinMode(pin_out, OUTPUT);
digitalWrite(pin_out, LOW);
ActionSwitch actionSwitch(pin_out);

// for (x = 0; x <= 2; x++) { //The switches are a bit unresponsive over longer distances. repeating the signal a few times might help.

if (master == true) {


//send command for each socket
actionSwitch.sendSignal(channel, 'A', state);
actionSwitch.sendSignal(channel, 'B', state);
actionSwitch.sendSignal(channel, 'C', state);
actionSwitch.sendSignal(channel, 'D', state);
actionSwitch.sendSignal(channel, 'E', state);

}
else {
//send command for single socket
actionSwitch.sendSignal(channel, socket, state);
}
// }

}

[Reactie gewijzigd op dinsdag 05 maart 2013 14:28]


Door Rik1980, dinsdag 05 maart 2013 15:03

Ik dacht dat ik alles wel draaiend had maar toen ik gister thuis kwam zag ik dat om de één of andere rede de link met het web niet werkt. Via shh terminal kan ik alles bedienen en ingeven. Maar verder luistert hij niet naar de command's van de web interface.
Kan niet bespeuren waar het mis gaat... iemand een idee?

Door Richard, dinsdag 05 maart 2013 16:25

Rik1980 schreef op dinsdag 05 maart 2013 @ 15:03:
Ik dacht dat ik alles wel draaiend had maar toen ik gister thuis kwam zag ik dat om de één of andere rede de link met het web niet werkt. Via shh terminal kan ik alles bedienen en ingeven. Maar verder luistert hij niet naar de command's van de web interface.
Kan niet bespeuren waar het mis gaat... iemand een idee?
Ik heb hetzelfde probleem, ik denk dat het met de visudo te maken heeft dat ik dat niet goed doe, en dat de webinterface de rechten niet heeft om een sudo command uit te voeren. Kan iemand een voorbeeld van zijn visudo bestand laten zien (en wellicht vertellen voor dummies hoe hij de gebruiker heeft toegevoegd? de HandleidingV2 heeft bij mij helaas ook niet geholpen (ik ben met een clien RPI installatie gestart zoals de tutorial)

Verder heb ik een index pagina geschreven daar werkt het ook niet wellicht ziet iemand de fout:

[quote[
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="submit" name="test" value="test">
</form>
<?php if(isset($_POST['test'])) {
edit();
}
function edit()
{
shell_exec('sudo /home/pi/wiringPi/examples/lights/./kaku 1 m on');
}
?>

[/quote]

Door Tweakers user svenvv2, dinsdag 05 maart 2013 19:39

Ik had het zelfde probleem en werdt het uiteindelijk zat. Heb daarom maar voor de onveilige oplossing gekozen:

in visudo:
www-data ALL=NOPASSWD: ALL


Wil je dit risico niet nemen denk ik dat je de bestaande regel wat moet aanpassen.
De regel die in de handleiding staat klopt namelijk niet. Er staat:
www-data ALL=(ALL) NOPASSWD: /wiringPi/examples/lights/./

Maar het programma staat standaard in:
www-data ALL=(ALL) NOPASSWD: /home/pi/wiringPi/examples/lights/./


Die laatste regel zou (als het goed is) je problemen moeten verhelpen.

(ALL is best grappig, dan kan je met een webinterface de hele pi beheren mocht je dit willen (denk aan updaten, rebooten, programma's installeren etc.)

[Reactie gewijzigd op dinsdag 05 maart 2013 19:41]


Door Richard, dinsdag 05 maart 2013 20:38

svenvv2 schreef op dinsdag 05 maart 2013 @ 19:39:
Ik had het zelfde probleem en werdt het uiteindelijk zat. Heb daarom maar voor de onveilige oplossing gekozen:

in visudo:
www-data ALL=NOPASSWD: ALL


Wil je dit risico niet nemen denk ik dat je de bestaande regel wat moet aanpassen.
De regel die in de handleiding staat klopt namelijk niet. Er staat:
www-data ALL=(ALL) NOPASSWD: /wiringPi/examples/lights/./

Maar het programma staat standaard in:
www-data ALL=(ALL) NOPASSWD: /home/pi/wiringPi/examples/lights/./


Die laatste regel zou (als het goed is) je problemen moeten verhelpen.

(ALL is best grappig, dan kan je met een webinterface de hele pi beheren mocht je dit willen (denk aan updaten, rebooten, programma's installeren etc.)
Dankjewel. wat een toestand was dat zeg, het werk nu als een tierelier. helaas niet echt veilig, maar het werkt :P

Door Rik1980, dinsdag 05 maart 2013 21:28

Sooow, ik had het bijna op gegeven 8)7
Idd op ALL gezet... en toen nog niet.... Toen in index ook maar /home/pi/... toegevoegd.
En wat denk je :)

Toppie.
Nu maar even nagaan of ik niet teveel verbouwd heb, HAHAHAH
Ow en die login, ik hou me aanbevolen hoor!

Door Tweakers user svenvv2, dinsdag 05 maart 2013 21:38

Achja, ik neem aan dat je geen bedrijfskritische zaken wilt gaan draaien op je RaspberryPi. :+

Ik begin nu met de installatie op mijn 'werk' Pi. Deze staat 24/7 te draaien als mediaspeler/nas/downloadbox en een schakelaartje moet erbij kunnen...

Wat ik ook tegenkwam en een leuke toevoeging is aan het systeem is de functie om lampen te schakelen naar zonsondergang. Momenteel gebruik ik nog mechanische timers hiervoor.

http://scruss.com/blog/20...cron-on-the-raspberry-pi/

Ik denk eraan om dagelijks een cron in te stellen die de kamerlampen een half uurtje na zonsondergang aanzet en een paar uur later weer uitzet. Handig voor op vakanties ed. :)

Door Tom, dinsdag 05 maart 2013 21:50

Wat ik nu gebruik is een PHP daemon die elke minuut kijkt of (het in het geheugen geladen) bestand een schakeling bevat op dat tijdstip. Na een bepaalde tijd ververst hij die gegevens uit het bestand (om zo onnodige schade aan SD te voorkomen).
Ik gebruik hiervoor PEAR System_Daemon en werkt perfect! Heb nu ook zonsondergang gedaan. Nog even goed testen..

Door Rik1980, dinsdag 05 maart 2013 21:55

Nee het is thuis situatie, maar hou er niet zo van als anderen er toch in kunnen.

Cron wil ik idd ook eens gaan bestuderen voor bv vakanties.
Zodat je willekeurige tijden in kan stellen en geen home alone timing krijgt. ;)

Wat ik nog heel graag voor elkaar wil krijgen is kamer afzonderlijke thermostaat aansturing van de CV. Heb al paar thermosensors besteld...... ben benieuwd.

Door Tweakers user svenvv2, dinsdag 05 maart 2013 22:36

Kleine update van mijn vorige post: Probeer dit dus niet op Raspbmc, het gaat fout op het moment dat je apache2 probeert te installeren en daarna gaat zo ongeveer alles fout :'(

Door Rik1980, dinsdag 05 maart 2013 22:59

Raspbmc moet je volgens mij afzonderlijk draaien.
1x geprobeerd, maar vond het niet spannend genoeg.
Vind mn PlayonHD beter werken. Heb je tenminste ook 5.1 geluid ;)

Door Tweakers user svenvv2, woensdag 06 maart 2013 15:00

Achja, met xbian werkt het wel. Ik merk dat dat veel vloeiender draait en het is heel makkelijk om er nog nzbget ed. naast te installeren.

Door Tweakers user DeathTrail, woensdag 06 maart 2013 21:52

Thanks Michel ten Hove, heb het ook werkend!

Door Tweakers user micheltenhove, woensdag 06 maart 2013 22:29

Mooizo! Ik ben nu aan de stoei gegaan met Cronjobs. Nog nooit mee gewerkt dus wel leuk om uit te pluizen! :)

Door Smartwebdesign.nl, woensdag 06 maart 2013 22:36

Michel ten Hove en Weetjewel,

Ik was al even bezig met testen van je update van Lampen schakelen met je smartphone & een Raspberry Pi.
Het is me echter nog niet gelukt is het mogelijk dat je een iso maakt ?
Zo dat ik hem op mij SD kan plaatsen?
Hierbij nog een voorbeeld gevonden wat misschien ook handig is ? Om te programeren :-) >

Misschien wat om tijdsintervals aan te maken aan de hand van google agenda ?

Door Tweakers user micheltenhove, donderdag 07 maart 2013 11:50

Ik ben niet van plan om hier een ISO van te maken, alle middelen om dit systeem draaiend te krijgen zijn te vinden op deze tweakblog.

Dat linkje is wel interessant, al in een veel verder stadium. :)

Door Rik1980, donderdag 07 maart 2013 16:11

@Michel; misschien een rare vraag hoor maar waarom 2x aan/uit indicatie plaatjes?

Door Tweakers user Kiwi, donderdag 07 maart 2013 16:17

Ik heb het eindelijk ook werkend gekregen hoor, ik moest inderdaad nog /home/pi toevoegen aan de index.php. :)

Ik heb wel nog een probleempje, ik heb 2 verschillende kaku systemen. De ene werkt met A1-D4, maar de andere van I1-IVG, weet iemand welk commando ik voor die stekkerblokken moet sturen? Ik heb de oplossing gevonden, dit systeem werkt met een zoekmodus, en je kan dus elk commando toewijzen. :)

[Reactie gewijzigd op donderdag 07 maart 2013 21:04]


Door Jaap, zaterdag 09 maart 2013 04:15

Is het ook mogelijk om op deze manier de dimmers aan te besturen? Hoe zou dat kunnen?

Door Tweakers user mwil, zaterdag 09 maart 2013 09:04

KaKu-dimmers werken ook;
1 keer on schakelen -> licht aan in vorige dim-stand
2 keer on schakelen -> licht gaat van zwak naar vol en weer terug. Moment dat je weer on schakelt blijft die dim-stand actief.
(Alleen jammer dat het programma wat traag is i.v.m. de remote)

[Reactie gewijzigd op zaterdag 09 maart 2013 09:05]


Door Tweakers user buldogwtf, zondag 10 maart 2013 14:06

micheltenhove schreef op woensdag 06 maart 2013 @ 22:29:
Mooizo! Ik ben nu aan de stoei gegaan met Cronjobs. Nog nooit mee gewerkt dus wel leuk om uit te pluizen! :)
Gelukt? Zo ja, hoe? Mij nog niet.

Google agenda gebruiken lijkt me ook super.

Door Tweakers user micheltenhove, maandag 11 maart 2013 00:03

't Is me nog niet gelukt. Ik ben aan het onderzoeken hoe je cronjobs het beste kan toevoegen en verwijderen met PHP.

Door Tweakers user Kiwi, dinsdag 12 maart 2013 15:09

Voor de mensen die de lampen willen schakelen met behulp van de Android app Tasker:

Voeg deze regel code toe aan je index.php:
if ( isset($_GET['value']) ) {
shell_exec('cd /home/pi/wiringPi/examples/lights; sudo ./eigen systeem '.urldecode($_GET["value"]).'');
}

Maak een action in Tasker aan met HttpPost/Get en voer de url in naar je index.php bestand.

Voeg achter index.php het volgende toe en pas de waarden aan:
?value=A+1+on

Ik heb het zelf heel handig werken, dus bedankt Weejewel en Michel!

Door Tweakers user svenvv2, dinsdag 12 maart 2013 19:23

Ik kreeg nogal wat reacties over de veiligheid omdat je door simpelweg de post aan te passen (chrome -> inspect element) ieder willekeurig commando kan uitvoeren door gebruik te maken van && [ander commando]. Daarom maar een regex gemaakt om het geheel wat te beveiligen vanaf die weg.


if ( isset($_POST['button']) ) {
if (preg_match("/^[0-9]{1,2} [A-Z] [onf]{2,3}$/",$_POST["button"])){
shell_exec('sudo ./action '.$_POST["button"]);
}else{
echo "Gij zult niet hacken.";
}
}


Voor kaku's moet dit natuurlijk enigsinds aangeast worden, maar het is een begin.

@TerrorKiwi slimme opmerking over tasker. Daar moet ik misschien ook eens naar gaan kijken.

Door Smartwebdesign, zaterdag 16 maart 2013 09:56

Ik heb een 433mhz aangesloten op de Raspberry pi echter werkt het nog niet!
Multimeter aangesloten op de aarde en de VCC ik voer de volgende commando uit
sudo ~/wiringPi/examples/lights/elro 15 B on me multimeter geeft voor korte tijd 1volt.

Dus de commando schakelt !

Ik vraag me alleen af ik wil een elro module stopcontact schakelen alle 5 systeem PIN staan omhoog welke code is dit ? Volgens het flash programma 992 en staat op letter B.

Alvast bedankt,
Klaas

Door Tweakers user svenvv2, zaterdag 16 maart 2013 12:53

Alle 5 pinnen is uit m'n hoofd kanaal 31.

Door Smartwebdesign, zaterdag 16 maart 2013 23:05

Bedankt Svvenvv2,

Het klopt inderdaad dat kanaal 31. DIP switch software is net andersom tussen ON en OFF aanduiding van daar dat ik code 992 kreeg :-)

Echter kan ik hem nog niet schakelen?
Heeft dit te maken met rechten?

Via de afstandbeiding werkt het zonder problemen !

Alvast bedankt

Klaas

Door lxz, vrijdag 22 maart 2013 10:42

Jaap schreef op zaterdag 09 maart 2013 @ 04:15:
Is het ook mogelijk om op deze manier de dimmers aan te besturen? Hoe zou dat kunnen?
De dimmers rechtstreeks aansturen doe ik m.b.v. het programmeerwerk van CurlyMoo. Omdat hij een andere GPIO-pin gebruikt moet je wel even de variabele pin_out in de send.cpp naar:

code:
1
int pin_out = 15;


voordat je deze gaat compilen.

Vervolgens kun je de dimmer in zoek-modus zetten en pairen d.m.v. zoiets als

code:
1
./send -u 1 -i 2648170 -t

Door Tweakers user Codeaction, maandag 25 maart 2013 22:02

Bedankt svenvv2 en TerrorKiwi,

De code voor het beter veiligstellen van code implementatie heb ik het kaku systeem toegepast en het begin ziet er zo uit:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if ( isset($_POST['button']) ) {
if (preg_match("/^[A-P] [0-9]{1,2} [onf]{1,2}$/",$_POST["button"])){
shell_exec('cd /kaku; sudo ./kaku  '.$_POST["button"].'');
}

else{

    echo "Gij zult niet hacken.";
}
}


if ( isset($_GET['value']) ) {
shell_exec('cd /kaku; sudo ./kaku '.urldecode($_GET["value"]).'');
}

?>


Voor apparaten uit te zetten gebruik ik simpel alleen de 'o'.
Bij het testen om iets uit te zetten scheelt dat weer een teken :9

Nu met de app tasker er bij, wat zeer goed werkt gaat alle apparatuur aan in huis zodra ik thuis ben en zodra de wekker in de ochtend afgaat.

Ook dagelijks valt helaas me router er uit, maar dankzij de Pi wordt deze gereset bij het falen van google waarna wiki ping.

[Reactie gewijzigd op maandag 25 maart 2013 22:03]


Door Vickynick, vrijdag 29 maart 2013 20:07

micheltenhove schreef op maandag 11 maart 2013 @ 00:03:
't Is me nog niet gelukt. Ik ben aan het onderzoeken hoe je cronjobs het beste kan toevoegen en verwijderen met PHP.
Hier heb ik zelf ook wat tijd aan besteed. Er zijn wat sjieke oplossingen met een standaard cronjob php scriptje die je kunt gebruiken. Ik gebruik zelf een simpel tekstbestandje waarin ik de cronjobs aanmaak (met nu nog simpele buttons). Wil straks iets met een jquery mobile timepicker inbakken zodat het geheel wat dynamischer is. Dit is mijn functie om een timer van een electrische deken toe te voegen:

"
$cronwoonkamer = "40 18 * * * php /var/www/phpscripts/Enable_Woonkamer.php";

$croneneldeken = "45 21 * * * php /var/www/phpscripts/Enable_EL_Deken.php";

$crondiseldeken = "00 15 * * * php /var/www/phpscripts/Disable_EL_Deken.php";


if (isset($_POST["cron"]))

{

// $output = shell_exec('crontab -l'); Crontab output

file_put_contents('/tmp/crontab.txt',$_POST["cron"]."\n".$cronwoonkamer."\n".$crondiseldeken.PHP_EOL);

echo exec('crontab /tmp/crontab.txt');

}

if (isset($_POST["cronoff"]))

{

// Remove cronjobs

echo exec('crontab -r');


// Add cron van woonkamer aan cronjobs en voer uit.

file_put_contents('/tmp/crontab.txt',$cronwoonkamer.PHP_EOL);

echo exec('crontab /tmp/crontab.txt');

}
"

Met de andere button die ik heb aangemaakt verwijder ik de cronjob. Daarna voeg ik de job weer toe om de verlichting in de woonkamer te schakelen (die moet het gewoon weer doen). Ik begin net ervaring op te doen met php. Ik gebruik een mapje met losse php scriptjes voor het uitvoeren van meerdere acties achter elkaar. Die roep ik dan aan met de cronjobs. Zal vast wel efficiënter kunnen maar zo werkt het ook:)

Voorbeeld van de inhoud van zo'n .php scriptje:

<?php
shell_exec('cd /wiringPi/examples/lights; sudo ./action 63 A on');
shell_exec('cd /wiringPi/examples/lights; sudo ./action 63 B on');
?>

Misschien heb je hier wat aan;)

Door B, zondag 07 april 2013 09:13

Een hele goedemorgen allen,

De afgelopen week is mijn tweede Raspberry eindelijk binnengekomen. Mijn eerste Raspberry Pi gebruik ik als mediaspeler. De andere zou ik graag in willen zetten voor Domotica doeleinden. Daarom ik de tutorial gevolgd en tot zoverre heb ik het zaakje draaien. Raspbian geïnstalleerd en de benodigde tools en compilatie. Alleen het belangrijkste stukje ontbreekt nu nog en dat is natuurlijk het schakelen zelf.

Mijn vraag is nu op welke manier ik achter het DIP kanaal kan komen. Ik maak gebruik van de zelflerende KAKU setjes en heb alleen de transmitter module aangesloten. Een receiver heb ik niet gekocht, dit naar aanleiding van bovengenoemd tutorial waarbij enkel wordt aangegeven dat de 433/434 transmitter, naast de RPI en jumper wires uiteraard, voldoende is.

Zou iemand zo vriendelijk willen zijn om mij in de juiste richting te sturen?

Door Tweakers user WeeJeWel, zondag 07 april 2013 15:21

Voer gewoon een willekeurige code in terwijl je ontvanger in pairmodus staat. Dan kun je vanaf dan die zelf bedachte code gebruiken voor doe lamp.

Door B, zondag 07 april 2013 16:39

WeeJeWel schreef op zondag 07 april 2013 @ 15:21:
Voer gewoon een willekeurige code in terwijl je ontvanger in pairmodus staat. Dan kun je vanaf dan die zelf bedachte code gebruiken voor doe lamp.
Het leven kan soms ook zo simpel zijn he :) THX!

Door R.Joling, maandag 08 april 2013 15:25

Hallo mensen.

Ik ben nieuw hier en bezig met men Pi.

Heb in middels het project Lampen schakelen met een Raspberry Pi werkende.

En ben vervolgens begonnen met de webtool te installeren. Volgens Handleiding V2.

Ik loop hier echter vast bij de enelaatste stap: Aanpassen Index.php.

Ik heb namelijk geen flauw idee waar ik deze file ergens kan vinden. en ook de laatste stap van het document. database aanmaken en vullen krijg ik niet voor elkaar.

Is er iemand die me dit middels een berichtje uit kan leggen zodat ik verder kan.

Hoop van jullie te horen, Alvast bedankt.

Mvg R Joling

Ps: wat ik me nog afvroeg, wat is de url link oid van deze applicatie en is dit ook te benaderen van uit een ander netwerk. (als je port forwarding aanzet op porrt. xxxxxx)?

Door R.Joling, woensdag 10 april 2013 12:23

Hallo,

Het is me inmiddels gelukt. (Voorgaand bericht)

Michel ten hove: je had er inmiddels een Inlog opgebouwd las ik.

Zou je hier een uitleg van kunnen geven waar en hoe je dit hebt gedaan (code)

Bedankt.

Super mooi project btw

Mvg R.Joling

Door Tweakers user guanowceend, woensdag 10 april 2013 20:59

Ik heb besloten dat ik Apache (en evt. MySQL) te zwaar vind.
Daarom ben ik begonnen met NodeJS en heb ik dat werkend gekregen.

Naast de webinterface, heb ik dan ook vrij simpel een app weten te bouwen voor m'n telefoon en Windows8.
Mijn plan is om binnenkort hier tutorials van te maken.

Door Smartwebdesign, donderdag 11 april 2013 22:21

guanowceend,

Das een prima plan,

Ik hou me aanbevolen !

Ik had al eens eerder wat informatie geplaatst maar mischien dat jij dit nog niet gezien had.

Het leek mij namelijk erg leuk om het via google agenda te laten schakelen ;-)

hierbij nog wat extra informatie van een eerder post:
?

http://pihome.harkemedia.de/ deze kerel heeft het al klaar. Alleen gebruikt hij een gemodificeerde afstandbediening. En dat is natuurlijk niet handig ;-)

Foto agenda:
http://4.bp.blogspot.com/...shot+-+LampAanLampUit.png

Extra informatie
http://eva-quirinius.blog...pberry-pi-and-lights.html


Met vriendelijke groeten,
klaas van der Horst

Door Tweakers user guanowceend, maandag 15 april 2013 21:12

Hoi Klaas,


Dat ziet er inderdaad ook tof uit.
Toch wil ik liever zoiets doen icm zonsondergang en dergelijke.

Op dit moment ben ik eerst bezig met m'n blog op te zetten, daarna zal ik verder gaan experimenteren.

Door Tweakers user Kiwi, maandag 15 april 2013 22:29

Heeft iemand enig idee of er RGB led strips of iets dergelijks bestaan die je met een van deze systemen kan bedienen? Zoiets als dit bijvoorbeeld: http://www.ledaanbieding....r-1-tot-10-meter-met.html

Door Tweakers user gabn88, donderdag 25 april 2013 08:11

Super vet project! Mijn RPi komt volgende week (counting days...). Dan wil ik er ook mee bezig gaan.

Wat betreft de zonsondergang en opkomst, dit kan je waarschijnlijk direct uit de google calendar halen, want daar is een standaard kalendar voor die voor jou plaats deze informatie bepaald. Zie ook http://support.google.com/calendar/answer/37098?hl=en

Door Tweakers user guanowceend, zondag 28 april 2013 20:59

Het is nog niet heel mooi weggewerkt, maar hieronder twee voorbeelden:
http://www.youtube.com/watch?v=fJCHTKAkIGQ
(KUKA met vaste lamp)

http://www.youtube.com/watch?v=VpT6ZDfhjjU
(ELRO met stekker)

Door Tweakers user remcoXP, zondag 28 april 2013 22:33

wow: http://pihome.harkemedia.de/pihome-software/ ziet er echt supermooi en uitgebreid uit.
(databaseje, webserver enz op kant en klare image.)

iemand dit al in gebruikt?

Door Vincent, woensdag 01 mei 2013 19:07

Hallo allemaal,

Het lukt helaas nog steeds niet om hetgeen omschreven staat in de handleiding V2 werkend te krijgen op mijn Raspberry Pi. Het gaat bij mij mis met het compileren.
Eigenlijk wil ik mijn nieuwe KAKU sysyteem werkend krijgen op Raspbmc gezien ik mijn Pi als media center gebruik en deze toch altijd draait.
Is er iemand die dit werkend heeft gekregen op Raspbmc? Zo ja, moeten er dan nog andere stappen worden gevolgd als in de handleiding staat omschreven?
Als iemand mij verder kan helpen ben ik je zeer dankbaar.

Door smartwebdesign, donderdag 02 mei 2013 22:41

Hoi guanowceend,

Ik zie dat je al aardig ver bent met het ontwikkelen van je prachtige app en het al mooi draaient hebt !

Ik hoop dat je binnenkort je blog online zet :-) Ben benieuwd.

Misschien leuk als je een images opslaat van je configuratie?

Groetjes ,
klaas

Door Tweakers user guanowceend, maandag 13 mei 2013 20:03

Hoi Klaas,

Helaas is het erg druk, maar misschien kan ik je vast wat op weg helpen:
Je moet Node.JS installeren en via npm socket.io ook installeren.
Om het voor mezelf niet al te ingewikkeld te maken, heb ik het eerst gewoon op een Windows-machine gemaakt en getest (zonder de commando's naar WiringPi), waarna ik de .js-file (server) op de Raspberry PI heb gezet en daar heb laten runnen.
Met behulp van Eclipse en Phonegap heb ik een html/javascript/css-gebaseerde app gebouwd en die apk vervolgens op m'n telefoon geïnstalleerd. Dmv socket.io krijg ik bericht terug van de server wanneer het signaal verzonden is door de RPi.

Eigenlijk heb ik dus een website omgebouwd naar een mobiele app. :-)
Hierbij wil ik overigens nog wel wat dingen als veiligheid inbouwen.

Door smartwebdesign, maandag 03 juni 2013 22:16

Ik ben nog bezig geweest met de raspberry pi !

krijg het alleen via het webinterface nog niet geschakeld !
.
wie kan mij helpen met oplossing !

ik kan wel schakelen via ssh !

en heb de webinterface draaien !!

het lijkt er op dat de sudo commando geen rechten heeft !
maar ik heb de regel wel toegevoegd onderaan.

Door Stoutski, maandag 03 juni 2013 23:06

smartwebdesign schreef op maandag 03 juni 2013 @ 22:16:
Ik ben nog bezig geweest met de raspberry pi !

krijg het alleen via het webinterface nog niet geschakeld !
.
wie kan mij helpen met oplossing !

ik kan wel schakelen via ssh !

en heb de webinterface draaien !!

het lijkt er op dat de sudo commando geen rechten heeft !
maar ik heb de regel wel toegevoegd onderaan.
@smartwebdesign

probeer boven in de PHP deze regel eens bij $data

$data = 'cd /home/pi/wiringPi/examples/lights; sudo ./action';

Door smartwebdesign, donderdag 06 juni 2013 21:37

Hij werkt nog niet ik heb versie Licau Version 0.1


<?php if ( isset($_POST['button']) ) { shell_exec('cd /home/pi/wiringPi/examples/lights; sudo ./elro '.$_POST["button"].'');
}
?> <!DOCTYPE html> <!--[if lt IE 7 ]><html class="ie ie6" lang="en">
<![endif]--> <!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]--> <!--[if (gte IE 9)|!(IE)]><!--><html lang="en"> <!--<![endif]--> <head>
<!-- Basic Page Needs
================================================== -->
<meta charset="utf-8">
<title>Licau</title>
<meta name="description" content="">
<meta name="author" content="">
<!-- Mobile Specific Metas
================================================== -->
<meta name="viewport" content="width=device-width,
initial-scale=1, maximum-scale=1">
<!-- CSS
================================================== -->
<link rel="stylesheet" href="stylesheets/base.css">
<link rel="stylesheet" href="stylesheets/skeleton.css">
<link rel="stylesheet" href="stylesheets/layout.css">
<!--[if lt IE 9]>
<script
src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Favicons
================================================== -->
<link rel="shortcut icon" href="images/favicon.ico">
<link rel="apple-touch-icon" href="images/light.png">
<link rel="apple-touch-icon" sizes="72x72"
href="images/light.png">
<link rel="apple-touch-icon" sizes="114x114"
href="images/light.png"> </head> <body>
<!-- Primary Page Layout
================================================== -->
<!-- Delete everything in this .container and get started on
your own site! -->
<div class="container">
<div class="sixteen columns">
<h1 class="remove-bottom" style="margin-top:
40px"><img src="./images/light.png"> Licau</h1>
<h5>Version 0.1</h5>
<hr/>
<h3>Beneden</h3>
<legend>lamp aan</legend>
<form action="<?php
echo $_SERVER['PHP_SELF']; ?>" method="post">
<button class="button"
type="submit" name="button" value="31 A on" />aan</button>
<button class="button"
type="submit" name="button" value="31 A off" />uit</button>
</form>
<hr/>

<h3>Boven</h3>
<legend>Hal</legend>
<form action="<?php
echo $_SERVER['PHP_SELF']; ?>" method="post">
<button class="button"
type="submit" name="button" value="63 A on" />aan</button>
<button class="button"
type="submit" name="button" value="63 A off" />uit</button>
</form>

<legend>Elektrische
Deken</legend>
<form action="<?php
echo $_SERVER['PHP_SELF']; ?>" method="post">
<button class="button"
type="submit" name="button" value="63 C on" />aan</button>
<button class="button"
type="submit" name="button" value="63 C off" />uit</button>
</form>
<hr/>
</div>

</div><!-- container --> <!-- End Document
================================================== --> </body>
</html>

Door Stoutski, vrijdag 07 juni 2013 22:17

check even je error.log van apache

sudo more /var/log/apache2/error.log
misschien kan je hier zien wat er mis gaat.

Door Ronald, donderdag 27 juni 2013 22:21

Ik probeer nu al een tijdje de action schakelaars aan de praat te krijgen, maar dat lukt mij maar niet.
Ik kom er niet uit hoe je de te versturen code bepaald

de dipswitches in min schakelaar staan zo

1 t/m5 staan omhoog
6 en 7 naar beneden
8 omhoog
9 en 10 naar beneden.

Als ik dit in de calculator invoer krijg ik 864

maar wat moet ik nu naar de transmitter sturen?

Kan iemand mij daarmee helpen?

Door Tweakers user WeeJeWel, donderdag 27 juni 2013 22:25

Ronald schreef op donderdag 27 juni 2013 @ 22:21:
Ik probeer nu al een tijdje de action schakelaars aan de praat te krijgen, maar dat lukt mij maar niet.
Ik kom er niet uit hoe je de te versturen code bepaald

de dipswitches in min schakelaar staan zo

1 t/m5 staan omhoog
6 en 7 naar beneden
8 omhoog
9 en 10 naar beneden.

Als ik dit in de calculator invoer krijg ik 864

maar wat moet ik nu naar de transmitter sturen?

Kan iemand mij daarmee helpen?
De eerste 5 zijn voor het kanaal, dus die gebruik je met de calculator. De laatste 5 zijn A/B/C/D/E. Dus maar 1tje van omhoog doen.

Door Ronald, vrijdag 28 juni 2013 10:42

De eerste 5 zijn voor het kanaal, dus die gebruik je met de calculator. De laatste 5 zijn A/B/C/D/E. Dus maar 1tje van omhoog doen.

Oke, Duidelijk.
Bedankt.

1 t/m 5 staan omhoog
6 en 7 naar beneden
8 omhoog
9 en 10 naar beneden.

Dit levert code "31 C`` op

Ik werd ook op het verkeerde been gezet met de calculator.
Als de dipswitch op de calculator naar beneden staat hij op on
Op de impuls is naar beneden off, dus net omgekeerd.

Het werkt nu als ik ``./action 31 C on` op de terminal invoer
Maar nog niet met de webinterface.
Alle software is goed geinstalleerd. de interface heb ik op het scherm (Licau 0.1)
in de opdracht regel de code verandert, maar de impuls schakelt niet.

Door Ronald, dinsdag 02 juli 2013 19:44

Ik ben nu al een paar dagen bezig, maar kom er tot op heden niet uit.
Ik hoop dat er iemand is die mij kan helpen.

Ik heb alles geinstalleerd zoals in de handleiding v2 staat.

Op de command line met Putty kan ik mijn action schakelaars gewoon aansturen, geen enkel probleem.
Maar zogauw ik de web interface wil gaan gebruiken gebeurt er niets.

De database is goed geinstalleerd.
De status in het veld schakelt ook als ik de knop op aan of uit zet.

Mijn basis is een squeezeplug image waarop ik een logitech mediaserver draai, dit wil ik graag ook zo houden.

Ik zie geen enkele foutmelding voorbij komen.

Ht is net of de button actie niet in de juiste map wordt uitgevoerd.

Kan iemand mij hiermee verder helpen?

Door Ronald, dinsdag 02 juli 2013 22:18

Nog in de error log gekeken van Apache, en daar in begint het al met de volgende opmerking:

Can't cd to /wiringpi/examples/lights

het pad is goed, ik heb geprobeerd met /home/pi/ ervoor, maar helpt niet, dat is bij mij ook niet het juiste pad.
Op de squeezeplug is het /root/wiringPi/examples/lights

Ook de rechten in de sudoers file op ALL gezet, maar helpt ook niets.

Iemand nog suggesties ?

Door Ronald, woensdag 03 juli 2013 19:19

Weer een dag verder en niets opgeschoten.
Wie o wie wil mij helpen?

Ik krijg steeds de volgende error melding in de apache2 log file.

sh: 1: cd: can't cd to /root/wiringPi/examples/lights
sh: 1: ./action: not found
[Wed Jul 03 19:15:47 2013] [error] [client 192.168.178.18] File does not exist: /var/www/images/favicon.ico

Het rare is dat de client ip adres fout is, dat is namelijk het ip adres van mijn computer, en niet van de Raspberry Pi.

Door Ronald, vrijdag 05 juli 2013 20:29

Niemand die kan helpen?
Tot nu toe ben ik elke avond bezig geweest, duizenden dingen geprobeerd, maar niets dat werkt.
Alles wel 3x opnieuw geinstalleerd vanaf een schone image volgens handleiding V2

De webinterface wil het commando niet uitvoeren.
Het hele net al afgezocht maar niets kunnen vinden dat wat helpt.

Het lijkt er toch op dat het met permissions heeft te maken.

Met SSH werkt het allemaal wel.
Maar met php kan niet eens naar de bewuste map genavigeerd worden.

bij mij is dat: /root/wiringPi/examples/lights

Ik begin behoorlijk hopeloos te worden. het gaat er op lijken dat het niet gaat lukken.
In voorgaande posts zie ik mensen met hetzelfde probleem, maar vervolgens geen oplossing.

Nog 1x het verzoek om wat hulp van mensen die het wel voorelkaar hebben gekregen.

Door Ronald, vrijdag 05 juli 2013 20:48

Ik het de post nog niet geplaatst, en ik probeer nog wat anders in de index.php file en het werkt.
Er staat dus een fout in de index file.

De eerste regels moeten zijn:

$data = 'sudo /root/wiringPi/examples/lights/./action ';
$knop=$_POST['button'];
$channel=$_POST['dipchannel'];

if ( isset($_POST['button']) ) {
shell_exec(''.$data.' '.$channel.' '.$knop.'');

in de eerste regel en in de shell_exec stonden fouten.
Bij mij werkt het nu.

Door Jan, donderdag 18 juli 2013 21:21

Ik wil op deze manier een pomp aansturen , maar deze pomp moet dan bv 10 min uit staan en dan weer 5 min aan enz enz , hoe pak ik dat aan ??? Heeft iemand daar een voorbeeldje van.

Door Ton, zondag 18 augustus 2013 18:56

Ik heb in python een script gemaakt dat een bestand met schakeltijden gebruikt. Zoiets als
Lamp1 07:15 09:20
Lamp1 18:30 22:40
Lamp2 18:30 21:00
etc.

Per lamp zijn er dus meerdere schakelmomenten per etmaal mogelijk. Het python script wordt iedere 5 minuten via een cronjob gestart en bekijkt dan of er iets geschakeld moet worden.
Je kunt zoiets natuurlijk ook maken met intervallen.

Ik wil er nog een keer een sqlite database onder schuiven en zorgen dat de status en de tijd ook via een webpagina zichtbaar zijn en ik ze kan manipuleren.

Door FlyingSander, vrijdag 13 december 2013 22:55

Super tutorial!
Dit heeft mij aardig op weg geholpen!

Alhoewel ik PiHome er ook wel erg proffesioneel uit zag zien!
Een mysql database en een statuschecker en de mogelijkheid om zeer eenvoudig online contactdozen toe te voegen!
http://pihome.harkemedia.de/

Jammer genoeg werkt dit alleen als je er een afstandsbediening aan soldeert en staat er verder geen guide online voor als je iets verkeerd hebt gedaan...

De afgelopen dagen heb ik mij bezig gehouden toch een manier te vinden om de twee programmas aan elkaar te koppelen... Na een aantal uur wat geprutst te hebben is het eindelijk gelukt! In plaats van een bepaalde GPIO aan te sturen roept hij nu dit programma op met de bijbehorende code zodat het alle merken aan kan sturen met een 433MHz/434MHz transmitter! Met de mooie frontend van PiHome!

Heeft hier iemand nog belang bij?

Door Tweakers user Lurge, vrijdag 20 december 2013 13:39

Het werkt goed, bedankt!

Door Tweakers user remcoXP, zaterdag 21 december 2013 08:06

domoticz.com in combi met phpmydomo.org ;) een tip voor iedereen

Door Tweakers user howcome, zondag 22 december 2013 19:09

Prima ontwikkeling!

Ik ben bezig met een project om 'het huis' te besturen, dus niet alleen een klokthermostaat maar ook schakelaars voor tuin- en binnenverlichting. Misschien ook nog wel een bel en zonwering besturing. Dit is op basis van een Pi, met temperatuursensor, relaisrails en touchscreen.

Ik zat ook al te denken of ik de KaKu remote kan modificeren zodat je met de relais wat kan doen, maar dit is veel makkelijker! Nu dus ook maar even een transmitter besteld voor het aansturen van de KaKu units. Helaas wel de zelflerende KaKu units, dus moet ik de ontvangers op een andere code zetten. Maargoed, ik begrijp dat er 256 verschillende codes zijn (8 dipswitches) dus een tooltje om van 0 tot 255 uit te sturen lijkt me geen probleem.. en dan maar kijken op welke code de ontvangers reageren.

Om de compiler aan de gang te krijgen moest ik het build script ook naar ~/wiringPi/wiringPi map kopiëren, maar toen ging het uiteindelijk goed.

Het idee is een unit, met lokale bediening, maar ook bestuurbaar via een API (en misschien als ik zin heb wel een aparte android app). De komende dagen/weken dus maar flink aan het programmeren.

Bedank!!!

Door Luke, dinsdag 24 december 2013 12:18

hoi,
ik heb nu de software draaiend (dutenk ik, ik heb nog geen zender).
ik heb ook 1 klein foutje in de tutorial gevonden, bij het installeeren van wiringPi heb je een cd wiringPi te veel.
maar dat even te zeide, ik ben benieuwd waar het script staat waar je de instellingen kan aanpasssen (E.G. aantal pulses en miliSec per pulse.) dit heb ik namelijk bij een andere tutorial deze instellingen wel gevonden. dit zou het ook mogelijk maken om een script voor alle lampen te maken (e.g. elro 23 a on delay 30ms elro 23 b on etc)
(P.S. ik gebruik xbian)

luke

Door Tweakers user luke01, dinsdag 24 december 2013 22:37

Even om terug te komen op mijn vorige bericht , er is niks mis met de tutorial, dat was de vorige op deze blog, toen ik daar niet op kon reageren heb ik me inhoud ge copy paste , ik ga me nu inlezen is voice control, toch heb ik graag nog help om alle lampen met 1 terminal command uit te voeren, dan kan dat ook met voice control,

Luke

Door Tweakers user luke01, zondag 29 december 2013 15:20

FlyingSander schreef op vrijdag 13 december 2013 @ 22:55:
Super tutorial!
Dit heeft mij aardig op weg geholpen!

Alhoewel ik PiHome er ook wel erg proffesioneel uit zag zien!
Een mysql database en een statuschecker en de mogelijkheid om zeer eenvoudig online contactdozen toe te voegen!
http://pihome.harkemedia.de/

Jammer genoeg werkt dit alleen als je er een afstandsbediening aan soldeert en staat er verder geen guide online voor als je iets verkeerd hebt gedaan...

De afgelopen dagen heb ik mij bezig gehouden toch een manier te vinden om de twee programmas aan elkaar te koppelen... Na een aantal uur wat geprutst te hebben is het eindelijk gelukt! In plaats van een bepaalde GPIO aan te sturen roept hij nu dit programma op met de bijbehorende code zodat het alle merken aan kan sturen met een 433MHz/434MHz transmitter! Met de mooie frontend van PiHome!

Heeft hier iemand nog belang bij?
ik heb hier wel interersse in, zou je een tutorial kunnen maken?

luke

Door Willem, zondag 29 december 2013 16:33

Ik sluit me volledig bij Luke aan.
Lijkt me bijzonder interesant
mvg
Willem

Door Ton, woensdag 01 januari 2014 21:39

Dit is mijn geknutselde script om met de tijden van de zon te werken. Je kunt de volgende opties kiezen:
Normaal, voor zon op, na zon op, voor zon onder, na zon onder,1 uur random, 2 uur random, sleeptimer.

Je kunt dus 5 minuten voor zon onder schakelen en dergelijke.
Ik gebruik de tpc300 samen met een raspberry om de schakelen/dimmen. Werkt prima (beter als de losse zender met lirc) wel alleen echte kaku natuurlijk.
Op de raspberry staat lighttd, php5 en sqlite3
Alles draaiend onder RaspBMC, Werkt prima XBMC merkt er niks van...
Via deze file kun je uitvogelen hoe je de suncron kunt gebruiken:


<?php
$up=date_sunrise(time(),SUNFUNCS_RET_STRING,52.3,6.95,(90+50/60),1); //Tijd zonsopkomst
$down=date_sunset(time(),SUNFUNCS_RET_STRING,52.3,6.95,(90+50/60),1); //Tijd zonsondergang
$db=new PDO('sqlite:kaku.db');
$query="SELECT * FROM TIMERS";
$result=$db->query($query); //Haal schakeltijden uit de database
$fn="kaku.cron";
$handle=fopen($fn,'w');
fwrite($handle,"0 3 * * * wget http://localhost:81/kaku/create_cron.php > /dev/null 2>&1;echo \"Crontab updated $(date)\" >> /var/www/kaku/log.txt\n"); //zorg dat dit script elke nacht om 03.00uur wordt uitgevoerd, om de tijden te verversen
foreach($result as $row)
{
if (substr($row["hour"],0,4)=="norm"){$hour=substr($row["hour"],4,10);$min=$row["min"];} //Normale schakeltijd
if ((substr($row["hour"],0,4)=="nzon")||(substr($row["hour"],0,4)=="vzon")) //Voor of na zon onder
{
$htemp=substr($row["hour"],4,10);
$mtemp=$row["min"];
$date=new DateTime($down);
$date->modify("+$htemp hour");
$date->modify("+$mtemp min");
$hour=$date->format("H");
$min=$date->format("i");
}
if ((substr($row["hour"],0,4)=="1wil")||(substr($row["hour"],0,4)=="2wil")) //Wilekeuring schakelen
{
$htemp=substr($row["hour"],4,10);
$mtemp=$row["min"];
$date=new DateTime($htemp.":".$mtemp);
$date->modify(rand(0,60)." min");
if (substr($row["hour"],0,4)=="2wil"){$date->modify(rand(0,60)." min");}
$hour=$date->format("H");
$min=$date->format("i");
}
if ((substr($row["hour"],0,4)=="nzop")or(substr($row["hour"],0,4)=="vzop")) //voor of na zon op
{
$htemp=substr($row["hour"],4,10);
$mtemp=$row["min"];
$date=new DateTime($up);
$date->modify("+$htemp hour");
$date->modify("+$mtemp min");
$hour=$date->format("H");
$min=$date->format("i");
}
if (substr($row["hour"],0,4)=="slaa") //Sleeptimer
{
$htemp=substr($row["hour"],4,10);
$mtemp=$row["min"];
$date=new DateTime(date("H:i"));
$date->modify("+$htemp hour");
$date->modify("+$mtemp min");
$hour=$date->format("H");
$min=$date->format("i");
}
fwrite($handle,$min." ".$hour." ".$row["day"]." ".$row["month"]." ".$row["week"]." /var/www/kaku/./remote.py ".$row["ch"]." ".$row["value"].";echo \"CRON "."ch: ".$row["ch"]." value: ".$row["value"]. " $(date)\" >> /var/www/kaku/log.txt\n");
}
fclose($handle);
$query="DELETE FROM TIMERS WHERE hour LIKE 'slaa%'"; //Sleeptimer verwijderen
$result=$db->query($query);
exec("crontab kaku.cron");
header("location:index.php");

Door Ton, woensdag 01 januari 2014 21:47

Ik heb dus een database, waar via de web-interface alle schakeltijden in komen te staan.
Het bovenstaande script haalt de database op, maakt voor elke timer een cronjob, in een file
in deze file staat ook, dat het script elke nacht om 3 uur moet worden uitgevoerd, dus het is een oneindige lus.
In de laatste regel, wordt de gecreëerde cron-file daadwerkelijk in de crontab geplaatst, en hiermee wordt de oude (van gisteren) dus verwijderd.
Werkt al bijna een jaar probleemloos.
Alleen bij de overgang naar wintertijd ging het mis, maar dat was een verkeerde instelling in mijn raspberry :)

Door Tweakers user lexi1986, zaterdag 04 januari 2014 00:48

Iemand die kan uitleggen hoe je de kaku dimmer kan aansturen?
Dit script werkt super met de kaku schakelaars echt top. Ik wil alleen graag de kaku dimmer regelen. Is dit mogelijk?

Door Ton, woensdag 08 januari 2014 21:49

Ik heb dat wel ooit ontrafeld, maar kan het niet terug vinden, het zit hem in de laatste paar bitjes. een 0 is 01 en een 1 is 10 alleen de DIM-bit was dan 00 ipv 10 of 01
en daarna kreeg je de waarde, van 00 tot F1
een 0 wordt dan 00, dus
00 = 0101 0101 0101 0101 = 5555 =uit
01 = dimstand 1
02 = dimstand 2
F0 = dimstand 16
F1 = 1010 1010 0101 0110 = CC56 =aan
En dan de de bit voor deze reeks dus 00 maken ipv 10 of 01
Zoiets was het geloof ik
Ik hoop dat ik het nog ergens terug vind, dan post ik het hier wel

Door Tweakers user lexi1986, donderdag 09 januari 2014 01:13

Zou top zijn zie nergens terug hoe ik de dimmer voor elkaar kan krijgen :)

Door Tweakers user WeeJeWel, donderdag 09 januari 2014 10:34

lexi1986 schreef op donderdag 09 januari 2014 @ 01:13:
Zou top zijn zie nergens terug hoe ik de dimmer voor elkaar kan krijgen :)
Check de library NewRemoteSwitch

Door Ton, donderdag 09 januari 2014 21:42

Deze config : http://www.tonteupen.nl/d...interface/16chRemote.conf
is geloof ik van de nieuwe kaku type's die kunnen dimmen
Als je nu de laatste paar bitjes van de pre-data afhaald, en bij de gewone data toevoegd,
dan kun je het voor elkaar krijgen te dimmen. Als ik eens wat meer tijd heb, zal ik eens de RS433-zender aan de raspberry hangen. Ik wil namelijk een tweede opstelling maken, om het signaal van mijn TPC300 te ondersteunen achter in mijn tuin

Door Ton, donderdag 09 januari 2014 21:42

Deze config : http://www.tonteupen.nl/d...interface/16chRemote.conf
is geloof ik van de nieuwe kaku type's die kunnen dimmen
Als je nu de laatste paar bitjes van de pre-data afhaald, en bij de gewone data toevoegd,
dan kun je het voor elkaar krijgen te dimmen. Als ik eens wat meer tijd heb, zal ik eens de RS433-zender aan de raspberry hangen. Ik wil namelijk een tweede opstelling maken, om het signaal van mijn TPC300 te ondersteunen achter in mijn tuin

Door Ton, donderdag 09 januari 2014 21:43

Deze config : http://www.tonteupen.nl/d...interface/16chRemote.conf
is geloof ik van de nieuwe kaku type's die kunnen dimmen
Als je nu de laatste paar bitjes van de pre-data afhaald, en bij de gewone data toevoegd,
dan kun je het voor elkaar krijgen te dimmen. Als ik eens wat meer tijd heb, zal ik eens de RS433-zender aan de raspberry hangen. Ik wil namelijk een tweede opstelling maken, om het signaal van mijn TPC300 te ondersteunen achter in mijn tuin

Door Tweakers user lexi1986, vrijdag 10 januari 2014 11:03

WeeJeWel schreef op donderdag 09 januari 2014 @ 10:34:
[...]


Check de library NewRemoteSwitch
Thnx zie de sendDim ertussen staan :) ga er even naar kijken top.

Door lschip, vrijdag 10 januari 2014 15:17

Ik heb ook een action setje gekocht en alle instructies gevolgd. De installatie ging zonder foutmeldingen maar het werkt helaas niet.
Ik heb de switches goed staan en ook het juiste commando gegeven. de afstand van de Raspberry tot de actionschakelaar is 20 centimeter.

Heeft iemand anders ook problemen en dat vervolgens kunnen oplossen?

Vast bedankt.

Door Tweakers user wvmuis, zondag 12 januari 2014 11:46

I

[Reactie gewijzigd op zondag 12 januari 2014 23:15]


Door Ton, maandag 13 januari 2014 20:22

Kijk een sof de zender wel een signaaltje krijgt, als je een commando stuurd.
Zou met een voltmeter haast wel moeten kunnen denk ik.
Als dat zo is, heb je misschien een verkeerde config.
Gebruik je het goeie pootje van de raspberry? er zijn twee versies van de GPIO geloof ik
ben je root tijdens het testen?

Door ijssgerb, maandag 13 januari 2014 21:41

Maak 3 kolommen aan
status_id (INT10) Auto Increment (Primary)
status (VARCHAR64)
schakelaar(VARCHAR64)
Vul deze kolommen met de gegevens van jou stekkerblokken.

Iemand een voorbeeld of uitleg hoe dit moet in phpmyadmin??

Door Tweakers user DynaSpan, dinsdag 14 januari 2014 20:28

Sowieso is varchar gebruiken voor een status niet handig, aangezien je dit ook met een 1 INT kan doen (boolean), 0 staat dan voor uit, 1 voor aan.

--------------------------------------------------------------------------------

@ijssgerb

In PHPMyAdmin kan je dit doen door je db te selecteren, en dan een nieuwe table(tabel) aan te maken. Hierin kun je die velden aanmaken.

Het vullen kun je daarna doen door op invoegen te klikken ;)

Screens van hoe het moet:
http://img713.imageshack.us/img713/2048/u9z6.png
http://i.imgur.com/9EhA9Za.png
http://i.imgur.com/02OHILV.png

Nu heb je de tabel aangemaakt, invoegen kan met:
http://i.imgur.com/P02G4NW.png

Hierbij kun je status_id leeglaten.

---------------------------------------------------------------------------------

Ik ben zelf ook bezig met een web-interface voor mijn RPI, waarmee ik ook mijn temperatuur kan regelen, RGB verlichting kan bedienen en mijn rolluiken kan besturen :)

[Reactie gewijzigd op dinsdag 14 januari 2014 20:36]


Door ijssgerb, dinsdag 14 januari 2014 22:15

Bedankt voor deze info!

Zou je nog een screenshot kunnen maken van het Invoegen veld. De kolommen zijn gelukt echter weet ik niet wat ik moet invullen? Wat ik ook hierin invul ik blijf de melding: Unknown column 'schakelaar' in 'where clause' krijgen?

Alvast weer bedankt!

Door ijssgerb, dinsdag 14 januari 2014 23:06

Zo het lampje verschijnt op index.php alleen gebeurd er helemaal niets. Heb de handleiding stap voor stap gevolg. Als ik in terminal het command sudo ./kaku A 2 doe dan werkt het keurig. Echter als ik het via de webserver doe krijg ik geen reactie?

Heb overigens de optie dipswitch in index.php niet ingevoerd, stond ook zo vermeld in de handleiding trouwens. Alleen het vetgedrukte diende ik in te voeren dus easy als ik ben heb ik dat ook gedaan, dus hier staat bv. A 2.

www-data ALL=NOPASSWD: ALL heb ik ook geprobeerd maar helaas pindakaas.

Iemand die weet wat ik mogelijk fout doe?

Door Tweakers user DynaSpan, woensdag 15 januari 2014 18:46

Heb je wat meer info? Kan je eens wat code droppen?

www-data alle rechten geven is niet zo slim tbh.

Door ijssgerb, donderdag 16 januari 2014 20:46

Bij deze wat afbeeldingen;
http://imgur.com/9OsMNlW
http://imgur.com/3ELgJQT
http://imgur.com/0JHIcAI
http://imgur.com/o3O0GNz
http://imgur.com/3Uaz3uz

Index.php is als volgt:
<?php
include './data/datalogin.php';
$data = 'cd /home/xbian/wiringPi/examples/lights; sudo ./kaku';
$knop=$_POST['button'];
$channel=$_POST['dipchannel'];

if ( isset($_POST['button']) ) {
shell_exec(''.$data.' '.$channel.', '.$knop.'');
$sql="UPDATE status SET status=('$knop') WHERE schakelaar=('$channel')";
mysql_query($sql) or die (mysql_error());
}

?>

<!DOCTYPE html>
<!--[if lt IE 7 ]><html class="ie ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--><html lang="en"> <!--<![endif]-->
<head>

<!-- Basic Page Needs
================================================== -->
<meta charset="utf-8">
<title>Licau</title>
<meta name="description" content="">
<meta name="author" content="">

<!-- Mobile Specific Metas
================================================== -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

<!-- CSS
================================================== -->
<link rel="stylesheet" href="stylesheets/base.css">
<link rel="stylesheet" href="stylesheets/skeleton.css">
<link rel="stylesheet" href="stylesheets/layout.css">

<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

<!-- Favicons
================================================== -->
<link rel="shortcut icon" href="images/favicon.ico">
<link rel="apple-touch-icon" href="images/light.png">
<link rel="apple-touch-icon" sizes="72x72" href="images/light.png">
<link rel="apple-touch-icon" sizes="114x114" href="images/light.png">

</head>
<body>


<!-- Primary Page Layout
================================================== -->

<!-- Delete everything in this .container and get started on your own site! -->

<div class="container">
<div class="sixteen columns">
<h1 class="remove-bottom" style="margin-top: 40px"><img src="./images/light.png"> Licau</h1>
<h5>Version 0.2</h5>
<hr/>
<h3>Beneden</h3>
<legend>Bank</legend>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" value="A 4" name="dipchannel">
<button class="button" type="submit" name="button" value="on" />aan</button>
<button class="button" type="submit" name="button" value="off" />uit</button>
<?
$result = mysql_query('SELECT * FROM status WHERE schakelaar="A 4"');
while ($row = mysql_fetch_assoc($result)) {
?>
<IMG src="./images/<?echo $row["status"]?>.png">
<?
}
?>

</form>
<legend>Eettafel</legend>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" value="A 1" name="dipchannel">
<button class="button" type="submit" name="button" value="on" />aan</button>
<button class="button" type="submit" name="button" value="off" />uit</button>
<?
$result = mysql_query('SELECT * FROM status WHERE schakelaar="A 1"');
while ($row = mysql_fetch_assoc($result)) {
?>
<IMG src="./images/<?echo $row["status"]?>.png">
<?
}
?>

</form>
<legend>Kachelventilator</legend>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" value="A 2" name="dipchannel">
<button class="button" type="submit" name="button" value="on" />aan</button>
<button class="button" type="submit" name="button" value="off" />uit</button>
<?
$result = mysql_query('SELECT * FROM status WHERE schakelaar="A 2"');
while ($row = mysql_fetch_assoc($result)) {
?>
<IMG src="./images/<?echo $row["status"]?>.png">
<?
}
?>

</form>
<legend>Bar</legend>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" value="A 3" name="dipchannel">
<button class="button" type="submit" name="button" value="on" />aan</button>
<button class="button" type="submit" name="button" value="off" />uit</button>
<?
$result = mysql_query('SELECT * FROM status WHERE schakelaar="A 3"');
while ($row = mysql_fetch_assoc($result)) {
?>
<IMG src="./images/<?echo $row["status"]?>.png">
<?
}
?>

</form>
<hr/>

<h3>Hal</h3>
<legend>Hal</legend>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" value="B 2" name="dipchannel">
<button class="button" type="submit" name="button" value="on" />aan</button>
<button class="button" type="submit" name="button" value="off" />uit</button>
<?
$result = mysql_query('SELECT * FROM status WHERE schakelaar="B 2"');
while ($row = mysql_fetch_assoc($result)) {
?>
<IMG src="./images/<?echo $row["status"]?>.png">
<?
}
?>
</form>

<hr/>
</div>


</div><!-- container -->


<!-- End Document
================================================== -->
</body>
</html>

Door Tweakers user DynaSpan, donderdag 16 januari 2014 22:34

@Ijssgerb

Ik zie dat je hier:

shell_exec(''.$data.' '.$channel.', '.$knop.'');

Een komma achter ' . $channel . ' hebt.

Daarnaast zie ik dat al je schakelaar in de db het id 0 hebben.. Elke schakelaar moet een eigen id hebben (dus schakelaar 1 id 1, schakelaar 2 id 2 enz.)

@Michel, je script kan wel wat netter, veiliger en efficiënter..
  • while gebruik je alleen bij meerdere resultaten..
  • Je gebruikt een query voor elke knop, dit kan ook in 1 query
  • Shorttags (<?) worden niet op elke server ondersteund
  • Maak geen onnodige vars aan ($knop = $_POST['button'] en dan $knop gebruiken heeft geen enkel nut, doe dan direct $_POST['button'].)
  • Een hacker kan via dit heel gemakkelijk, indien de visudo verkeerd is ingesteld, de rpi onklaar maken
  • MySQL wordt binnenkort eruit geflikkerd door PHP en is dus dan niet meer bruikbaar, gebruik MySQLi of PDO.
  • In een query gebruik je vars zo: '" . mysql(i)_real_escape_string($_POST['..']) . "' en niet ('$_POST['..']') (MySQL injectie + onjuist gebruik van quotes)
Zie 't als opbouwende kritiek. Als je hulp nodig hebt kan je mij een email sturen ;)

m [punt] drossaerts [apenstaartje] gmail [punt] com

[Reactie gewijzigd op donderdag 16 januari 2014 22:40]


Door Tweakers user RZandvoort, donderdag 23 januari 2014 01:06

Thanks. Goede tutorial!

Nog een vraagje, kan ik met de transmitter ook dingen sturen naar de receiver?
http://www.hoagieshouse.com/RaspberryPi/RCSockets/tx_rx.JPG

Mijn plan was dan om de receiver te gebruiken om mn pc aan/uit te laten gaan.
Of zijn er nog andere mogelijk heden hiervoor?

Door Tweakers user DynaSpan, donderdag 23 januari 2014 20:37

Ja, dat kan zeer zeker (daarvoor is de receiver ook).

Moet je pc alleen wel de mogelijkheid hebben om die receiver aan te sluiten.

Door Tweakers user mark0172, dinsdag 28 januari 2014 19:57

Heeft er iemand een uitleg om de piHome web interface (of een goed alternatief) werkend te krijgen met dit systeem? Het werkt perfect via commandline alleen zoek nog een mooie web interface!

Door Tweakers user DynaSpan, woensdag 29 januari 2014 20:04

Ik ben bezig met een webinterface die ook DMX ondersteunt om RGB led spotjes aan te sturen. Wordt binnenkort gereleased!

Door Tweakers user rutierut, donderdag 30 januari 2014 17:04

mijn bedoeling is om dit te sturen:

sudo ./codesend 1001 op de locatie /home/pi/433Utils/RPi_utils

doet ie dit dmv deze gegevens? ik kom er maar niet uit.

<button class="button" type="submit" name="button" value=„1001” />aan</button>

<?php
if ( isset($_POST['button']) ) {
shell_exec('cd /home/pi/433Utils/RPi_utils; sudo ./codesend '.$_POST["button"].'');
}
?>

Door Tweakers user DynaSpan, donderdag 30 januari 2014 19:35

Je hebt bij value 2 komma's staan die er niet horen, daarnaast kan je ook:

sudo /home/pi/433Utils/RPi_utils/codesend doen.

En je www-data moet rechten hebben voor die folder ;)

Door Tweakers user impactftw, maandag 10 februari 2014 11:16

Iemand die dit ook al werkend gekregen heeft met Quigg kastjes?

Want heb er nog een aantal van thuis liggen ..

Door Patrick, maandag 10 februari 2014 15:49

Ik heb veel problemen gehad met het aansturen via de website
Eindelijk de oplossing gevonden:

Bij mij moest in het bestand sudoers.tmp het volgende toegevoegd worden
www-data ALL=(ALL) NOPASSWD: /home/pi/wiringPi/examples/lights/./

De index.php staat aan het begin het volgende:
<?php
if ( isset($_POST['button']) )
{
$data = 'cd /home/pi/wiringPi/examples/lights; sudo ./kaku ';
$knop=$_POST['button'];

shell_exec(''.$data.' '.$knop.'');

}
?>


het verschil met de handleiding is dus dat ik er nog /home/pi voor moest zetten.

Doe er je voordeel mee!!

Door Tweakers user DynaSpan, dinsdag 11 februari 2014 19:12

Je kan beter het commando (sudo) visudo gebruiken ipv sudoers.tmp te editten ;)

Door Tweakers user impactftw, vrijdag 14 februari 2014 17:01

Ik heb Quigg DMV-7009AD Kastjes alleen daar kan je de kanalen niet zomaar zien, weet iemand of ik hier wat aan heb:

https://github.com/d-a-n/.../master/database.md#quigg

En kan ik met /.action het bereiken of zal ik een hele andere code moeten hebben?

Groeten Nick

Door wps, woensdag 19 februari 2014 21:23

Heb eea werkend voor een action setje, jippie.

Ik heb echter ook een Home Easy setje (elro). Het probleem is dat je de schakelaars moet inleren. Dit doe je door de schakelaar in de "leer-stand" te zetten en vervolgens de gewenste toets op de afstandsbediening in te drukken totdat de schakelaar de afstandsbediening herkent (led stopt met knipperen). Het lukt me niet om de schakelaar "voor te stellen" aan de RPI, waarschijnlijk omdat het signaal te kort is. Heeft iemand hier een oplossing voor?

Het gaat om de HE874 schakelaar en de HE844A afstandsbediening.

Door WTR, donderdag 27 februari 2014 23:38

Hallo,

De stappen van de handleiding heb ik doorlopen. Maar ik krijg geen webinterface voor elkaar. Mijn vraag is hoe moet ik connecten? gewoon via een browser toch? De default pagina van apache2 wordt namelijk wel weergeven. Maar het PHP bestand wordt niet gevonden.

Iemand enig idee?

Wouter

Door Tweakers user DynaSpan, dinsdag 04 maart 2014 13:34

Ja via een browser, heb je het PHP bestand in /var/www geplaatst of heb je dit pad aangepast?

Door chucky4ever, maandag 05 mei 2014 19:13

Heb nu maandje mn raspberry en werkt super!! :P
heb verschillende schakelaars waaronder kaku, action(impuls), en elro.
en heb het allemaal werken nadat ik een antene op mn transceiver gesoldeerd had. 8)7
heb nu via crontab -e mn mn schakelaars in tijdschakelaars om gezet :)
zodat mn buitenlampen savond om 8 uur aangaan.
Weet iemand hoe ik een sh scrip werkend krijg via cron?

Door mewouds, woensdag 21 mei 2014 17:32

mwil,

Waar plaats ik het bestand van dit script??
mwil schreef op zaterdag 02 maart 2013 @ 00:57:
Aangezien je het wil toevoegen, heb ik het script maar even universeel gemaakt:

[b]
#!/bin/bash
program=$1

if [ $program = "action" ]
then
#usage: ./action dipchannel socket state
dipchannel=$2
socket=$3
state=$4
./action $dipchannel $socket $state
fi

Door Michiel, zaterdag 07 juni 2014 14:54

Hi,

Ik weet niet of iemand dit ooit nog gaat lezen, maar ik heb een complete inferface gemaakt voor dit project. Ik was zo entausiast dat ik als designer zo makkelijk iets mer hardware kan doen via dit fantastiche project :)

Daarom wil ik delen wat ik heb gemaakt. Ik moet wel zeggen, ik ben nogal fan van de Wii U, vandaar dat ik 'Monita' als 'home-automation-specialist' op het scherm heb gezet ;)

Features:
  • Live dashboard met het weer (update elke 10 minuten vanzelf)
  • Je hoeft de pagina niet te herladen bij elke klik of forms te submitten (ipv de langzame php, is het nu javascript)
  • Een toggle interface (Zoals een power button. "klik" aan "klik" uit, met 1 button)
  • Monita heeft een persoonlijkheid (dat moet je zien, lastig uit te leggen)
  • 100% geschikt voor mobiele telefoons en andere apperatuur (responsive)
  • 100% optimized afbeeldingen in base64 en png
  • Extra: andere css inladen voor bijvoorbeeld de Wii U (een zwarte achtergrond is mooier op een tv, anders doen je ogen zo pijn)
  • CSS3 animatie (iconen draaien als je ze activeert)
  • Werkt op bijna elk platform met 'homescreen bookmarking' (op iphone kan je dus op je home scherm een icoon aanmaken, maar werkt ook op windows 8 bijv.)
Ik weet niet zo veel van hardware of coderen, maar hoop dat ik zo nog wat kan bijdragen!

Monita:
http://www.gamedynamo.com/images/galleries/photo/2553/nintendo-land-nintendoland-wii-u-screenshots-10.jpg

De interface op Android (Nexus 5):
https://www.dropbox.com/s/tyu0pvw9uzsad05/Screenshot_2014-06-07-14-45-03.png

De interface op tv:
https://www.dropbox.com/s/d96kqo3zzfctoet/IMG_20140607_144652.jpg

Downloaden

Waarschuwing!
Waarschijnlijk moet je wat coderen als je niet een RF set van de Action (Impuls) hebt. Ik gebruik in deze scripts kanaal 18, mocht je niets aan het script willen veranderen, dan kan je dat gebruiken op je schakelaars. Hoewel je geen PHP nodig hebt om de pagina te laden, MOET het wel alsnog geïnstalleerd zijn (draait op de achtergrond).

Door Tweakers user basanca, zaterdag 07 juni 2014 22:50

mewouds schreef op woensdag 21 mei 2014 @ 17:32:
mwil,

Waar plaats ik het bestand van dit script??


[...]
hi, ik heb hem in de lights dir geplaatst en werkend gekregen. Let wel dat er een klein foutje in zit. Mwil heeft het over "alles on", maar in zijn script staat "groep1". Even 1 van beide aanpassen en dan doet hij het

Door Tweakers user basanca, zondag 08 juni 2014 00:11

Ton schreef op woensdag 01 januari 2014 @ 21:39:
Dit is mijn geknutselde script om met de tijden van de zon te werken. Je kunt de volgende opties kiezen:
Normaal, voor zon op, na zon op, voor zon onder, na zon onder,1 uur random, 2 uur random, sleeptimer.

Je kunt dus 5 minuten voor zon onder schakelen en dergelijke.
Ik gebruik de tpc300 samen met een raspberry om de schakelen/dimmen. Werkt prima (beter als de losse zender met lirc) wel alleen echte kaku natuurlijk.
Op de raspberry staat lighttd, php5 en sqlite3
Alles draaiend onder RaspBMC, Werkt prima XBMC merkt er niks van...
Via deze file kun je uitvogelen hoe je de suncron kunt gebruiken:


<?php
$up=date_sunrise(time(),SUNFUNCS_RET_STRING,52.3,6.95,(90+50/60),1); //Tijd zonsopkomst
$down=date_sunset(time(),SUNFUNCS_RET_STRING,52.3,6.95,(90+50/60),1); //Tijd zonsondergang
$db=new PDO('sqlite:kaku.db');
$query="SELECT * FROM TIMERS";
$result=$db->query($query); //Haal schakeltijden uit de database
$fn="kaku.cron";
$handle=fopen($fn,'w');
fwrite($handle,"0 3 * * * wget http://localhost:81/kaku/create_cron.php > /dev/null 2>&1;echo \"Crontab updated $(date)\" >> /var/www/kaku/log.txt\n"); //zorg dat dit script elke nacht om 03.00uur wordt uitgevoerd, om de tijden te verversen
foreach($result as $row)
{
if (substr($row["hour"],0,4)=="norm"){$hour=substr($row["hour"],4,10);$min=$row["min"];} //Normale schakeltijd
if ((substr($row["hour"],0,4)=="nzon")||(substr($row["hour"],0,4)=="vzon")) //Voor of na zon onder
{
$htemp=substr($row["hour"],4,10);
$mtemp=$row["min"];
$date=new DateTime($down);
$date->modify("+$htemp hour");
$date->modify("+$mtemp min");
$hour=$date->format("H");
$min=$date->format("i");
}
if ((substr($row["hour"],0,4)=="1wil")||(substr($row["hour"],0,4)=="2wil")) //Wilekeuring schakelen
{
$htemp=substr($row["hour"],4,10);
$mtemp=$row["min"];
$date=new DateTime($htemp.":".$mtemp);
$date->modify(rand(0,60)." min");
if (substr($row["hour"],0,4)=="2wil"){$date->modify(rand(0,60)." min");}
$hour=$date->format("H");
$min=$date->format("i");
}
if ((substr($row["hour"],0,4)=="nzop")or(substr($row["hour"],0,4)=="vzop")) //voor of na zon op
{
$htemp=substr($row["hour"],4,10);
$mtemp=$row["min"];
$date=new DateTime($up);
$date->modify("+$htemp hour");
$date->modify("+$mtemp min");
$hour=$date->format("H");
$min=$date->format("i");
}
if (substr($row["hour"],0,4)=="slaa") //Sleeptimer
{
$htemp=substr($row["hour"],4,10);
$mtemp=$row["min"];
$date=new DateTime(date("H:i"));
$date->modify("+$htemp hour");
$date->modify("+$mtemp min");
$hour=$date->format("H");
$min=$date->format("i");
}
fwrite($handle,$min." ".$hour." ".$row["day"]." ".$row["month"]." ".$row["week"]." /var/www/kaku/./remote.py ".$row["ch"]." ".$row["value"].";echo \"CRON "."ch: ".$row["ch"]." value: ".$row["value"]. " $(date)\" >> /var/www/kaku/log.txt\n");
}
fclose($handle);
$query="DELETE FROM TIMERS WHERE hour LIKE 'slaa%'"; //Sleeptimer verwijderen
$result=$db->query($query);
exec("crontab kaku.cron");
header("location:index.php");
Hi Ton,

Dit is precies wat ik zoek. Helaas nog erg weinig verstand van linux,programmeren etc.
Dus enkele vragen van mijn kant.

Waar plaats ik dit script? En moet ikvoor lighttd en sqlite nog bepaalde dingen instellen?

alvast bedankt

Door Par Avion, donderdag 10 juli 2014 18:34

Leuk project! Je kunt meerdere lampen achter elkaar schakelen door "&& sudo ./elro dip A on" toe te voegen. In mijn geval kom je dan op value="10 A on && sudo ./elro 10 B on && sudo ./elro 10 C on && sudo ./elro 10 D on" :)

Reactie formulier
(verplicht)
(verplicht, maar wordt niet getoond)
(optioneel)

Voer de code van onderstaand anti-spam plaatje in: