Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. IoBroker out funktioniert nicht

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    IoBroker out funktioniert nicht

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

      Hallo zusammen, ich beschäftige mich noch nicht lange mit Node-Red und will Datenpunkte mit Node Red in IoBroker schreiben, leider klappt das nicht so recht.

      Es kommt der Fehler "Cannot set state". Muss ich noch irgendwo Berechtigungen setzten oder spezielle Instanzeinstellungen im Node-Red Adapter vornehmen?

      f053b066-d34a-494e-814c-94918dd1e8a2-image.png

      3dfd1fc3-2eec-4edd-bf69-027fc729e803-image.png

      8100762d-1d6c-473c-a1ac-2ff3300b802e-image.png

      Danke u. Grüße

      haselchen mickym 2 Replies Last reply Reply Quote 0
      • haselchen
        haselchen Most Active @Diamand2k22 last edited by

        @diamand2k22

        Der Meister ist bestimmt schon unterwegs 🙂

        @mickym

        1 Reply Last reply Reply Quote 1
        • mickym
          mickym Most Active @Diamand2k22 last edited by mickym

          @diamand2k22 sagte in IoBroker out funktioniert nicht:

          Muss ich noch irgendwo Berechtigungen setzten oder spezielle Instanzeinstellungen im Node-Red Adapter vornehmen?

          Ja du musst das Erstellen von Fremdobjekten zulassen.

          5f190c9f-d591-41f8-b05d-629d34e4ff82-image.png

          und auch darauf achten, dass Du keine Zustände in Strings wandelst.

          P.S. Ich würde mir aber gleich angewöhnen ohne JS und function Nodes zu arbeiten und die Debug Node auf das Kabel zu legen ist vielleicht auch nicht so schön. 😉

          D 1 Reply Last reply Reply Quote 1
          • D
            Diamand2k22 @mickym last edited by Diamand2k22

            @mickym

            Vielen Dank für den Tipp!
            Es funktioniert nun! Erfolgreich einen Wert aus meinem BacNet Controller ausgelesen.

            ed7d831b-3d1e-4c65-9434-bbad5ef01dfe-image.png

            aktuelle function node:

            dbc1ff29-0db3-4130-892b-205ac8936462-image.png

            wie würdest du es ohne den function node machen?

            Danke u. Grüße

            mickym 1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active @Diamand2k22 last edited by mickym

              @diamand2k22 So würde ich das machen:

              Erst prüfen, ob bzw. filtern, ob der Wert vorhanden ist:
              a9cd5522-d320-49df-8f7f-8137ef46072f-image.png
              und dann mit einer Change Nodes die Eigenschaften setzen
              7cd28889-2740-4e0c-a8f0-e950fe0f49e2-image.png

              hier der Import:

              [
                 {
                     "id": "94164f9b920c7f98",
                     "type": "switch",
                     "z": "7e6af0015415146d",
                     "name": "payload.values[0].value ?",
                     "property": "payload.values[0].value",
                     "propertyType": "msg",
                     "rules": [
                         {
                             "t": "nnull"
                         }
                     ],
                     "checkall": "true",
                     "repair": false,
                     "outputs": 1,
                     "x": 350,
                     "y": 7420,
                     "wires": [
                         [
                             "e54bd90250f5722f"
                         ]
                     ]
                 },
                 {
                     "id": "e54bd90250f5722f",
                     "type": "change",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "rules": [
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "payload.values[0].value",
                             "tot": "msg"
                         },
                         {
                             "t": "set",
                             "p": "topic",
                             "pt": "msg",
                             "to": "0_userdata.0.Datenpunkte.PXE30.Raumtemperatur",
                             "tot": "str"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 610,
                     "y": 7420,
                     "wires": [
                         []
                     ]
                 }
              ]
              

              EDIT: in der ersten Change Node hat das s bei values[0] gefehlt.

              Wie oft gesagt, kannst natürlich programmieren mit Javascript, aber das macht halt die Vorteile der grafischen Programmierung und des Debuggens kaputt. So kannst du halt nach der Switch Node eine Debug Node machen und sehen, ob der Filter irgendwas durchlässt.
              Ausserdem weiß ich gar nicht, ob die iobroker out Node mit null umgehen kann.

              D 1 Reply Last reply Reply Quote 0
              • D
                Diamand2k22 @mickym last edited by

                @mickym

                hab's umgestellt und es funktioniert!
                Danke für deine Hilfe! 👍

                mickym 1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @Diamand2k22 last edited by mickym

                  @diamand2k22 Wenn Du allerdings unbedingt den Wert (null) in den Datenpunkt schreiben willst, dann musst Du doch Deine function Node verwenden oder JSONATA verwenden:
                  9c50910d-eb82-4717-bdef-9bacc3c23050-image.png

                  Marc Berg 1 Reply Last reply Reply Quote 1
                  • Marc Berg
                    Marc Berg Most Active @mickym last edited by

                    @mickym sagte in IoBroker out funktioniert nicht:

                    Wenn Du allerdings unbedingt den Wert (null) in den Datenpunkt schreiben willst, dann musst Du doch Deine function Node verwenden.

                    In einem ähnlichen Fall habe ich "null" mit JSONata erzeugt, was so dann auch im Datenpunkt ankommt.

                    e4684033-14f8-4fe8-8bf4-180520c47d11-grafik.png

                    2ce4d0bc-4f8f-4345-bdd5-eabf5ce0bc1a-grafik.png

                    Die Function Node wäre dann nicht erforderlich.

                    1 Reply Last reply Reply Quote 2
                    • First post
                      Last post

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    664
                    Online

                    31.7k
                    Users

                    79.7k
                    Topics

                    1.3m
                    Posts

                    4
                    8
                    259
                    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