Borde vara enkelt att köra en kod som läser av om en lampa/flera lampor varit tända i X antal timmar och då få något att hända. (För mig att få en pushnote).
Jag lyckas dock inte komma på hur.
/Christian
få note efter att lampa är tänd under 24 tim
GEA skulle vara perfekt för det där, jag använder raden nedan för att få en varning i fall garagedörren har varit öppen mer en 1 timme. "290" är en vanlig magnetsensor i det här fallet.
Code: Select all
--Varning garagedörr 1 timme
GEA . add ( 290 , 60 * 60 , "Garagedören är öppen" , {{ "Repeat" }})
För en enda lampa skulle jag göra enligt följande:
Lampans "värde" triggar lua- koden.
Om värdet är 1 indikerar det att lampan slås på. Det startar en timer och en loop. Loopen gör en sleep (eller ännu hellre en setTimeout som skall vara effektivare) på 1 h (eller mindre tidsperiod, lite beroende på exakt den skall vara).
När loopen "vaknar" igen kollar den om timern är 24h gammal. I så fall, skicka ett meddelande och avsluta loopen. Om inte, kör ett varv till.
Om värdet istället är 0 så indikerar det att lampan slagits av och att loopen ovan kan brytas. Förslagsvis med en killScene.
Vill man inte ha loopar som "ligger och kör" kan man alltid spara sitt "state" i en global variabel istället.
Vill man ha logiken för flera lampor kan man antingen ha flera instanser av scenen (ger bra visibilitet eftersom du i Fibaro GUI:t kommer kunna se om timern är igång via "running instances"- informationen) eller så får man modifiera koden ovan för att hantera flera. Blir lite mer komplext men klart görbart.
Lampans "värde" triggar lua- koden.
Om värdet är 1 indikerar det att lampan slås på. Det startar en timer och en loop. Loopen gör en sleep (eller ännu hellre en setTimeout som skall vara effektivare) på 1 h (eller mindre tidsperiod, lite beroende på exakt den skall vara).
När loopen "vaknar" igen kollar den om timern är 24h gammal. I så fall, skicka ett meddelande och avsluta loopen. Om inte, kör ett varv till.
Om värdet istället är 0 så indikerar det att lampan slagits av och att loopen ovan kan brytas. Förslagsvis med en killScene.
Vill man inte ha loopar som "ligger och kör" kan man alltid spara sitt "state" i en global variabel istället.
Vill man ha logiken för flera lampor kan man antingen ha flera instanser av scenen (ger bra visibilitet eftersom du i Fibaro GUI:t kommer kunna se om timern är igång via "running instances"- informationen) eller så får man modifiera koden ovan för att hantera flera. Blir lite mer komplext men klart görbart.
sorry, ska försöka vara tydligare med mitt scenario.
Jag har så att när man öppnar dörren så tänds det ett gäng lampor, går man hemifrån så ska allt släckas.
Ibland när man är bortrest kommer grannen in och vattnar. För det mesta funkar det fint och allt släcks när de har gått. Men ibland så skiter sig det och det står och lyser. Det är framförallt då man skulle vilja få en notis om att en eller flera lamor har nu lyst under 24 timmar.
Jag har så att när man öppnar dörren så tänds det ett gäng lampor, går man hemifrån så ska allt släckas.
Ibland när man är bortrest kommer grannen in och vattnar. För det mesta funkar det fint och allt släcks när de har gått. Men ibland så skiter sig det och det står och lyser. Det är framförallt då man skulle vilja få en notis om att en eller flera lamor har nu lyst under 24 timmar.
Nybörjare sedan 2014
Ok. Då skulle jag köra allt i en scen. Alla lampor sätts som eventuella triggers till scenen.
Timern för när lampan tändes sparas i en ”table” där dit på lampan är nyckel och timern är värdet.
Därefter samma loop- logik som ovan men man får kolla igenom alla element i tabellen.
Slås en lampa av plockas den bort ur tabellen. Är tabellen tom kan loopen avbrytas.
Man får även fundera på hur man vill hantera notisen om man har flera lampor.
Skall man skicka en notis per lampa eller skall man komma ihåg när man senast skickade en notis så att de kan skickas som oftast enligt ett definierat intervall.
Timern för när lampan tändes sparas i en ”table” där dit på lampan är nyckel och timern är värdet.
Därefter samma loop- logik som ovan men man får kolla igenom alla element i tabellen.
Slås en lampa av plockas den bort ur tabellen. Är tabellen tom kan loopen avbrytas.
Man får även fundera på hur man vill hantera notisen om man har flera lampor.
Skall man skicka en notis per lampa eller skall man komma ihåg när man senast skickade en notis så att de kan skickas som oftast enligt ett definierat intervall.
GEA kanske är bättre lösning för dig. Hjälper någon dig med GEA- strängen tror jag att du kan vara uppe ganska snabbt.
Finns en massa andra färdiga scener också. Vill minnas att Sankotronic på officiella Fibaro- forumet har ett paket han kallar för ”very smart lights”. Inte säker på att det löser ditt problem men kan vara värt att kolla på.
Finns en massa andra färdiga scener också. Vill minnas att Sankotronic på officiella Fibaro- forumet har ett paket han kallar för ”very smart lights”. Inte säker på att det löser ditt problem men kan vara värt att kolla på.