Closed ozogp closed 2 years ago
Zacząłbym od podejrzenia na poziomie serwera MQTT, co do niego przychodzi - czy za każdym razem wpadają informacje o wszytskich parametrach ? Jeśli nie, to będę musiał się temu przyjrzeć :)
Dzień dobry,
za radą ustawiłem klienta MQTT do nasłuchiwania komunikacji z Inwertera do Domoticza.
Komunikacja jak najbardziej odbywa się co 2 minuty.
mqtt: https://ibb.co/5rN2r5C
log: https://ibb.co/CvvdBWK
Genaralnie jak widać w ramach jednej sesji wysyła np. 1 lub 2 komunikaty o stanie.
Patrząc od strony samego Domoticza z terminala: https://ibb.co/6DBRW4z wszystko wygląda OK, dane pobierają się i wyświetlają prawidłowo. Generalnie nie ma się czego czepić.
Tu widok Domoticza: https://ibb.co/Xb35rVr wyraźnie widać kiedy był pełny odczyt 7:48 na wszystkich Device a kiedy tylko na 2 (8:20) lub 3 (8:18). Oczywiście konfiguracja jest identyczna przez cały czas :)
OK, dzięki za info. Postaram się zajrzeć do tego w niedzielę :)
Dziekuję, widok Domoticza z dzisiaj: https://ibb.co/LvXyG6c
Przeprowadziłem dzisiaj szybkie testy integracji z Domoticzem via MQTT i u mnie zachowuje się to poprawnie. Wszystkie komunikaty wysyłane przez skrypt docierają do MQTT, a co za tym idzie do Domoticza. Ja korzystam z Mosquitto. Włącz verbose=1 w configu i podeślij zrzut ekranu z output'u skryptu - tam powinna być informacja co dokładnie skrypt próbuje wysłać do MQTT. Podeślij też zrzut z tego, co dociera do MQTT (tak, aby było widać dokładnie wszystkie komunikaty - wraz z ich zawartością - np. jakiś zrzut z konsoli, a nie GUI).
Witam, również mam Mosquitto LOG MQTT: https://ibb.co/RYRGmY7 , https://ibb.co/RYM85yc TERMINAL DOMOTICZA: https://ibb.co/vYDFJkZ , https://ibb.co/fQ57CSj , https://ibb.co/LvPM5P1 DOMOTICZ WWW: https://ibb.co/8z8fQt8 Niestety nie wiem jaką funkcję włączyć aby było eweidentnie widać jakie są wartości pobierane przez Mosquitto.
Z outputu skryptu wynika, że wysyła wszystkie komunikaty do MQTT. Podeślij listę komunikatów MQTT, ale nie z logu MQTT tylko np. z polecenia (podstaw swoje wartości pod IP, usera i hasło :) ): mosquitto_sub -v -h MOSQUITTO_IP -p 1883 -u USER -P 'HASŁO' -t 'domoticz/in/#' Najpierw odpal powyższą komendę, potem w innym terminalu skrypt monitorujący. Podeślij to, co się pojawi jako output z powyższej komendy po zakończeniu pracy skryptu.
1 wykonanie skryptu https://ibb.co/rcf83dV
wynik 1 od strony Domoticza https://ibb.co/6WCvTLm
2 wykonanie skryptu https://ibb.co/njWVJZz
Takie mam przypisanie IDX do nazw https://ibb.co/hKmZ6wv
Zastanawiający jest komuniakt z logów MQTT: Client inverter closed its connection po odczytaniu kilku wartości - tu losowo.
Może jakiś time out ?
Ok, już coś więcej widać, ale nie przesłałeś zrzutów z output samego skryptu, aby skorelować jedno z drugim. Odpal jeszcze raz (albo kilka razy) i wrzuć zrzuty ze skryptu i MQTT (ze skryptu tylko wycinki z info o przesłani do MQTT).
Pierwsza iteracja skryptu: TERMINAL DOMOTICZA: https://ibb.co/3vLY1YT , https://ibb.co/vjbymd8 , https://ibb.co/jTFNgB3 , https://ibb.co/YhdXXMW MQTT: https://ibb.co/xfHwwSF DOMOTICZ: https://ibb.co/VL1fCsj Przesłał 7 wartości do Domoticz
Druga iteracja skryptu - 12:52 TERMINAL DOMOTICZA: https://ibb.co/fnTrtGq , https://ibb.co/NjWNxnd , https://ibb.co/VHwC0Mg , https://ibb.co/Bzk3nzf MQTT: https://ibb.co/jrHZjTF DOMOTICZ: https://ibb.co/sqdFWrx Przesłał 2 wartości do Domoticz
W drugim przypadku do MQTT dotarło 9 wiadomości - tak gwoli szczegółu. Co nie zmienia faktu, iż nie docierają wszystkie wysyłane, a tych jak widać powinno obyć, jeśli dobrze liczę, 17. Rzeczywiście wygląda jakby było zrywane połączenie. Zastanawiam się czy w grę tu nie wchodzi fakt, iż Mosquitto jest w kontenerze. Ja mam postawione normalnie na OSie i nie obserwuję takich objawów. Ale jeszcze popatrzę.
Dobra, już chyba wiem w czym problem :) Postaram się wrzucić poprawkę niebawem.
W drugim przypadku do MQTT dotarło 9 wiadomości - tak gwoli szczegółu.
- To jest screen MQTT łączny z 1 i 2 iteracji, "idx": 636 - jest tu wyznacznikiem, został on odczytany 2 krotnie podczas 2 iteracji.
Dobra, już chyba wiem w czym problem :) Postaram się wrzucić poprawkę niebawem.
Byłoby świetnie, na podstawie stabilnych i powtarzalnych odczytów z Invertera chciałbym wykonać automatykę w kontekście: jeżeli napięcie na fazie L1,L2,L3 jest za wysokie to włącz grzałkę na zasobniku wody, klimę itd.
Poprawka do skryptu wpadła do GITa :) Zassaj, przetestuj i daj znać.
Poprawka do skryptu wpadła do GITa :) Zassaj, przetestuj i daj znać.
Czy mogę przegrać stare pliki config.cfg, SOFARMap.xml, SOFARHWMap.xml?
Tak, do podmiany jest tylko sam skrypt.
Trzy iteracje skryptu MQTT: https://ibb.co/jHrVMXf
niestety nie czyta wszystkich wartości, ale w mojej ocenie jest poprawa, czyta więcej niż poprzednio, może zwiększyć jakiś parametr jeszcze.
Patrząc od strony terminala Domoticza wykonywanie samego skryptu się zwolniło ale przechodzi dokładnie jak te wcześniejsze więc nie pisałem.
A jak to wygląda w logu MQTT ? Nadal jest info o zerwaniu połączenia przed publikacją wszystkich komunikatów ?
LOG MQTT: https://ibb.co/KN161yf
(15:59) po 2 godz, wykonałem skrypt ponownie, efekt, wszystkie wartości pojawiły się w Domoticz. Przywróciłem crone ze skryptem, zwiększyłem tylko wartość z 2 min do 10 min. Czekam na efekty :)
Wrzuciłem kolejny fix - tym razem wszystkie komunikaty są wysyłane jako jedna komenda, więc nie powinno mieć miejsca przerwanie publikacji w trakcie. Poprzednia wersja jednak chyba nie będzie działać poprawnie w niektórych przypadkach, ale już też chyba wiem jak to ogarnąć. Także w razie czego dwa rozwiązania są do przetestowania :) Do podmiany tylko sam skrypt.
[1.61] - działa - z różnym skutkiem końcowym, ale działa [1.62] - nie działa - nie ma żadnych informacji w Domoticz i MQTT nie otrzymuje żadnych informacji, w terminalu skrypt pokazuje infomacje które uzyskał z Invertera.
Oczywiście podmieniłem tylko plik skryptu InverterData.py
Wrzuciłeś skrypt, który dzisiaj zacommitowałem ? (1.63)
Przepraszam, widzę tylko wersję ostatnią 1.62 https://ibb.co/wKYDKpN Może patrzę nie w to miejsce co trzeba.
Głównej wersji nie zmieniałem na razie. Zrób normalne pull'a i zobacz jaką wersję masz w skrypcie wpisaną. Albo porównaj to, co masz lokalnie z tym co widać w GIT (w www możesz sobie otworzyć plik klikając w niego)
Mea culpa. czy możesz wstawić wersję skryptu 1.62, cały czas korzystałem 1.61 - przepraszam.
Zaciągnij to, co jest w GIT (najnowszą wersję - w pliku powinna być widoczna jako 1.63)
Dobra, zrobiłem Ci wersję 1.64.
Dzień dobry, przepraszam, że dopiero teraz ale ferie :) Podegrałem wersję 1.64 skryptu, zweryfikowałem aby mieć pewność. Skrypt się wykonyje na terminalu jest OK, ale nic nie wpada do Domoticza, ani nic nie ma w logach MQTT. Czy możemy wrócić do wersji 1.62 - obecnie mi działa wersja skryptu 1.61. Przepraszam za zamieszanie
Wrzuciłem wersję 1.65 - przetestuj to (do podmiany sam skrypt)
Pobrałem skrypt, wgrałem go na PRD. Wykonałem ręcznie 9:48 - pobrał wszystkie wartości i wpisał do Domoticz. o 9:50 wykonał się skrypt z crone - pobrał i wpisał wszystkie wartości do Domoticza. o 9:54 ręcznie - pobrał wszystkie wartości i wpisał do Domoticz.
Poczekam do 10:00 - będzie kolejne wykonanie skryptu z crone . Napisze jaki wynik. W tytule jest # Version: 1.64 ale jego zmiana jest z 9:30.
[edit] o 10:00 wykonał się skrypt z crone - pobrał i wpisał wszystkie wartości do Domoticza.
Chyba jest gitara :) dobrze zaczął się ten tydzień :)
Na zdrowie :)
o 10:10 wykonał się skrypt z crone - pobrał i wpisał wszystkie wartości do Domoticza. o 10:20 wykonał się skrypt z crone - pobrał i wpisał wszystkie wartości do Domoticza.
Bardzo dziekuję, atakuję teraz automatyzację. Napięcia na inverterze zbliżają się pod 250 V muszę w takich przypadkach pozałączać grzałkę na bojlerze, klimę, bo się wyłączy
Tak tylko z ciekawości chciałem dopytać w czym tkwił problem ?
Jest stabilnie, można zamykać :) i udostępniać jako nowy realase.
Moja konfiguracje na której to działa to: NAS Synology, Docker z Domoticz oraz Mosquitto
Problem polegał na tym, iż połączenie do MQTT było zamykane szybciej niż schodziły komunikaty. Wymagane było zastosowanie dodatkowej procedury loop i kilku innych patentów. Co do wersji w skrypcie, to zostanie poprawiona :)
Witam, szukam przyczyny conajmniej dziwnego zachowywania pozyskanych danych lub ich braku w Domoticz. Instancja Domoticz 2021.1 (build 13949) (Synology-Docker) - chcę pozyskać 12 danych z inwertera (Moc PV1,Moc PV2, Napięcie PV1, Napięcie PV2, Prąd PV, Prąd PV2, Dzienna produkcja, Całkowita produkcja, Moc czynna, Napięcie L1, Napięcie L2, Napięcie L3, Temperatura falownika, Temperatura modułu. Wszystkie potrzebne virtualne urządzenia w Domoticz utworzone, skrypty poprawnie odpowiadają i wyświetlają się kompletne wyniki na terminalu - wszystko wygląda ok. Jednak raz tylko część danych pojawia się w Domoticz (np. 3 lub 2) , raz pojawiają się wszystkie które zostały skonfigurowane (12). Nie jest to regularne - zazwyczaj zawsze jest Napięcie PV1. Skrypt działa przez crone co 2 min. zmiana na inny czas np 10 min. też nie dała rezultatu. Może jakiś pomysł?