EventRunner 4 - QuickApp HC3

User avatar
RH_Dreambox
Z-Wave Kung
Posts: 1097
Joined: 03 Jan 2015, 16:49
5
Location: Vegby
Contact:

Jag lade koden först bland mina regler, för det var väl den koden du menade och inte ER-koden.
Mina Nexa.-dimrar har olika versionsnummer, sovrummet 1.1 och arbetsrummet 1.2.
Vi kan först se vad som händer idag med debugen, sedan kan jag ju byta plats opå dem för att se om felet följer med.

EDIT:
Jag glömde nämna att dim-pluggen länge fungerat utan problem i ER3 med dessa regler.
HC3 (5.050) med ER4 och HC2 (4.600) med ER 3
jang
Medlem
Posts: 308
Joined: 05 Jan 2014, 00:44
6
Location: Stockholm

Du ska ersätta koden i "EventRunner" filen i QAn. (du har dina regler i "main" filen)
User avatar
RH_Dreambox
Z-Wave Kung
Posts: 1097
Joined: 03 Jan 2015, 16:49
5
Location: Vegby
Contact:

Sorry, när jag höjde blicken lite till så såg jag vilken kod jag skulle ersätta. Jag hade missat början på self:event... så jag hittade inte den logiska platsen.
Nu väntar vi och ser vad som händer :-)
EDIT:
Här är resultatet, räcker det eller vill du se mer av loggen?
[2020-11-09] [16:00:00] [DEBUG] [QUICKAPP20]: Incoming trigger:{"id":105,"old":2.6,"type":"device","property":"power","value":1.0}
[2020-11-09] [16:00:00] [DEBUG] [QUICKAPP20]: Incoming trigger:{"id":98,"old":12.0,"type":"device","property":"power","value":10.9}
[2020-11-09] [16:00:00] [DEBUG] [QUICKAPP20]: [true]>>'Rule:15[@sunset => sovrum.lampa:on]'
[2020-11-09] [16:00:00] [DEBUG] [QUICKAPP20]: fibaro.call(22,"turnOn") => nil
[2020-11-09] [16:00:00] [DEBUG] [QUICKAPP20]: [true]>>'Rule:16[@sunset => sovrum.dim_lampa:dim={300,'up'}]'
[2020-11-09] [16:00:00] [DEBUG] [QUICKAPP20]: [true]>>'Rule:117[@sunset => $TimeOfDay = 'Skymning']'
[2020-11-09] [16:00:00] [TRACE] [QUICKAPP20]: Dimming device:50, current value:nil, set value -1
[2020-11-09] [16:00:00] [WARNING] [QUICKAPP20]: Device 50 can't be dimmed. Type of value is nil
[2020-11-09] [16:00:00] [TRACE] [QUICKAPP20]: Dimming device:50, new value:0
[2020-11-09] [16:00:00] [DEBUG] [QUICKAPP20]: fibaro.call(50,"setValue",0) => nil
[2020-11-09] [16:00:01] [DEBUG] [QUICKAPP20]: Incoming trigger:{"old":"Dag","type":"global-variable","name":"TimeOfDay","value":"Skymning"}
[2020-11-09] [16:00:01] [TRACE] [QUICKAPP20]: Dimming device:50, current value:nil, set value 0
[2020-11-09] [16:00:01] [WARNING] [QUICKAPP20]: Device 50 can't be dimmed. Type of value is nil
[2020-11-09] [16:00:01] [ERROR] [QUICKAPP20]: in Event({"type":"%dimLight"}) => ..: ./include/EventRunner.lua:942: attempt to perform arithmetic on a nil value (local 'currV')
[2020-11-09] [16:00:02] [DEBUG] [QUICKAPP20]: Incoming trigger:{"id":105,"old":1.0,"type":"device","property":"power","value":0.2}

EDIT:
Ändrade sedan regeln till en fast tid, och lampan dimmar upp.
Ändrade regeln till {catch,sunset +18} och lampan dimmade upp igen.

Så vad händer mellan midnatt och "sunset" när den då vägrar att dimma upp?
Och varför -1, bör det inte vara 0?
Dimming device:50, current value:nil, set value -1
HC3 (5.050) med ER4 och HC2 (4.600) med ER 3
jang
Medlem
Posts: 308
Joined: 05 Jan 2014, 00:44
6
Location: Stockholm

Dimming device:50, current value:nil

Så den försöker dimma deviceID 50, men fibaro.getValue(50,"value") returnerar nil(!)
Det är ett mycket konstigt beteende av en device som ska ha value = number

Kan du prova att göra en "soft reconfigure" på enheten?

(-1 är bara ett defaultvärde när den börjar dimma upp/ner)
User avatar
RH_Dreambox
Z-Wave Kung
Posts: 1097
Joined: 03 Jan 2015, 16:49
5
Location: Vegby
Contact:

Tänkte ägna dagen åt att rekonfigurera hela nätverket eftersom det är fler saker som krånglar.
Tex. takbelysningen i garaget tänds varje eftermiddag helt utan anledning. Den enda trigger som finns är en dörrsensor (Sensastrip), men ingen har öppnat den dörren.

Och idag kom det här felmeddelandet...
[2020-11-10] [07:10:00] [ERROR] [QUICKAPP20]: in Rule:2[@07:10 & wday('tue') & wnum%2 == 1 => $TTS = 'Viktigt meddelande. Idag skall du ...]: {"err":".\/include\/EventRunner.lua:1717: attempt to call a nil value (field 'getWeekNumber')","ERR":true,"src":"Rule:2[@07:10 & wday('tue') & wnum%2 == 1 => $TTS = 'Viktigt meddelande. Idag skall du ...]","msg":"Error executing instruction:'[\"wnum\",0]'"}

Regeln är nedanstående, och den fungerade i ER3 men inte nu i ER4. Skall den skrivas på ett annat sätt i ER4?

Code: Select all

rule("@07:10 & wday('tue') & wnum%2 == 1 => $TTS = 'Viktigt meddelande. Idag skall du ställa fram soptunnan.&vol=12'")
HC3 (5.050) med ER4 och HC2 (4.600) med ER 3
jang
Medlem
Posts: 308
Joined: 05 Jan 2014, 00:44
6
Location: Stockholm

wnum föll bort mellan ER3 och ER4. Har pushat v0.5fix33
User avatar
RH_Dreambox
Z-Wave Kung
Posts: 1097
Joined: 03 Jan 2015, 16:49
5
Location: Vegby
Contact:

Nu hittade jag änterligen orsaken till ERROR på dimmer-lampan i sovrummet. Det var som det brukar vara, den mänskliga faktorn.
I en utav reglerna hade jag skrivit fel, "sovrum.dim_lampa = 50" skulle naturligtvis vara "sovrum.dim_lampa:value = 50".
Man blir lätt förblindad även om man kollar koderna gång på gång :oops: :oops: :oops:

Men ett mysterium kvarstår, och det är vad som tänder takljuset i garaget vilket sker några gånger varje dag.
Vad jag kan se så tänds belysningen 06:50:06, 15:57:56 och 17:21:34. Alltid samma tider varje dag.
Det konstiga är att jag inte har några regler med dessa klockslag. De sammanfaller inte heller med "sunrise" och "sunset"
Reglerna för takljuset är dessa två rader....

Code: Select all

-- Garagedörr autoljus
    rule("sensor.garage_dörr:breached => garage.takbelysning:on")
    rule("trueFor(00:05,sensor.garage_dörr:safe) => garage.takbelysning:off")
I loggen ser jag detta, men jag ser inte vad som triggar igång ljuset. Om ljuset triggas av dörrsensorn så släcks det efter 5 min., men här förblir det tänt.
Går det på något sätt att logga det? id 63 är takbelysningen.

[2020-11-10] [15:57:56] [DEBUG] [QUICKAPP20]: Incoming trigger:{"type":"device","id":63,"value":true,"property":"value","old":false}
[2020-11-10] [15:57:56] [DEBUG] [QUICKAPP20]: Incoming trigger:{"type":"device","id":63,"value":true,"property":"state","old":false}
HC3 (5.050) med ER4 och HC2 (4.600) med ER 3
jang
Medlem
Posts: 308
Joined: 05 Jan 2014, 00:44
6
Location: Stockholm

Du borde ha sett i loggen
Incoming trigger:{ ... för sensor.garage_dörr när den blir true
mean eftersom den inte verkar komma eller att den loggar att regeln kör så måste det vara ngt annat som slår på lampan... Du har inte kvar HC2:an? :-)
User avatar
RH_Dreambox
Z-Wave Kung
Posts: 1097
Joined: 03 Jan 2015, 16:49
5
Location: Vegby
Contact:

jang wrote: 11 Nov 2020, 10:58 Du borde ha sett i loggen
Incoming trigger:{ ... för sensor.garage_dörr när den blir true
mean eftersom den inte verkar komma eller att den loggar att regeln kör så måste det vara ngt annat som slår på lampan... Du har inte kvar HC2:an? :-)
Nu tycks problemet med garageljuset vara löst. Receptet var en recovery och att inkludera alla 30 enheter igen.
Det måste ha blivit något fel med själva databasen, för i det förra försöket uppstod det "luckor" bland ID-numren när jag inkluderade några "besvärliga" enheter.
Kanske var det så att fragment av konfigurationen fanns kvar i dessa ID-luckor vilket ställde till det.

Och när rökdetektorn vägrade att inkluderas så insåg jag att det var lika bra att börja om.
Så nu är allt uppe och snurrar och ER4 sköter sitt jobb på bästa tänkbara sätt. Tack jang!
EDIT:
En fråga... varför valde du att göra ER4 som en QA? Har en QA så mycket större möjligheter än en scen?
HC3 (5.050) med ER4 och HC2 (4.600) med ER 3
jang
Medlem
Posts: 308
Joined: 05 Jan 2014, 00:44
6
Location: Stockholm

RH_Dreambox wrote: 12 Nov 2020, 11:08 En fråga... varför valde du att göra ER4 som en QA? Har en QA så mycket större möjligheter än en scen?
Kort svar ja. När jag började i februari så fanns inte ens net.HTTP, setTimeout och os.time i scener på HC3 - de kom just före sommaren.
Dessutom finns det inget bra sätt att kommunicera med en scen som kör. QA kan man anropa funktioner som den har definierad. ER använder det för att skicka event mellan olika QAs.
En QA "kör hela tiden" vilket förenklar saker. Scener måste man köra i en loop - men nu tillåter inte HC3 multipla instanser av scener längre så det är också besvärligt.
För att få ER att funka på HC2 var jag tvungen att göra en del avancerade kodningstrick - på HC3 och med QA är det mycket enklare och jag kan fokusera på regelmaskinen.
Att dessutom QAs kan byggas upp av flera "filer" förenklar utvecklingen mycket.
MastrUsr
Medlem
Posts: 188
Joined: 25 Apr 2017, 07:24
3

Lite off topic, men nu när du, Jang, berättade om hur det funkar i HC3 så fick jag tanken om varför du, som verkligen kan och gillar programmera, inte använder tex. Home Assistant?

Skickat från min SM-N960F via Tapatalk


User avatar
RH_Dreambox
Z-Wave Kung
Posts: 1097
Joined: 03 Jan 2015, 16:49
5
Location: Vegby
Contact:

jang wrote: 11 Nov 2020, 10:58 Du borde ha sett i loggen
Incoming trigger:{ ... för sensor.garage_dörr när den blir true
mean eftersom den inte verkar komma eller att den loggar att regeln kör så måste det vara ngt annat som slår på lampan... Du har inte kvar HC2:an? :-)
Jag trodde att alla problem var borta efter att jag gjort en recovery och lagt in alla enheter på nytt, men problemen har återuppstått, fast med andra enheter.
Tex. ytterbelysningen i storgaraget tänds och släcks utanför de schemalagda tiderna, och frostvakten i uterummet startar ibland trots att temperaturen är mycket högre än det inställda startvärdet.
De flesta enheterna jag har är Fibaro wallplug och puckar, men jag har även några Aeon väggpluggar och det är de som spökar.

5 st Aeon väggpluggar är schemalagda i ER4 och de är inte på något vis associerade med varandra.
Det som händer är att när någon av pluggarna i sovrum, vardagsrum, bodega eller växthus ändrar status, så ändrar även pluggen för ytterbelysningen i storgaraget status! Helt utan anledning.
Pluggarna inomhus påverkar inte varandra på något sätt utan bara den som är placerad i storgaraget.
När jag manuellt sätter på eller av dessa pluggar så tänds eller släcks storgaraget också med några sekunders fördröjning.
Jag upptäckte då också att när jag ändrade status på pluggen i växthuset så startade frostvakten (Fibaro puck) i uterummet upp!

Detta skall ju inte kunna inträffa, men hur löser man detta?
En fundering som jag har är om EventRunner på något sätt påverkas av inkommande triggar och skickar ut en tänd eller släcksignal?
Jag vet att det är långsökt, men finns möjligheten, annars är det HC3 som hittar på egna hyss.
HC3 (5.050) med ER4 och HC2 (4.600) med ER 3
jang
Medlem
Posts: 308
Joined: 05 Jan 2014, 00:44
6
Location: Stockholm

ER4 loggar alla inkommande triggers den ser
"Incoming trigger:{ ..."
om du har satt _debugFlags.trigger = true

Den loggar alla fibaro.call den gör (ex. när den tänder/släcker lampor)
om du har satt _debugFlags.fcall=true

och den loggar alla regler som den kör om du satt
_debugFlags.ruleTrue=true

Om en lampa tänds eller släcks vid en viss tidpunkt så ska det synas vad ER4 triggat på, vilken regeln. den kört och vilket fibaro.call den gjort för att släcka/tända.

Om det inte syns ngt så är det ngt annat som orsakat det.

Har du lyckats att få ngn associering z-wave mellan dem?

För att utesluta ER4 så kan du sist i filen "main" definiera

Code: Select all

function QuickApp:main() end
dvs definiera om main() som en tom funktion. Lua kommer att köra den sist definierade i filen så du kan låta den riktiga med dina regler vara kvar. Sedan kan du ta bort den för att återställa.
User avatar
RH_Dreambox
Z-Wave Kung
Posts: 1097
Joined: 03 Jan 2015, 16:49
5
Location: Vegby
Contact:

dvs definiera om main() som en tom funktion. Lua kommer att köra den sist definierade i filen så du kan låta den riktiga med dina regler vara kvar. Sedan kan du ta bort den för att återställa.
Testade nu och reglerna kördes inte som du sa, men det hjälpte tyvärr inte, så vi kan nog utesluta ER.

Nu exkluderade jag pluggen i växthuset och för säkerhets skull så gjorde jag även en factory reset på den och inkluderade den igen.
Men trots nytt ID och ingen regel kopplad, så tänds storgaraget när jag manuellt påverkar pluggen, och vad värre är att den även startar upp uterummets frostvakt!
Jag tittade igenom samtliga enheter efter någon association, men det finns inga.

Jag misstänker att avståndet till växthus (ca. 20 m) och storgarage (ytterligare 5 m) kanske är det som ställer till det. Det kanske blir något knas vid långa avstånd.
Det märkliga är bara att det funkade med den gamla HC2, men jag skall testa och se om det hjälper att flytta HC3 till en annan plats.
EDIT:
Flyttade HC3 till andra sidan huset närmare växthuset och gjorde en mesh-rekonfig, men det hjälpte inte :-(
Nästa steg blir att byta plats med några Fibaro Wallplug för att se om det hjälper.

EDIT:
Det hjälpte nästan helt att byta plats på Aeon-pluggarna och ersätta dom med Fibaro Wallplug. När jag nu provocerar pluggarna så är det bara en Aeon-plugg i bodegan som triggar igång frostvakten.
Helt klart är ju att Aeons pluggar inte trivs i min HC3-miljö, frågan är bara varför. Jag har aldrig under 5 år haft det här problemet, så är det Fibaros nya "kioskvältare" som är orsaken?
HC3 (5.050) med ER4 och HC2 (4.600) med ER 3
jang
Medlem
Posts: 308
Joined: 05 Jan 2014, 00:44
6
Location: Stockholm

Jag upptäckte att man kan disable ER4 genom "Device disabled" check boxen under advanced tabben för QAn. Hade kodat det för ett tag sedan men glömt bort det :-)
Post Reply