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. Blockly
  5. If State exists

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    834

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    681

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

If State exists

Geplant Angeheftet Gesperrt Verschoben Blockly
15 Beiträge 3 Kommentatoren 331 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.
  • 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: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    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 Online
      MartinPM Online
      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 (debian 12 on Proxmox 8.4.14)
      Linux pve 6.8.12-16-pve
      6 GByte RAM für den Container
      Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
      Remote-Access über Wireguard der 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 Offline
        David G.D Offline
        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 Online
          MartinPM Online
          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 (debian 12 on Proxmox 8.4.14)
          Linux pve 6.8.12-16-pve
          6 GByte RAM für den Container
          Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
          Remote-Access über Wireguard der 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: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            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 Online
              MartinPM Online
              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 (debian 12 on Proxmox 8.4.14)
              Linux pve 6.8.12-16-pve
              6 GByte RAM für den Container
              Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
              Remote-Access über Wireguard der 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: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                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 Offline
                  David G.D Offline
                  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: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    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 Offline
                      David G.D Offline
                      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: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        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 Offline
                          David G.D Offline
                          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: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                            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

                            881

                            Online

                            32.6k

                            Benutzer

                            82.0k

                            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