Jak spoza modułu wyświetlić dane?
W pierwszej części pokazałem, jak wyświetlić dane z czujnika na wyświetlaczu NEXTION.
Często zachodzi potrzeba wyświetlenia wartości z czujników które są podłączone w innych modułach ESPEASY.
W module ESPEASY do którego podłączony jest wyświetlacz pozostawiamy takie same ustawienia jak w poprzedniej części.
Zostawiamy tylko jeden wpis w liście komend.
Projekt w NextionEditor:
Plik hmi
Projekt zawiera wyłącznie pola tekstowe. Z uwagi na to że pola number w Nextion mogą wyświetlać tylko liczby całkowite do wyświetlenia wartości które mają część dziesiętną lepiej zastosować pola typu tekst.
Oprócz modułu ESPEASY do którego podłączony jest wyświetlacz mam trzy moduły z czujnikami temperatury. Wszystkie czujniki przekazują dane do systemu Domoticz.
Moduł ESPEASY tworzy coś w rodzaju pomostu pomiędzy siecią a portem szeregowym do którego podłączony jest wyświetlacz.
Komendy które normalnie przesyłamy poprzez UART do wyświetlacza można wstawić do zapytania http typu GET.
Przykład:
Wpisanie w pasku adresu przeglądarki:
http://192.168.8.130/control?cmd=NEXTION,page0.t2.txt="Hello world"
spowoduje wyświetlenie w polu tekstowym t2 napisu Hello world.
Domoticz
W Domoticz przechodzimy do konfiguracja->urządzenia i zapamiętujemy nazwy interesujących nas termometrów.
- Temperatura pieca
- Termometr za oknem
- Termometr pokój TV
Przechodzimy do Konfiguracja -> Więcej opcji -> Zdarzenia
Tworzymy nowy skrypt w LUA.
commandArray = {}
-- loop through all the changed devices
for deviceName,deviceValue in pairs(devicechanged) do
if (deviceName=='Temperatura pieca') then
commandArray['OpenURL']='http://192.168.8.130/control?cmd=NEXTION,page0.t2.txt="'..tostring(deviceValue)..'"'
end
if (deviceName=='Termometr za oknem') then
commandArray['OpenURL']='http://192.168.8.130/control?cmd=NEXTION,page0.t4.txt="'..tostring(deviceValue)..'"'
end
if (deviceName=='Termometr pokój TV') then
commandArray['OpenURL']='http://192.168.8.130/control?cmd=NEXTION,page0.t2.txt="'..tostring(deviceValue)..'"'
end
end
return commandArray
Od tego momentu jeżeli tylko przyjdzie jakieś zdarzenie z termometru zostanie wywołana komenda Open URL która wysyła do modułu ESPEASY z wyświetlaczem odpowiednie dane.
W następnej części:
Jak obsługiwać przyciski na wyświetlaczu w systemie Domoticz.