Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. Fehler mit mqtt Adapter - Forbidden properties

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Fehler mit mqtt Adapter - Forbidden properties

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      sebi85 last edited by

      • Adaptername: MQTT Broker/Client
      • Adapterversion: 6.0.0
      • js-controller Version: 5.0.19
      • Admin Version: 7.0.19
      • Hardwaresystem: proxmox
      • Betriebssystem: Linux
      • Nodejs-Version: v18.17.1
      • NPM-Version: 9.6.7
      • Installationsart: Skript

      Hallo zusammen,

      ich bekomme nach dem Update von iobroker (u.a. js-controller / mqtt) Fehlermeldungen bei der Auswertung der openHASP-Stati. Das Setup ist bei mir wie folgt:

      openHASP <--> mosquitto server <--> iobroker mqtt client

      Der openHASP sendet die Touchevents an den mosquitto server und von dort werden sie über den mqtt Adapter in iobroker integriert. Das hat soweit immer funktioniert - bis ich kürzlich ein Update durchgeführt hatte (seitens OpenHASP / mosquitto wurden keine Änderungen gemacht).

      Nun kommt folgende Fehlermeldung im iobroker:

      The state contains the forbidden properties event!
      

      d982fcb4-cdbe-4450-a293-cf4db59d1b01-image.png

      Der state wird leider auch nicht ordentlich von mqtt angelegt bzw. kann nicht ausgewertet werden.

      Der openHASP sendet folgende Nachricht:

      {"event" : "up", "val": 1}
      

      Der state wird durch mqtt wie folgt angelegt:

      {
        "_id": "mqtt.3.hasp.lanbon_l8.state.p1b4",
        "common": {
          "name": "hasp/lanbon_l8/state/p1b4",
          "write": true,
          "read": true,
          "role": "variable",
          "desc": "mqtt client variable",
          "type": "mixed"
        },
        "native": {
          "topic": "hasp/lanbon_l8/state/p1b4"
        },
        "type": "state",
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        },
        "from": "system.adapter.admin.0",
        "user": "system.user.admin",
        "ts": 1722159150307
      }
      

      Ich hatte zu erst den js-controller in Verdacht, aber anscheinend handelt es sich um ein Interpretationsproblem von mosquitto <--> mqtt Adapter?

      Ich hatte auch schon mit einer Version 5.0.17 des mqtt-Adapters getestet, leider ebenfalls ohne Erfolg.

      Danke für eure Hilfe und Unterstützung!

      Viele Grüße, Sebastian

      Thomas Braun mcm1957 haus-automatisierung 3 Replies Last reply Reply Quote 0
      • Thomas Braun
        Thomas Braun Most Active @sebi85 last edited by

        @sebi85 sagte in Fehler mit mqtt Adapter - Forbidden properties:

        Nodejs-Version: v18.17.1
        NPM-Version: 9.6.7

        Installier da zunächst mal

        iob nodejs-update 20
        
        1 Reply Last reply Reply Quote 0
        • mcm1957
          mcm1957 @sebi85 last edited by

          @sebi85
          Und mit genau diesem State kommt die Fehlermeldung?
          In dem State gibts keine Property "event". Da kann dann maximal der mqtt Adapter versuchen diese Property einzufügen (was falsch wäre) oder der js-controller beim Prüfen einen Bug haben.

          Lass den mqtt mal mit DEBUG laufen. Ev. sieht man dann mehr was er tut oder tun will.

          1 Reply Last reply Reply Quote 0
          • haus-automatisierung
            haus-automatisierung Developer Most Active @sebi85 last edited by haus-automatisierung

            @sebi85 sagte in Fehler mit mqtt Adapter - Forbidden properties:

            Der openHASP sendet folgende Nachricht:
            Copy to Clipboard{"event" : "up", "val": 1}

            Ja, und event ist keine gültige Eigenschaft für einen State. Daher beschwert sich da der js-controller.

            https://github.com/ioBroker/ioBroker.js-controller/blob/f54793e0236711426849de067a94a1dcf426fbfe/packages/adapter/src/lib/adapter/validator.ts#L407-L423

            mcm1957 1 Reply Last reply Reply Quote 0
            • mcm1957
              mcm1957 @haus-automatisierung last edited by

              @haus-automatisierung said in Fehler mit mqtt Adapter - Forbidden properties:

              @sebi85 sagte in Fehler mit mqtt Adapter - Forbidden properties:

              Der openHASP sendet folgende Nachricht:
              Copy to Clipboard{"event" : "up", "val": 1}

              Ja, und event ist keine gültige Eigenschaft für einen State. Daher beschwert sich da der js-controller.

              https://github.com/ioBroker/ioBroker.js-controller/blob/f54793e0236711426849de067a94a1dcf426fbfe/packages/adapter/src/lib/adapter/validator.ts#L407-L423

              Sollte das der MQTT Adapter nicht ausfiltern / bearbeiten?
              Die MQTT Nachricht wird ja (hoffentlich) nicht 1:1 in das State Objekt geschrieben.

              haus-automatisierung 1 Reply Last reply Reply Quote 0
              • haus-automatisierung
                haus-automatisierung Developer Most Active @mcm1957 last edited by

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

                mcm1957 1 Reply Last reply Reply Quote 0
                • mcm1957
                  mcm1957 @haus-automatisierung last edited by

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

                  haus-automatisierung 1 Reply Last reply Reply Quote 0
                  • haus-automatisierung
                    haus-automatisierung Developer Most Active @mcm1957 last edited by

                    Ja, hab das Problem gefunden. Wenn ein Objekt kommt, wird davon ausgegangen, dass das ein State-Objekt ist:

                    https://github.com/ioBroker/ioBroker.mqtt/blob/cba198f6e6e7a7aa99c5cbbcb288fa2d3aa921d3/lib/client.js#L460-L462

                    @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

                    S mcm1957 2 Replies Last reply Reply Quote 1
                    • S
                      sebi85 @haus-automatisierung last edited by

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

                      mcm1957 1 Reply Last reply Reply Quote 0
                      • mcm1957
                        mcm1957 @sebi85 last edited by

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

                        S haus-automatisierung 2 Replies Last reply Reply Quote 0
                        • mcm1957
                          mcm1957 @haus-automatisierung last edited by

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

                          https://github.com/ioBroker/ioBroker.mqtt/blob/cba198f6e6e7a7aa99c5cbbcb288fa2d3aa921d3/lib/client.js#L460-L462

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

                          haus-automatisierung 1 Reply Last reply Reply Quote 0
                          • S
                            sebi85 @mcm1957 last edited by

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

                            1 Reply Last reply Reply Quote 0
                            • haus-automatisierung
                              haus-automatisierung Developer Most Active @mcm1957 last edited by

                              @mcm1957 https://github.com/ioBroker/ioBroker.mqtt/pull/467

                              klein0r created this issue in ioBroker/ioBroker.mqtt

                              closed Just handle messages as state object if properties are valid #467

                              1 Reply Last reply Reply Quote 0
                              • haus-automatisierung
                                haus-automatisierung Developer Most Active @mcm1957 last edited by haus-automatisierung

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

                                mcm1957 S 2 Replies Last reply Reply Quote 0
                                • mcm1957
                                  mcm1957 @haus-automatisierung last edited by

                                  @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/443

                                  Nur 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)

                                  knylbyte created this issue in ioBroker/ioBroker.mqtt

                                  open JSON Payload wird nicht richtig verarbeitet -> falsche Datenpunkte #443

                                  1 Reply Last reply Reply Quote 1
                                  • mcm1957
                                    mcm1957 last edited by

                                    Betreffend binary states hab ich mal ein Issue erstellt
                                    https://github.com/ioBroker/ioBroker.mqtt/issues/468
                                    und Moritz per TG angepingt

                                    mcm1957 created this issue in ioBroker/ioBroker.mqtt

                                    closed Adapter uses binary states #468

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      sebi85 @haus-automatisierung last edited by

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

                                      haus-automatisierung 1 Reply Last reply Reply Quote 0
                                      • haus-automatisierung
                                        haus-automatisierung Developer Most Active @sebi85 last edited by

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

                                        S 1 Reply Last reply Reply Quote 1
                                        • S
                                          sebi85 @haus-automatisierung last edited by

                                          @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"
                                          
                                          haus-automatisierung 1 Reply Last reply Reply Quote 0
                                          • haus-automatisierung
                                            haus-automatisierung Developer Most Active @sebi85 last edited by

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

                                            S 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            527
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            35
                                            1798
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo