Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. Datentyp wird falsch ausgegeben

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

Datentyp wird falsch ausgegeben

Geplant Angeheftet Gesperrt Verschoben Node-Red
node-red
20 Beiträge 4 Kommentatoren 1.5k Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • MichMeinM Offline
    MichMeinM Offline
    MichMein
    schrieb am zuletzt editiert von MichMein
    #1

    Hi Leute,

    ich bin mir nicht ganz sicher ob das Thema hierher gehört, aber ich probiere es mal. Es sind meine ersten Gehversuche mit node-red.

    Ich habe unter "userdata" einen neuen state angelegt vom Typ "boolean", wenn ich in node.red diesen mit dem debug-Baustein auslese steht dort leider "string". Was mache ich falsch?

    c018b5aa-975b-44ad-852b-fb32f3155490-grafik.png

    {
      "common": {
        "name": "schlafen_gehen",
        "desc": "Manuell erzeugt",
        "role": "state",
        "type": "boolean",
        "read": true,
        "write": true,
        "def": false
      },
      "type": "state",
      "from": "system.adapter.admin.0",
      "user": "system.user.admin",
      "ts": 1640807275032,
      "_id": "0_userdata.0.Diverses.virtuelle_Schalter.schlafen_gehen",
      "acl": {
        "object": 1636,
        "state": 1636,
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator"
      }
    }
    

    Vielen Dank

    Gruß Michael
    Sofern Beiträge hilfreich für Dich sind, nutze das Voting unten rechts.

    mickymM 1 Antwort Letzte Antwort
    0
    • MichMeinM MichMein

      Hi Leute,

      ich bin mir nicht ganz sicher ob das Thema hierher gehört, aber ich probiere es mal. Es sind meine ersten Gehversuche mit node-red.

      Ich habe unter "userdata" einen neuen state angelegt vom Typ "boolean", wenn ich in node.red diesen mit dem debug-Baustein auslese steht dort leider "string". Was mache ich falsch?

      c018b5aa-975b-44ad-852b-fb32f3155490-grafik.png

      {
        "common": {
          "name": "schlafen_gehen",
          "desc": "Manuell erzeugt",
          "role": "state",
          "type": "boolean",
          "read": true,
          "write": true,
          "def": false
        },
        "type": "state",
        "from": "system.adapter.admin.0",
        "user": "system.user.admin",
        "ts": 1640807275032,
        "_id": "0_userdata.0.Diverses.virtuelle_Schalter.schlafen_gehen",
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        }
      }
      

      Vielen Dank

      mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #2

      @michmein Das Problem liegt wie immer in Deinen Adaptereinstellungen, die alle Datenpunkte in Strings wandelt. Das empfehle ich immer als erstes raus zu machen.

      Ich habe keine Ahnung warum man das als Default Einstellung einstellt - habe es schon moniert:

      db7b831a-4043-4937-9e2e-3416e3361e54-image.png

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      MichMeinM B 3 Antworten Letzte Antwort
      1
      • mickymM mickym

        @michmein Das Problem liegt wie immer in Deinen Adaptereinstellungen, die alle Datenpunkte in Strings wandelt. Das empfehle ich immer als erstes raus zu machen.

        Ich habe keine Ahnung warum man das als Default Einstellung einstellt - habe es schon moniert:

        db7b831a-4043-4937-9e2e-3416e3361e54-image.png

        MichMeinM Offline
        MichMeinM Offline
        MichMein
        schrieb am zuletzt editiert von
        #3

        @mickym
        manchmal liegt die Lösung doch so nah.

        Danke

        Gruß Michael
        Sofern Beiträge hilfreich für Dich sind, nutze das Voting unten rechts.

        1 Antwort Letzte Antwort
        0
        • mickymM mickym

          @michmein Das Problem liegt wie immer in Deinen Adaptereinstellungen, die alle Datenpunkte in Strings wandelt. Das empfehle ich immer als erstes raus zu machen.

          Ich habe keine Ahnung warum man das als Default Einstellung einstellt - habe es schon moniert:

          db7b831a-4043-4937-9e2e-3416e3361e54-image.png

          MichMeinM Offline
          MichMeinM Offline
          MichMein
          schrieb am zuletzt editiert von
          #4

          @mickym
          Eine OT Frage habe ich da noch, jedes mal wenn node-red neugestertet wird erscheint folgende Meldung im Log,

          node-red.0 2021-12-29 21:03:53.846	error	install: [""]
          

          bekomme ich diese irgendwie weg?

          Gruß Michael
          Sofern Beiträge hilfreich für Dich sind, nutze das Voting unten rechts.

          mickymM 1 Antwort Letzte Antwort
          0
          • MichMeinM MichMein

            @mickym
            Eine OT Frage habe ich da noch, jedes mal wenn node-red neugestertet wird erscheint folgende Meldung im Log,

            node-red.0 2021-12-29 21:03:53.846	error	install: [""]
            

            bekomme ich diese irgendwie weg?

            mickymM Online
            mickymM Online
            mickym
            Most Active
            schrieb am zuletzt editiert von mickym
            #5

            @michmein Hmm ich hab das nicht - liegt das eventuell daran, dass Du keinen Palettenmanager nutzt und keine zusätzlichen Module installiest? -
            Vielleicht hast Du ja da auch Leerzeichen drin. Ansonsten kann ich mir nicht vorstellen, was da installiert wird - ausser Du hast schon irgendwas innerhalb von Node-Red gemacht.

            Dann kannst eventuell ein Issue aufmachen. Ich nutze wie gesagt den Palettenmanager. Weiß aber nicht, ob es daran liegt, aber nachdem ich das nicht habe und Du ja noch nicht soviel gemacht hast könnte es vielleicht eine Ursache sein.

            92a8ce35-4bc6-43e9-bc63-51d657aa3cc5-image.png

            Nachdem ich aber erst wegen der Stringkonvertierung mal ein Issue aufgemacht habe :
            https://github.com/ioBroker/ioBroker.node-red/issues/243
            Kannst ja selbst mal eines aufmachen. ;)
            Wie gesagt ich nutze den Palletten-Manager.

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            MichMeinM 1 Antwort Letzte Antwort
            0
            • mickymM mickym

              @michmein Hmm ich hab das nicht - liegt das eventuell daran, dass Du keinen Palettenmanager nutzt und keine zusätzlichen Module installiest? -
              Vielleicht hast Du ja da auch Leerzeichen drin. Ansonsten kann ich mir nicht vorstellen, was da installiert wird - ausser Du hast schon irgendwas innerhalb von Node-Red gemacht.

              Dann kannst eventuell ein Issue aufmachen. Ich nutze wie gesagt den Palettenmanager. Weiß aber nicht, ob es daran liegt, aber nachdem ich das nicht habe und Du ja noch nicht soviel gemacht hast könnte es vielleicht eine Ursache sein.

              92a8ce35-4bc6-43e9-bc63-51d657aa3cc5-image.png

              Nachdem ich aber erst wegen der Stringkonvertierung mal ein Issue aufgemacht habe :
              https://github.com/ioBroker/ioBroker.node-red/issues/243
              Kannst ja selbst mal eines aufmachen. ;)
              Wie gesagt ich nutze den Palletten-Manager.

              MichMeinM Offline
              MichMeinM Offline
              MichMein
              schrieb am zuletzt editiert von
              #6

              @mickym Wenn der Palletmanager eingeschaltet ist bleibt das Log ruhig.

              Gruß Michael
              Sofern Beiträge hilfreich für Dich sind, nutze das Voting unten rechts.

              mickymM 1 Antwort Letzte Antwort
              0
              • MichMeinM MichMein

                @mickym Wenn der Palletmanager eingeschaltet ist bleibt das Log ruhig.

                mickymM Online
                mickymM Online
                mickym
                Most Active
                schrieb am zuletzt editiert von
                #7

                @michmein Na dann war mein Verdacht richtig. Ist wahrscheinlich wieder so ein Ding mit dem neuen Admin - wie gesagt, ich nutze den Paletten-Manager eh viel lieber, weil ich dort die Versionen sehen kann und das alles viel leichter managen kann, als über iobroker.

                Die Art Module so nachzuinstallieren, halte ich sowieso für benutzerunfreundlich - auch wenn man ggf. bei Neuaufbau des Systems alle fehlenden Nodetypen manuell nachinstallieren muss.

                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                MichMeinM 1 Antwort Letzte Antwort
                0
                • mickymM mickym

                  @michmein Na dann war mein Verdacht richtig. Ist wahrscheinlich wieder so ein Ding mit dem neuen Admin - wie gesagt, ich nutze den Paletten-Manager eh viel lieber, weil ich dort die Versionen sehen kann und das alles viel leichter managen kann, als über iobroker.

                  Die Art Module so nachzuinstallieren, halte ich sowieso für benutzerunfreundlich - auch wenn man ggf. bei Neuaufbau des Systems alle fehlenden Nodetypen manuell nachinstallieren muss.

                  MichMeinM Offline
                  MichMeinM Offline
                  MichMein
                  schrieb am zuletzt editiert von MichMein
                  #8

                  @mickym Ich habe es jetzt bei mir ebenfalls geändert und nutze den Manager. Ein Issue ist auch erstellt.

                  Gruß Michael
                  Sofern Beiträge hilfreich für Dich sind, nutze das Voting unten rechts.

                  mickymM F 2 Antworten Letzte Antwort
                  1
                  • MichMeinM MichMein

                    @mickym Ich habe es jetzt bei mir ebenfalls geändert und nutze den Manager. Ein Issue ist auch erstellt.

                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von mickym
                    #9

                    @michmein Wie gesagt - der Paletten-Manager ist wesentlich benutzerfreundlicher - da kannst auch Module suchen etc.. Das hat man hier erst mit NodeRed Adapter Version 2.0 und höher eingeführt - früher hat man auch nur den Paletten-Manager genutzt.

                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                    1 Antwort Letzte Antwort
                    0
                    • MichMeinM MichMein

                      @mickym Ich habe es jetzt bei mir ebenfalls geändert und nutze den Manager. Ein Issue ist auch erstellt.

                      F Offline
                      F Offline
                      frankyboy73
                      schrieb am zuletzt editiert von
                      #10

                      @michmein sagte in Datentyp wird falsch ausgegeben:

                      Ich habe es jetzt bei mir ebenfalls geändert und nutze den Manager. Ein Issue ist auch erstellt.

                      Hi, der Fehler im Log kommt wohl auch wenn das Feld nicht leer ist.
                      Siehe hier:
                      https://github.com/ioBroker/ioBroker.node-red/issues/242
                      Ich würde dir auch empfehlen das komplette Log vom Node Red Start im Issue zu posten.

                      Schöne Grüße Frank

                      MichMeinM 1 Antwort Letzte Antwort
                      0
                      • F frankyboy73

                        @michmein sagte in Datentyp wird falsch ausgegeben:

                        Ich habe es jetzt bei mir ebenfalls geändert und nutze den Manager. Ein Issue ist auch erstellt.

                        Hi, der Fehler im Log kommt wohl auch wenn das Feld nicht leer ist.
                        Siehe hier:
                        https://github.com/ioBroker/ioBroker.node-red/issues/242
                        Ich würde dir auch empfehlen das komplette Log vom Node Red Start im Issue zu posten.

                        MichMeinM Offline
                        MichMeinM Offline
                        MichMein
                        schrieb am zuletzt editiert von
                        #11

                        Hi @frankyboy73, ich bin deinem Rat mal gefolgt, wenn auch der Inhalt des Logs dadurch nicht aussagekräftiger wird. Und es ist richtig das der error auch kommt wenn Pakete eingetragen werden, da dachte ich allerdings das es sich tatsächlich um einen Fehler handelt. Aufgestoßen war mir das erst nachdem die Zeile leer war und trotzdem ein error erschien.
                        Wie dem auch sei, ich denke nicht das es so sein soll und dort wohl nachgebessert werden müsste.

                        Gruß Michael
                        Sofern Beiträge hilfreich für Dich sind, nutze das Voting unten rechts.

                        F 1 Antwort Letzte Antwort
                        0
                        • MichMeinM MichMein

                          Hi @frankyboy73, ich bin deinem Rat mal gefolgt, wenn auch der Inhalt des Logs dadurch nicht aussagekräftiger wird. Und es ist richtig das der error auch kommt wenn Pakete eingetragen werden, da dachte ich allerdings das es sich tatsächlich um einen Fehler handelt. Aufgestoßen war mir das erst nachdem die Zeile leer war und trotzdem ein error erschien.
                          Wie dem auch sei, ich denke nicht das es so sein soll und dort wohl nachgebessert werden müsste.

                          F Offline
                          F Offline
                          frankyboy73
                          schrieb am zuletzt editiert von frankyboy73
                          #12

                          @michmein Hi, man sieht dadurch aber auch sofort welche Adapterversion du hast und welche Node JS und JS Controller Version du nutzt. Da apollon77 in dem anderem Issue auch nach dem kompletten Log gefragt hat, denke ich er möchte es bei deinem Issue auch sehen.
                          Ja und das da kein Error kommen sollte, da gebe ich dir vollkommen recht. Danke fürs melden.

                          Schöne Grüße Frank

                          MichMeinM 1 Antwort Letzte Antwort
                          1
                          • F frankyboy73

                            @michmein Hi, man sieht dadurch aber auch sofort welche Adapterversion du hast und welche Node JS und JS Controller Version du nutzt. Da apollon77 in dem anderem Issue auch nach dem kompletten Log gefragt hat, denke ich er möchte es bei deinem Issue auch sehen.
                            Ja und das da kein Error kommen sollte, da gebe ich dir vollkommen recht. Danke fürs melden.

                            MichMeinM Offline
                            MichMeinM Offline
                            MichMein
                            schrieb am zuletzt editiert von
                            #13

                            @frankyboy73 sagte in Datentyp wird falsch ausgegeben:

                            ... man sieht dadurch aber auch sofort welche Adapterversion du hast und welche Node JS und JS Controller Version du nutzt. Da apollon77 in dem anderem Issue auch nach dem kompletten Log gefragt hat, ...

                            Sry, soweit kann ich zu dieser Uhrzeit nicht mehr denken. Du hast völlig recht!

                            Gruß Michael
                            Sofern Beiträge hilfreich für Dich sind, nutze das Voting unten rechts.

                            F 1 Antwort Letzte Antwort
                            0
                            • MichMeinM MichMein

                              @frankyboy73 sagte in Datentyp wird falsch ausgegeben:

                              ... man sieht dadurch aber auch sofort welche Adapterversion du hast und welche Node JS und JS Controller Version du nutzt. Da apollon77 in dem anderem Issue auch nach dem kompletten Log gefragt hat, ...

                              Sry, soweit kann ich zu dieser Uhrzeit nicht mehr denken. Du hast völlig recht!

                              F Offline
                              F Offline
                              frankyboy73
                              schrieb am zuletzt editiert von
                              #14

                              @michmein Kein Problem. Ich kenne das nur mittlerweile zu gut, das man möglichst viele Informationen liefern sollte. Sonst wird eh wieder danach gefragt. Und irgendwas vergisst man sowieso immer.:blush:

                              Schöne Grüße Frank

                              1 Antwort Letzte Antwort
                              0
                              • mickymM mickym

                                @michmein Das Problem liegt wie immer in Deinen Adaptereinstellungen, die alle Datenpunkte in Strings wandelt. Das empfehle ich immer als erstes raus zu machen.

                                Ich habe keine Ahnung warum man das als Default Einstellung einstellt - habe es schon moniert:

                                db7b831a-4043-4937-9e2e-3416e3361e54-image.png

                                B Offline
                                B Offline
                                Bavarian
                                schrieb am zuletzt editiert von Bavarian
                                #15

                                @mickym

                                Hallo Michael,

                                mich hat das Thema mit dem String nun auch erwischt.
                                Das Kreuz bei ...in Zeichenkette konvertieren ist raus, Adapter neu gestartet.
                                Das Problem bleibt bestehen.

                                DP ist ein Array und wenn ich in NR den IOB Input auf Debug lege werden Fehlermeldungen und ein String angezeigt.

                                DP:

                                {
                                  "common": {
                                    "name": "MSGARRAY",
                                    "desc": "Manuell erzeugt",
                                    "role": "state",
                                    "type": "array",
                                    "read": true,
                                    "write": true
                                  },
                                  "type": "state",
                                  "from": "system.adapter.admin.0",
                                  "user": "system.user.admin",
                                  "ts": 1641549290173,
                                  "_id": "0_userdata.0.MSGARRAY"
                                }
                                

                                Screenshot 2022-01-07 115705.jpg

                                Screenshot 2022-01-07 115636.jpg

                                Screenshot 2022-01-07 120133.jpg
                                Screenshot 2022-01-07 120533.jpg

                                Hast Du noch eine Idee was da schief läuft?

                                mickymM 1 Antwort Letzte Antwort
                                0
                                • B Bavarian

                                  @mickym

                                  Hallo Michael,

                                  mich hat das Thema mit dem String nun auch erwischt.
                                  Das Kreuz bei ...in Zeichenkette konvertieren ist raus, Adapter neu gestartet.
                                  Das Problem bleibt bestehen.

                                  DP ist ein Array und wenn ich in NR den IOB Input auf Debug lege werden Fehlermeldungen und ein String angezeigt.

                                  DP:

                                  {
                                    "common": {
                                      "name": "MSGARRAY",
                                      "desc": "Manuell erzeugt",
                                      "role": "state",
                                      "type": "array",
                                      "read": true,
                                      "write": true
                                    },
                                    "type": "state",
                                    "from": "system.adapter.admin.0",
                                    "user": "system.user.admin",
                                    "ts": 1641549290173,
                                    "_id": "0_userdata.0.MSGARRAY"
                                  }
                                  

                                  Screenshot 2022-01-07 115705.jpg

                                  Screenshot 2022-01-07 115636.jpg

                                  Screenshot 2022-01-07 120133.jpg
                                  Screenshot 2022-01-07 120533.jpg

                                  Hast Du noch eine Idee was da schief läuft?

                                  mickymM Online
                                  mickymM Online
                                  mickym
                                  Most Active
                                  schrieb am zuletzt editiert von mickym
                                  #16

                                  @bavarian

                                  Hmm das liegt meines Erachtens am iobroker oder dem Admin 5 .

                                  Sobald Du ein Array mit NodeRed in den Datenpunkt schreibst, kommt auch ein Array wieder rein:

                                  e009093b-b06e-4372-b6a4-65bc11fd994f-image.png

                                  Sobald Du das aber über die iobroker Eingabemaske veränderst bekommst Du es zwar so angezeigt
                                  38c53836-9416-4103-bc97-a20cd243e0e5-image.png
                                  in der Eingabemaske sind dann die Klammern weg
                                  0acb4c68-9c67-4a54-afc0-6debdb3f95d0-image.png

                                  Modifizierst Du dann in der Eingabemaske die Zahl nur, dann gehen die Klammern weg.
                                  und dann bekommst Du ein undefiniertes Objekt bzw. einen String der auch kein JSON String ist:

                                  713dd50c-da2f-4811-84e5-6b0ac2b23194-image.png

                                  Ich denke das hat irgendwas mit dem Javascript-Adapter zu tun. Am Besten ist hier bei Objekten und Arrays (sind ja auch JS Objekte) - was intern die Entwickler auch tun sollen immer ein JSON Konvertierung sowohl beim Schreiben, als auch bei Lesen vorzunehmen.

                                  Die einzig vernünftige Vorgehensweise ist deshalb im iobroker in der Eingabemaske nur JSON Objekte anzugeben.

                                  f4fd9323-c3d8-43c4-9578-f63bace007b8-image.png

                                  und dann im Node Red zu konvertieren.

                                  Schuld ist aber in meinen Augen nicht der NR Adapter, sondern der JS Adapter. Wenn man wie im 1. Beispiel ein Array in den Datenpunkt mit NR schreibt, kommt auch ein Array wieder raus. Das Problem entsteht erst, wenn man mit dem Admin5 Adapter den Wert versucht zu schreiben.

                                  Wenn Du hingegen ein JSON String mit NR schreibst, dann bekommt man wohl auch JSON Objekt im iobroker:

                                  74c75e55-e4f8-457e-8338-53928d4bfd25-image.png

                                  d3430aab-30ea-4b62-ba36-a6550e046e39-image.png

                                  Wenn man dieses bearbeitet, bekommt man auch einen vernünftigen JSON String wieder in NR.

                                  Wie gesagt schaut aus, wie oben - ist aber unter schiedlich:
                                  Ein richtiges Array schaut in den Objekten zwar richtig aus.

                                  27a606f0-1ad6-4016-b33a-313e55cba238-image.png

                                  Sobald Du es aber im iobroker modifizierst.

                                  92e2b670-341c-45a6-8796-7ae4153c6795-image.png

                                  kommt was undefinierbares raus.

                                  Deshalb langer Rede, kurzer Sinn - Objekte und Arrays immer als JSON abspeichern. Damit gibts dann keine Probleme. Grundsätzlich sollte man immer alle Objekte und Array als JSON Strings zwischen verschiedenen Systemen austauschen. Es ist einfach das de-facto Austauschformat.

                                  So funktioniert es dann immer:

                                  299f7eb4-dc7e-4c08-8ad2-f62d84b4aebc-image.png

                                  0997e235-f4ae-4ac3-b730-e5e8799b865b-image.png

                                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                  B 1 Antwort Letzte Antwort
                                  0
                                  • mickymM mickym

                                    @bavarian

                                    Hmm das liegt meines Erachtens am iobroker oder dem Admin 5 .

                                    Sobald Du ein Array mit NodeRed in den Datenpunkt schreibst, kommt auch ein Array wieder rein:

                                    e009093b-b06e-4372-b6a4-65bc11fd994f-image.png

                                    Sobald Du das aber über die iobroker Eingabemaske veränderst bekommst Du es zwar so angezeigt
                                    38c53836-9416-4103-bc97-a20cd243e0e5-image.png
                                    in der Eingabemaske sind dann die Klammern weg
                                    0acb4c68-9c67-4a54-afc0-6debdb3f95d0-image.png

                                    Modifizierst Du dann in der Eingabemaske die Zahl nur, dann gehen die Klammern weg.
                                    und dann bekommst Du ein undefiniertes Objekt bzw. einen String der auch kein JSON String ist:

                                    713dd50c-da2f-4811-84e5-6b0ac2b23194-image.png

                                    Ich denke das hat irgendwas mit dem Javascript-Adapter zu tun. Am Besten ist hier bei Objekten und Arrays (sind ja auch JS Objekte) - was intern die Entwickler auch tun sollen immer ein JSON Konvertierung sowohl beim Schreiben, als auch bei Lesen vorzunehmen.

                                    Die einzig vernünftige Vorgehensweise ist deshalb im iobroker in der Eingabemaske nur JSON Objekte anzugeben.

                                    f4fd9323-c3d8-43c4-9578-f63bace007b8-image.png

                                    und dann im Node Red zu konvertieren.

                                    Schuld ist aber in meinen Augen nicht der NR Adapter, sondern der JS Adapter. Wenn man wie im 1. Beispiel ein Array in den Datenpunkt mit NR schreibt, kommt auch ein Array wieder raus. Das Problem entsteht erst, wenn man mit dem Admin5 Adapter den Wert versucht zu schreiben.

                                    Wenn Du hingegen ein JSON String mit NR schreibst, dann bekommt man wohl auch JSON Objekt im iobroker:

                                    74c75e55-e4f8-457e-8338-53928d4bfd25-image.png

                                    d3430aab-30ea-4b62-ba36-a6550e046e39-image.png

                                    Wenn man dieses bearbeitet, bekommt man auch einen vernünftigen JSON String wieder in NR.

                                    Wie gesagt schaut aus, wie oben - ist aber unter schiedlich:
                                    Ein richtiges Array schaut in den Objekten zwar richtig aus.

                                    27a606f0-1ad6-4016-b33a-313e55cba238-image.png

                                    Sobald Du es aber im iobroker modifizierst.

                                    92e2b670-341c-45a6-8796-7ae4153c6795-image.png

                                    kommt was undefinierbares raus.

                                    Deshalb langer Rede, kurzer Sinn - Objekte und Arrays immer als JSON abspeichern. Damit gibts dann keine Probleme. Grundsätzlich sollte man immer alle Objekte und Array als JSON Strings zwischen verschiedenen Systemen austauschen. Es ist einfach das de-facto Austauschformat.

                                    So funktioniert es dann immer:

                                    299f7eb4-dc7e-4c08-8ad2-f62d84b4aebc-image.png

                                    0997e235-f4ae-4ac3-b730-e5e8799b865b-image.png

                                    B Offline
                                    B Offline
                                    Bavarian
                                    schrieb am zuletzt editiert von
                                    #17

                                    @mickym

                                    Hallo Michael,

                                    vielen Dank für die gute und ausführliche Erklärung!

                                    Wenn ich nun aber mein JSON wie du oben gezeigt hast als ARRAY im NR habe dann ist das schon mal super.
                                    Nur kommt das nächste Problem dann auf, wie sende ich das an die Serielle Schnittstelle, in dem Fall funktioniert \n vom String nicht mehr.
                                    Jetzt komme ich nämlich ducheinander!
                                    Es war einfach möglich einen DP mit dem String TestOn oder TestOff zu schreiben, die NR Serial Config hatte das Kreuz bei automzisch beim senden \n hinzufügen.
                                    So klappte das auch problemlos.
                                    Lasse ich das \n weg geht da nichts mehr raus, also schlecht.
                                    Allerdings muss das \n raus wenn ich das Array senden möchte.

                                    Kann ich eigentlich auch das Array teilen in String:Array\n ?
                                    Also MSS:[200,50,true]

                                    mickymM 2 Antworten Letzte Antwort
                                    0
                                    • B Bavarian

                                      @mickym

                                      Hallo Michael,

                                      vielen Dank für die gute und ausführliche Erklärung!

                                      Wenn ich nun aber mein JSON wie du oben gezeigt hast als ARRAY im NR habe dann ist das schon mal super.
                                      Nur kommt das nächste Problem dann auf, wie sende ich das an die Serielle Schnittstelle, in dem Fall funktioniert \n vom String nicht mehr.
                                      Jetzt komme ich nämlich ducheinander!
                                      Es war einfach möglich einen DP mit dem String TestOn oder TestOff zu schreiben, die NR Serial Config hatte das Kreuz bei automzisch beim senden \n hinzufügen.
                                      So klappte das auch problemlos.
                                      Lasse ich das \n weg geht da nichts mehr raus, also schlecht.
                                      Allerdings muss das \n raus wenn ich das Array senden möchte.

                                      Kann ich eigentlich auch das Array teilen in String:Array\n ?
                                      Also MSS:[200,50,true]

                                      mickymM Online
                                      mickymM Online
                                      mickym
                                      Most Active
                                      schrieb am zuletzt editiert von mickym
                                      #18

                                      @bavarian Also wenn Du ein JSON im iobroker, dann ein Array im NR hat - dann schickst Du halt mit einer Split Node einzelnen Nachrichten.

                                      Du kannst alles in alles irgendwie transformieren - die Frage ist doch was die Geräte verstehen. Wenn die serial Node - lese kann man ja auch andere Chars als Trennzeichen definieren. Aber ich kann Dir wenig dazu sagen-

                                      Wenn Du aus dem Array ein Objekt mit Eigenschaft des ersten Elements machen willst geht das auch.

                                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                      1 Antwort Letzte Antwort
                                      0
                                      • B Bavarian

                                        @mickym

                                        Hallo Michael,

                                        vielen Dank für die gute und ausführliche Erklärung!

                                        Wenn ich nun aber mein JSON wie du oben gezeigt hast als ARRAY im NR habe dann ist das schon mal super.
                                        Nur kommt das nächste Problem dann auf, wie sende ich das an die Serielle Schnittstelle, in dem Fall funktioniert \n vom String nicht mehr.
                                        Jetzt komme ich nämlich ducheinander!
                                        Es war einfach möglich einen DP mit dem String TestOn oder TestOff zu schreiben, die NR Serial Config hatte das Kreuz bei automzisch beim senden \n hinzufügen.
                                        So klappte das auch problemlos.
                                        Lasse ich das \n weg geht da nichts mehr raus, also schlecht.
                                        Allerdings muss das \n raus wenn ich das Array senden möchte.

                                        Kann ich eigentlich auch das Array teilen in String:Array\n ?
                                        Also MSS:[200,50,true]

                                        mickymM Online
                                        mickymM Online
                                        mickym
                                        Most Active
                                        schrieb am zuletzt editiert von mickym
                                        #19

                                        @bavarian sagte in Datentyp wird falsch ausgegeben:

                                        Kann ich eigentlich auch das Array teilen in String:Array\n ?
                                        Also MSS:[200,50,true]

                                        Aber ich denke mal die Werte einzeln zu schicken ist praktischer.

                                        Wenn die Anzahl der Elemente im Array bekannt ist, kannst Du einfach

                                        b0eb32cc-6732-4084-96bb-15c13a4765bc-image.png

                                        [
                                            {
                                                "id": "6a1a60ed.2e0b7",
                                                "type": "inject",
                                                "z": "54b226bc.0793e8",
                                                "name": "",
                                                "props": [
                                                    {
                                                        "p": "payload"
                                                    }
                                                ],
                                                "repeat": "",
                                                "crontab": "",
                                                "once": false,
                                                "onceDelay": 0.1,
                                                "topic": "",
                                                "payload": "[\"MSS:\",250,50,true]",
                                                "payloadType": "json",
                                                "x": 1010,
                                                "y": 2960,
                                                "wires": [
                                                    [
                                                        "3bbabdb5.2d2c82",
                                                        "334af2bd.e4c9ae"
                                                    ]
                                                ]
                                            },
                                            {
                                                "id": "19a5b80c.2c2778",
                                                "type": "debug",
                                                "z": "54b226bc.0793e8",
                                                "name": "",
                                                "active": true,
                                                "tosidebar": true,
                                                "console": false,
                                                "tostatus": false,
                                                "complete": "payload",
                                                "targetType": "msg",
                                                "statusVal": "",
                                                "statusType": "auto",
                                                "x": 1430,
                                                "y": 2960,
                                                "wires": []
                                            },
                                            {
                                                "id": "3bbabdb5.2d2c82",
                                                "type": "change",
                                                "z": "54b226bc.0793e8",
                                                "name": "",
                                                "rules": [
                                                    {
                                                        "t": "set",
                                                        "p": "topic",
                                                        "pt": "msg",
                                                        "to": "payload[0]",
                                                        "tot": "msg"
                                                    },
                                                    {
                                                        "t": "set",
                                                        "p": "payload",
                                                        "pt": "msg",
                                                        "to": "{\t    topic : payload [[1..3]]   }",
                                                        "tot": "jsonata"
                                                    }
                                                ],
                                                "action": "",
                                                "property": "",
                                                "from": "",
                                                "to": "",
                                                "reg": false,
                                                "x": 1230,
                                                "y": 2960,
                                                "wires": [
                                                    [
                                                        "19a5b80c.2c2778"
                                                    ]
                                                ]
                                            },
                                            {
                                                "id": "334af2bd.e4c9ae",
                                                "type": "function",
                                                "z": "54b226bc.0793e8",
                                                "name": "",
                                                "func": "let obj = {};\nlet topic = msg.payload.shift();\nobj[topic]=msg.payload;\nmsg.payload = obj;\nreturn msg;",
                                                "outputs": 1,
                                                "noerr": 0,
                                                "initialize": "",
                                                "finalize": "",
                                                "libs": [],
                                                "x": 1210,
                                                "y": 3040,
                                                "wires": [
                                                    [
                                                        "bc0d6bea.9bab98"
                                                    ]
                                                ]
                                            },
                                            {
                                                "id": "bc0d6bea.9bab98",
                                                "type": "debug",
                                                "z": "54b226bc.0793e8",
                                                "name": "",
                                                "active": false,
                                                "tosidebar": true,
                                                "console": false,
                                                "tostatus": false,
                                                "complete": "false",
                                                "statusVal": "",
                                                "statusType": "auto",
                                                "x": 1440,
                                                "y": 3040,
                                                "wires": []
                                            }
                                        ]
                                        

                                        das wie folgt in ein Objekt wandeln, ansonsten musst halt mit JS entfernen das geht dann schneller.

                                        let obj = {};
                                        let topic = msg.payload.shift();
                                        obj[topic]=msg.payload;
                                        msg.payload = obj;
                                        return msg;
                                        

                                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                        B 1 Antwort Letzte Antwort
                                        0
                                        • mickymM mickym

                                          @bavarian sagte in Datentyp wird falsch ausgegeben:

                                          Kann ich eigentlich auch das Array teilen in String:Array\n ?
                                          Also MSS:[200,50,true]

                                          Aber ich denke mal die Werte einzeln zu schicken ist praktischer.

                                          Wenn die Anzahl der Elemente im Array bekannt ist, kannst Du einfach

                                          b0eb32cc-6732-4084-96bb-15c13a4765bc-image.png

                                          [
                                              {
                                                  "id": "6a1a60ed.2e0b7",
                                                  "type": "inject",
                                                  "z": "54b226bc.0793e8",
                                                  "name": "",
                                                  "props": [
                                                      {
                                                          "p": "payload"
                                                      }
                                                  ],
                                                  "repeat": "",
                                                  "crontab": "",
                                                  "once": false,
                                                  "onceDelay": 0.1,
                                                  "topic": "",
                                                  "payload": "[\"MSS:\",250,50,true]",
                                                  "payloadType": "json",
                                                  "x": 1010,
                                                  "y": 2960,
                                                  "wires": [
                                                      [
                                                          "3bbabdb5.2d2c82",
                                                          "334af2bd.e4c9ae"
                                                      ]
                                                  ]
                                              },
                                              {
                                                  "id": "19a5b80c.2c2778",
                                                  "type": "debug",
                                                  "z": "54b226bc.0793e8",
                                                  "name": "",
                                                  "active": true,
                                                  "tosidebar": true,
                                                  "console": false,
                                                  "tostatus": false,
                                                  "complete": "payload",
                                                  "targetType": "msg",
                                                  "statusVal": "",
                                                  "statusType": "auto",
                                                  "x": 1430,
                                                  "y": 2960,
                                                  "wires": []
                                              },
                                              {
                                                  "id": "3bbabdb5.2d2c82",
                                                  "type": "change",
                                                  "z": "54b226bc.0793e8",
                                                  "name": "",
                                                  "rules": [
                                                      {
                                                          "t": "set",
                                                          "p": "topic",
                                                          "pt": "msg",
                                                          "to": "payload[0]",
                                                          "tot": "msg"
                                                      },
                                                      {
                                                          "t": "set",
                                                          "p": "payload",
                                                          "pt": "msg",
                                                          "to": "{\t    topic : payload [[1..3]]   }",
                                                          "tot": "jsonata"
                                                      }
                                                  ],
                                                  "action": "",
                                                  "property": "",
                                                  "from": "",
                                                  "to": "",
                                                  "reg": false,
                                                  "x": 1230,
                                                  "y": 2960,
                                                  "wires": [
                                                      [
                                                          "19a5b80c.2c2778"
                                                      ]
                                                  ]
                                              },
                                              {
                                                  "id": "334af2bd.e4c9ae",
                                                  "type": "function",
                                                  "z": "54b226bc.0793e8",
                                                  "name": "",
                                                  "func": "let obj = {};\nlet topic = msg.payload.shift();\nobj[topic]=msg.payload;\nmsg.payload = obj;\nreturn msg;",
                                                  "outputs": 1,
                                                  "noerr": 0,
                                                  "initialize": "",
                                                  "finalize": "",
                                                  "libs": [],
                                                  "x": 1210,
                                                  "y": 3040,
                                                  "wires": [
                                                      [
                                                          "bc0d6bea.9bab98"
                                                      ]
                                                  ]
                                              },
                                              {
                                                  "id": "bc0d6bea.9bab98",
                                                  "type": "debug",
                                                  "z": "54b226bc.0793e8",
                                                  "name": "",
                                                  "active": false,
                                                  "tosidebar": true,
                                                  "console": false,
                                                  "tostatus": false,
                                                  "complete": "false",
                                                  "statusVal": "",
                                                  "statusType": "auto",
                                                  "x": 1440,
                                                  "y": 3040,
                                                  "wires": []
                                              }
                                          ]
                                          

                                          das wie folgt in ein Objekt wandeln, ansonsten musst halt mit JS entfernen das geht dann schneller.

                                          let obj = {};
                                          let topic = msg.payload.shift();
                                          obj[topic]=msg.payload;
                                          msg.payload = obj;
                                          return msg;
                                          
                                          B Offline
                                          B Offline
                                          Bavarian
                                          schrieb am zuletzt editiert von
                                          #20

                                          @mickym

                                          Vielen Dank schon mal für die Hilfe!!
                                          Ich mache einen neuen Thread auf denn irgendwie bekomme ich das nicht auf der Seriellen übertragen.

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          862

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe