Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. setState mit eigenem Kennzeichen versehen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    setState mit eigenem Kennzeichen versehen

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @hanss last edited by paul53

      @hanss sagte:

      Alarm = getObject("javascript.0.zigbee.0.Test")

      ist falsch. Richtig:

      Alarm = getState("javascript.0.zigbee.0.Test").val;
      

      Besser:

      on("javascript.0.zigbee.0.Test", function(dp) {
         Alarm = dp.state.val;
         log("Lesen- Wert: " + Alarm.Wert + " Last: " + Alarm.Last);
      });
      
      hanss 1 Reply Last reply Reply Quote 0
      • hanss
        hanss @paul53 last edited by

        @paul53 sagte in setState mit eigenem Kennzeichen versehen:

        @hanss sagte:

        Alarm = getObject("javascript.0.zigbee.0.Test")

        ist falsch. Richtig:

        Alarm = getState("javascript.0.zigbee.0.Test").val;
        

        Und wie erhalte ich dann:
        var x = Alarm.Wert // Fehlermeldung

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

          @hanss sagte:

          Und wie erhalte ich dann:
          var x = Alarm.Wert // Fehlermeldung

          Genau so. Bringt der Compiler eine Fehlermeldung, Javascript zur Laufzeit oder der Editor ? Eine rote Wellenlinie im Editor kannst Du ignorieren.

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

            @paul53
            zur Laufzeit: TypeError: Cannot read property 'Wert' of null

            Es ist auch im Objekt nichts von Alarm oder Wert oder Last eingetragen:

            {
              "common": {
                "name": "objekt",
                "type": "object",
                "unit": "",
                "role": "state"
              },
              "native": {},
              "type": "state",
              "from": "system.adapter.javascript.0",
              "user": "system.user.admin",
              "ts": 1584874455228,
              "_id": "javascript.0.zigbee.0.Test",
              "acl": {
                "object": 1636,
                "state": 1636,
                "owner": "system.user.admin",
                "ownerGroup": "system.group.administrator"
              }
            }
            
            paul53 2 Replies Last reply Reply Quote 0
            • paul53
              paul53 @hanss last edited by paul53

              @hanss sagte:

              Cannot read property 'Wert' of null

              Nach einem 2. Script-Start sollte der Fehler nicht mehr kommen, da dann setState() den Wert geschrieben hat.

              Script_temp.JPG

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

                @hanss sagte:

                Es ist auch im Objekt nichts von Alarm oder Wert oder Last eingetragen:

                Das darf auch nicht im statischen Objekt erscheinen, sondern im Zustand (state) des Datenpunktes.

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

                  @paul53

                  Egal wie oft ich dieses Script starte, der Fehler erscheint immer:

                  createState("javascript.0.zigbee.0.Test", {    
                              name: "objekt",
                              type: 'object',
                      });
                  
                  var Alarm = {
                     Wert: 0,
                     Last: ''
                  };
                  
                  Alarm.Wert = 4
                  Alarm.Last = "Heizung"
                  setState("javascript.0.zigbee.0.Test", Alarm)
                  
                  Alarm = getState("javascript.0.zigbee.0.Test").val;
                  
                  var x = Alarm.Wert
                  var y = Alarm.Last
                  
                  log("Lesen-Wert: " + x + " Last: "+y)
                  
                  paul53 2 Replies Last reply Reply Quote 0
                  • paul53
                    paul53 @hanss last edited by

                    @hanss sagte:

                    Egal wie oft ich dieses Script starte, der Fehler erscheint immer:

                    Das Script läuft unter der Instanz javascript.0 ?

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

                      @paul53
                      Jawohl

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

                        @hanss
                        Welche Javascript-Version ?

                        hanss 1 Reply Last reply Reply Quote 0
                        • OliverIO
                          OliverIO last edited by OliverIO

                          Wenn du der einzige bist, der den State beschreibt, dann schreib doch einfach Ein JSON Objekt mit zwei Attributen rein (Value und Source)
                          Dann musst du nicht so viel rum experimentieren

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

                            @paul53
                            Node.js: v10.19.0 Script Engine 4.4.3

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

                              @hanss sagte:

                              Node.js: v10.19.0 Script Engine 4.4.3

                              Damit muss es funktionieren so wie mit meiner Version 4.4.0.

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

                                @paul53
                                Könntest Du freundlicherweise einmal das Script von oben einmal bei Dir laufen lassen?
                                (Egal wie oft ich dieses Script starte, der Fehler erscheint immer:)

                                Jetzt funktionierts, ich weis aber nicht warum, ich habe nur die Kommentare aus dem
                                Script gelöscht.

                                Vielen, vielen Dank.

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

                                  @hanss sagte:

                                  setState("javascript.0.zigbee.0.Test", Alarm)

                                  Hat auch bei mir nicht funktioniert.

                                  setState("javascript.0.zigbee.0.Test", Alarm, true);
                                  

                                  funktioniert.

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

                                    @paul53
                                    Du hast recht, das true macht´s aus.
                                    Mann, da war die MSBasic Syntax ja richtig einfach dagegen.

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate
                                    FAQ Cloud / IOT
                                    HowTo: Node.js-Update
                                    HowTo: Backup/Restore
                                    Downloads
                                    BLOG

                                    825
                                    Online

                                    32.0k
                                    Users

                                    80.5k
                                    Topics

                                    1.3m
                                    Posts

                                    setstate kennzeichen id
                                    3
                                    20
                                    631
                                    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