Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Blockly
  5. If State exists

NEWS

  • wichtiges UPDATE für controller 7.2.2 im stable
    HomoranH
    Homoran
    10
    1
    2.1k

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    16
    1
    4.0k

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    3.6k

If State exists

Geplant Angeheftet Gesperrt Verschoben Blockly
15 Beiträge 3 Kommentatoren 450 Aufrufe 2 Beobachtet
  • Ä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.
  • David G.D Online
    David G.D Online
    David G.
    schrieb am zuletzt editiert von
    #1

    Hallo,

    Irgendwie scheitere ich an einer Funktion die ich mir aus einem anderem Skript kopiert habe.
    Damals hat mjtodas @paul53 gezeigt.

    Ich möchte prüfen ob ein State existiert und dann eine Variable mit dem Wert beschreiben.

    Hier die Funktion (am Smartphone kann man da leider keinen Text markieren um es als Code zu posten):

    Screenshot_20240304_095250_Chrome.jpg

    Hier ist es im Script eingebaut.
    Screenshot_20240304_094425_Chrome.jpg

    Die Variable HDD2 Word immer auf -1 gesetzt
    Screenshot_20240304_095933_Chrome.jpg

    Wenn ich die Funktion weg lasse klappt alles, schmeißt eben Fehler, wenn die DPs nicht vorhanden sind.

    Zeigt eure Lovelace-Visualisierung klick
    (Auch ideal um sich Anregungen zu holen)

    Meine Tabellen für eure Visualisierung klick

    paul53P 1 Antwort Letzte Antwort
    0
    • MartinPM Abwesend
      MartinPM Abwesend
      MartinP
      schrieb am zuletzt editiert von MartinP
      #2

      @david-g Möchtest Du prüfen, ob der State existiert, oder ob das Object existiert? Es gibt auch eine Funktion

      existsObject();

      existsState();

      Intel(R) Celeron(R) CPU N3000 @1.04GHz 8G RAM 480G SSD * Virtualization : unprivileged lxc container on Proxmox * 6 GByte RAM für den iobroker Container * Remote-Access über Wireguard meiner Fritzbox

      1 Antwort Letzte Antwort
      0
      • David G.D David G.

        Hallo,

        Irgendwie scheitere ich an einer Funktion die ich mir aus einem anderem Skript kopiert habe.
        Damals hat mjtodas @paul53 gezeigt.

        Ich möchte prüfen ob ein State existiert und dann eine Variable mit dem Wert beschreiben.

        Hier die Funktion (am Smartphone kann man da leider keinen Text markieren um es als Code zu posten):

        Screenshot_20240304_095250_Chrome.jpg

        Hier ist es im Script eingebaut.
        Screenshot_20240304_094425_Chrome.jpg

        Die Variable HDD2 Word immer auf -1 gesetzt
        Screenshot_20240304_095933_Chrome.jpg

        Wenn ich die Funktion weg lasse klappt alles, schmeißt eben Fehler, wenn die DPs nicht vorhanden sind.

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

        @david-g sagte: Hier die Funktion

        An diese Funktion muss die ID übergeben werden - nicht der Wert. Sie liefert den Wert bei Existenz zurück.

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB; Proxmox mit 2 VM (iob / openCCU)

        MartinPM David G.D 3 Antworten Letzte Antwort
        0
        • paul53P paul53

          @david-g sagte: Hier die Funktion

          An diese Funktion muss die ID übergeben werden - nicht der Wert. Sie liefert den Wert bei Existenz zurück.

          MartinPM Abwesend
          MartinPM Abwesend
          MartinP
          schrieb am zuletzt editiert von
          #4

          @paul53 Interessant ist auch die Anmerkung in der Doku...

          If the option "Do not subscribe all states on start" is deactivated, you can use simpler call:

          existsObject(id)

          Intel(R) Celeron(R) CPU N3000 @1.04GHz 8G RAM 480G SSD * Virtualization : unprivileged lxc container on Proxmox * 6 GByte RAM für den iobroker Container * Remote-Access über Wireguard meiner Fritzbox

          1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @david-g sagte: Hier die Funktion

            An diese Funktion muss die ID übergeben werden - nicht der Wert. Sie liefert den Wert bei Existenz zurück.

            David G.D Online
            David G.D Online
            David G.
            schrieb am zuletzt editiert von David G.
            #5

            @paul53

            🫣 Augen auf am Steuer. Die Fehlermeldungen sind jetzt weg.

            Frage mich warum in der Funktion die -1 steht.
            So hat er die Variable immer damit beschrieben, wenn es den DP nicht gibt. Ohne klappt es wunderbar. In len anderen Scripten habe ich die drinnen.

            @MartinP
            Danke dur die Hinweise.

            Zeigt eure Lovelace-Visualisierung klick
            (Auch ideal um sich Anregungen zu holen)

            Meine Tabellen für eure Visualisierung klick

            paul53P 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @david-g sagte: Hier die Funktion

              An diese Funktion muss die ID übergeben werden - nicht der Wert. Sie liefert den Wert bei Existenz zurück.

              MartinPM Abwesend
              MartinPM Abwesend
              MartinP
              schrieb am zuletzt editiert von
              #6

              @paul53 said in If State exists:

              Sie liefert den Wert bei Existenz zurück.

              Sie liefert true zurück., wenn der State existiert, und false sonst ...

              Intel(R) Celeron(R) CPU N3000 @1.04GHz 8G RAM 480G SSD * Virtualization : unprivileged lxc container on Proxmox * 6 GByte RAM für den iobroker Container * Remote-Access über Wireguard meiner Fritzbox

              1 Antwort Letzte Antwort
              0
              • David G.D David G.

                @paul53

                🫣 Augen auf am Steuer. Die Fehlermeldungen sind jetzt weg.

                Frage mich warum in der Funktion die -1 steht.
                So hat er die Variable immer damit beschrieben, wenn es den DP nicht gibt. Ohne klappt es wunderbar. In len anderen Scripten habe ich die drinnen.

                @MartinP
                Danke dur die Hinweise.

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

                @david-g sagte: warum in der Funktion die -1 steht.

                Das ist der Wert bei Nichtexistenz. Andernfalls würde bei Nichtexistenz undefined zurück geliefert.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB; Proxmox mit 2 VM (iob / openCCU)

                MartinPM 1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @david-g sagte: warum in der Funktion die -1 steht.

                  Das ist der Wert bei Nichtexistenz. Andernfalls würde bei Nichtexistenz undefined zurück geliefert.

                  MartinPM Abwesend
                  MartinPM Abwesend
                  MartinP
                  schrieb am zuletzt editiert von
                  #8

                  @paul53 Ist aber etwas, was Programmierer, die von streng typisierten Sprachen kommen irritiert ....

                  Im Erfolgsfall true/false zurück, und im Fehlerfall -1 ....

                  Die Architektur der Funktion scheint mir da sowieso nicht besonders praktisch zu sein ...

                  Intel(R) Celeron(R) CPU N3000 @1.04GHz 8G RAM 480G SSD * Virtualization : unprivileged lxc container on Proxmox * 6 GByte RAM für den iobroker Container * Remote-Access über Wireguard meiner Fritzbox

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • MartinPM MartinP

                    @paul53 Ist aber etwas, was Programmierer, die von streng typisierten Sprachen kommen irritiert ....

                    Im Erfolgsfall true/false zurück, und im Fehlerfall -1 ....

                    Die Architektur der Funktion scheint mir da sowieso nicht besonders praktisch zu sein ...

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

                    @martinp sagte: Die Architektur der Funktion scheint mir da sowieso nicht besonders praktisch zu sein ...

                    Das stimmt. Ursprünglich sollten wohl 3 Symbole (wahr / falsch / nicht vorhanden) für die Visualisierung erzeugt werden.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB; Proxmox mit 2 VM (iob / openCCU)

                    David G.D 2 Antworten Letzte Antwort
                    0
                    • paul53P paul53

                      @martinp sagte: Die Architektur der Funktion scheint mir da sowieso nicht besonders praktisch zu sein ...

                      Das stimmt. Ursprünglich sollten wohl 3 Symbole (wahr / falsch / nicht vorhanden) für die Visualisierung erzeugt werden.

                      David G.D Online
                      David G.D Online
                      David G.
                      schrieb am zuletzt editiert von David G.
                      #10

                      @paul53 sagte in If State exists:

                      Das stimmt. Ursprünglich sollten wohl 3 Symbole (wahr / falsch / nicht vorhanden) für die Visualisierung erzeugt werden.

                      Das stimmt sogar.
                      Hab ich aus meinem Batteriescript kopiert.
                      Für Batterie voll/leer/nicht vorhanden.

                      EDIT
                      Wie müsste es denn besser gemacht werden, wenn ich nur prüfen möchte ob der DP existiert und falls ja, den Wert in die Variable schreiben möchte?

                      Zeigt eure Lovelace-Visualisierung klick
                      (Auch ideal um sich Anregungen zu holen)

                      Meine Tabellen für eure Visualisierung klick

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • David G.D David G.

                        @paul53 sagte in If State exists:

                        Das stimmt. Ursprünglich sollten wohl 3 Symbole (wahr / falsch / nicht vorhanden) für die Visualisierung erzeugt werden.

                        Das stimmt sogar.
                        Hab ich aus meinem Batteriescript kopiert.
                        Für Batterie voll/leer/nicht vorhanden.

                        EDIT
                        Wie müsste es denn besser gemacht werden, wenn ich nur prüfen möchte ob der DP existiert und falls ja, den Wert in die Variable schreiben möchte?

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

                        @david-g sagte: nur prüfen möchte ob der DP existiert und falls ja, den Wert in die Variable schreiben möchte?

                        Was soll die Variable enthalten, wenn der DP nicht existiert? Wie wird die Variable ausgewertet?

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB; Proxmox mit 2 VM (iob / openCCU)

                        David G.D 1 Antwort Letzte Antwort
                        0
                        • paul53P paul53

                          @david-g sagte: nur prüfen möchte ob der DP existiert und falls ja, den Wert in die Variable schreiben möchte?

                          Was soll die Variable enthalten, wenn der DP nicht existiert? Wie wird die Variable ausgewertet?

                          David G.D Online
                          David G.D Online
                          David G.
                          schrieb am zuletzt editiert von
                          #12

                          @paul53

                          Bisher habe ich immer auf Null geprüft.

                          Screenshot_20240304_140400_Chrome.jpg

                          Dann kann man es für alles verwenden.

                          Zeigt eure Lovelace-Visualisierung klick
                          (Auch ideal um sich Anregungen zu holen)

                          Meine Tabellen für eure Visualisierung klick

                          paul53P 1 Antwort Letzte Antwort
                          0
                          • David G.D David G.

                            @paul53

                            Bisher habe ich immer auf Null geprüft.

                            Screenshot_20240304_140400_Chrome.jpg

                            Dann kann man es für alles verwenden.

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

                            @david-g sagte: auf Null geprüft.

                            Dann ändere die zweite Zeile in der JS-Funktion in

                            return null;
                            

                            oder lasse sie ganz weg: Im Vergleich liefern null und undefined das gleiche Ergebnis.

                            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                            Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB; Proxmox mit 2 VM (iob / openCCU)

                            1 Antwort Letzte Antwort
                            0
                            • paul53P paul53

                              @martinp sagte: Die Architektur der Funktion scheint mir da sowieso nicht besonders praktisch zu sein ...

                              Das stimmt. Ursprünglich sollten wohl 3 Symbole (wahr / falsch / nicht vorhanden) für die Visualisierung erzeugt werden.

                              David G.D Online
                              David G.D Online
                              David G.
                              schrieb am zuletzt editiert von
                              #14

                              Okay, dachte da wäre noch mehr unlogisch/nicht gut nach diesem Satz.

                              @paul53 sagte in If State exists:

                              Die Architektur der Funktion scheint mir da sowieso nicht besonders praktisch zu sein ...

                              Zeigt eure Lovelace-Visualisierung klick
                              (Auch ideal um sich Anregungen zu holen)

                              Meine Tabellen für eure Visualisierung klick

                              paul53P 1 Antwort Letzte Antwort
                              0
                              • David G.D David G.

                                Okay, dachte da wäre noch mehr unlogisch/nicht gut nach diesem Satz.

                                @paul53 sagte in If State exists:

                                Die Architektur der Funktion scheint mir da sowieso nicht besonders praktisch zu sein ...

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

                                @david-g sagte: dachte da wäre noch mehr unlogisch/nicht gut nach diesem Satz.

                                Die Variable enthält bei vorhandenem DP eine Zahl zwischen 0 und 100. Damit wäre die -1 wieder logisch und man müsste auf >= 0 prüfen.

                                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB; Proxmox mit 2 VM (iob / openCCU)

                                1 Antwort Letzte Antwort
                                0

                                Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                Registrieren Anmelden
                                Antworten
                                • In einem neuen Thema antworten
                                Anmelden zum Antworten
                                • Älteste zuerst
                                • Neuste zuerst
                                • Meiste Stimmen


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                282

                                Online

                                33.0k

                                Benutzer

                                83.4k

                                Themen

                                1.3m

                                Beiträge
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                ioBroker Community 2014-2026
                                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