NEWS
Fehler mit mqtt Adapter - Forbidden properties
-
@mcm1957 sagte in Fehler mit mqtt Adapter - Forbidden properties:
Sollte das der MQTT Adapter nicht ausfiltern / bearbeiten?
Ich schaue gerade mal im Code.
Ich könnte mir vorstellen, dass das als State-Objekt interpretiert wird, sobald JSON kommt. -
@haus-automatisierung
Danke
Wär aber eher wild
Damit könnte eine mqtt Nachricht so ziemlich alles durcheinanderbringen. Wenn das wirklich so gewollt ist, muss der mqtt Adapter wohl da eine Whitelist bearbeiten und nur "unkritische" Dinge (wie z.B. val) übernehmen.Nebenschauplatz:
Ich hab auch grad in den COde geschaut (ohne ihn wirklich u verstehen :-)). Aber wenn ich's richtig gesehen habe stehen da noch BINARY STATEs Aufrufe drinnen. Wenn du schon stöberst, kannst du da schaun ib da Handlungsbedarf für js-controlelr 6 wäre oder ob das nur alter Fallback Code ist? -
Ja, hab das Problem gefunden. Wenn ein Objekt kommt, wird davon ausgegangen, dass das ein State-Objekt ist:
@mcm1957 sagte in Fehler mit mqtt Adapter - Forbidden properties:
Aber wenn ich's richtig gesehen habe stehen da noch BINARY STATEs Aufrufe drinnen.
Ja, bin ich gerade auch schon drüber gestolpert, ... noch recht viele Themen offen dort
-
@haus-automatisierung vielen Dank für die schnelle Analyse.
Fällt dir spontan eine Möglichkeit ein, wie ich das als Endanwender irgendwie umgehen/beheben kann?
-
@sebi85
Da das zuerst mal eine Warning ist gehe ich davon aus, dass im Prinzip die Funktion (noch) gegeben ist. Wenn das stimmt kannst du die Warning zunächst mal ignorieren. Oder ev. den Loggin Level auf error stellen. -
@haus-automatisierung said in Fehler mit mqtt Adapter - Forbidden properties:
Ja, hab das Problem gefunden. Wenn ein Objekt kommt, wird davon ausgegangen, dass das ein State-Objekt ist:
@mcm1957 sagte in Fehler mit mqtt Adapter - Forbidden properties:
Aber wenn ich's richtig gesehen habe stehen da noch BINARY STATEs Aufrufe drinnen.
Ja, bin ich gerade auch schon drüber gestolpert, ... noch recht viele Themen offen dort
Danke - DU BIST SPITZE !
Kannst du das in ein Issue gießen? Ich nehme an du hast nicht grad Lust / Zeit das zu fixen. Die Binary States kann ja ev. Moritz ansehen - der hat das bei einigen anderen Adaptern schon umgestellt.
-
@mcm1957 said in Fehler mit mqtt Adapter - Forbidden properties:
@sebi85
Da das zuerst mal eine Warning ist gehe ich davon aus, dass im Prinzip die Funktion (noch) gegeben ist. Wenn das stimmt kannst du die Warning zunächst mal ignorieren. Oder ev. den Loggin Level auf error stellen.Die Funktion ist leider nicht gegeben, er aktualisiert den state nicht bzw. schreibt den von openHASP gelieferten Wert nicht in den state - somit funktionieren alle weiteren Automatisierungen auch nicht.
-
-
@mcm1957 sagte in Fehler mit mqtt Adapter - Forbidden properties:
Da das zuerst mal eine Warning ist gehe ich davon aus, dass im Prinzip die Funktion (noch) gegeben ist.
Nein, da der State dann gar nicht geschrieben wird. Mich wundert ehrlich gesagt, dass das bisher nicht aufgefallen ist.
@mcm1957 sagte in Fehler mit mqtt Adapter - Forbidden properties:
Die Binary States kann ja ev. Moritz ansehen - der hat das bei einigen anderen Adaptern schon umgestellt.
Das wär schön - ansonsten packe ich das bei mir mit auf ToDo.
-
@haus-automatisierung said in Fehler mit mqtt Adapter - Forbidden properties:
@mcm1957 sagte in Fehler mit mqtt Adapter - Forbidden properties:
Da das zuerst mal eine Warning ist gehe ich davon aus, dass im Prinzip die Funktion (noch) gegeben ist.
Ist es:
https://github.com/ioBroker/ioBroker.mqtt/issues/443Nur konnte es Ingo nicht erkennen um was es da geht. Ev. kannst du das beim Issue ergänzen (und wenn du den Zugriff hast) Question auf Bug ändern)
-
Betreffend binary states hab ich mal ein Issue erstellt
https://github.com/ioBroker/ioBroker.mqtt/issues/468
und Moritz per TG angepingt -
@haus-automatisierung danke für deine Anpassung, ich habe es jetzt erneut mit der Version 6.0.1 des mqtt-Adapters getestet - sieht grundsätzlich erstmal "besser" aus.
Mein Problem ist aber leider immer noch da, weil der mqtt-Adapter den Typ des Objects von "object" auf "mixed" umstellt und somit greift dann die von dir erstellte Routine nicht mehr
Ich bekomme die Daten einmalig aktualisiert (siehe javascript-Adapter-Ausgabe) und anschließend setzt der mqtt-Client den Objekttyp auf "mixed" und es funktioniert leider nicht mehr.
mqtt.3 2024-08-07 11:02:10.833 warn Error while setting state "mqtt.3.hasp.lanbon_l8.state.p1b4" for Client: Error: The state contains the forbidden properties event! mqtt.3 2024-08-07 11:02:10.806 info Client: Changed type of "mqtt.3.hasp.lanbon_l8.state.p1b4" from "object" to "mixed" javascript.0 2024-08-07 11:02:10.685 info script.js.Eigene_Skripte.Ueberwachung.Lonbon_OpenHasp: DATA {"event":"down","val":0}
Kann ich den mqtt-Adapter daran hindern den Typen zu hindern oder müsste ggf. dein Fix auch für "mixed"-Objekte integriert werden?
-
@sebi85 sagte in Fehler mit mqtt Adapter - Forbidden properties:
weil der mqtt-Adapter den Typ des Objects von "object" auf "mixed"
Die Objekte werden doch alle als
mixed
angelegt, oder nicht?Bitte NIE manuell an Objekten rumspielen, welche man nicht selbst angelegt hat. Nie nie nie.
-
@haus-automatisierung nein, es wird erst als "object" angelegt und dann umgestellt auf "mixed" (durch den mqtt-Adapter, ich habe da manuell nichts gemacht).
Folgendes Vorgehen hatte ich durchgeführt:
- Stoppen der mqtt3 Instanz
- Löschen des p1b4 Objekts
- Starten der mqtt3 Instanz
- Triggerung des events am Lanbon
Durch die Triggerung des events wird durch den mqtt-Client das Objekt angelegt und anschließend anscheinend direkt geändert. Bei der Erstanlage bekomme ich die Daten auch richtig angezeigt/gelesen - nur dann ändert er das Objekt auf "mixed" und es klappt nicht mehr.
mqtt.3 2024-08-07 11:22:48.170 warn Error while setting state "mqtt.3.hasp.lanbon_l8.state.p1b4" for Client: Error: The state contains the forbidden properties event! mqtt.3 2024-08-07 11:22:48.146 info Client: Changed type of "mqtt.3.hasp.lanbon_l8.state.p1b4" from "object" to "mixed"
-
@sebi85 sagte in Fehler mit mqtt Adapter - Forbidden properties:
es wird erst als "object" angelegt und dann umgestellt auf "mixed"
Das sollte nicht so sein. Aus meiner Sicht sollten die alle mixed sein. Muss ich mir in einer ruhigen Minute mal anschauen.
-
@haus-automatisierung sofern es als "mixed" definiert ist, würde aber auch der von dir integrierte Fix nicht mehr funktionieren (weshalb ich dann auch wieder den Fehler
The state contains the forbidden properties event!
erhalte.
-
@sebi85 Warum? Ich habe das eigentlich ausführlich getestet. Du bist aber schon im Client-Mode, oder? Im Server-Mode habe ich das nicht angeschaut.
-
@haus-automatisierung für mich sieht es so aus als würde der Code nur durchlaufen werden wenn das Object auch vom Typ "object" ist.
Initialer Start (mqtt legt das Objekt in diesem Zuge auch an, es ist vorher nicht vorhanden):
Hier ist die Meldung auch erhalten und er speichert es im Objekt ab --> erster Lauf funktioniert. Allerdings ändert er dann (siehe info-Meldung) automatisch den Typ auf "mixed".
Jegliche weitere Änderung wird dann ignoriert und die obige gelbe Zeile kommt auch nicht mehr.
Ich hätte jetzt vermutet, dass hier dein Code nicht durchlaufen wird, weil er das Objekt gar nicht als solches erkennt:
-
Hallo zusammen, gibt es bereits eine überarbeitete Version des mqtt Adapters oder einen alternativen Workaround um die OpenHASP Stati korrekt auszulesen?
Vielen Dank.
-
@sebi85 sagte in Fehler mit mqtt Adapter - Forbidden properties:
Initialer Start (mqtt legt das Objekt in diesem Zuge auch an, es ist vorher nicht vorhanden):
Hier ist die Meldung auch erhalten und er speichert es im Objekt ab --> erster Lauf funktioniert. Allerdings ändert er dann (siehe info-Meldung) automatisch den Typ auf "mixed".
Der Typ sollte eigentlich immer
mixed
bleiben. So werden ja alle Objekte vom MQTT-Adapter angelegt. Oder habe ich etwas übersehen? Die Idee war ja auch nicht, dass man den Zustandstyp aufobject
ändert, sondern nur den Wert korrekt als JSON speichert. Das scheint im ersten Lauf ja auch geklappt zu haben. Ziel sollte also sein: Typmixed
+ JSON als Wert.@sebi85 sagte in Fehler mit mqtt Adapter - Forbidden properties:
Jegliche weitere Änderung wird dann ignoriert und die obige gelbe Zeile kommt auch nicht mehr.
Das sollte natürlich nicht so sein. Müsste ich noch einmal in Ruhe testen. Kostet leider alles extrem viel Zeit (und die habe ich gerade nicht).