funktionaliteten jag vill ha ska bero på vad klockan är och vilken signal som duon får in
* Är klockan efter solens nedgång fram till 22:30 så är det sannolikt att det är en människa som triggar rörelsesensorn, och då vill jag tända ytterlampan i tja.. säg 30 minuter (om det tex kommer någon som har ett ärende så får lampan gärna vara tänd när den personen går igen)
* är klockan efter 22:30-midnatt så är det mer osannolikt att det är en besökare, och då vill jag tända lampan i 5 minuter (lagom så man hinner plocka ur bilen och gå in i huset)
* är det efter midnatt så vill jag inte tända lampan alls om det kommer en signal från rörelsesensorn - för då är det sannolikt ett rådjur eller en katt eller något annat djur (givetvis ska man kunna ställa in programmet så att man specar att på lördag kommer vi hem sent, och då ska lampan tändas även efter midnatt)
* kommer det en signal från fjärrkontrollen så vill jag alltid tända ytterlampan, och antagligen ha den tänd olika länge beroende på vad klockan är (man skulle också kunna tänka sig att det funkar som start-knappen på vår mikrovågsugn, varje ytterligare klick på fjärrkontrollen förlänger tiden innan lampan släcks med 30 minuter)
tittar jag i telldus-core.h så finns det 4 events jag kan lyssna på
tdRegisterSensorEvent, som ger data från sensorer (tex temperatur)
tdRegisterDeviceChangeEvent, som verkar ge mig data när en device ändrar sig (om jag tex byter namn på en device i telldus center)
tdRegisterDeviceEvent, som verkar ge mig data när ett program ändrar status på en device (om jag tex i telldus center tänder eller släcker en enhet), men ingen data om jag tänder/släcker enheten med min fjärrkontroll
också tdRegisterRawDeviceEvent som ger mig allt möjligt
så jag antar att jag blir tvungen att använda tdRegisterRawDeviceEvent för att mitt program ska kunna göra det jag beskriver ovan?
"problemet" är väl att tdRegisterRawDeviceEvent registrerar så många events när det händer något.... men eftersom det är enda funktionen jag hittar som ger mig data när jag klickar på en fjärrkontroll så antar jag att det är den man blir tvungen att använda och att man helt enkelt får försöka skriva en någotsånär "intelligent" avkodning som ger mig en sak att testa för varje "burst" som jag får in....?
tittar jag på lite data som man får in så inser man att detta kommer att bli spännande
en handrörelse framför min rörelsesensor (från nexa) ger följande utskrifter i callback-funktionen
Code: Select all
data: class:command;protocol:arctech;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:waveman;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:arctech;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:waveman;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:arctech;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:waveman;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=0
data: class:command;protocol:arctech;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:waveman;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:arctech;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:waveman;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:waveman;model:codeswitch;house:O;unit:1;method:turnoff;, controllerId=-1
data: class:command;protocol:arctech;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:waveman;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:arctech;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:waveman;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:arctech;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:waveman;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:arctech;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:waveman;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=0
data: class:command;protocol:waveman;model:codeswitch;house:A;unit:1;method:turnoff;, controllerId=-1
data: class:command;protocol:arctech;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:waveman;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:arctech;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:waveman;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:arctech;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:waveman;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:arctech;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:waveman;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=0
data: class:command;protocol:waveman;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:arctech;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:waveman;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:arctech;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:waveman;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:arctech;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
data: class:command;protocol:waveman;model:codeswitch;house:E;unit:1;method:turnon;, controllerId=-1
jaja om inte någon har ett bättre sätt att plocka in tryckningar från fjärrkontroller/rörelsesensorer så är det bara att börja försöka filtrera det hela....