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. English
  3. Scripting / Logic
  4. JavaScript
  5. [gelöst] setState funktioniert nicht bei Device ?

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    18
    1
    582

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

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

[gelöst] setState funktioniert nicht bei Device ?

Geplant Angeheftet Gesperrt Verschoben JavaScript
14 Beiträge 3 Kommentatoren 1.1k Aufrufe 2 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.
  • arteckA arteck

    @great-sun sagte in setState funktioniert nicht bei Device ?:

    State "0_userdata.0

    wasndas 0_ wie kommst du dadrauf

    Great SUNG Offline
    Great SUNG Offline
    Great SUN
    schrieb am zuletzt editiert von
    #5

    @arteck Das ist bei mir in den Objekten so drin.

    fbae1887-f287-43c8-bd6b-f7c7111cca04-image.png

    1 Antwort Letzte Antwort
    0
    • Great SUNG Great SUN

      @paul53 Ja, ich weiß. Das habe ich auch nicht gemacht.
      Habe beides mit setObject angelegt.
      Das Ergebnis (wenn man einen JSON export macht) ist aber dann das o.g.

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #6

      @great-sun sagte: Das Ergebnis (wenn man einen JSON export macht) ist aber dann das o.g.

      Das ist ein Objekt, das nicht ioBroker konform ist. Lösche es und erstelle 2 konforme Objekte, etwa so:

      const idDev = '0_userdata.0.DeviceState.Heatage.Configurations.Zoe.Heaters.Heizkoerperthermostat';
      const idSoll = idDev + '.LastSetTemperature';
      
      const obj = {
          type: 'device',
          common: {
              name: 'Heizkörperthermostat'
          },
          native: {}
      };
      
      setObject(idDev, obj);
      createState(idSoll, 0, {
          name: 'LastSetTemperature',
          type: 'number',
          role: 'value.temperature',
          read: true,
          write: false,
          def: 0
      });
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      Great SUNG 2 Antworten Letzte Antwort
      0
      • paul53P paul53

        @great-sun sagte: Das Ergebnis (wenn man einen JSON export macht) ist aber dann das o.g.

        Das ist ein Objekt, das nicht ioBroker konform ist. Lösche es und erstelle 2 konforme Objekte, etwa so:

        const idDev = '0_userdata.0.DeviceState.Heatage.Configurations.Zoe.Heaters.Heizkoerperthermostat';
        const idSoll = idDev + '.LastSetTemperature';
        
        const obj = {
            type: 'device',
            common: {
                name: 'Heizkörperthermostat'
            },
            native: {}
        };
        
        setObject(idDev, obj);
        createState(idSoll, 0, {
            name: 'LastSetTemperature',
            type: 'number',
            role: 'value.temperature',
            read: true,
            write: false,
            def: 0
        });
        
        Great SUNG Offline
        Great SUNG Offline
        Great SUN
        schrieb am zuletzt editiert von
        #7

        @paul53 Kannst Du mir sagen, wie ich diese dann erstellen sollte?

        0_userdata.0.DeviceState.Heatage.Configurations.Zoe.Heaters with {"type":"folder","common":{"name":"Heaters","read":true,"write":true,"def":"","role":""},"native":{}}
        
        0_userdata.0.DeviceState.Heatage.Configurations.Zoe.Heaters.Heizkoerperthermostat with {"type":"device","common":{"name":"Heizkoerperthermostat","read":true,"write":true,"def":"","role":""},"native":{}}
        
        0_userdata.0.DeviceState.Heatage.Configurations.Zoe.Heaters.Heizkoerperthermostat.LastSetTemperature with {"type":"state","common":{"name":"LastSetTemperature","type":"number","role":"state","read":true,"write":true,"def":""},"native":{}}
        
        paul53P 1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @great-sun sagte: Das Ergebnis (wenn man einen JSON export macht) ist aber dann das o.g.

          Das ist ein Objekt, das nicht ioBroker konform ist. Lösche es und erstelle 2 konforme Objekte, etwa so:

          const idDev = '0_userdata.0.DeviceState.Heatage.Configurations.Zoe.Heaters.Heizkoerperthermostat';
          const idSoll = idDev + '.LastSetTemperature';
          
          const obj = {
              type: 'device',
              common: {
                  name: 'Heizkörperthermostat'
              },
              native: {}
          };
          
          setObject(idDev, obj);
          createState(idSoll, 0, {
              name: 'LastSetTemperature',
              type: 'number',
              role: 'value.temperature',
              read: true,
              write: false,
              def: 0
          });
          
          Great SUNG Offline
          Great SUNG Offline
          Great SUN
          schrieb am zuletzt editiert von
          #8

          @paul53 Ich besser das mal aus (statt setObject -> createState) und schau mal, ob es dann geht.

          Danke erstmal für die Mühe!

          1 Antwort Letzte Antwort
          0
          • Great SUNG Great SUN

            @paul53 Kannst Du mir sagen, wie ich diese dann erstellen sollte?

            0_userdata.0.DeviceState.Heatage.Configurations.Zoe.Heaters with {"type":"folder","common":{"name":"Heaters","read":true,"write":true,"def":"","role":""},"native":{}}
            
            0_userdata.0.DeviceState.Heatage.Configurations.Zoe.Heaters.Heizkoerperthermostat with {"type":"device","common":{"name":"Heizkoerperthermostat","read":true,"write":true,"def":"","role":""},"native":{}}
            
            0_userdata.0.DeviceState.Heatage.Configurations.Zoe.Heaters.Heizkoerperthermostat.LastSetTemperature with {"type":"state","common":{"name":"LastSetTemperature","type":"number","role":"state","read":true,"write":true,"def":""},"native":{}}
            
            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #9

            @great-sun
            Nur Datenpunkte haben common.type, common.read, common.write und common.def.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            Great SUNG 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @great-sun
              Nur Datenpunkte haben common.type, common.read, common.write und common.def.

              Great SUNG Offline
              Great SUNG Offline
              Great SUN
              schrieb am zuletzt editiert von
              #10

              @paul53 Also muss ich das beim Device rauslassen?

              paul53P 1 Antwort Letzte Antwort
              0
              • Great SUNG Great SUN

                @paul53 Also muss ich das beim Device rauslassen?

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #11

                @great-sun sagte: muss ich das beim Device rauslassen?

                Ja.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                Great SUNG 1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @great-sun sagte: muss ich das beim Device rauslassen?

                  Ja.

                  Great SUNG Offline
                  Great SUNG Offline
                  Great SUN
                  schrieb am zuletzt editiert von
                  #12

                  @paul53
                  Ich hab das jetzt so in der Erstellung:

                  setObject('0_userdata.0.DeviceState.Heatage.Configurations.Zoe.Heaters', {"type":"folder","common":{"name":"Heaters"},"native":{}});
                  
                  setObject('0_userdata.0.DeviceState.Heatage.Configurations.Zoe.Heaters.Heizkoerperthermostat', {"type":"device","common":{"name":"Heizkoerperthermostat"},"native":{}});
                  
                  createState('0_userdata.0.DeviceState.Heatage.Configurations.Zoe.Heaters.Heizkoerperthermostat', null, {'name': 'LastSetTemperature', 'type': 'number', 'role': 'value', 'read': true, 'write': true);
                  

                  Darf ich bei dem createState null nicht benutzen?
                  Brauche ich zwangsweise das default value?

                  Das Objekt als solches wird angelegt ohne Fehler, nur, wenn ich dann mit setState etwas reinschreiben will, gibts den Fehler.

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • Great SUNG Great SUN

                    @paul53
                    Ich hab das jetzt so in der Erstellung:

                    setObject('0_userdata.0.DeviceState.Heatage.Configurations.Zoe.Heaters', {"type":"folder","common":{"name":"Heaters"},"native":{}});
                    
                    setObject('0_userdata.0.DeviceState.Heatage.Configurations.Zoe.Heaters.Heizkoerperthermostat', {"type":"device","common":{"name":"Heizkoerperthermostat"},"native":{}});
                    
                    createState('0_userdata.0.DeviceState.Heatage.Configurations.Zoe.Heaters.Heizkoerperthermostat', null, {'name': 'LastSetTemperature', 'type': 'number', 'role': 'value', 'read': true, 'write': true);
                    

                    Darf ich bei dem createState null nicht benutzen?
                    Brauche ich zwangsweise das default value?

                    Das Objekt als solches wird angelegt ohne Fehler, nur, wenn ich dann mit setState etwas reinschreiben will, gibts den Fehler.

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von paul53
                    #13

                    @great-sun sagte: Darf ich bei dem createState null nicht benutzen?

                    Nein, null steht für "nicht vorhanden".

                    @great-sun sagte in setState funktioniert nicht bei Device ?:

                    wenn ich dann mit setState etwas reinschreiben will, gibts den Fehler.

                    Welchen Fehler? Unmittelbar nach createState() kann man setState() nicht verwenden, da der Datenpunkt noch nicht fertig erstellt ist.

                    Man kann einen Datenpunkt auch mit setObject() erstellen und mit setState() in der Callback-Funktion initialisieren.

                    const idDev = '0_userdata.0.DeviceState.Heatage.Configurations.Zoe.Heaters.Heizkoerperthermostat';
                    const idSoll = idDev + '.LastSetTemperature';
                    
                    setObject(idDev, {
                        type: 'device',
                        common: {
                            name: 'Heizkörperthermostat'
                        },
                        native: {}
                    });
                    
                    setObject(idSoll, {
                        type: 'state', 
                        common: {
                            name: 'LastSetTemperature',
                            type: 'number',
                            role: 'level.temperature',
                            read: true,
                            write: true,
                            def: 0
                        },
                        native: {}
                    }, function() {
                        setState(idSoll, 20, true);
                    });
                    

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    1 Antwort Letzte Antwort
                    1
                    • Great SUNG Offline
                      Great SUNG Offline
                      Great SUN
                      schrieb am zuletzt editiert von
                      #14

                      @paul53 Hach ja... Und ich dachte beim bauen des Scripts, dass es createState und createStateAsync gibt, weil createState das Objekt direkt erzeugt und man damit danach arbeiten kann...

                      Das genau war die Lösung!!!

                      Vielen lieben Dank für den Hint mit dem Callback.

                      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

                      901

                      Online

                      32.5k

                      Benutzer

                      81.6k

                      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