EventRunner

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

22 Apr 2019, 12:28

RH_Dreambox wrote:
22 Apr 2019, 12:07
@jang, är det problem med den senaste versionen av HC2.lua ("0.8","fix2")? Version "0.5","fix6" fungerar utan problem.
Den här loggen får jag...

Program starting as '"D:\Hemautomation\Zero Brane Studio\bin\lua.exe" -e "io.stdout:setvbuf('no')" "C:\Users\RH\AppData\Local\Temp\.1E42.tmp"'.
Program 'lua.exe' started in 'D:\Hemautomation\Zero Brane Studio\myprograms' (pid: 7444).
Debugging session started in 'D:\Hemautomation\Zero Brane Studio\myprograms\'.
HC2.lua:554: No such file:EventRunner-18.lua
stack traceback:
[C]: in function 'error'
HC2.lua:554: in function 'parseHeaders'
HC2.lua:477: in function 'load'
HC2.lua:650: in function 'registerScene'
HC2.lua:1078: in function 'loadEmbedded'
HC2.lua:82: in function 'main'
HC2.lua:207: in function 'startup'
HC2.lua:3169: in main chunk
[C]: in function 'dofile'
Event Runner/EventRunner-18.lua:12: in main chunk
Debugging session completed (traced 0 instructions).
[33mMon/Apr/22,11:49:25:[HC2 ] HC2 SceneRunner v0.8 fix2[0m
[33mMon/Apr/22,11:49:25:[HC2 ] Local mode, will not access resources on HC2[0m
[32mMon/Apr/22,11:49:25:[HC2 ] Created Event server at 192.168.1.20:6872[0m
[32mMon/Apr/22,11:49:25:[HC2 ] Web GUI at http://192.168.1.20:6872/emu/main[0m
[35mMon/Apr/22,11:49:25:[HC2 ] No HC2 data file found (HC2.data)[0m
[35mMon/Apr/22,11:49:25:[HC2 ] Configuration from file, Globals:0, Scenes:0, Device:0, Rooms:0[0m
Program completed in 3.18 seconds (pid: 7444).
Den verkar inte hitta din fil. Jag antar att du sparat den som "EventRunner-18.lua" och har HC2.lua i samma katalog.
Har du satt "working directory" till den katalogen också? Project -> Project Directory -> Set From Current File
RH_Dreambox
Proffsmedlem
Posts: 937
Joined: 03 Jan 2015, 16:49
Location: Vegby
Contact:

22 Apr 2019, 12:42

Ja alla filer och namn och konfigurering är som de skall vara och det fungerar med den tidigare versionen.
Men byter jag ut min gamla HC2.lua mot den nya, så funkar det inte.
2 st HC2 4.541 Beta
jang
Medlem
Posts: 87
Joined: 05 Jan 2014, 00:44
Location: Stockholm

22 Apr 2019, 12:54

RH_Dreambox wrote:
22 Apr 2019, 12:42
Ja alla filer och namn och konfigurering är som de skall vara och det fungerar med den tidigare versionen.
Men byter jag ut min gamla HC2.lua mot den nya, så funkar det inte.
Runt rad 1069 i HC2.lua så finns raderna

Code: Select all

    if _EMBEDDED then
      short_src=short_src:match("[\\/]?([%.%w_%-]+)$")
      local name,id
Kommentera bort andra raden, funkar det då?

Code: Select all

    if _EMBEDDED then
     -- short_src=short_src:match("[\\/]?([%.%w_%-]+)$")
      local name,id
RH_Dreambox
Proffsmedlem
Posts: 937
Joined: 03 Jan 2015, 16:49
Location: Vegby
Contact:

22 Apr 2019, 15:14

if _EMBEDDED then
-- short_src=short_src:match("[\\/]?([%.%w_%-]+)$")
local name,id
Nej tyvärr inte. Men om jag använder min gamla HC2.lua, är det något viktigt som jag missar då?
2 st HC2 4.541 Beta
jang
Medlem
Posts: 87
Joined: 05 Jan 2014, 00:44
Location: Stockholm

22 Apr 2019, 19:01

RH_Dreambox wrote:
22 Apr 2019, 15:14
if _EMBEDDED then
-- short_src=short_src:match("[\\/]?([%.%w_%-]+)$")
local name,id
Nej tyvärr inte. Men om jag använder min gamla HC2.lua, är det något viktigt som jag missar då?
Det är konstigt för det var det enda som ändrats sedan "0.5","fix6".
Är du helt säker på att de ligger i samma directory och du satt ZeroBranes working directory till samma? Jag frågar igen för filnamnet är rätt men ZeroBrane försöker öppna den i det nuvarande "working directory" men hittar den inte.
Det vore bra om vi kunde lösa det här för jag fixar inga buggar i gamla HC2.la filen och det kommer en massa förbättringar som EventRunner utnyttjar.

Kan du göra mig en tjänst och ersätta function HC2.loadEmbedded i HC2.lua (rad ~1060) med den här versionen och prova?

Code: Select all

  function HC2.loadEmbedded()
    local short_src = ""
    for i=1,1000 do
      local di = debug.getinfo(i)
      if not di then break else short_src = di.short_src end
    end
    if _EMBEDDED then
      short_src=short_src:match("[\\/]?([%.%w_%-]+)$")
      local name,id
      if type(_EMBEDDED)=='table' then
        name,id = _EMBEDDED.name,_EMBEDDED.id
        if _EMBEDDED.time then Runtime.setTime(_EMBEDDED.time)  end
      else 
        name,id = short_src:match("(%d+)_(%w+)%.[lL][uU][aA]$")
        if name then id=tonumber(id)
        else name,id="Test",99 end
      end
      local attr1, err1 = lfs.attributes("HC2.lua")
      local attr2, err2 = lfs.attributes(short_src)
      if err1 or err2 then 
        error("File load error: "..(err1 or err2).." in "..lfs.currentdir())
      end
      local scene = HC2.registerScene(name,id,short_src)
    end
  end
Mitt problem är att jag bara har tillgång till Mac och filstrukturen (filnamn/katalognamn) beter sig annorlunda på en PC så det är svårt att debugga.
Nu om den inte hittar filen så skriver den ut vilken katalog den söker i.
maxxar
Medlem
Posts: 111
Joined: 06 Sep 2012, 13:30

22 Apr 2019, 22:48

jang wrote:
22 Apr 2019, 12:00
maxxar wrote:
22 Apr 2019, 11:13
Detta är det som loggas

Code: Select all

[DEBUG] 10:54:08: api.get(frm('/devices/%s',garage.portbelysning)).actions = {"turnOff":0,"turnOn":0,"reset":0,"reconfigure":0}

[DEBUG] 10:54:08: api.get(frm('/devices/%s',garage.fasadbak)).actions = {"turnOff":0,"turnOn":0,"reconfigure":0}
Eftersom det släcks men inte tänds så verkar det som min kod skickar rätt kommandon. Sätt _debugFlags fcall=true och se om kommandot skickas, då vet vi om regeln triggas.
Om den kör kan det vara strul med att Z-wave kommandot inte kommer fram. Isåfall kan du prova att slå på igen om det inte fungerade första gången.

Code: Select all

rule("@{catch,sunset+00:10} & sunset+00:10..03:00 => garage.portbelysning:on; wait(00:00:02); garage.portbelysning:isOff & garage.portbelysning:on ")
Har själv inte drabbats av det (förutom då enheter har dött och måste väckas upp).
Har ingen aning varför det inte funkade igår, för nu ikväll funkade det och samtliga liknande regler utan problem.
Tack felsökningstips får återkomma i frågan om det skulle dyka upp igen.
RH_Dreambox
Proffsmedlem
Posts: 937
Joined: 03 Jan 2015, 16:49
Location: Vegby
Contact:

23 Apr 2019, 09:30

Det är konstigt för det var det enda som ändrats sedan "0.5","fix6".
Är du helt säker på att de ligger i samma directory och du satt ZeroBranes working directory till samma? Jag frågar igen för filnamnet är rätt men ZeroBrane försöker öppna den i det nuvarande "working directory" men hittar den inte.
Det vore bra om vi kunde lösa det här för jag fixar inga buggar i gamla HC2.la filen och det kommer en massa förbättringar som EventRunner utnyttjar.

Kan du göra mig en tjänst och ersätta function HC2.loadEmbedded i HC2.lua (rad ~1060) med den här versionen och prova?
Nu har jag rensat bort all gammal kod och laddade ned dina filer på nytt, men resultatet blev detsamma.
Jag gjorde tre skärmdumpar med resultatet från den gamla fungerande, den nya och den nya uppdaterade filen.

Behöver jag ändra någon mer konfigurering i HC2-filen? Den ny filen ser ju annorlunda ut och har andra variabelnamn än den gamla.
Den nya filen är ju också 18 kb större så det måste ju vara en hel del nytt som har tillkommit?
Attachments
Gamla HC2-filen.JPG
Den gamla fungerande filen
Nya HC2-filen.JPG
Den nya filen
Uppdaterad HC2.loadEmbedded.JPG
Den nya och uppdaterade filen
2 st HC2 4.541 Beta
jang
Medlem
Posts: 87
Joined: 05 Jan 2014, 00:44
Location: Stockholm

23 Apr 2019, 15:41

RH_Dreambox wrote:
23 Apr 2019, 09:30
Det är konstigt för det var det enda som ändrats sedan "0.5","fix6".
Är du helt säker på att de ligger i samma directory och du satt ZeroBranes working directory till samma? Jag frågar igen för filnamnet är rätt men ZeroBrane försöker öppna den i det nuvarande "working directory" men hittar den inte.
Det vore bra om vi kunde lösa det här för jag fixar inga buggar i gamla HC2.la filen och det kommer en massa förbättringar som EventRunner utnyttjar.

Kan du göra mig en tjänst och ersätta function HC2.loadEmbedded i HC2.lua (rad ~1060) med den här versionen och prova?
Nu har jag rensat bort all gammal kod och laddade ned dina filer på nytt, men resultatet blev detsamma.
Jag gjorde tre skärmdumpar med resultatet från den gamla fungerande, den nya och den nya uppdaterade filen.

Behöver jag ändra någon mer konfigurering i HC2-filen? Den ny filen ser ju annorlunda ut och har andra variabelnamn än den gamla.
Den nya filen är ju också 18 kb större så det måste ju vara en hel del nytt som har tillkommit?
Ok, det har ändrats en del sedan 0.5...
Jag har laddat upp en ny version av HC2.lua ("0.8","fix5" ) med bättre felmeddelanden. Prova den.
HC2.data filen genereras på ett nytt sätt (men ska inte behövas). Titta gärna på den här "instruktionsvideon" https://www.youtube.com/watch?v=GDlZjhcCzr8
:-)
RH_Dreambox
Proffsmedlem
Posts: 937
Joined: 03 Jan 2015, 16:49
Location: Vegby
Contact:

23 Apr 2019, 16:51

Ok, det har ändrats en del sedan 0.5...
Jag har laddat upp en ny version av HC2.lua ("0.8","fix5" ) med bättre felmeddelanden. Prova den.
HC2.data filen genereras på ett nytt sätt (men ska inte behövas). Titta gärna på den här "instruktionsvideon" https://www.youtube.com/watch?v=GDlZjhcCzr8
Tack jang för din tålmodighet! Jag kollade in videon också för säkerhets skull.
Nu kom jag ett steg längre och Event Runner snurrade igång med blixtens hastighet.
Jag loggade in på localhost i Web GUI't och skapade HC2.data därifrån.

Sedan startade jag om Event Runner och då stannade programkörningen igen!
Datafilen blir nu ca 100 kb större än med den gamla HC2.lua, men det kanske skall vara så.
Jag bifogar en bild av loggen så du kan se vad som händer.
Attachments
HC2.data_skapad.JPG
HC2.data skapad och efter omstart.
2 st HC2 4.541 Beta
jang
Medlem
Posts: 87
Joined: 05 Jan 2014, 00:44
Location: Stockholm

23 Apr 2019, 17:07

RH_Dreambox wrote:
23 Apr 2019, 16:51
Ok, det har ändrats en del sedan 0.5...
Jag har laddat upp en ny version av HC2.lua ("0.8","fix5" ) med bättre felmeddelanden. Prova den.
HC2.data filen genereras på ett nytt sätt (men ska inte behövas). Titta gärna på den här "instruktionsvideon" https://www.youtube.com/watch?v=GDlZjhcCzr8
Tack jang för din tålmodighet! Jag kollade in videon också för säkerhets skull.
Nu kom jag ett steg längre och Event Runner snurrade igång med blixtens hastighet.
Jag loggade in på localhost i Web GUI't och skapade HC2.data därifrån.

Sedan startade jag om Event Runner och då stannade programkörningen igen!
Datafilen blir nu ca 100 kb större än med den gamla HC2.lua, men det kanske skall vara så.
Jag bifogar en bild av loggen så du kan se vad som händer.
Nu är det ditt tålamod med mig ;-) - jag hade lite bråttom när jag laddade upp senaste versionen.
Prova fix6 som jag just pushade.
Ja, HC2.data innehåller alla scener/VDs/globals/devices...
Jag går inte och lägger mig innan du får det att fungera :-)
RH_Dreambox
Proffsmedlem
Posts: 937
Joined: 03 Jan 2015, 16:49
Location: Vegby
Contact:

23 Apr 2019, 18:02

Jag går inte och lägger mig innan du får det att fungera :-)
Det löftet skulle jag aldrig vågat ge :o
Men jag kan lova dig att du får gå och lägga dig när du vill i kväll :D

Code: Select all

Tue/Apr/23,17:57:36:[20:1] Dong![0m
Tue/Apr/23,17:57:41:[20:1] Ding![0m
Tue/Apr/23,17:57:46:[20:1] Dong![0m
Tue/Apr/23,17:57:51:[20:1] Ding![0m
2 st HC2 4.541 Beta
RH_Dreambox
Proffsmedlem
Posts: 937
Joined: 03 Jan 2015, 16:49
Location: Vegby
Contact:

24 Apr 2019, 10:08

En ny dag och nya utmaningar :D

1. Jag testade att köra "_LOCAL=false", men det funkade inte. För det är väl tänkt att man skall kunna köra HC2 direkt från emulatorn som tidigare?
Och måste då samma versionsnummer av Event Runner vara installerat i både emulator och HC2?

2. Den senaste versionen av ER ("2.0","B21") ger ett kompileringsfel när jag försöker starta det :cry:
Attachments
Error running not local.JPG
LOCAL = false
Error 2.0_B21.JPG
Kompileringsfel
2 st HC2 4.541 Beta
jang
Medlem
Posts: 87
Joined: 05 Jan 2014, 00:44
Location: Stockholm

24 Apr 2019, 11:47

RH_Dreambox wrote:
24 Apr 2019, 10:08
2. Den senaste versionen av ER ("2.0","B21") ger ett kompileringsfel när jag försöker starta det :cry:
Fixat, lite stressad så jag checkade in fel version. Nu ligger det en B22 som kompilerar.
jang
Medlem
Posts: 87
Joined: 05 Jan 2014, 00:44
Location: Stockholm

24 Apr 2019, 14:26

RH_Dreambox wrote:
24 Apr 2019, 10:08
1. Jag testade att köra "_LOCAL=false", men det funkade inte. För det är väl tänkt att man skall kunna köra HC2 direkt från emulatorn som tidigare?
Och måste då samma versionsnummer av Event Runner vara installerat i både emulator och HC2?
Ok, ytterligare en bug jag tror att jag fixat.
Har pushat "0.8","fix10" av HC2.lua där det ska fungera. Problemet var specialresurser på HC2:an som "/settings/info" "/settings/location" och "/weather" som jag hade ett problem med. Jag verkar alltid ha kört dem lokala med den nya versionen. Jag hoppas att det funkar nu.

Och kompileringsproblemet i EventRunner.lua är fixat.

Tack för att du hjälper mig att hitta felen. Det är svårt att själv köra all kombinationer... När jag får tid så ska jag uppdatera mina test-script så att jag kan fånga det mesta innan jag pushar en ny version.

När du kör emulerat på PC:n behöver det inte finnas någon EventRunner på HC:an. Emulatorn använder http API:et för att anropa resurser på den.
HC2.lua och EventRunner.lua bör vara hyfsat nya båda då EventRunner.lua när den kör offline använder en del anrop till HC2.lua (bl.a alla _System.* kommandon). När dessa ändras måste man uppdatera båda filerna, men jag brukar annonserar det.
RH_Dreambox
Proffsmedlem
Posts: 937
Joined: 03 Jan 2015, 16:49
Location: Vegby
Contact:

24 Apr 2019, 16:51

Har pushat "0.8","fix9" av HC2.lua där det ska fungera. Problemet var specialresurser på HC2:an som "/settings/info" "/settings/location" och "/weather" som jag hade ett problem med. Jag verkar alltid ha kört dem lokala med den nya versionen. Jag hoppas att det funkar nu.
Japp, nu funkar det att köra både lokalt och globalt.
Det är ett fantastiskt jobb du har lagt ned på ER. Jag har tidigare kört både GEA och LUAscheduler, men Event Runner klår dem båda i användarvänlighet.
LUAscheduler var relativt enkel att programmera men saknar vissa funktioner. GEA gav jag upp ganska omgående för det var en jobbig tröskel att komma över innan man förstod logiken.
Event Runner är både enkel, överskådlig och samtidigt har den riktigt vassa funktioner.

I nyligen publicerade HC2.lua "0.8","fix9" så har jag dock ett önskemål.
På rad 1097 står det " local attr1, err1 = lfs.attributes("HC2.lua") ", och det ställde till det för mig.
Jag har två st HC2 som har IP-nummer -11 respektive -18.
Jag har därför dubbla uppsättningar av dina filer (EventRunner-11.lua, EventRunner-18.lua samt HC2-11.lua och HC2-18.lua.
Jag skriver in i filerna vad lua och data-filerna skall heta, men nu blev det ett ställe till att ändra på.

Självklart kan jag själv leta upp och ändra rad 1097, men det var löst på ett annat sätt tidigare.
Ett stort tack än en gång för ditt fantastiska jobb med ER.
2 st HC2 4.541 Beta
jang
Medlem
Posts: 87
Joined: 05 Jan 2014, 00:44
Location: Stockholm

24 Apr 2019, 17:27

RH_Dreambox wrote:
24 Apr 2019, 16:51
Har pushat "0.8","fix9" av HC2.lua där det ska fungera. Problemet var specialresurser på HC2:an som "/settings/info" "/settings/location" och "/weather" som jag hade ett problem med. Jag verkar alltid ha kört dem lokala med den nya versionen. Jag hoppas att det funkar nu.
Japp, nu funkar det att köra både lokalt och globalt.
Det är ett fantastiskt jobb du har lagt ned på ER. Jag har tidigare kört både GEA och LUAscheduler, men Event Runner klår dem båda i användarvänlighet.
LUAscheduler var relativt enkel att programmera men saknar vissa funktioner. GEA gav jag upp ganska omgående för det var en jobbig tröskel att komma över innan man förstod logiken.
Event Runner är både enkel, överskådlig och samtidigt har den riktigt vassa funktioner.

I nyligen publicerade HC2.lua "0.8","fix9" så har jag dock ett önskemål.
På rad 1097 står det " local attr1, err1 = lfs.attributes("HC2.lua") ", och det ställde till det för mig.
Jag har två st HC2 som har IP-nummer -11 respektive -18.
Jag har därför dubbla uppsättningar av dina filer (EventRunner-11.lua, EventRunner-18.lua samt HC2-11.lua och HC2-18.lua.
Jag skriver in i filerna vad lua och data-filerna skall heta, men nu blev det ett ställe till att ändra på.

Självklart kan jag själv leta upp och ändra rad 1097, men det var löst på ett annat sätt tidigare.
Ett stort tack än en gång för ditt fantastiska jobb med ER.
Tack, det har inte varit speciellt användarvänligt att koda på HC2:an så konkurrensen har inte varit så svår... Att försöka att utveckla ER på HC2 hade varit omöjligt. Fibaro borde själv tillhandahålla bättre verktyg.

Du har rätt. Det är inte speciellt klokt att hårdkoda HC2.lua referensen. Jag vill bara vara säker på att man har sin scen-fil och HC2.lua i samma directory. Har pushat en ny version (fix11) där jag tar reda på vad HC2 filen heter så du kan ha olika namn på dem.
RH_Dreambox
Proffsmedlem
Posts: 937
Joined: 03 Jan 2015, 16:49
Location: Vegby
Contact:

25 Apr 2019, 10:31

Tack för supersnabb respons!
Det är bland annat din lyhördhet för förändringar som gör EventRunner så tilltalande :D
2 st HC2 4.541 Beta
jang
Medlem
Posts: 87
Joined: 05 Jan 2014, 00:44
Location: Stockholm

25 Apr 2019, 11:32

RH_Dreambox wrote:
25 Apr 2019, 10:31
Tack för supersnabb respons!
Det är bland annat din lyhördhet för förändringar som gör EventRunner så tilltalande :D
Jag antar att du har två olika HC2.lua filer för du har olika settings i dem? Vilka settings gör du? Jag antar att om man kunde sätta allt från ER scenen så kunde man ha samma HC2.lua fil...?
_System.setLocal
_System.setRemote
_System.speed
som finns tillgängliga i ER scener kan sätta vissa parametrar - saknar du bara HC2 access credentials?
RH_Dreambox
Proffsmedlem
Posts: 937
Joined: 03 Jan 2015, 16:49
Location: Vegby
Contact:

25 Apr 2019, 15:38

jang wrote:
25 Apr 2019, 11:32
RH_Dreambox wrote:
25 Apr 2019, 10:31
Tack för supersnabb respons!
Det är bland annat din lyhördhet för förändringar som gör EventRunner så tilltalande :D
Jag antar att du har två olika HC2.lua filer för du har olika settings i dem? Vilka settings gör du? Jag antar att om man kunde sätta allt från ER scenen så kunde man ha samma HC2.lua fil...?
_System.setLocal
_System.setRemote
_System.speed
som finns tillgängliga i ER scener kan sätta vissa parametrar - saknar du bara HC2 access credentials?
IP-adresserna är ju naturligtvis olika, men _HC2_USER och _HC2_PWD är samma för båda.
Sedan ändrar jag _HC2_FILE = "HC2-11.data" respektive _HC2_FILE = "HC2-18.data".
Att använda samma HC2.lua vore kanske bra, men det är inget som jag ens har funderat på. Jag tycker att det funkar bra med två filer.

_System.setLocal , kan vara samma för båda mina HC2.
_System.setRemote , har jag aldrig använt då jag inte har kollat upp vad den används till
_System.speed , kör jag ibland, men kan vara samma för båda mina HC2.
Credentials testade jag en gång utan framgång. Jag var osäker på vad mer än passwordet som skulle stå i den filen.

Så för min skull behöver du inte lägga krut på HC2-filen, för det är kanske inte så många som använder två eller flera HC2.
2 st HC2 4.541 Beta
jang
Medlem
Posts: 87
Joined: 05 Jan 2014, 00:44
Location: Stockholm

25 Apr 2019, 16:00

RH_Dreambox wrote:
25 Apr 2019, 15:38
_System.setRemote , har jag aldrig använt då jag inte har kollat upp vad den används till
Anta att du har en lampa med deviceID 11, och en rörelsesensor med id 12

Code: Select all

sensor=12
lampa=11

if _EMULATED then
  _System.setRemote("devices",lampa)
end

rule("sensor:breached => lampa:on")
rule("sensor:safe => lampa:off")

if _EMULATED then

  -- Test by breaching sensor
  rule("wait(00:00:05); sensor:value=1") -- Wait 5sec after startup and fake a sensor breach...
  rule("wait(00:00:10); sensor:value=1") -- Wait 10sec after startup and fake a sensor safe...
  
end
I och med att vi sätter 11 till remote så kommer den att tända den riktiga lampan.
Men det blir bättre...
Vi kan få sensorn att skicka event till vår emulator...

Code: Select all

sensor=12
lampa=11

if _EMULATED then
_System.setRemote("devices",lampa)
_System.setRemote("devices",sensor)
_System.monitorDevice(sensor,"value")
end

rule("sensor:breached => lampa:on")
rule("sensor:safe => lampa:off")
_System.monitorDevice(sensor,"value") kommer att polla HC2:an varje sekund och om device 12s 'value' ändras posta en sourceTrigger till emulatorn... ..och det kommer reglerna att trigga på.
På så sätt kan vi (nästan) köra en skarp scen på vår PC som använder live sensor och lampa... ibland har jag funderat på att köra allt på emulatorn och skippa scener på HC2:an... ;-)
Post Reply