QA och lokala variabler i ZeroBrane Studio

Post Reply
User avatar
RH_Dreambox
Z-Wave Kung
Posts: 1192
Joined: 03 Jan 2015, 16:49
9
Location: Vegby
Contact:

Efter ett litet missöde med en QA så har jag börjat använda ZeroBrane Studio för att få koll på vad min QA (eller scen) har för sig då man trycker på "play"-knappen.
Det mesta fungerar jättebra, men jag kan inte få lokala QA-variabler att fungera i ZeroBrane.
Globala variabler är OK, men lokala QA-variabler blir bara NIL. Gör jag något fel eller varför funkar det inte?
Jag har en liten kodsnutt nedan som visar problemet.

Code: Select all

function QuickApp:onInit()
    self:debug("onInit")

  self.tempSensorID = tonumber(self:getVariable("Temp_Sensor_ID"))
  self.valveSwitchID = tonumber(self:getVariable("Valve_Switch_ID"))
  self.localCloud = fibaro.getGlobalVariable("cloudValue")
  
setInterval(
        function()
            self:main()
       end,
        1000 * 60
    )
    self:main()
end

function QuickApp:main()
self:debug("Function main har startat")
print("A ",self.tempSensorID)
print("B ",self.valveSwitchID)
print("C ",self.localCloud)
Svaret blir...
A nil
B nil
C 96.1

och debuggen visar...

[27.02.2021] [16:44:52] |[31;1mERROR[0m|: QuickApp crashed: fibaroapiHC3.lua:364: Wrong parameter type, number required. Provided param 'nil' is type of nil
fibaroapiHC3.lua:364: Wrong parameter type, number required. Provided param 'nil' is type of nil
stack traceback:
fibaroapiHC3.lua:5604: in function <fibaroapiHC3.lua:5602>
[C]: in function 'error'
fibaroapiHC3.lua:275: in function '__assert_type'
fibaroapiHC3.lua:295: in function '__fibaro_get_device_property'
fibaroapiHC3.lua:364: in function 'get'
fibaroapiHC3.lua:368: in function 'getValue'
...tudio\myprograms\HC3\Bevattningsautomatik Cloud 2021.lua:49: in function 'main'
...tudio\myprograms\HC3\Bevattningsautomatik Cloud 2021.lua:23: in function 'onInit'
fibaroapiHC3.lua:1416: in function '__init'
fibaroapiHC3.lua:2634: in function 'QuickApp'
fibaroapiHC3.lua:1917: in function 'start'
fibaroapiHC3.lua:5598: in function 'fun'
fibaroapiHC3.lua:1107: in function <fibaroapiHC3.lua:1095>
[C]: in function 'xpcall'
fibaroapiHC3.lua:5601: in function 'startUp'
fibaroapiHC3.lua:5625: in main chunk
[C]: in function 'dofile'
...tudio\myprograms\HC3\Bevattningsautomatik Cloud 2021.lua:7: in function <...tudio\myprograms\HC3\Bevattningsautomatik Cloud 2021.lua:1>
...tudio\myprograms\HC3\Bevattningsautomatik Cloud 2021.lua:138: in main chunk
Program completed in 0.45 seconds (pid: 14008).
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

Du måste initialisera dina QA variabler i den emulerade versionen i ZBS.

Code: Select all

if dofile and not hc3_emulator then
  hc3_emulator = {
    name="Bevattningsautomatik Cloud 2021",
    type="com.fibaro.deviceController",
    poll=1000,
    quickVars = {Temp_Sensor_ID=55, Valve_Switch_ID=66 },
  }
  dofile("fibaroapiHC3.lua")
end
User avatar
RH_Dreambox
Z-Wave Kung
Posts: 1192
Joined: 03 Jan 2015, 16:49
9
Location: Vegby
Contact:

Tack jang, nu rullar det på som det skall. Är det något mer man behöver tänka på när det gäller QA i ZeroBrane Studio?
EDIT..
Det fanns mycket läsvärd information då jag började kolla i menyerna :idea:
Jag uppskattar verkligen allt arbete du har lagt ned på att "porta" ZBS mot både HC2 och HC3.
Hade jag använt det här verktyget tidigare så hade inte min HC3 krashat som den gjorde vid den senaste uppdateringen.
Jag skyllde problemen på uppdateringen, men jag kom på att det var jag själv som stod för haveriet, och orsaken var ett bortglömt sleep-kommando :oops: :oops: :oops:
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: 28 Feb 2021, 10:52 Tack jang, nu rullar det på som det skall. Är det något mer man behöver tänka på när det gäller QA i ZeroBrane Studio?
Jo, det är en del... ;)

Man ska tänka så att "master" är QA:an man utvecklar i ZBS. När man är nöjd så laddar man upp den till HC3:an och så ska det fungera. Om du använder ZBS plugin så finns det ett menykommando som packar ihop QA;an i ZBs editorn och laddar upp den till HC3:an.
Sedan att slå på proxy så att en proxy version av QA:an startas på HC3:an. Det gör att man kan testa UI/knappar och att andra scener/QAs på HC3:an kan prata med den.
Emulatorn gör det också enkelt att bygga QA:s bestående av flera filer. Då kan man ha biblioteksfiler med kod man återanvänder.

Håller på med en ny version av emulatorn som kommer att bli lite mer avancerad...
Post Reply