Z Domoticza do ESP ...
 
Powiadomienia
Wyczyść wszystko

Domoticz Z Domoticza do ESP Easy

22 Wpisów
4 Użytkownicy
1 Likes
473 Wyświetleń
(@dzozef)
Wpisów: 10
Bywalec
Autor tematu
 

W Domoticzu jest taka funkcja SetPoint. Czy jest możliwość wysyłania tej wartości do ESP Easy na ESP8266 np. do utworzonego Generic - Dummy Device? Potrzebuję zrobić na ESP termostat z możliwością ustawienia temperatury w Domoticzu. Jak to ogarnąć?

 
Dodane : 27/12/2023 10:32 pm
isom
 isom
(@isom)
Wpisów: 5085
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@dzozef nie znam espeasy, ale zapytam w jakim celu chcesz pchać nastawę termostatu do tego ESP? Przecież termostat dużo łatwiej zrobisz w samym Domoticz. Miałoby to sens gdyby ten termostat miał działać bez udziału Domoticza, ale skoro zadana ma być z Domoticz to bez niego i tak nic z tego.

 
Dodane : 28/12/2023 8:16 pm
(@dzozef)
Wpisów: 10
Bywalec
Autor tematu
 

Chodzi o to żeby ESP było samodzielnym regulatorem po zerwaniu połączenia WI-Fi. Czasami się tak zdarza. W Domoticzu ustawiam temperaturę a regulator na ESP ją wykonuje nawet po zerwaniu połączenia WI-Fi.

 
Dodane : 28/12/2023 8:39 pm
pawell32
(@pawell32)
Wpisów: 1200
Guru
 

Dodane przez: @dzozef

W Domoticzu jest taka funkcja SetPoint. Czy jest możliwość wysyłania tej wartości do ESP Easy na ESP8266 np. do utworzonego Generic - Dummy Device? Potrzebuję zrobić na ESP termostat z możliwością ustawienia temperatury w Domoticzu. Jak to ogarnąć?

możliwość jest. tu masz opis komend:

https://www.letscontrolit.com/wiki/index.php/ESPEasy_Command_Reference

jak potrzebujesz dokładniej to podaj więcej szczegółów. Nie wiem jaki masz wyświetlacz, jak działa ten "termostat". Ogólnie wartości wysyłasz po mqtt lub http, a resztę ogarniasz regułami w espeasy.

 

 
Dodane : 28/12/2023 9:02 pm
(@dzozef)
Wpisów: 10
Bywalec
Autor tematu
 

Wysyłanie po http ogarniam. Wpisując np. http://192.168.69.46/control?cmd=GPIO,12,0   mogę sterować pinem GPIO-12. Ale nie mam pojęcia jakiej komendy użyć żeby wysłać wartość setpointu. Może źle składam polecenie? Używałem takie: http://192.168.69.46/SendTo taskValueSet 5,1,Settings -nie działa

 
Dodane : 28/12/2023 10:33 pm
isom
 isom
(@isom)
Wpisów: 5085
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Powtórzę, nie znam ESPEasy , ale gdybym miał taki plan, to najpierw w domoticz odczyt tego SetPoint , jego wartość zapisana do zmiennej, którą może odczytać ESP i dopiero wysyłka.

Przykład dla http i tasmoty 

 http://192.168.1.11/cm?cmnd=mem1%2022 

Taki url ustawia wartość zmiennej mem1 na 22 i tą wartość mogę odczytać w konsoli tasmoty, oraz podstawić w regule termostatu 

Jeśli w ESPEasy masz do dyspozycji jakieś zmienne to może warto zamiast próbować wysyłać to do wirtualnego urządzenia wysłać do zmiennej, a jej wartość podstawić w swoim termostacie.

 
Dodane : 28/12/2023 10:49 pm
pawell32
(@pawell32)
Wpisów: 1200
Guru
 

Dodane przez: @dzozef

Wysyłanie po http ogarniam.

Po pierwsze zmiana stanu gpio to tylko część, czytaj dalej. Po drugie nie podałeś jak masz to zrobione i do czego konkretnie się masz odnieść.

Jeśli odnosisz się do Dummy to:

http://ip/control?cmd=taskvalueset,12,1,23    12 - nr zadania, 1 - numer,  23 - wartość jaką wprowadzasz.

 

 
Dodane : 29/12/2023 2:18 am
(@dzozef)
Wpisów: 10
Bywalec
Autor tematu
 

@pawell32 To polecenie działa - http://192.168.69.45/control?cmd=GPIO,12,0. To polecenie - http://192.168.69.45/control?cmd=TaskValueSet 5,1,25 -już nie. Tylko nie chodzi mi o ręczne przesłanie jednej wartości do ESP Easy. Chodzi o to aby po zmianie ustawienia w Domoticzu:

obraz

ta informacja poszła do ESP do Dummy Device.

Może nie da się w ten sposób i trzeba to zrobić z użyciem skryptu. Niestety w pisaniu skryptów nie mam doświadczenia.

 
Dodane : 29/12/2023 4:36 pm
pawell32
(@pawell32)
Wpisów: 1200
Guru
 

@dzozef 1. pokaż jak wygląda u Ciebie to espeasy, u mnie takie polecania działają

2. by sterować to z Domoticza trzeba za pomocą skryptu, kiedyś coś takiego chyba robiłem. Odczytujesz wartość dummy w Domoticz i wysyłasz do espeasy. Nie wiem czy w blockly tego nie da się zrobić.

 
Dodane : 29/12/2023 6:14 pm
(@dzozef)
Wpisów: 10
Bywalec
Autor tematu
 

@pawell32 Nie wiem co dokładnie chcesz zobaczyć:

obraz

To jest testowy ESP. Na razie nic nie chodzi na nim.

 
Dodane : 29/12/2023 6:25 pm
pawell32
(@pawell32)
Wpisów: 1200
Guru
 

na co chcesz wysłać? masz dual

obraz

zmień i sprawdź

 
Dodane : 29/12/2023 6:45 pm
(@dzozef)
Wpisów: 10
Bywalec
Autor tematu
 

No w tasku 5 mam Generic-Dummy Device tyle że w momencie robienia zdjęcia były w dualu. Dodałem single i też nic. Z Domoticza mam taki log: Error opening url: http://192.168.69.45/SendTo TaskValueSet 7,1,22

 
Dodane : 29/12/2023 7:08 pm
pawell32
(@pawell32)
Wpisów: 1200
Guru
 

http://10.10.10.27/control?cmd=taskvalueset,12,1,24.1

obraz

jaki masz interwał?

 
Dodane : 29/12/2023 9:42 pm
pawell32
(@pawell32)
Wpisów: 1200
Guru
 

@dzozef jak to wysyłasz? u mnie działa np.:

obraz
 
Dodane : 29/12/2023 9:52 pm
(@dzozef)
Wpisów: 10
Bywalec
Autor tematu
 

Przepraszam ale do dzisiaj byłem poza domem. Zauważyłem błąd w mojej składni: http://192.168.69.45/control?cmd=taskvalueset, [tutaj miałem spacje zamiast przecinka]5,1,25 Teraz wysyła wartość do Dummy. Połowa sukcesu. Teraz jeszcze pytanie jak zamienić stałą wartość na wartość ustawioną?

 
Dodane : 02/01/2024 10:36 pm
pawell32
(@pawell32)
Wpisów: 1200
Guru
 

@dzozef spóbuj taki skrypt dcvents:

local NazwaCzujnika="czujnik"
commandArray = {}
if devicechanged[NazwaCzujnika] then
commandArray['OpenURL']='192.168.69.45/control?cmd=taskvalueset,5,1:'..otherdevices_svalues[NazwaCzujnika]..' '
end
return commandArray

u mnie działa i wysyła dane z czujnika. Z termostatu nie zadziałało mi, trzeba nieco to przerobić. Ja nie wiem co idzie nie tak.

 
Dodane : 03/01/2024 2:42 am
isom
 isom
(@isom)
Wpisów: 5085
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Dodane przez: @pawell32

Z termostatu nie zadziałało mi, trzeba nieco to przerobić

Pierwsze to nie jest skrypt dzVents, tylko LUA. a nie działa z termostatem, bo termostat sam się nie aktualizuje tak jak czujnik. 

Skrypt musi być wyzwalany czasem, albo termostat musi się aktualizować co jakiś czas.

 
Dodane : 03/01/2024 2:14 pm
ROSOMAK
(@rosomak)
Wpisów: 5
Bywalec
 

Witam.
Ja mam właśnie zrbione w taki sposób jak pisze @isom.
Mam 2 skrypty.
Jeden updatuje wartość po zmianie wartości termostatu a drugi co jakiś czas.
Pewnie to nie jest to eleganckie ale zrobiłem kilka lat temu i nadal działa 😀

przekaz setpoint w momencie zmiany w domoticzu:

commandArray = {}
for deviceName,deviceValue in pairs(devicechanged) do
    print ("Device based event fired on '"..deviceName.."', value '"..tostring(deviceValue).."'");
    if (deviceName=='Termostat Parents Bedroom') then
           commandArray[1]={['OpenURL'] = " usunięty link  }
   end
end
return commandArray

 

upadte setpoint co jakiś czas (10min):

commandArray = {}

local m = os.date('%M')

if (m % 10== 0) then
	print("Update termostatow co 10 min")
	local parents_value = tonumber(otherdevices_svalues['Termostat Parents Bedroom']);
    commandArray[1]={['OpenURL'] = " usunięty link  }
end
return commandArray

 

 

 
Dodane : 04/01/2024 10:04 pm
(@dzozef)
Wpisów: 10
Bywalec
Autor tematu
 

Rozumiem jak to powinno działać ale niestety nie potrafię pisać skryptów. W Blockly jeszcze coś potrafię poskładać ale w Lua to na tą chwilę za dużo. Gdyby ktoś podpowiedział jakie zmienne do czego służą.

 
Dodane : 07/01/2024 9:33 pm
ROSOMAK
(@rosomak)
Wpisów: 5
Bywalec
 

Witam.
Tu nie bardzo jest co tłumaczyć.

 

commandArray = {}

--przypisanie zmiennej m minut z czasu sytemowego
local m = os.date('%M')   

--warunek: jezeli reszta z dzielenia zmiennej m przez 10 wynosi 0 (czyli jezeli jest pelna 10 minuta czasu rzeczywistego) to:
if (m % 10 == 0) then 
	
	-- przypisz zmiennej 'wartosc_termostatu' zamieniona na liczbe wartosc textowa z urzadzenia w Domoticzu o nazwie 'Nazwa_termostatu'
	local wartosc_termostatu = tonumber(otherdevices_svalues['Nazwa_termostatu']);  
    
    --wpisz do tablicy Array komende ktora wysle event o nazwie 'SetPoint' z wartoscia rowna zmiennej 'wartosc termostatu' na adres IP Twojego  ESP Easy
    commandArray[1]={['OpenURL'] = "adres_IP_ESPEasy/control?cmd=event,SetPoint="..(wartosc_termostatu) }
-- koniec warunku if    
end

--poczatek petli przez tabele urzadzen ze zmainami
for deviceName,deviceValue in pairs(devicechanged) do
  
  --warunek: jezeli nazwa urzadzenia jest rowna nazwie Twojego termostatu w Domoticz ('Nazwa_termostatu') to
  if (deviceName=='Nazwa_termostatu') then
      
      --wpisz do tablicy Array komende ktora wysle event o nazwie 'SetPoint' z wartoscia rowna obiektowi 'deviceValue' na adres IP Twojego  ESP Easy
      commandArray[1]={['OpenURL'] = "adres_IP_ESPEasy/control?cmd=event,SetPoint="..(deviceValue) }
   --koniec warunku
   end
--koniec petli  
end



return commandArray

W rules ESP musisz sobie utworzyć coś w Stylu:

on SetPoint do 
TaskValueSet 6,1,%eventvalue%
endon 

 

Jak dalej nie ogarniesz to napisz jak się nazywa Twój termostat w Domoticzu, jaki jest adres IP ESP który ma te dane odebrać i numer urządzenia.

 
Dodane : 07/01/2024 10:50 pm
isom reacted
Strona 1 / 2
Udostępnij: