[NUKI Smartlock] Neuer Thread

Begonnen von CoolTux, 26 November 2021, 20:05:55

Vorheriges Thema - Nächstes Thema

grappa24

2022.08.10 09:32:52 3: NUKIBridge WEBHOOK (myNukiBridge) - Received webhook for matching NukiId at IODev myNukiBridge
2022.08.10 09:32:52 3: NUKIBridge WEBHOOK (myNukiBridge) - Received webhook for matching NukiId at IODev myNukiBridge


Warum wird der immer zweimal protokolliert ???
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

Gary

Habe festgestellt, dass der Umlaut "ü" im Namen meines Nuki-Geräts "Eingangstüre" zu Problemen in FHEM führt.

Konkret gibt es alle paar Sekunden eine Meldung "Connection lost, trying a reconnect every 5 seconds" bei FHEM-Ansichten, wo das Gerät drauf ist. In der Browserkonsole steht der Fehler "Could not decode a text frame as UTF-8.":

Rcvd:
fhemweb.js:1333 WebSocket connection to 'ws://10.0.0.6:8083/fhem?XHR=1&inform=type%3Dstatus%3Bfilter%3Droom%3DHome%3Bsince%3D1662831297.6231601%3Bfmt%3DJSON&fw_id=20534&timestamp=1662831329402' failed: Could not decode a text frame as UTF-8.
FW_longpoll @ fhemweb.js:1333
patchedCallback @ VM37:132
fhemweb.js:576 19:35:54.372 ERRMSG:Connection lost, trying a reconnect every 5 seconds.<
fhemweb.js:576 19:35:59.282 ERRMSG:<


Seit ich das Gerät auf "Eingangstuere" in Nuki umbenannt habe geht es wieder. Ich lasse es jetzt mal bei mir so, aber vielleicht gibt es ja eine nachhaltigere Lösung. In FHEM versuche ich Umlaute für Devices eh zu vermeiden, aber in diesem Fall kommt der Name halt direkt von Nuki.

Klinki

Hallo Forum,

Seit letzter Woche funktionieren die Nuki-Geräte gar nicht mehr. Muss seit einem der letzten Updates passiert sein. Leider kann ich den genauen Zeitpunkt nicht definieren.
Bei einem Neustart bootet fhem quasi im Kreis.
Ich wusste mir nicht anders zu helfen als die NUKI-pm-Module zu löschen; die Nuki-Geräte inkl. Bridge aus der fhem.cfg zu entfernen und dann neu zu starten.
Jetzt kann ich den Befehl zu Bridge-Erstellung im fhem aufrufen:
define NBridge1 NUKIBridge 192.168.3.156 412885
aber sie taucht anschließend nicht auf.

Im Log erscheinen folgende Meldungen
2022.09.26 10:14:29.638 3: NUKIBridge (NBridge1) - defined with host 192.168.3.xxxx on port 8080, Token xxxxxx
2022.09.26 10:14:29.638 2: NUKIBridge (NBridge1) - Registering NUKIBridge for webhook URI /NUKIBridge-192.168.3.xxx ...
2022.09.26 10:14:30.065 2: autocreate: define WohnungTuer NUKIDevice 803083229 4
2022.09.26 10:14:30.071 3: NUKIDevice (WohnungTuer) - I/O device is NBridge1
2022.09.26 10:14:30.071 3: NUKIDevice (WohnungTuer) - defined with NukiId: xxxxxx
2022.09.26 10:14:30.072 3: NUKIDevice (WohnungTuer) - change model
2022.09.26 10:14:30.073 2: NUKIDevice (WohnungTuer) - GetUpdate Call IOWrite
2022.09.26 10:14:30.252 2: autocreate: define Haustuer NUKIDevice 813116668 4
2022.09.26 10:14:30.259 3: NUKIDevice (Haustuer) - I/O device is NBridge1
2022.09.26 10:14:30.259 3: NUKIDevice (Haustuer) - defined with NukiId: xxxxx
2022.09.26 10:14:30.260 3: NUKIDevice (Haustuer) - change model
2022.09.26 10:14:30.261 2: NUKIDevice (Haustuer) - GetUpdate Call IOWrite
2022.09.26 10:14:30.561 3: NUKIBridge (NBridge1) - URL ist: http://192.168.3.20:8083/fhem/NUKIBridge-192.168.3.156
encountered object '0', but neither allow_blessed, convert_blessed nor allow_tags settings are enabled (or TO_JSON/FREEZE method missing) at lib/FHEM/Devices/Nuki/Bridge.pm line 878.
2022.09.26 10:14:30.960 1: PERL WARNING: Perl exited with active threads:
        1 running and unjoined
        0 finished and unjoined
        0 running and detached


Fhem und OS habe ich gestern das letzte Mal geupdatet - ohne Verbesserung. Meine perl-Version ist die 5.32.1.
Ich bin etwas ratlos...

Gruß,
klinki

CoolTux

Bin auch ratlos. Sowohl Bridge als auch 2 Geräte wurden angelegt. Die letzte Meldung muss ich mir genauer anschauen. Kommt mir seltsam vor
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Die Fehlermeldung hat was mit encode_json zu tun. Wieso das bei Dir kommt ist mir aber ein rätsel da ich genau die selbe perl Version habe wie Du.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Klinki

hm...die letzten Änderungen an meinem fhem betrafen das Modul "WOLF_ISM8I". Das Modul kann nicht disabled werden - deshalb habe ich es auskommentiert. Siehe da: Die Nukis sind wieder da und tun was sie sollen. Ohne Fehlermeldung.

Das ist jetzt ein bisschen doof: Ich habe ziemlich viel an der Heizungssteuerung herumgebastelt und kann dies nur schwer aufgeben...

Aber jetzt ist zumindest mal die Fehlerquelle eingegrenzt. Erfahrungsgemäß ist es ja immer die letzte Änderung.
Der Tipp mit der Problematik im JSON-Modul war der entscheidende. Danke Dir!

rudolfkoenig

Mein Bauchgefuehl sagt, dass das verwendete Perl JSON Bibliothek nicht mit threads, was im WOLF_ISM8I Modul verwendet wird, harmoniert.

Koenntest Du bitte testweise die gemeldete Zeile 878 in lib/FHEM/Devices/Nuki/Bridge.pm ($json = encode_json($decode_json);) durch
$json = main::toJSON($decode_json);
austauschen, und berichten?

Apropos: es waere interessant zu wissen, welche der vielen moeglichen JSON Bibliotheken verwendet wird.

Klinki

fhem startet wieder, es werden aber Fehler geloggt:
2022.09.26 13:25:16.361 1: PERL WARNING: Argument "toJSON: Cannot encode 0" isn't numeric in numeric eq (==) at lib/FHEM/Devices/Nuki/Device.pm line 589.
2022.09.26 13:25:16.361 1: PERL WARNING: Argument "toJSON: Cannot encode 0" isn't numeric in numeric eq (==) at lib/FHEM/Devices/Nuki/Device.pm line 593.
2

und:
2022.09.26 13:28:41.701 1: PERL WARNING: Perl exited with active threads:
        1 running and unjoined
        0 finished and unjoined
        0 running and detached



Dennoch scheinen Nuki und Wolf zu laufen.

rudolfkoenig

Zitat2022.09.26 13:25:16.361 1: PERL WARNING: Argument "toJSON: Cannot encode 0" isn't numeric in numeric eq (==) at lib/FHEM/Devices/Nuki/Device.pm line 593.
D.h. dass durch Verwendung des WOLF Moduls in den Datenstrukturen etwas reingekommt, was laut Pruefung keine Zahl, eine Referenz, aber nicht ARRAY oder HASH ist. Das stoert sowohl meinen primitiven JSON-Konverter, aber auch das "professionelle" JSON Modul.

Koenntest bitte in der gleichen Datei (Bridge.pm) vor toJSON / encode_json Folgendes einfuegen:
use Data::Dumper;
Log 1, "NUKIJSON: ".Dumper($decode_json);

und berichten?

Klinki

Sorry, aber ich habe leider nicht viel Ahnung von Perl. Dein "Log 1" hat nicht funktioniert. Ich habe mich an Log-Methode des Moduls orientiert und folgendes eingefügt: use Data::Dumper;

::Log3($name,3, Dumper($decode_json));
$json = main::toJSON($decode_json);


Hier die Ausgabe:

2022.09.26 14:20:39.077 3: $VAR1 = {
          'state' => 3,
          'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
          'mode' => 2,
          'batteryChargeState' => 72,
          'batteryCharging' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
          'stateName' => 'unlocked',
          'nukiId' => 813116668,
          'batteryCritical' => $VAR1->{'batteryCharging'}
        };

2022.09.26 14:20:39.086 1: PERL WARNING: Argument "toJSON: Cannot encode 0" isn't numeric in numeric eq (==) at lib/FHEM/Devices/Nuki/Device.pm line 589.
2022.09.26 14:20:39.086 1: PERL WARNING: Argument "toJSON: Cannot encode 0" isn't numeric in numeric eq (==) at lib/FHEM/Devices/Nuki/Device.pm line 593.

CoolTux

Ich verstehe nicht ganz wieso er JSON::PP verwendet. Das ist das allerletzte Fallback wenn gar keine anderen JSON Module zu finden sind.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Zitat von: Klinki am 26 September 2022, 12:33:35
hm...die letzten Änderungen an meinem fhem betrafen das Modul "WOLF_ISM8I". Das Modul kann nicht disabled werden - deshalb habe ich es auskommentiert. Siehe da: Die Nukis sind wieder da und tun was sie sollen. Ohne Fehlermeldung.

Das ist jetzt ein bisschen doof: Ich habe ziemlich viel an der Heizungssteuerung herumgebastelt und kann dies nur schwer aufgeben...

Aber jetzt ist zumindest mal die Fehlerquelle eingegrenzt. Erfahrungsgemäß ist es ja immer die letzte Änderung.
Der Tipp mit der Problematik im JSON-Modul war der entscheidende. Danke Dir!

Das Modul ist aber nicht offiziell, oder? Wo hast Du das her?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Klinki

Hatte im Forum eine Hinweis darauf gefunden und bin dann auf GitHub gelandet: https://github.com/qyqsoft/ISM8I
Trinidad ist wohl der Autor und hat eine eigene Seite: https://tips-und-mehr.de/wolf-heizanlagen-mit-ism8i-schnittstellenmodul-ueberwachen-und-in-fhem-auswerten/

Der Thread ist dieser hier: https://forum.fhem.de/index.php/topic,72063.0.html

rudolfkoenig

ZitatHier die Ausgabe:
Danke. Verstehe aber immer noch nicht, wieso JSON::PP, wenn das WOLF Modul geladen ist, sein selbst dekodiertes Objekt nicht wieder nach JSON konvertieren kann.

Die Loesung koennte daraus bestehen, eine andere JSON Bibliothek zu verwenden (JSON::MaybeXS, Cpanel::JSON::XS, JSON::XS).

CoolTux

Ich muss gestehen das ich in diesem Wolf Modul nichts in Bezug auf JSON finden kann. Ich bin da glaube blind.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net