EventRunner

jang
Medlem
Posts: 388
Joined: 05 Jan 2014, 00:44
10
Location: Stockholm

RH_Dreambox wrote: 09 Mar 2020, 11:50 Tack @jang !
Jag kompletterade koden med några tider också, så att man inte väcks mitt i natten om temperaturen skulle stämma.
Men om jag behöver göra reset på "once", kan jag inte då bara skriva en regel som jag triggar tex. kl. 08:00 att "sensor.temp_golv:temp == 0"?

Code: Select all

  -- UTERUM ##################################
  rule([[
      once(sensor.temp_golv:temp >= 15) & 08:00..20:00 =>
      $TTS = 'Meddelande från växthuset! Växterna kan ställas ut, nu!&vol=12'
    ]])

  rule([[
      once(sensor.temp_golv:temp <= 10) & 08:00..20:00 =>
      $TTS = 'Meddelande från växthuset! Nu är det dax, ta in växterna, nu!&vol=12'
    ]])
Din property :temp förklarar också varför några andra av mina regler inte fungerar :oops: :oops:
Och nu hittade jag också fler propertys i det du skrivit om property functions.
Men,
är :power och :lux detsamma som :value? Kan man använda vilket som?
Ja det kan man. Det är samma ’Value’ property på dessa enheter. Men det kan vara enklare att läsa reglerna och förstå vad man gjort om man använder :temp för temperatur istället för det generella ’value’
User avatar
sonnyboy
Proffsmedlem
Posts: 669
Joined: 26 Sep 2013, 08:05
11
Location: Västerås

Texan wrote: 09 Mar 2020, 18:27 Går det att tända och släcka lampor efter lux värde på en eller flera sensorer mellan 09:00 och 18:00.
Skulle vilja tända lampor när det blir mulet på dagen och släcka ifall det blir ljust igen.
Så här har jag gjort, dock så hämtar jag luxvärdet från en global variabel som hämtar värdet va 5 minut.
Blir lite som en Hysteres, annars så skulle värdet upppdateras varje minut och då kan det bli lite av och på och det vill jag inte.

Code: Select all

rule("$Sun <'25' => VD.Garaget_Stolpe:btn=1; farstukvist.tak:on")
rule("$Sun >'26' => VD.Garaget_Stolpe:btn=2; farstukvist.tak:off")
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
User avatar
Texan
Medlem
Posts: 169
Joined: 25 Dec 2015, 15:07
8

sonnyboy wrote: 09 Mar 2020, 19:40
Texan wrote: 09 Mar 2020, 18:27 Går det att tända och släcka lampor efter lux värde på en eller flera sensorer mellan 09:00 och 18:00.
Skulle vilja tända lampor när det blir mulet på dagen och släcka ifall det blir ljust igen.
Så här har jag gjort, dock så hämtar jag luxvärdet från en global variabel som hämtar värdet va 5 minut.
Blir lite som en Hysteres, annars så skulle värdet upppdateras varje minut och då kan det bli lite av och på och det vill jag inte.

Code: Select all

rule("$Sun <'25' => VD.Garaget_Stolpe:btn=1; farstukvist.tak:on")
rule("$Sun >'26' => VD.Garaget_Stolpe:btn=2; farstukvist.tak:off")
:oops: Hur har du gjort den globala variabeln, och hur är det gjort så att den hämtar var 5:e minut?
User avatar
sonnyboy
Proffsmedlem
Posts: 669
Joined: 26 Sep 2013, 08:05
11
Location: Västerås

Texan wrote: 09 Mar 2020, 18:27 :oops: Hur har du gjort den globala variabeln, och hur är det gjort så att den hämtar var 5:e minut?
Jag har en VD med en ESP8266 med esp easy på som läser av en BH1750.
Vad har du som du tar luxvärdet ifrån?
Det är enkelt att få värdet från en enhet till en global variabel.

Code: Select all

fibaro:setGlobal("Sun", value)
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
User avatar
Texan
Medlem
Posts: 169
Joined: 25 Dec 2015, 15:07
8

sonnyboy wrote: 09 Mar 2020, 20:52
Texan wrote: 09 Mar 2020, 18:27 :oops: Hur har du gjort den globala variabeln, och hur är det gjort så att den hämtar var 5:e minut?
Jag har en VD med en ESP8266 med esp easy på som läser av en BH1750.
Vad har du som du tar luxvärdet ifrån?
Det är enkelt att få värdet från en enhet till en global variabel.

Code: Select all

fibaro:setGlobal("Sun", value)
Jag har en Aeon Multisensor 6 som matas via "usb"
jang
Medlem
Posts: 388
Joined: 05 Jan 2014, 00:44
10
Location: Stockholm

Din sensor returnerar 'lux' värdet i propertyn :value - eller :lux som är samma (En Aeon Multisensor 6 skapar flera deviceID varav en är ljussensorn)

En regel kan se ut som

Code: Select all

rule("sensor=99; lampor={77,66}")
rule("once(sensor:lux < 50) & 09:00..18:00 > lampor:on")
rule("once(sensor:lux >= 50) & 09:00..18:00 > lampor:off")
'once' så att den inte triggar flera gånger på värde under 50 (eller över 50) - jag vet inte om värdet 50 är rätt.

Om du har flera ljussensorer kan man ta medelvärdet av dem...

Code: Select all

rule("sensors={99,100}; lampor={77,66}")
rule("once(average(sensors:lux) < 50) & 09:00..18:00 > lampor:on")
rule("once(average(sensors:lux) > 50) & 09:00..18:00 > lampor:off")
User avatar
Texan
Medlem
Posts: 169
Joined: 25 Dec 2015, 15:07
8

jang wrote: 10 Mar 2020, 08:57 Din sensor returnerar 'lux' värdet i propertyn :value - eller :lux som är samma (En Aeon Multisensor 6 skapar flera deviceID varav en är ljussensorn)

En regel kan se ut som

Code: Select all

rule("sensor=99; lampor={77,66}")
rule("once(sensor:lux < 50) & 09:00..18:00 > lampor:on")
rule("once(sensor:lux >= 50) & 09:00..18:00 > lampor:off")
'once' så att den inte triggar flera gånger på värde under 50 (eller över 50) - jag vet inte om värdet 50 är rätt.

Om du har flera ljussensorer kan man ta medelvärdet av dem...

Code: Select all

rule("sensors={99,100}; lampor={77,66}")
rule("once(average(sensors:lux) < 50) & 09:00..18:00 > lampor:on")
rule("once(average(sensors:lux) > 50) & 09:00..18:00 > lampor:off")
Får följande fel :oops:
Attachments
Screenshot 2020-03-20 at 18.16.17.png
jang
Medlem
Posts: 388
Joined: 05 Jan 2014, 00:44
10
Location: Stockholm

Sorry, jag måste ha somnat vid ratten...
Sista '>' ska vara en pil '=>'

Code: Select all

rule("sensors={99,100}; lampor={77,66}")
rule("once(average(sensors:lux) < 50) & 09:00..18:00 => lampor:on")
rule("once(average(sensors:lux) > 50) & 09:00..18:00 => lampor:off")
User avatar
sonnyboy
Proffsmedlem
Posts: 669
Joined: 26 Sep 2013, 08:05
11
Location: Västerås

Snart är det dags för Earth hour igen :) är det någon som har en färdig rule och vill dela med sig?
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
User avatar
Texan
Medlem
Posts: 169
Joined: 25 Dec 2015, 15:07
8

jang wrote: 20 Mar 2020, 20:57 Sorry, jag måste ha somnat vid ratten...
Sista '>' ska vara en pil '=>'

Code: Select all

rule("sensors={99,100}; lampor={77,66}")
rule("once(average(sensors:lux) < 50) & 09:00..18:00 => lampor:on")
rule("once(average(sensors:lux) > 50) & 09:00..18:00 => lampor:off")
Perfekt - Tackar
User avatar
RH_Dreambox
Z-Wave Kung
Posts: 1203
Joined: 03 Jan 2015, 16:49
9
Location: Vegby
Contact:

sonnyboy wrote: 24 Mar 2020, 20:28 Snart är det dags för Earth hour igen :) är det någon som har en färdig rule och vill dela med sig?
Den här tror jag @jang har gjort, så den bör fungera.

Code: Select all

-- EARTH HOUR #######################################
lights={46,156,135,85,81,11,13,23,25,87,7,15,17,9,121} -- eller hämta värden från HomeTable
rule("earthDates={2019/3/30/20:30,2020/3/28/20:30}")
rule("dolist(v,earthDates,log(osdate('Earth hour %c',v)) & post(#earthHour,v))")
rule("#earthHour => states = lights:value; lights:off; wait(01:00); lights:value = states")
Min gamla ombyggda HC2 har fått ett nytt liv och min HC3 är nu nedkopplad.
HC2 med Home Assistant har blivit en riktig Game Changer och nu har jag hemautomatik på riktigt.
https://www.zwaveforum.se/viewtopic.php?t=7087
User avatar
sonnyboy
Proffsmedlem
Posts: 669
Joined: 26 Sep 2013, 08:05
11
Location: Västerås

RH_Dreambox wrote: 25 Mar 2020, 11:09
sonnyboy wrote: 24 Mar 2020, 20:28 Snart är det dags för Earth hour igen :) är det någon som har en färdig rule och vill dela med sig?
Den här tror jag @jang har gjort, så den bör fungera.

Code: Select all

-- EARTH HOUR #######################################
lights={46,156,135,85,81,11,13,23,25,87,7,15,17,9,121} -- eller hämta värden från HomeTable
rule("earthDates={2019/3/30/20:30,2020/3/28/20:30}")
rule("dolist(v,earthDates,log(osdate('Earth hour %c',v)) & post(#earthHour,v))")
rule("#earthHour => states = lights:value; lights:off; wait(01:00); lights:value = states")
Tackar, den jag har men tyckte inte den funkade, får kolla lite nu på lunchen :)
Det måste ju fungera på lördag!
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
User avatar
sonnyboy
Proffsmedlem
Posts: 669
Joined: 26 Sep 2013, 08:05
11
Location: Västerås

Något som inte rimmar med detta, har du något förslag?

[DEBUG] 11:47:05: Earth hour Wed Mar 25 11:47:05 2020
[DEBUG] 11:47:06: Error in 'dolist(v,earthDates,log(osdate('Earth hour %c',v)) & post(#earthHour,v))': /opt/fibaro/scenes/323.lua:2084: No such function:dolist

[DEBUG] 11:47:06:
[DEBUG] 11:47:06: Line 2082: stat,res=(instr[i[1]] or instr['%call'])(stack,i[2],env,i)
[DEBUG] 11:47:06: Line 2083: postTrace(i,args,stack,env.cp)
[DEBUG] 11:47:06: Line 2084:>>> else stat,res=(instr[i[1]] or instr['%call'])(stack,i[2],env,i) end
[DEBUG] 11:47:06: Line 2085: env.cp = env.cp+1
[DEBUG] 11:47:06: Line 2086: end --until env.cp > #code or stat
[DEBUG] 11:47:06:

[DEBUG] 11:47:06: Error loading rules:/opt/fibaro/scenes/323.lua:2252: /opt/fibaro/scenes/323.lua:2084: No such function:dolist
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
jang
Medlem
Posts: 388
Joined: 05 Jan 2014, 00:44
10
Location: Stockholm

'dolist' försvann i ER2... nu i ER3 ser det mer ut som Lua med en "for .. pairs(...) do .... end"

Code: Select all

-- EARTH HOUR #######################################
lights={46,156,135,85,81,11,13,23,25,87,7,15,17,9,121} -- eller hämta värden från HomeTable
rule("earthDates={2019/3/30/20:30,2020/3/28/20:30}")
rule("for _,v in ipairs(earthDates) do log(osdate('Earth hour %c',v)); post(#earthHour,v) end")
rule("#earthHour => states = lights:value; lights:off; wait(01:00); lights:value = states")
Ett problem kan vara att de lampor man vill slå av måste support "turnOff" (fibaro:call(id,"turnOff")) vilket de flest gör.
Om ni vill testa så kan ni lägga till reglerna

Code: Select all

rule("#earthHour2 => states = lights:value; lights:off; wait(00:00:10); lights:value = states")
rule("@now+00:00:05 => post(#earthHour2)")
Så kommer den 5sek efter ni startat om ER att posta en #earthHour2 som släcker i 10s. Då ser ni om lamporna släcker korrekt, och tänder igen. Värre om det går fel med hela familjen som åskådare ...och domare... :-)
User avatar
sonnyboy
Proffsmedlem
Posts: 669
Joined: 26 Sep 2013, 08:05
11
Location: Västerås

jang wrote: 25 Mar 2020, 13:40 'dolist' försvann i ER2... nu i ER3 ser det mer ut som Lua med en "for .. pairs(...) do .... end"

Code: Select all

-- EARTH HOUR #######################################
--lights={ 252,248 } -- eller hämta värden från HomeTable
--rule("earthDates={2020/3/25/13:13,2021/3/27/20:30,2022/3/26/20:30}")
--rule("for _,v in ipairs(earthDates) do log(osdate('Earth hour %c',v)); post(#earthHour,v) end")
--rule("#earthHour => states = lights:value; lights:off; wait(00:02); lights:value = states")
Detta släcker finfint, men den tänder inte igen?
Testar just nu med 2 st Fibaro wallplugs

Men efter en stund så crashar ER
[DEBUG] 13:12:17: for _,v in ipairs(earthDates) do log(osdate('Earth hour %c',v)); post(#earthHour,v) end = nil
[DEBUG] 13:12:17: Rule:4[#earthHour => states = lights:value; lights:off; wait(00:02); lights:value = sta...] = OK
[DEBUG] 13:13:00: [{"type":"earthHour"}]>>'Rule:4[#earthHour => states = lights:value; lights:off; wait(00:02); lights:value = sta...]'
[DEBUG] 13:18:29: Aborting: Server not started yet
[DEBUG] 13:18:39: Aborting: Server not started yet
[DEBUG] 13:21:46: Aborting: Server not started yet
[DEBUG] 13:22:21: Aborting: Server not started yet
[DEBUG] 13:22:27: Aborting: Server not started yet
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
User avatar
RH_Dreambox
Z-Wave Kung
Posts: 1203
Joined: 03 Jan 2015, 16:49
9
Location: Vegby
Contact:

Ja, det blev samma fel hos mig. Men jag blir inte klok på varför.
Min gamla ombyggda HC2 har fått ett nytt liv och min HC3 är nu nedkopplad.
HC2 med Home Assistant har blivit en riktig Game Changer och nu har jag hemautomatik på riktigt.
https://www.zwaveforum.se/viewtopic.php?t=7087
jang
Medlem
Posts: 388
Joined: 05 Jan 2014, 00:44
10
Location: Stockholm

RH_Dreambox wrote: 25 Mar 2020, 16:09 Ja, det blev samma fel hos mig. Men jag blir inte klok på varför.
Sorry, det var ett fel sedan jag flyttade från ER2 till ER3. Koden för att tilldela en lista av devices en lista utav värden var trasig och det verkar inte som ngn använder det förutom i earthHour exemplet.
Dvs.
a = {17,42}:value
tilldelar 'a' listan {"0","0"} om både 17 och 41 är av. Det funkade.
{17,42}={"0","0"} skulle tilldela 17:value=0 och 42:value=0 men den koden hade fallit bort när jag gick från ER2 till ER3.
Nu har jag pushat ER3 fixB89 som rättar till det.
Vi hinner fortfarande till på lördag :-)
User avatar
sonnyboy
Proffsmedlem
Posts: 669
Joined: 26 Sep 2013, 08:05
11
Location: Västerås

jang wrote: 25 Mar 2020, 21:42
RH_Dreambox wrote: 25 Mar 2020, 16:09 Ja, det blev samma fel hos mig. Men jag blir inte klok på varför.
Sorry, det var ett fel sedan jag flyttade från ER2 till ER3. Koden för att tilldela en lista av devices en lista utav värden var trasig och det verkar inte som ngn använder det förutom i earthHour exemplet.
Dvs.
a = {17,42}:value
tilldelar 'a' listan {"0","0"} om både 17 och 41 är av. Det funkade.
{17,42}={"0","0"} skulle tilldela 17:value=0 och 42:value=0 men den koden hade fallit bort när jag gick från ER2 till ER3.
Nu har jag pushat ER3 fixB89 som rättar till det.
Vi hinner fortfarande till på lördag :-)
Nu funkade det :D
Lördagen är räddad, @jang tack så mycket!!
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
User avatar
RH_Dreambox
Z-Wave Kung
Posts: 1203
Joined: 03 Jan 2015, 16:49
9
Location: Vegby
Contact:

Sorry, det var ett fel sedan jag flyttade från ER2 till ER3. Koden för att tilldela en lista av devices en lista utav värden var trasig och det verkar inte som ngn använder det förutom i earthHour exemplet.
Jag skulle tro att det beror på att vi "amatörer" inte begriper oss på dina avancerade funktioner, och kan bara använda dem med hjälp från dig. :D
Men jag skall göra vad jag kan för att hitta fler tillämpningar. :o
Min gamla ombyggda HC2 har fått ett nytt liv och min HC3 är nu nedkopplad.
HC2 med Home Assistant har blivit en riktig Game Changer och nu har jag hemautomatik på riktigt.
https://www.zwaveforum.se/viewtopic.php?t=7087
Systemfel
Medlem
Posts: 384
Joined: 14 Jan 2015, 01:02
9

jang wrote: 25 Mar 2020, 13:40 'dolist' försvann i ER2... nu i ER3 ser det mer ut som Lua med en "for .. pairs(...) do .... end"

Code: Select all

-- EARTH HOUR #######################################
lights={46,156,135,85,81,11,13,23,25,87,7,15,17,9,121} -- eller hämta värden från HomeTable
rule("earthDates={2019/3/30/20:30,2020/3/28/20:30}")
rule("for _,v in ipairs(earthDates) do log(osdate('Earth hour %c',v)); post(#earthHour,v) end")
rule("#earthHour => states = lights:value; lights:off; wait(01:00); lights:value = states")
Ett problem kan vara att de lampor man vill slå av måste support "turnOff" (fibaro:call(id,"turnOff")) vilket de flest gör.
Om ni vill testa så kan ni lägga till reglerna

Code: Select all

rule("#earthHour2 => states = lights:value; lights:off; wait(00:00:10); lights:value = states")
rule("@now+00:00:05 => post(#earthHour2)")
Så kommer den 5sek efter ni startat om ER att posta en #earthHour2 som släcker i 10s. Då ser ni om lamporna släcker korrekt, och tänder igen. Värre om det går fel med hela familjen som åskådare ...och domare... :-)

Då var det fixat tack då blir det Earth Hour för mig med :) första gången :) är det bara lägga till datumen sen lär väll ändra sig till nästa år
kör Hc3 och det fungerar bättre och bätttre sakta men säkert :D
Post Reply