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. String nach Boolean

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

String nach Boolean

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
6 Beiträge 3 Kommentatoren 1.2k Aufrufe 1 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.
  • D Offline
    D Offline
    derrapf
    schrieb am zuletzt editiert von
    #1

    Hallo alle

    Ich habe ein Script gebaut, das wie folgt funktioniert: Es reagiert auf eine Systemvariable die Boolean ist:

    on(id_boolscheSysvar, function (obj) 
     {
        if (obj.newState.val=="ist wahr") {
            ... Code ...
        }
     }
    );
    

    Scheinbar kommt also aus obj.newState.val ein String zurück.

    Wie kann man denn dafür sorgen, dass entweder der richtige Datentyp zurückkommt, oder man wenigstens diesen String in eine Boolsche Variable wandeln kann, damit die If-Abfrage kein Stringvergleich mehr ist?

    Und: Wie kann man Methoden die man in einem Script definiert hat in einem anderen Script aufrufen? Kennen die Scripe sich gegenseitig oder muss man die irgendwie referenzieren?

    Gruss Ralf

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      Wenn der Vergleich

      if (obj.newState.val=="ist wahr")
      

      funktioniert, kann Datenpunktwert nicht vom Typ Boolean sein.
      @derrapf:

      Wie kann man denn dafür sorgen, dass entweder der richtige Datentyp zurückkommt `
      Indem der richtige Typ geschrieben wird (z.B. mit setState(id, val)).
      @derrapf:

      Und: Wie kann man Methoden die man in einem Script definiert hat in einem anderen Script aufrufen? Kennen die Scripe sich gegenseitig oder muss man die irgendwie referenzieren? `
      Skripte kennen sich untereinander nicht. Man kann nur Funktionen von Skripten, die als global deklariert wurden (Gruppe "global") aus anderen Skripten aufrufen.

      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
      • D Offline
        D Offline
        derrapf
        schrieb am zuletzt editiert von
        #3

        Hallo Paul
        @paul53:

        Wenn der Vergleich

        if (obj.newState.val=="ist wahr")
        

        funktioniert, kann Datenpunktwert nicht vom Typ Boolean sein. `
        Die Variable ist bei mir in der CCU als "Logikwert" definiert mit den Werten wahr = "ist wahr", falsch = "ist falsch"

        Das habe ich bisher als einen internen Boolean verstanden der bei false "ist falsch" und bei true "ist wahr" an's Webinterfce bzw. die Programmierschnittstelle liefert, damit man einfacher damit umgehen kann.

        In IoBroker unter Zustände wird diese Systemvariable auch mit der Werteliste true, false angezeigt. Für mich war das immer ziemlich boolean.

        Oder ist die Variable jetzt tatsächlich ein String?????

        Kennt die CCU gar keine echten Booleans?

        @derrapf:

        Indem der richtige Typ geschrieben wird (z.B. mit setState(id, val)). `
        Verstehe ich nicht. Die Variable ist ja durch die CCU definiert und wird durch obj.newState.val nur referenziert.

        Oder hab ich jetzt was falsch verstaden?

        @derrapf:

        Man kann nur Funktionen von Skripten, die als global deklariert wurden (Gruppe "global") aus anderen Skripten aufrufen. `
        Ah. Das heisst wenn ich Methoden habe die ich in vielen Scripten verwenden möchte, dann sammle ich diese in einem Script und hake dort "global" an. Dann kann ich sie von überall her aufrufen. Hab ich das richtig verstanden?

        Gruss Ralf

        1 Antwort Letzte Antwort
        0
        • blauholstenB Offline
          blauholstenB Offline
          blauholsten
          Developer
          schrieb am zuletzt editiert von
          #4

          @derrapf:

          Ah. Das heisst wenn ich Methoden habe die ich in vielen Scripten verwenden möchte, dann sammle ich diese in einem Script und hake dort "global" an. Dann kann ich sie von überall her aufrufen. Hab ich das richtig verstanden?

          Gruss Ralf `

          Hi,

          ja. Wenn du global z.B. eine function deklarierst

          function global(){
          log('hallo Welt')}
          

          Kannst du diese von überall aufrufen.

          Zum Thema boolsche Werte, probier doch mal

              on(id_boolscheSysvar, function (obj) {
              log(obj.newState.val);
              }
          
          

          Entwickler vom: - Viessman Adapter
          - Alarm Adapter

          1 Antwort Letzte Antwort
          0
          • paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #5

            @derrapf:

            Die Variable ist bei mir in der CCU als "Logikwert" definiert mit den Werten wahr = "ist wahr", falsch = "ist falsch"

            Das habe ich bisher als einen internen Boolean verstanden der bei false "ist falsch" und bei true "ist wahr" an's Webinterfce bzw. die Programmierschnittstelle liefert, damit man einfacher damit umgehen kann. `
            Ja an das Webinterface und an die WebUI Porogrammierschnittstelle wird der Zustandstext geliefert, nicht jedoch an HM Script.

            Ich vermute allerdings, dass Du den Wert der Variablen im Reiter "Zustände" manuell geändert hast. Das funktioniert leider (noch) nicht. Bei manueller Änderung wird der Wert zum String, indem "ist wahr" bzw. "ist falsch" in den Wert eingetragen wird.

            Also Logikwerte aus der CCU vorläufig nicht in ioBroker manuell ändern ! Bei allen anderen Datenpunkttypen funktioniert die manuelle Änderung im Reiter "Zustände" korrekt (auch bei "Werteliste").

            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 Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #6

              @blauholsten:

              Wenn du global z.B. eine function deklarierst

              function global(){
              log('hallo Welt')}
              

              Kannst du diese von überall aufrufen. `
              Wenn Du eine Funktion innerhalb eines globalen Skriptes (Skript in Gruppe "global") deklarierst,

              function meine_globale_Funktion(x, y) {
                 mache was mit x und y
              }
              

              kannst Du diese Funktion von überall aufrufen.

              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

              775

              Online

              32.5k

              Benutzer

              81.7k

              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