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. JavaScript
  5. getState - warning log / JS Dokumentation

NEWS

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

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

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

getState - warning log / JS Dokumentation

Geplant Angeheftet Gesperrt Verschoben JavaScript
17 Beiträge 5 Kommentatoren 2.0k 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.
  • T ticaki

    @SaschaS sagte in getState - warning log / JS Dokumentation:

    @_steven_ hast du eine Lösung dafür gefunden?

    var myState = $('state[state.id=javascript.0.test5.0.test]');
    if (Array.isArray(myState) &&  myState[0] == 'javascript.0.test5.0.test') {
      console.log('da');
    } else {
      console.log('weg');
    }
    
    S Offline
    S Offline
    SaschaS
    schrieb am zuletzt editiert von SaschaS
    #4

    @ticaki @_steven_
    Danke für deine Antwort @ticaki. Allerdings komme ich mit deinem Code nicht weiter. Kannst du noch einmal prüfen.
    Er springt bei beiden Objekten in die Else-Bedingung..

    Nachtrag: Es liegt vermutlich am Array.isArray(myState). Wird der Array mit Einträgen beschrieben, dann hat er folgendes Format:

    javascript.0 (13463) script.js.Tests.Statusabfrage: {'0':'javascript.0.LWZ.ABTAUEN_VERDAMPFER','1':'javascript.0.LWZ.HEIZEN','2':
    

    und dieses Format wird von Array.isArray() nicht wie erhofft interpretiert.

    Array.isArray([1, 2, 3]);  // true
    Array.isArray({foo: 123}); // false
    Array.isArray('foobar');   // false
    Array.isArray(undefined);  // false
    
    // State ist true
    var myState = $('state[state.id=stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.SCHALTPROGRAMM_AKTIV]');
    if (Array.isArray(myState) &&  myState[0] == 'stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.SCHALTPROGRAMM_AKTIV') {
      console.log('da');
    } else {
      console.log("State existiert: " + Array.isArray(myState));  
      console.log("State existiert: " + myState[0]);
      console.log('weg');
    }
    
    //State existiert nicht
    var myState = $('state[state.id=stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.HEIZEN]');
    if (Array.isArray(myState) &&  myState[0] == 'stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.HEIZEN') {
      console.log('da');
    } else {
      console.log("State existiert nicht: " + Array.isArray(myState));  
      console.log("State existiert nicht: " + myState[0]);
      console.log('weg');
    }
    

    Im Log:

    17:50:49.415	info	javascript.0 (13463) Start javascript script.js.Tests.Statusabfrage
    17:50:49.452	info	javascript.0 (13463) script.js.Tests.Statusabfrage: State existiert: false
    17:50:49.453	info	javascript.0 (13463) script.js.Tests.Statusabfrage: State existiert: stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.SCHALTPROGRAMM_AKTIV
    17:50:49.453	info	javascript.0 (13463) script.js.Tests.Statusabfrage: weg
    17:50:49.470	info	javascript.0 (13463) script.js.Tests.Statusabfrage: State existiert nicht: false
    17:50:49.471	info	javascript.0 (13463) script.js.Tests.Statusabfrage: State existiert nicht: stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.HEIZEN
    17:50:49.471	info	javascript.0 (13463) script.js.Tests.Statusabfrage: weg
    17:50:49.471	info	javascript.0 (13463) script.js.Tests.Statusabfrage: registered 0 subscriptions and 0 schedules
    
    1 Antwort Letzte Antwort
    0
    • S Offline
      S Offline
      SaschaS
      schrieb am zuletzt editiert von
      #5

      Irgendwas passt da nicht zusammen.
      Ich gehe davon aus, dass beim obigen Code in der Zeile

      var myState = $('state[state.id=stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.HEIZEN]');
      

      ein 'state' zu viel drin ist. Denn mit der Zeile

      console.log($('state[id=stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.]'));
      

      erhalte ich:

      18:40:38.156	info	javascript.0 (13463) script.js.Tests.Statusabfrage: {'0':'stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.ABTAUEN_VERDAMPFER','1':'stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.HEIZEN','2':'stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.SCHALTPROGRAMM_AKTIV','length':3}
      

      Allerdings passt das nicht zu der Anzahl der states auf dem Bild... Ich erkenne keine Logik..
      006df1bc-3ae3-4d47-bae1-dd11ff7f30c1-image.png

      1 Antwort Letzte Antwort
      0
      • T Nicht stören
        T Nicht stören
        ticaki
        schrieb am zuletzt editiert von ticaki
        #6

        Ich muß jetzt mal kurz meinem Ärger Luft machen, dass alles was man nicht testet auch nicht so funktioniert wie man erhofft. :)

        Jetzt gehts:

        var myState = $('state[state.id=javascript.0.test5.0.test]');
        if (myState['length'] > 0) {
          console.log('da');
        } else {
          console.log('weg');
        }
        

        Die 2 Bedingung in if ist unnötig.
        Sry, hab dir bestimmt unnötige arbeit gemacht. :)

        Zu deinen weiteren Anmerkungen hab ich mich noch nicht tief genug eingearbeitet. Diese Selektor werden dafür verwendet "Arrays" bzw. Json von Objekten zu bekommen.
        z.B

        $('state[state.id=javascript.0.test5.0.*]');
        

        gibt dir alles unterhalb von ...test5.0.

        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

        Spenden

        1 Antwort Letzte Antwort
        0
        • S Offline
          S Offline
          SaschaS
          schrieb am zuletzt editiert von
          #7

          @ticaki Danke, dass du dir das noch einmal angeschaut hast. Brauchst dir aber keine Vorwürfe machen. Ich hab in der Zeit einiges dazugelernt.

          Muss dennoch noch einmal einhaken.

          @ticaki said in getState - warning log / JS Dokumentation:

          Zu deinen weiteren Anmerkungen hab ich mich noch nicht tief genug eingearbeitet. Diese Selektor werden dafür verwendet "Arrays" bzw. Json von Objekten zu bekommen.
          z.B
          $('state[state.id=javascript.0.test5.0.*]');

          gibt dir alles unterhalb von ...test5.0.

          Bei mir stimmt das nicht. Mit

          console.log($('state[id=stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.]'));
          

          oder

          console.log($('state[id=stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.*]'));
          

          sollte ich ja erhalten:
          992e7df2-1e9f-407f-99b3-6bb9d2dba92c-image.png

          Ich erhalte aber lediglich:

          07:31:21.722	info	javascript.0 (13463) script.js.Tests.Statusabfrage: {'0':'stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.SCHALTPROGRAMM_AKTIV','length':1}
          

          Und gestern Abend habe ich mit selbiger Abfrage mehr erhalten:

          18:40:38.156 info javascript.0 (13463) script.js.Tests.Statusabfrage: {'0':'stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.ABTAUEN_VERDAMPFER','1':'stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.HEIZEN','2':'stiebel-isg.0.Info.STATUS.BETRIEBSSTATUS.SCHALTPROGRAMM_AKTIV','length':3}
          
          1 Antwort Letzte Antwort
          0
          • T Nicht stören
            T Nicht stören
            ticaki
            schrieb am zuletzt editiert von
            #8

            Da muß ich passen, bei mir geht es in jedem von mir getesteten Zweig mit diesen beiden und zeigt auch den richtigen Inhalt an. Ist es möglich das die States garnicht existieren? Hast du unmittelbar um den Test herum ein Reload des Objekttab gemacht?

            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

            Spenden

            S 1 Antwort Letzte Antwort
            0
            • C Offline
              C Offline
              CruziX
              schrieb am zuletzt editiert von CruziX
              #9

              Das sollte glaube auch so gehen

              let exists = $(idVomDp);
              

              Müsste dann false sein, wenn er nicht vorhanden ist.
              bzw. prüfe ich dann immer
              if(!exists) {}

              1 Antwort Letzte Antwort
              0
              • AlCalzoneA Offline
                AlCalzoneA Offline
                AlCalzone
                Developer
                schrieb am zuletzt editiert von
                #10

                Hallo zusammen, nehmt doch einfach existsState(id) :)

                Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                C S T 3 Antworten Letzte Antwort
                3
                • AlCalzoneA AlCalzone

                  Hallo zusammen, nehmt doch einfach existsState(id) :)

                  C Offline
                  C Offline
                  CruziX
                  schrieb am zuletzt editiert von
                  #11

                  @AlCalzone sagte in getState - warning log / JS Dokumentation:

                  existsState

                  Die Funktion gibt es?
                  Ist gar nicht in der Doku beschrieben

                  AlCalzoneA 1 Antwort Letzte Antwort
                  0
                  • C CruziX

                    @AlCalzone sagte in getState - warning log / JS Dokumentation:

                    existsState

                    Die Funktion gibt es?
                    Ist gar nicht in der Doku beschrieben

                    AlCalzoneA Offline
                    AlCalzoneA Offline
                    AlCalzone
                    Developer
                    schrieb am zuletzt editiert von
                    #12

                    @CruziX Ja gibt es. Sollte eigentlich auch im Dropdown für autocomplete auftauchen:

                    	/**
                    	 * Checks if the state with the given ID exists
                    	 */
                    	function existsState(id: string): boolean;
                    	/**
                    	 * Checks if the object with the given ID exists
                    	 */
                    	function existsObject(id: string): boolean;
                    

                    Wenn sie nicht in der Doku steht, ist natürlich doof.

                    Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                    C 1 Antwort Letzte Antwort
                    0
                    • AlCalzoneA AlCalzone

                      @CruziX Ja gibt es. Sollte eigentlich auch im Dropdown für autocomplete auftauchen:

                      	/**
                      	 * Checks if the state with the given ID exists
                      	 */
                      	function existsState(id: string): boolean;
                      	/**
                      	 * Checks if the object with the given ID exists
                      	 */
                      	function existsObject(id: string): boolean;
                      

                      Wenn sie nicht in der Doku steht, ist natürlich doof.

                      C Offline
                      C Offline
                      CruziX
                      schrieb am zuletzt editiert von
                      #13

                      @AlCalzone Das ist natürlich praktisch ^^
                      Wo kann man denn die Funktionen im Code direkt ansehen?

                      AlCalzoneA 1 Antwort Letzte Antwort
                      0
                      • C CruziX

                        @AlCalzone Das ist natürlich praktisch ^^
                        Wo kann man denn die Funktionen im Code direkt ansehen?

                        AlCalzoneA Offline
                        AlCalzoneA Offline
                        AlCalzone
                        Developer
                        schrieb am zuletzt editiert von
                        #14

                        @CruziX Diese Datei enthält die Definitionen für Auto-Complete und Syntax-Check:
                        https://github.com/ioBroker/ioBroker.javascript/blob/master/lib/javascript.d.ts
                        Interessant wird es ab https://github.com/ioBroker/ioBroker.javascript/blob/5055cc9cb5e017c37eb9a64f0084e2a76fba26f2/lib/javascript.d.ts#L537

                        Die Funktionen selbst kannst du dir hier anschauen (sandbox-Objekt):
                        https://github.com/ioBroker/ioBroker.javascript/blob/5055cc9cb5e017c37eb9a64f0084e2a76fba26f2/lib/sandbox.js#L452

                        Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                        1 Antwort Letzte Antwort
                        1
                        • T ticaki

                          Da muß ich passen, bei mir geht es in jedem von mir getesteten Zweig mit diesen beiden und zeigt auch den richtigen Inhalt an. Ist es möglich das die States garnicht existieren? Hast du unmittelbar um den Test herum ein Reload des Objekttab gemacht?

                          S Offline
                          S Offline
                          SaschaS
                          schrieb am zuletzt editiert von
                          #15

                          @ticaki Der Cache des Browers hat mich in die Irre geführt.

                          1 Antwort Letzte Antwort
                          0
                          • AlCalzoneA AlCalzone

                            Hallo zusammen, nehmt doch einfach existsState(id) :)

                            S Offline
                            S Offline
                            SaschaS
                            schrieb am zuletzt editiert von
                            #16

                            @AlCalzone said in getState - warning log / JS Dokumentation:

                            Hallo zusammen, nehmt doch einfach existsState(id) :)

                            Die macht das Leben so viel einfacher. Die kannte ich in der Tat noch nicht..Genial :-)

                            1 Antwort Letzte Antwort
                            0
                            • AlCalzoneA AlCalzone

                              Hallo zusammen, nehmt doch einfach existsState(id) :)

                              T Nicht stören
                              T Nicht stören
                              ticaki
                              schrieb am zuletzt editiert von
                              #17

                              @AlCalzone
                              Danke

                              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                              Spenden

                              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

                              783

                              Online

                              32.4k

                              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