Mew-01 integracja z domoticzem przez MQTT

rafalk
Posty: 5
Rejestracja: śr mar 10, 2021 12:04 pm

Witam

Pomoże ktoś przy takim zabiegu? Domoticz stoi na windowsie. Nie potrzebuję wielkich fajerwerków, tylko odczyt chwilowego zużycia.

Pozdrawiam
kurczak2
Posty: 2
Rejestracja: pt mar 05, 2021 6:09 pm

Przyłączam się do prośby o integrację MEW-01 z Domoticz. Nie wiem, czy czyta to ktoś z firmy ZAMEL, ale kupiłem ten licznik, bo gdzieś wyczytałem, że Supla współpracuje z Domoticz. Niestety nie doczytałem, że z MEW-01 nie współpracuje. Zapewniam, że jeśli byłyby dostępne integracje z Domoticz, HA i innymi Openubami sprzedaż tych urządzeń znacznie by wzrosła. Nie jestem programistą i nie umiem sobie napisać takiej integracji, a na forach nie widać pomocy dla początkujących.
Awatar użytkownika
pzygmunt
Posty: 18282
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontakt:

Integracja z HA jest. Co do gotowca dla Domoticza/OpenHUB-a musicie uzbroić się w cierpliwość.
s_pol
Posty: 33
Rejestracja: pt mar 08, 2019 9:13 pm

Podziel się moim rozwiązaniem, co prawda z pominięciem brokera mqtt, ale świetnie się spisuje w domoticz.
Poszczególne kroki jakie trzeba wykonać to:
1. utworzenie linku bezpośredniego w cloud SUPLA,
2. dodanie w domoticz nowego sprzętu, wg poniższych ustawień, tj. url = link z pkt. 1 oraz w polu polecenie nazwę skryptu lua

Screenshot_20210415_204424.png
Screenshot_20210415_204424.png (142.33 KiB) Przejrzano 3581 razy
3. utworzenie w domoticz wirtualnych czujników (odpowiedni typów) oraz zapamiętanie numerów tych czujników

4. utworzenie w katalogu "/domoticz/scripts/lua_parsers" skryptu lua, u mnie Licznik_energii.lua, który ma za zadanie pobrać dane z mewki i zapisać je do określonych czujników z pkt. 3

Kod: Zaznacz cały

-- Retrieve the request content
s = request['content'];

-- Update some devices (index are here for this example)
local id = 29
local p = domoticz_applyJsonPath(s,'.phases[0].totalForwardActiveEnergy') + domoticz_applyJsonPath(s,'.phases[1].totalForwardActiveEnergy') + domoticz_applyJsonPath(s,'.phase$
local w = domoticz_applyJsonPath(s,'.phases[0].powerActive') + domoticz_applyJsonPath(s,'.phases[1].powerActive') + domoticz_applyJsonPath(s,'.phases[2].powerActive')

local p_cal = math.floor(p)

-- pobieranie wartości natężenia dla każdej fazy
local a1 = domoticz_applyJsonPath(s,'.phases[0].current')
local a2 = domoticz_applyJsonPath(s,'.phases[1].current')
local a3 = domoticz_applyJsonPath(s,'.phases[2].current')
local a = (a1..";"..a2..";"..a3)

-- pobieranie wartości mocy dla każdej fazy
local w1 = domoticz_applyJsonPath(s,'.phases[0].powerActive')
local w2 = domoticz_applyJsonPath(s,'.phases[1].powerActive')
local w3 = domoticz_applyJsonPath(s,'.phases[2].powerActive')
local w_1_3 = (w1..";"..w2..";"..w3)

-- pobieranie wartości napięcia dla każdej fazy
local v1 = domoticz_applyJsonPath(s,'.phases[0].voltage')
local v2 = domoticz_applyJsonPath(s,'.phases[1].voltage')
local v3 = domoticz_applyJsonPath(s,'.phases[2].voltage')


-- przesyłanie danych do domoticz
domoticz_updateDevice(186,'',w..";"..p*1000)
domoticz_updateDevice(228,'',p*1000)
domoticz_updateDevice(188,'',a,'','')
domoticz_updateDevice(229,'',w_1_3,'','')
domoticz_updateDevice(221,'',v1)
domoticz_updateDevice(222,'',v2)
domoticz_updateDevice(223,'',v3)

rafalk
Posty: 5
Rejestracja: śr mar 10, 2021 12:04 pm

I o to mi chodziło, wielkie dzięki dobry człowieku :)
broni1
Posty: 4
Rejestracja: czw maja 13, 2021 10:02 am

Witam, jak będzie wyglądał skrypt do odczytu temperatury ?
Tomasz999
Posty: 1
Rejestracja: wt mar 15, 2022 5:01 pm

Odczyty z monitora energii elektrycznej Supla MEW 01 w Domoticz można uaktywnić za pomocą powyższej metody. Właśnie to zrobiłem choć namęczyłem się niemiłosiernie (nie znam się na programowaniu i nie jestem biegły w takich "zabawach", więc musiałem się domyślać i kombinować jak "koń pod górę" ;-)
Mam aktualnie następujące odczyty: energia czynna (sumarycznie z wszystkich faz) [W], energia czynna pobrana [kWh], Natężenie prądu na wszystkich fazach [A], napięcie prądu na każdej z faz [V]. Dziękuję użytkownikowi s_pol za wszystkie rady i zaproponowany sposób działania :) Mam kilka uwag, które mogą pomóc zainteresowanym taką integracją.

1. Powyższy skrypt zawiera drobne błędy, które muszą być poprawione, żeby wszystko działało. Poniżej wklejam spkrypt z poprawkami.
2. W sekcji: "przesyłanie danych do domoticz" należy wpisać idx każdego z czujników wirtualnych utworzonych w domoticzu. Tutaj uwaga nie wszystkie witualne czujniki - liczniki działają poprawnie. U mnie sprawdziły się następujące czujniki:
- czujnik "Licznik" do zliczania kWh
- czujnik "Amperaż 3 Fazy" - do wyświetlania natężenia
- czujnik "Napięcie" - dla każdej z faz należy utworzyć osobny czujnik i przypisać do niego właściwą fazę - w sumie tworzymy 3 czujniki
- czujnik "Zużcie (Energia elektryczna)" - w sekcji skryptu "przesyłanie danych do domoticz" wpisujemy:
domoticz_updateDevice(58,'',w..";"..p*1000) gdzie przykładowy numer "58" to numer idx czujnika wirutalnego "Zużycie Energia Elektrzyczna". Numer ten należy zapamiętać podczas tworzenia czujnika. Według podobnej zasady przypisujemy pozostałe idx dla każdego z wyżej utworzonych czujników
Powodzenia!

Skrypt:

-- Retrieve the request content
s = request['content'];

-- Update some devices (index are here for this example)
local id = 52
local p = domoticz_applyJsonPath(s,'.phases[0].totalForwardActiveEnergy') + domoticz_applyJsonPath(s,'.phases[1].totalForwardActiveEnergy') + domoticz_applyJsonPath(s,'.phases[2].totalForwardActiveEnergy')
local w = domoticz_applyJsonPath(s,'.phases[0].powerActive') + domoticz_applyJsonPath(s,'.phases[1].powerActive') + domoticz_applyJsonPath(s,'.phases[2].powerActive')

local p_cal = math.floor(p)

-- pobieranie wartości natężenia dla każdej fazy
local a1 = domoticz_applyJsonPath(s,'.phases[0].current')
local a2 = domoticz_applyJsonPath(s,'.phases[1].current')
local a3 = domoticz_applyJsonPath(s,'.phases[2].current')
local a = (a1..";"..a2..";"..a3)

-- pobieranie wartości mocy dla każdej fazy
local w1 = domoticz_applyJsonPath(s,'.phases[0].powerActive')
local w2 = domoticz_applyJsonPath(s,'.phases[1].powerActive')
local w3 = domoticz_applyJsonPath(s,'.phases[2].powerActive')
local w_1_3 = (w1..";"..w2..";"..w3)

-- pobieranie wartości napięcia dla każdej fazy
local v1 = domoticz_applyJsonPath(s,'.phases[0].voltage')
local v2 = domoticz_applyJsonPath(s,'.phases[1].voltage')
local v3 = domoticz_applyJsonPath(s,'.phases[2].voltage')

-- przesyłanie danych do domoticz
domoticz_updateDevice(58,'',w..";"..p*1000)
domoticz_updateDevice(59,'',p*1000)
domoticz_updateDevice(52,'',a,'','')
domoticz_updateDevice(253,'',w_1_3,'','')
domoticz_updateDevice(54,'',v1)
domoticz_updateDevice(55,'',v2)
domoticz_updateDevice(56,'',v3)
ODPOWIEDZ

Wróć do „Domoticz”