Wpis z mikrobloga

Mirki, mam pytanko - czy skrypt wrzucony do /scripts/lua o nazwie scriptdevicepalnik.lua odpali się za każdym razem gdy zmieni się status urządzenia o nazwie "palnik", czy uruchomi się za każdym razem przy zmianie w jakimkolwiek urządzeniu (i dopiero wtedy sprawdzam co się zmieniło)?
#domoticz
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@NetJaro: Staraj się nie robić zbyt wiele skryptów typu device. Każdy z nich jest odpalany przy każdej zmianie w dowolnym device bo dopiero w skrypcie sprawdzasz co ma zrobić. Wydajniej jest zrobić jeden większy skrypt niż kilka mniejszych. Ja mam na wszyskie device jeden. Za to można zrobić coś innego. Wywoływać po sprawdzeniu if devicechanged inne skrypty tak by ten główny nie był za duży. np przez dofile('/home/domo/domoticz/scripts/lua/roletyopenwschod.lua')
  • Odpowiedz
@houk: dzięki wielkie :) właśnie mam problem z obsługą termostatu przez Domoticz.
Dodałem urządzenie wirtualne (Dummy), czujnik użytkowy (Thermostat, SetPoint) i jak na razie tylko aktualniam go (poprzez json) o daną wartość, która jest ustawiona na piecu (wartość tą pobieram przez USB na RPI ale to mniej ważne).
Teraz chciałbym dodać jego obsługę, abym mógl zmienić wartość termostatu na piecu poprzez Domoticz. I tutaj problem, bo urządzenie to nie obsługuje
  • Odpowiedz
@NetJaro: Sterowanie ogrzewaniem rób na skrypcie czasowym a nie on device changed. minuta w tą czy w tamtą Cię nie zbawi a szkoda tego wołać co chwila. Ja to zrobiłem tak..

if((time.min % 5)==0)then

sSalonTemp, sSalonHumidity = otherdevicessvalues['ESP4 DHT22']:match("([^;]+);([^;]+)")
  • Odpowiedz
@houk: dzięki za podpowiedź :) przy okazji pytanko, czym się różnią svalue i nvalue przy aktualizacji podczas json?
Ja akurat nie potrzebuję sterować pompami itd, mam to wszystko w piecu do centralnego ogrzewania. I zależy mi na termostacie, więc tutaj mam ten problem - bo dane aktualizuję co 5 minut (cron na linuxie, skrypt do aktualizacji w php) i jak dodam devicachanged['termostat'] to wykona mi się ten kod podczas aktualizacji
  • Odpowiedz
@NetJaro: Możesz użyć zmiennej w domo i porównywać wartość zmiennej z nastawą i jeśli różna to wtedy wykonaj kod po czym nadpisz zmienną nową wartością.

rolety = tonumber(uservariables['roletyotwarte'])

commandArray['Variable:roletyotwarte'] =
  • Odpowiedz