EventRunner

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

sonnyboy wrote: 31 Dec 2019, 11:41 Jag har precis börjat med Hue och det funkar galant :)
Använder Hue Bridge och Ikea lampor,

ska dessa rader avkommenteras efter jag definierat lamporna eller ska det vara aktivt?
Hue.define("Vid Soffan",12001)
Hue.define("Taket",12002)

Gott Slut & Gott Nytt År!
Hue.define binder ett "fejkat" fibaro deviceID till en Hue device definerat i Hue appen.
Hue(<namn på device i Hue appen>,<fejkat fibaro deviceID som vi använder i ER>)
Så i ditt fall får Hue devicen "Vid Soffan" id 12001 så att vi kan göra

Code: Select all

rule("sunset => 12001:off")
Normalt binder vi 12001 till eh HomeTable variable också.
HT = {
kitchen = { lampa = 12001 }
}
rule("sunset => kitchen.lampa:off")

Så, ja, du måste ha en Hue.define för varje Hue device så att du får ett fibaro deviceID som går att använda i regler.
I ER kan man också skriva Lua och det ID man binder till får fungerar även med fibaro:* funktionerna
fibaro:call(12001,"turnOff")

Se även
https://forum.fibaro.com/topic/31180-tu ... ent-164685
User avatar
sonnyboy
Proffsmedlem
Posts: 669
Joined: 26 Sep 2013, 08:05
11
Location: Västerås

Tackar, jag har dom även i min HomeTable :)
Då låter jag dom bara vara kvar som det är.
Tack för snabbt svar som vanligt :)
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
User avatar
Texan
Medlem
Posts: 169
Joined: 25 Dec 2015, 15:07
8

Går det att styra kameror?
Skulle vilja ta 1 bild varje timme eller varannan timme mellan exempelvis 06:00 och 21:00.
Tänkte göra en time-lapse av bilderna.
MastrUsr
Medlem
Posts: 202
Joined: 25 Apr 2017, 07:24
7

Hej!
Fick NaN på mina ER-variabler(?), mailbox... Hur löser jag det problemet?

Jag förmodar att detta uppstått när jag klickat på "spara" när jag lagt till något nytt i variabelpanelen?
Systemfel
Medlem
Posts: 384
Joined: 14 Jan 2015, 01:02
9

vilken version ligger event Runner på min har inte uppdaterat något sen den 17 november.. tänkte bara så det inte är något problem med version uppdateringarna
kör Hc3 och det fungerar bättre och bätttre sakta men säkert :D
MastrUsr
Medlem
Posts: 202
Joined: 25 Apr 2017, 07:24
7

Systemfel wrote:vilken version ligger event Runner på min har inte uppdaterat något sen den 17 november.. tänkte bara så det inte är något problem med version uppdateringarna
local _version,_fix = "3.0","B86" -- Jan 2, 2020

Du kan kolla här:
https://raw.githubusercontent.com/janga ... unner3.lua
Skickat från min SM-N960F via Tapatalk



Last edited by MastrUsr on 08 Jan 2020, 18:29, edited 1 time in total.
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

MastrUsr wrote: 08 Jan 2020, 11:23 Hej!
Fick NaN på mina ER-variabler(?), mailbox... Hur löser jag det problemet?

Jag förmodar att detta uppstått när jag klickat på "spara" när jag lagt till något nytt i variabelpanelen?
då har du nog skrivit sönder värdet i variablerna. ER kommer rättas till när du sparar om värdet i variabel igen.
MastrUsr
Medlem
Posts: 202
Joined: 25 Apr 2017, 07:24
7

jompa68 wrote:
MastrUsr wrote: 08 Jan 2020, 11:23 Hej!
Fick NaN på mina ER-variabler(?), mailbox... Hur löser jag det problemet?

Jag förmodar att detta uppstått när jag klickat på "spara" när jag lagt till något nytt i variabelpanelen?
då har du nog skrivit sönder värdet i variablerna. ER kommer rättas till när du sparar om värdet i variabel igen.
Ändrade alla till 0. Får väl se om allt rullar på som det ska..

Jag läste lite om problemet och det verkar som att man sabbar de värdena som inte är "enkla" när man sparar med "disketten", men hur ska man göra då?

Skickat från min SM-N960F via Tapatalk

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

MastrUsr wrote: 08 Jan 2020, 18:32
jompa68 wrote:
MastrUsr wrote: 08 Jan 2020, 11:23 Hej!
Fick NaN på mina ER-variabler(?), mailbox... Hur löser jag det problemet?

Jag förmodar att detta uppstått när jag klickat på "spara" när jag lagt till något nytt i variabelpanelen?
då har du nog skrivit sönder värdet i variablerna. ER kommer rättas till när du sparar om värdet i variabel igen.
Ändrade alla till 0. Får väl se om allt rullar på som det ska..

Jag läste lite om problemet och det verkar som att man sabbar de värdena som inte är "enkla" när man sparar med "disketten", men hur ska man göra då?

Skickat från min SM-N960F via Tapatalk
Man ska inte editera variabler i variabelpanelen :-)

Det finns lite support i ER för att hantera det här

Kolla om ett variabelvärde är förstört vid startup och sätt det till ngt default värde...20 i det här fallet

Code: Select all

Rule.eval("$Temperature == 'NaN' & $Temperature = 20") 
Skapa variabeln globala Temperature - om den inte redan finns

Code: Select all

Rule.eval("global(Temperature); true")
Ta bort variabel - om den finns

Code: Select all

Rule.eval("deleteglobal(Temperature); true")
Att ändra värde på, skapa och ta bort globala från ett ER skript sabbar inte de andra variablerna
jang
Medlem
Posts: 388
Joined: 05 Jan 2014, 00:44
10
Location: Stockholm

Texan wrote: 04 Jan 2020, 18:52 Går det att styra kameror?
Skulle vilja ta 1 bild varje timme eller varannan timme mellan exempelvis 06:00 och 21:00.
Tänkte göra en time-lapse av bilderna.
Nej, det finns ingen Lua support att komma åt bilden. Det enda man kan göra är att pusha/mejla den till en användare
Så, man kan sätta upp en regel som mejlar bilden var n:te timme - förmodligen inte vad du vill

Code: Select all

Rule.eval("@@01:00 & 06:00..21:00 => fibaro:call(648, 'sendPhotoToUser', 2); -- 648 is a camera id, 2 is a user id

Code: Select all

Rule.eval("@@01:00 & 06:00..21:00 => fibaro:call(648, 'sendPhotoToEmail', 2); -- 648 is a camera id, 2 is a user id
jang
Medlem
Posts: 388
Joined: 05 Jan 2014, 00:44
10
Location: Stockholm

MastrUsr wrote: 08 Jan 2020, 18:29
Systemfel wrote:vilken version ligger event Runner på min har inte uppdaterat något sen den 17 november.. tänkte bara så det inte är något problem med version uppdateringarna
local _version,_fix = "3.0","B86" -- Jan 2, 2020

Du kan kolla här:
https://raw.githubusercontent.com/janga ... unner3.lua
Skickat från min SM-N960F via Tapatalk
Ja, det är lite glesare mellan uppdateringarna nu - ER blir allt mer stabil :-)
MastrUsr
Medlem
Posts: 202
Joined: 25 Apr 2017, 07:24
7

jang wrote: 09 Jan 2020, 07:52 Man ska inte editera variabler i variabelpanelen :-)

Det finns lite support i ER för att hantera det här

Kolla om ett variabelvärde är förstört vid startup och sätt det till ngt default värde...20 i det här fallet

Code: Select all

Rule.eval("$Temperature == 'NaN' & $Temperature = 20") 
Skapa variabeln globala Temperature - om den inte redan finns

Code: Select all

Rule.eval("global(Temperature); true")
Ta bort variabel - om den finns

Code: Select all

Rule.eval("deleteglobal(Temperature); true")
Att ändra värde på, skapa och ta bort globala från ett ER skript sabbar inte de andra variablerna
Toppen, då vet jag! :)

Hur som helst så är något knas med ER3. Startar jag scenen kommer det efter en minut(?) upp från supervisor att ER3 inte kunde startas om... Hur felsöker jag detta?
Mina variabler ser ut så här (vågar inte skriva något i 91_1 och spara så vet inte om det skulle lösa problemet...):
MAILBOX102_1 0
MAILBOX88_1 0
MAILBOX91_1 *tom*
MAILBOX92_1 0
jang
Medlem
Posts: 388
Joined: 05 Jan 2014, 00:44
10
Location: Stockholm

MastrUsr wrote: 09 Jan 2020, 14:33
Toppen, då vet jag! :)

Hur som helst så är något knas med ER3. Startar jag scenen kommer det efter en minut(?) upp från supervisor att ER3 inte kunde startas om... Hur felsöker jag detta?
Mina variabler ser ut så här (vågar inte skriva något i 91_1 och spara så vet inte om det skulle lösa problemet...):
MAILBOX102_1 0
MAILBOX88_1 0
MAILBOX91_1 *tom*
MAILBOX92_1 0
ER initialiser om sina variabler varje gång den startar om så det är inte ett problem.
MAILBOX91_1 indikerar att det är scenen med ID 91 - är det den du har problem med?
Om en scen har strulat och inte kunnat startas om 3ggr så sätter SUpervisor scenen till "Disabled". Kolla att det inte är det som hänt.

Ibland har Supervisor strulat och har svårt at avgöra om scener lever - och börjar då att starta om en scen som lever.
...då kan man i koden för Supervisor, i början, ändra raden

Code: Select all

SIMPLEKEEPALIVE = false -- SImple count scene instances to check if scenes are alive
till

Code: Select all

SIMPLEKEEPALIVE = true
så brukar den bete sig lite bättre
MastrUsr
Medlem
Posts: 202
Joined: 25 Apr 2017, 07:24
7

Dessa reglerna:

Code: Select all

rule("@{06:00,catch} => Util.checkVersion()") -- Check for new version every morning at 6:00
rule("#ER_version => log('New ER version, v:%s, fix:%s',env.event.version,env.event.fix)")
rule("#ER_version => telefon.eric:msg=log('New ER version, v:%s, fix:%s',env.event.version,env.event.fix)")
rule("#ER_version => log('...patching scene'); Util.patchEventRunner()") -- Auto patch new versions...
...är det meningen att de ska meddela loggen (och i mitt fall telefonen) varje gång det checkas eller ska de bara meddela om det skett en patch? Jag skulle önska ett meddelande endast om det skett en patch. Hur kan jag få till det?
jang
Medlem
Posts: 388
Joined: 05 Jan 2014, 00:44
10
Location: Stockholm

MastrUsr wrote: 10 Jan 2020, 12:26 Dessa reglerna:

Code: Select all

rule("@{06:00,catch} => Util.checkVersion()") -- Check for new version every morning at 6:00
rule("#ER_version => log('New ER version, v:%s, fix:%s',env.event.version,env.event.fix)")
rule("#ER_version => telefon.eric:msg=log('New ER version, v:%s, fix:%s',env.event.version,env.event.fix)")
rule("#ER_version => log('...patching scene'); Util.patchEventRunner()") -- Auto patch new versions...
...är det meningen att de ska meddela loggen (och i mitt fall telefonen) varje gång det checkas eller ska de bara meddela om det skett en patch? Jag skulle önska ett meddelande endast om det skett en patch. Hur kan jag få till det?
Den meddelar bara om det finns en patch...
Vad får du för meddelande i loggen (Och telefonen?)? Senaste versionen ör 3.0 och "fix" är B87
MastrUsr
Medlem
Posts: 202
Joined: 25 Apr 2017, 07:24
7

jang wrote:
MastrUsr wrote: 10 Jan 2020, 12:26 Dessa reglerna:

Code: Select all

rule("@{06:00,catch} => Util.checkVersion()") -- Check for new version every morning at 6:00
rule("#ER_version => log('New ER version, v:%s, fix:%s',env.event.version,env.event.fix)")
rule("#ER_version => telefon.eric:msg=log('New ER version, v:%s, fix:%s',env.event.version,env.event.fix)")
rule("#ER_version => log('...patching scene'); Util.patchEventRunner()") -- Auto patch new versions...
...är det meningen att de ska meddela loggen (och i mitt fall telefonen) varje gång det checkas eller ska de bara meddela om det skett en patch? Jag skulle önska ett meddelande endast om det skett en patch. Hur kan jag få till det?
Den meddelar bara om det finns en patch...
Vad får du för meddelande i loggen (Och telefonen?)? Senaste versionen ör 3.0 och "fix" är B87
"New ER version, v:3.0, fix:B87"

Installerad:
"local ER_version,_fix = "3.0" , "B87" -- Jan 9, 2020

Jag noterade att det står samma sak två gånger i loggen.

Skickat från min SM-N960F via Tapatalk


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

MastrUsr wrote: 10 Jan 2020, 14:59
jang wrote:
MastrUsr wrote: 10 Jan 2020, 12:26 Dessa reglerna:

Code: Select all

rule("@{06:00,catch} => Util.checkVersion()") -- Check for new version every morning at 6:00
rule("#ER_version => log('New ER version, v:%s, fix:%s',env.event.version,env.event.fix)")
rule("#ER_version => telefon.eric:msg=log('New ER version, v:%s, fix:%s',env.event.version,env.event.fix)")
rule("#ER_version => log('...patching scene'); Util.patchEventRunner()") -- Auto patch new versions...
...är det meningen att de ska meddela loggen (och i mitt fall telefonen) varje gång det checkas eller ska de bara meddela om det skett en patch? Jag skulle önska ett meddelande endast om det skett en patch. Hur kan jag få till det?
Den meddelar bara om det finns en patch...
Vad får du för meddelande i loggen (Och telefonen?)? Senaste versionen ör 3.0 och "fix" är B87
"New ER version, v:3.0, fix:B87"

Installerad:
"local ER_version,_fix = "3.0" , "B87" -- Jan 9, 2020

Jag noterade att det står samma sak två gånger i loggen.

Skickat från min SM-N960F via Tapatalk


Image
Att den loggar 2 ggr beror på att du har 2 log anrop

Code: Select all

--rule("#ER_version => log('New ER version, v:%s, fix:%s',env.event.version,env.event.fix)")
rule("#ER_version => telefon.eric:msg=log('New ER version, v:%s, fix:%s',env.event.version,env.event.fix)")
Första kan du ta bort / kommentera bort

Varför den verkar matcha och skicka meddelanden varje gång är desto märkligare
Kan du modifiera reglerna så att det ser ut såhär? så får vi se vad den loggar?

Code: Select all

rule("@{06:00,catch} => Util.checkVersion()") -- Check for new version every morning at 6:00
rule("[[#ER_version => 
      log("Old ER version,  v:%s, fix:%s',_version,_fix);
      telefon.eric:msg=log('New ER version, v:%s, fix:%s',env.event.version,env.event.fix)]])
rule("#ER_version => log('...patching scene'); Util.patchEventRunner()") -- Auto patch new versions...
MastrUsr
Medlem
Posts: 202
Joined: 25 Apr 2017, 07:24
7

jang wrote: 10 Jan 2020, 16:14Att den loggar 2 ggr beror på att du har 2 log anrop

Code: Select all

--rule("#ER_version => log('New ER version, v:%s, fix:%s',env.event.version,env.event.fix)")
rule("#ER_version => telefon.eric:msg=log('New ER version, v:%s, fix:%s',env.event.version,env.event.fix)")
Första kan du ta bort / kommentera bort

Varför den verkar matcha och skicka meddelanden varje gång är desto märkligare
Kan du modifiera reglerna så att det ser ut såhär? så får vi se vad den loggar?

Code: Select all

rule("@{06:00,catch} => Util.checkVersion()") -- Check for new version every morning at 6:00
rule("[[#ER_version => 
      log("Old ER version,  v:%s, fix:%s',_version,_fix);
      telefon.eric:msg=log('New ER version, v:%s, fix:%s',env.event.version,env.event.fix)]])
rule("#ER_version => log('...patching scene'); Util.patchEventRunner()") -- Auto patch new versions...


Det hade smugit sig in ett " i början av regeln du skrivit ("[[) som jag fick ta bort för att det skulle försöka starta över huvud taget. Nedan är loggen vid start av en nu icke fungerande ER3.

Code: Select all

[DEBUG] 09:24:18: ER3 - EventRunner vnil B87

[DEBUG] 09:24:18: Fibaro software version: 4.570

[DEBUG] 09:24:18: HC2 uptime: 134 hours

[DEBUG] 09:24:18: Sunrise 08:35, Sunset 15:58

[DEBUG] 09:24:18:

[DEBUG] 09:24:18: Loading rules

[DEBUG] 09:24:18: Rule:1[@@05:00:00 => f=!f; || f >> log('Ding!') || true >> log('Dong!')] = OK

[DEBUG] 09:24:18: Rule:2[@23:30:00 & wday('sun-thu') => lamporundervåning:off; lamporövervåning:off; h...] = OK

[DEBUG] 09:24:18: Rule:3[@09:00 & wday('mon-fri') => lamporundervåning:off; lamporövervåning:off; hall...] = OK

[DEBUG] 09:24:18: Rule:4[@sunrise+00:15 => baksida.trädgårdsbelysning:off; framsida.ytterbelysning:off] = OK

[DEBUG] 09:24:18: Rule:5[@sunset-00:15 => baksida.trädgårdsbelysning:on; framsida.ytterbelysning:on] = OK

[DEBUG] 09:24:18: Rule:6[@23:00:00 => belysningsVD:btn=4; log('pressed button 4')] = OK

[DEBUG] 09:24:18: Catching up:Rule:7[@{06:00,catch} => Util.checkVersion()]

[DEBUG] 09:24:18: Rule:7[@{06:00,catch} => Util.checkVersion()] = OK

[DEBUG] 09:24:18: tokenizer failed at "Old ER version, v:%s, fix:%s',_version,_fix);
[DEBUG] 09:24:18: telefon.eric:msg=log('New ER version, v:%s, fix:%s',env.event.version,env.event.fix)
[DEBUG] 09:24:18: Error in '#ER_version =>
[DEBUG] 09:24:18: log("Old ER version, v:%s, fix:%s',_version,_fix);
[DEBUG] 09:24:18: telefon.eric:msg=log('New ER version, v:%s, fix:%s',env.event.version,env.event.fix)': /opt/fibaro/scenes/91.lua:1426: Parser error char 26 ('(') in expression '#ER_version =>
[DEBUG] 09:24:18: log("Old ER version, v:%s, fix:%s',_version,_fix);
[DEBUG] 09:24:18: telefon.eric:msg=log('New ER version, v:%s, fix:%s',env.event.version,env.event.fix)' (/opt/fibaro/scenes/91.lua:1180: Missing ')')

[DEBUG] 09:24:18:
[DEBUG] 09:24:18: Line 1424: --for i,v in ipairs(tokens.stream) do print(v.type, v.value, v.from, v.to) end
[DEBUG] 09:24:18: Line 1425: local stat,res = pcall(function() return self.postParse(gRule(tokens)) end)
[DEBUG] 09:24:18: Line 1426:>>> if not stat then local t=tokens.last() error(string.format("Parser error char %s ('%s') in expression '%s' (%s)",t.from+1,str:sub(t.from+1,t.to),str,res)) end
[DEBUG] 09:24:18: Line 1427: return res
[DEBUG] 09:24:18: Line 1428: end
[DEBUG] 09:24:18:

[DEBUG] 09:24:18: Error loading rules:/opt/fibaro/scenes/91.lua:2035: /opt/fibaro/scenes/91.lua:1426: Parser error char 26 ('(') in expression '#ER_version =>
[DEBUG] 09:24:18: log("Old ER version, v:%s, fix:%s',_version,_fix);
[DEBUG] 09:24:18: telefon.eric:msg=log('New ER version, v:%s, fix:%s',env.event.version,env.event.fix)' (/opt/fibaro/scenes/91.lua:1180: Missing ')')

[DEBUG] 09:25:04: Aborting: Server not started yet
jang
Medlem
Posts: 388
Joined: 05 Jan 2014, 00:44
10
Location: Stockholm

Sorry, jag var inte riktigt alert.
Nytt försök.

Code: Select all

rule("@{06:00,catch} => Util.checkVersion()") -- Check for new version every morning at 6:00
rule([[#ER_version => 
      log("Old ER version,  v:%s, fix:%s",_version,_fix);
      telefon.eric:msg=log('New ER version, v:%s, fix:%s',env.event.version,env.event.fix)
      ]])
rule("#ER_version => log('...patching scene'); Util.patchEventRunner()") -- Auto patch new versions...
MastrUsr
Medlem
Posts: 202
Joined: 25 Apr 2017, 07:24
7

jang wrote: 13 Jan 2020, 13:51 Sorry, jag var inte riktigt alert.
Nytt försök.

Code: Select all

rule("@{06:00,catch} => Util.checkVersion()") -- Check for new version every morning at 6:00
rule([[#ER_version => 
      log("Old ER version,  v:%s, fix:%s",_version,_fix);
      telefon.eric:msg=log('New ER version, v:%s, fix:%s',env.event.version,env.event.fix)
      ]])
rule("#ER_version => log('...patching scene'); Util.patchEventRunner()") -- Auto patch new versions...
Funkade, men samma resultat.

Log:

Code: Select all

[DEBUG] 13:15:24: ER3 - EventRunner vnil B87

[DEBUG] 13:15:24: Fibaro software version: 4.570

[DEBUG] 13:15:24: HC2 uptime: 138 hours

[DEBUG] 13:15:24: Sunrise 08:35, Sunset 15:58

[DEBUG] 13:15:24:

[DEBUG] 13:15:24: Loading rules

[DEBUG] 13:15:24: Rule:1[@@05:00:00 => f=!f; || f >> log('Ding!') || true >> log('Dong!')] = OK

[DEBUG] 13:15:24: Rule:2[@23:30:00 & wday('sun-thu') => lamporundervåning:off; lamporövervåning:off; h...] = OK

[DEBUG] 13:15:24: Rule:3[@09:00 & wday('mon-fri') => lamporundervåning:off; lamporövervåning:off; hall...] = OK

[DEBUG] 13:15:24: Rule:4[@sunrise+00:15 => baksida.trädgårdsbelysning:off; framsida.ytterbelysning:off] = OK

[DEBUG] 13:15:24: Rule:5[@sunset-00:15 => baksida.trädgårdsbelysning:on; framsida.ytterbelysning:on] = OK

[DEBUG] 13:15:24: Rule:6[@23:00:00 => belysningsVD:btn=4; log('pressed button 4')] = OK

[DEBUG] 13:15:24: Catching up:Rule:7[@{06:00,catch} => Util.checkVersion()]

[DEBUG] 13:15:24: Rule:7[@{06:00,catch} => Util.checkVersion()] = OK

[DEBUG] 13:15:24: Rule:8[#ER_version => ...] = OK

[DEBUG] 13:15:24: Rule:9[#ER_version => log('...patching scene'); Util.patchEventRunner()] = OK

[DEBUG] 13:15:24:

[DEBUG] 13:15:24: Scene running

[DEBUG] 13:15:24: Ding!

[DEBUG] 13:15:26: Old ER version, v:%s, fix:%s

[DEBUG] 13:15:26: New ER version, v:3.0, fix:B87

[DEBUG] 13:15:26: fibaro:call(telefon.eric,"sendPush","New ER version, v:3.0, fix:B87")

[DEBUG] 13:15:26: ...patching scene

[DEBUG] 13:15:27: Incoming event:{"_from":92,"event":[{"type":"ERLog"}],"type":"%%SUB%%"}

[DEBUG] 13:15:27: Patching scene to latest version

[DEBUG] 13:15:28: Incoming event:{"_from":92,"type":"%%PING%%"}
Post Reply