Notifications
Clear all

Aktualizacja Domoticz do 2020.02 i problemy z Arduino  

  RSS
qusss
(@qusss)
Nowy

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.

Cytuj
Dodane : 27/05/2020 3:15 pm
wojtek_gtx
(@wojtek_gtx)
Brygadzista Donator 2019, Donator 2K20

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 ?

OdpowiedzCytuj
Dodane : 27/05/2020 4:13 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2019, 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

OdpowiedzCytuj
Dodane : 27/05/2020 5:34 pm
qusss
(@qusss)
Nowy

@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 🙂

OdpowiedzCytuj
Dodane : 27/05/2020 9:03 pm
qusss
(@qusss)
Nowy

@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 🙂

OdpowiedzCytuj
Dodane : 27/05/2020 9:06 pm
qusss
(@qusss)
Nowy

@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.

OdpowiedzCytuj
Dodane : 28/05/2020 8:17 am
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2019, 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.

OdpowiedzCytuj
Dodane : 28/05/2020 9:07 pm
Udostępnij: