Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. gelöst Name im Datenpunkt ändern mit Variable als Name

    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

    gelöst Name im Datenpunkt ändern mit Variable als Name

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

      Hallo Forum,

      ich komme nicht so recht weiter und hoffe hier nochmals auf Hilfe...

      die Variable "device_id" habe ich erstellt.

      Dann möchte ich einen Datenpunkt anlegen mit:

      createState("0_userdata.0."+ Ordner +".ALARM", 0,{ name: "ALARM", unit: "", read: true, write: true, desc: "ALARM", type: "number",  });
      

      Wie kann ich den Inhalt der Variable "device_id" vor den Namen "name" = "ALARM" stellen? irgendwie mit
      name: ".device_id +".ALARM"
      oder so... Ich bekomme es einfach nicht hin...

      Ziel ist, wenn ich in Node Red den Datenpunkt wähle, würde ich gern sehen, welches Device dahinter steckt ohne alles händisch ändern zu müssen.

      Tausend Dank!!!

      paul53 1 Reply Last reply Reply Quote 1
      • paul53
        paul53 @flehmann1234 last edited by

        @flehmann1234 sagte: Wie kann ich den Inhalt der Variable "device_id" vor den Namen "name" = "ALARM" stellen?

        Ist der Variablenbezeichner device_id oder Ordner (wie im Skript)?

        F 1 Reply Last reply Reply Quote 0
        • F
          flehmann1234 @paul53 last edited by flehmann1234

          @paul53

          Danke für die Antwort...

          5323f367-9664-4ab8-9d75-8fe8c15dba21-image.png

          ich habe mehrere Variablen defeniert. Die Variable "Order" bezeichnet den Ort des Datenpunktes:

          0_userdata.0.tnn.05.05-fenstersensoren.05-dg-re-sz-35.DOOR_OPEN_STATUS

          Die Variable device_id bezeichnet den Raum, in diesem FAll "05-dg-re-sz-35" diesen Teil bräuchte ich im Namen.
          c7546f4c-4523-44ce-a819-ef37c8022d17-image.png

          Vielleicht kann man diesen Teil auch aus der Variable "Order" herleiten....

          Bei den Homematic Sensoren wird es automatisch angelegt...
          581b609d-e80c-480f-995e-becbcea6f1f7-image.png

          Ich habe lange gesucht und propiert aber nichts gefunden.....

          Danke !

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @flehmann1234 last edited by paul53

            @flehmann1234 sagte: 0_userdata.0.tnn.05.05-fenstersensoren.05-dg-re-sz-35.DOOR_OPEN_STATUS

            Das soll die ID eines Ziel-Datenpunktes sein? Die Variable Ordner also "tnn.05.05-fenstersensoren.05-dg-re-sz-35" enthalten? Dann enthält er doch die device-id am Ende.
            Wie sieht das JSON eines Trigger-Datenpunktes aus (bitte in code tags)?

            F 1 Reply Last reply Reply Quote 0
            • F
              flehmann1234 @paul53 last edited by flehmann1234

              @paul53

              Hallo paul53, die Lösung ist wahrscheinlich so einfach dass du zu kompliziert denkst...
              Wenn ich bei Node Red einen Datenpunkt auswähle, wird standardmäßig der Name ausgewählt. Das heiß, dass alle meine zig Sensoren "DOOR_OPEN_STATUS" heißen würden.

              6f10bea5-55c1-4847-a09f-d71942349c5f-image.png

              Wenn der Raumname mit im Namen stehen würde, wüsste ich wo sich der Sensor befindet.
              Die Variable mit dem Raumnamen gibt es ja schon: device_id. Doch die Frage ist, wie bekomme ich diese vor den Namen "DOOR_OPEN_STATUS" geschrieben.

              2dfe80d5-75f4-4b99-964e-993753deeb0d-image.png

              Wahrscheinlich muss man nur 'device_id'+"DOOR_OPEN_STATUS" oder so schreiben, damit der Raumname vor dem Wort DOOR_OPEN_STATUS steht... ??? Ich kenne nur die Syntax nicht dafür und bekomme es einfach nicht hin...

              createState("0_userdata.0."+ Ordner +".ALARM", 0,{ name: '$device_id'+"ALARM", unit: "", read: true, write: true, desc: "ALARM", type: "number", });
              

              Danke vielmals und grüße

              Fabian

              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @flehmann1234 last edited by paul53

                @flehmann1234
                Du willst den Namen der schon bestehenden Datenpunkte um die "device_id" erweitern?

                // id = Datenpunkt-ID
                const device_id = id.split('.')[5];
                const dpName = getObject(id).common.name;
                if(!dpName.includes(device_id)) extendObject(id, {common: {name: dpName + ' ' + device_id}});
                
                F 1 Reply Last reply Reply Quote 0
                • F
                  flehmann1234 @paul53 last edited by

                  @paul53 eigentlich noch einfacher, ich lösche alle Datenpunkte und würde diese neu anlegen lassen.

                  das Script von oben gibt eine Fehlermeldung zurück.

                  createState("0_userdata.0."+ Ordner +".ALARM", 0,{ name: {device_id+"ALARM"}, unit: "", read: true, write: true, desc: "ALARM", type: "number",  });
                  createState("0_userdata.0."+ Ordner +".ALARM", 0,{ name: {device_id+".ALARM"}, unit: "", read: true, write: true, desc: "ALARM", type: "number",  });
                  createState("0_userdata.0."+ Ordner +".ALARM", 0,{ name: {device_id.split('.')[5]+".ALARM"}, unit: "", read: true, write: true, desc: "ALARM", type: "number",  });
                  createState("0_userdata.0."+ Ordner +".ALARM", 0,{ name: device_id.split('.')[5]+".ALARM", unit: "", read: true, write: true, desc: "ALARM", type: "number",  });
                  

                  geht alles nicht, beim letzten wird ein undefined geschrieben...
                  192e833c-8cc1-4daf-8315-14140d104fea-image.png reateState("0_userdata.0."+ Ordner +".ALARM", 0,{ name: device_id.split('.')[5]+".ALARM", unit: "", read: true, write: true, desc: "ALARM", type: "number", });

                  kannst du nochmal bitte schauen, wo der fehler liegt?

                  Danke !

                  F paul53 2 Replies Last reply Reply Quote 0
                  • F
                    flehmann1234 @flehmann1234 last edited by

                    @flehmann1234
                    habe jetzt die Lösung:

                    createState("0_userdata.0."+ Ordner +".ALARM", 0,{ name: device_id+".ALARM", unit: "", read: true, write: true, desc: "ALARM", type: "number",  });
                    
                    1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @flehmann1234 last edited by paul53

                      @flehmann1234 sagte: diese neu anlegen lassen.

                      Dann kann man die Tatsache verwenden, dass "Ordner" die "device-id" enthält.

                      createState("0_userdata.0."+ Ordner +".ALARM", 0, {name: Ordner.split('.')[3] + " ALARM", unit: "", read: true, write: true, desc: "ALARM", type: "number", role: 'indicator.alarm'});
                      
                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      822
                      Online

                      31.8k
                      Users

                      80.0k
                      Topics

                      1.3m
                      Posts

                      2
                      9
                      357
                      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