Aktualizacja Domoti...
 
Powiadomienia
Wyczyść wszystko

Domoticz Aktualizacja Domoticz do 2020.02 i problemy z Arduino

8 Wpisów
3 Użytkownicy
0 Reactions
1,626 Wyświetleń
(@qusss)
Wpisów: 5
Bywalec
Autor tematu
 

Witajcie.

 

Po krótkich bojach z aktualizacją Domoticza do wersji 2020.02 zauważyłem niespójność pomiędzy wersjami. Chodzi o dane które są przesyłane do serwera mqtt. W poprzedniej wersji 4.10717 gdy wykonywałem subscribe dla danego kanału to pojawiały się dane, np.

{
"Battery" : 255,
"RSSI" : 8,
"description" : "",
"dtype" : "Temp + Humidity",
"id" : "82136",
"idx" : 136,
"name" : "Łazienka piętro",
"nvalue" : 0,
"stype" : "THGN122/123/132, THGR122/228/238/268",
"svalue1" : "25.90",
"svalue2" : "38.60",
"svalue3" : "0",
"unit" : 1
}

A tu te same dane po aktualizacji Domoticza do 2020.02

{
"Battery" : 255,
"RSSI" : 8,
"description" : "",
"dtype" : "Temp + Humidity",
"hwid" : "5",
"id" : "82136",
"idx" : 136,
"name" : "\u0141azienka pi\u0119tro",
"nvalue" : 0,
"stype" : "THGN122/123/132, THGR122/228/238/268",
"svalue1" : "25.90",
"svalue2" : "38.60",
"svalue3" : "0",
"unit" : 1
}

Różnica: brak polskich liter i dodatkowy element w postaci "hwid". Nie stanowiłoby to problemu, gdyby pozostałe urządzenia Arduino które mam spięte z domoticzem i są połączone z serwerem MQTT nie przestały działać.

Dodam, że Arduino rozpoznaje urządzenie które ma włączyć po idx i wartościach nvalue i svalue1, a te nie uległy radykalnym zmianom przy przejściu na nowszą wersję domoticza.

 

To część kodu z Arduino odpowiedzialnego za rozpoznawanie urządzenia które ma włączyć:

void obsluga(int idx, int nvalue, float svalue1, float svalue2)
{
if (idx == 96) {
if (nvalue==1 && svalue1>=0) {digitalWrite(przekaznikSWIATLOdrewutnia,LOW);}
if (nvalue==0 && svalue1>=0) {digitalWrite(przekaznikSWIATLOdrewutnia,HIGH);}}
if (idx == 97) {
if (nvalue==1 && svalue1>=0) {digitalWrite(przekaznikSWIATLOhalogenDREWUTNIA,LOW);}
if (nvalue==0 && svalue1>=0) {digitalWrite(przekaznikSWIATLOhalogenDREWUTNIA,HIGH);}}
}

Czy ktoś spotkał się z podobnym problemem po aktualizacji Domoticza ? Będę bardzo wdzięczny za wszelką pomoc.

 
Dodane : 27/05/2020 3:15 pm
wojtek_gtx
(@wojtek_gtx)
Wpisów: 540
Ekspert Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K22, Donator 2K24
 

He he ja już 3 razy podchodziłem do podniesienia wersji i za każdym razem fiasko. Nie chce mi się zrobić update Ubuntu do 18.04.

A czy podnosiłeś wersję do bety czy do stabilnej ?

 
Dodane : 27/05/2020 4:13 pm
isom
 isom
(@isom)
Wpisów: 5109
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@qusss Jeżeli w kodzie używałeś pętli zwrotnej dla domoticz/ out , to może być problem . W nowej wersji współpraca domoticz z brokerem mqtt została przebudowana i o ile nie miało to wpływu na domoticz/ in to już z domoticz/ out w wielu przypadkach po prostu przekaźniki przestały działać.

Pozostaje albo się cofnąć ( jak masz kopię ) albo zaktualizować do wersji gdzie będziesz mógł wybrać czy chcesz korzystać z tej pętli czy nie 

 1
 
Dodane : 27/05/2020 5:34 pm
(@qusss)
Wpisów: 5
Bywalec
Autor tematu
 

@wojtek_gtx Podniosłem do stabilnej, beta wychodzi co chwile i nie ufam 😛 Ja nie mogłem zrobić upgradu bo mam bananapi. Instalowałem Armbian buster na świeżo i na tym OS działa domoticz bez problemu. Nowa i stara wersja. Poprzednio miałem RPi3 ale po 2 latach karta SD zaczęła sypać błędami i się totalnie wykrzaczyło wszystko. Dodam że używam także EmonCMS który co 10sekund zbiera dane o poborze prądu z innego Arduino i korzysta przy tym z mysql, więc zapisy były nieliche. Postanowiłem więc, że przejde na BananaPi z dyskiem SSD żeby mieć święty spokój 🙂

 
Dodane : 27/05/2020 9:03 pm
(@qusss)
Wpisów: 5
Bywalec
Autor tematu
 

@isom Dzięki, sprawdzę opcję z pętlą, oczywiście w kodzie Arduino taki właśnie wykorzystuje. Backup mam, tylko twardziele nie robią backupu 🙂

 
Dodane : 27/05/2020 9:06 pm
(@qusss)
Wpisów: 5
Bywalec
Autor tematu
 

@isom To jednak nie chodzi o pętle. Problem leży gdzie indziej. Po zmianach w MQTT w najnowszej Domoticz polskie litery są nieprawidłowo interpretowane, zamiast ł mamy \u0141 i zamiast ę - \u0119. To stwarza problem dla bibliotek jsona w Arduino które rozdzielają zmienne. Sprawdziłem i jeżeli jest chociaż jedna polska litera to zawsze wszystkie wartości nvalue, svalue1 i svalue2 w Arduino wskazują 0 więc siłą rzeczy przekaźnik przy wartości 0 nigdy się nie włączy. Zgłosze problem na oficjalnym forum domoticza, może naprawią ten błąd. Wystarczy żeby wrócili do stanu jaki był w wersji 4.10717 gdzie polskie litery były poprawne.

 
Dodane : 28/05/2020 8:17 am
isom
 isom
(@isom)
Wpisów: 5109
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@qusss z tymi polskimi znakami masz 100% racji ale sprzężenie zwrotne też namieszało . Dla sprawdzenia wgrałem testowo espeasy gdzie żeby wysterować przekaźnik po mqtt trzeba użyć helpera mqtt i jak zmienię nazwę przełącznika tak że zawiera polski znak  przekaźnik martwy , bez polskich znaków chula aż miło.

 
Dodane : 28/05/2020 9:07 pm
(@qusss)
Wpisów: 5
Bywalec
Autor tematu
 

Witajcie,

Po 5 miesiącach odgrzewam temat. Polskie litery nadal pozostały bez zmian, są nieczytelne. Przekaźniki na arduino zaczęły poprawnie działać, podejrzewam że za sprawą nowych bibliotek ArduinoJson w wersji 6.16.1

Dodatkowo mam mosquitto version 1.6.9 mosquitto is an MQTT v3.1.1 broker na systemie Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-48-generic 86_64)

Wygląda na to że wszystko działa poprawnie. Temat uważam za zamknięty, mam nadzieję że posłuży innym użytkownikom podczas podobnych problemów.

 

 
Dodane : 13/10/2020 9:45 am
Udostępnij: