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. mein Kampf mit true und false

NEWS

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    13
    1
    1.4k

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

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    11
    1
    1.1k

mein Kampf mit true und false

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
14 Beiträge 6 Kommentatoren 143 Aufrufe 4 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.
  • ubeckerU ubecker

    Hallo,
    ich kämpfe ständig mit 0, 1 - true, false, "true"- "false" ; usw.
    Gerät A verlangt eine Zahl 0 oder 1 zum steuern,
    Gerät B verlangt ein bool true oder false zum steuern.
    Gerät C verlangt ein string "true" oder "false"
    in der VIS gibt es auch diverse unterschiede, mal 0 - 1, mal "true" - "false"

    ich kovertiere mich hier einen Wolf weiß aber nie so richtig was wo hin gehört.

    Beispiel: Gerät A:
    in der VIS(1) ein Widget bool sendet true oder false, Gerät benötigt Zahl 0 - 1, Alias Konvertierung zum schreiben val === true ? 1 : 0. (wird in der VIS auch richtig dargestellt)
    Gleiches Gerät gleicher Datenpunkt (Alias xy) andere View in der Vis zur besseren Darstellung anderes Widget. Dieses Widget mach Zahl 0-1, was macht jetzt die Konvertierung?
    Was passiert wenn aus einem Script dieser Datenpunkt geschaltet wird ?
    Was sende ich von einem script aus steuere 0 -1 oder true - false?

    Ich habe es bisher immer hinbekommen, aber nicht durch logik sondern durch probieren.
    Da passieren dann Dinge die ich nicht verstehe, VIS zeigt nichts an wenn über script geschaltet wird oder Gerät reagiert nicht auf die VIS
    Was gibt es für Lösungen die man auch später noch versteht?

    HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von Homoran
    #3

    @ubecker sagte:

    Ich habe es bisher immer hinbekommen, aber nicht durch logik

    ...und dort sollte (zumindest in dem von dir beschriebenen Fall) die implizite Typkonvertierung greifen.

    Lediglich "1" ist und bleibt ein String

    @ubecker sagte:

    VIS zeigt nichts an wenn über script geschaltet wird oder Gerät reagiert nicht auf die VIS

    Das könnte an dem (nicht vorhandenen) Ack=true liegen.
    Einige Widgets erwarten dies anscheinend bevor es angezeigt wird.

    Außerdem habe ich vereinzelte Widgets, die ihren Dienst versagen, wenn man sich auch an anderen Stellen außerhalb der Legalität bewegt.
    So werden Datenpunkte in eigenen Strukturen, die noch aus der vor-0_userdata-Zeit stammen, nicht mehr angezeigt.

    kein Support per PN! - Fragen im Forum stellen -
    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
    Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    1 Antwort Letzte Antwort
    0
    • ubeckerU ubecker

      Hallo,
      ich kämpfe ständig mit 0, 1 - true, false, "true"- "false" ; usw.
      Gerät A verlangt eine Zahl 0 oder 1 zum steuern,
      Gerät B verlangt ein bool true oder false zum steuern.
      Gerät C verlangt ein string "true" oder "false"
      in der VIS gibt es auch diverse unterschiede, mal 0 - 1, mal "true" - "false"

      ich kovertiere mich hier einen Wolf weiß aber nie so richtig was wo hin gehört.

      Beispiel: Gerät A:
      in der VIS(1) ein Widget bool sendet true oder false, Gerät benötigt Zahl 0 - 1, Alias Konvertierung zum schreiben val === true ? 1 : 0. (wird in der VIS auch richtig dargestellt)
      Gleiches Gerät gleicher Datenpunkt (Alias xy) andere View in der Vis zur besseren Darstellung anderes Widget. Dieses Widget mach Zahl 0-1, was macht jetzt die Konvertierung?
      Was passiert wenn aus einem Script dieser Datenpunkt geschaltet wird ?
      Was sende ich von einem script aus steuere 0 -1 oder true - false?

      Ich habe es bisher immer hinbekommen, aber nicht durch logik sondern durch probieren.
      Da passieren dann Dinge die ich nicht verstehe, VIS zeigt nichts an wenn über script geschaltet wird oder Gerät reagiert nicht auf die VIS
      Was gibt es für Lösungen die man auch später noch versteht?

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

      @ubecker [sagte]: kämpfe ständig mit 0, 1 - true, false, "true"- "false"

      Dafür gibt es Alias:
      Datenpunkte, die nur zwei Werte annehmen können, definiert man im Alias immer als Logikwert ("boolean") und wendet bei Zahlen und Strings Konvertierung an, wobei beim Lesen automatisch konvertiert wird. Schreibkonvertierung:

      val ? 1 : 0  // Original als Zahl
      val ? 'true' : 'false'  // Original als String
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

      ubeckerU 1 Antwort Letzte Antwort
      0
      • MartinPM MartinP

        Das ist leider in drei Punkten unschön

        1. kein einheitliches Vorgehen
        2. nicht selten eine schlechte Dokumentation, oder sie ist schlecht auffindbar
        3. Sender UND Empfänger müssen sich einig sein.

        Eine für mich zufriedenstellende Lösung habe ich bisher auch noch nicht gefunden

        Aber so etwas ist ja eine (von vielen) Aufgabe eines Brokers - der soll das "runde" passend zum "eckigen" machen ;-)

        ubeckerU Offline
        ubeckerU Offline
        ubecker
        schrieb am zuletzt editiert von
        #5

        @MartinP sagte:

        kein einheitliches Vorgehen
        nicht selten eine schlechte Dokumentation, oder sie ist schlecht auffindbar
        Sender UND Empfänger müssen sich einig sein.

        hast ja recht, aber solche systeme wachsen nun mal. Bisher hab ich es ja geschaft das runde ins eckige zu kriegen, sogar auch anders rum.

        Mein Problem war jetzt aktuell. Ich musste ein Gerät tauschen da das alte defekt war. (kommt vor). Nur das neue bruchte die 0 und 1 zur Steuerung das alte bool true - false. Da ich in scripten dieses Gerät verwendet habe wollte ich natürlich so wenig wie möglich änderungen machen. Scripte sollten gleich bleiben und die VIS auch.

        Gruß Udo

        paul53P CodierknechtC 2 Antworten Letzte Antwort
        0
        • ubeckerU ubecker

          @MartinP sagte:

          kein einheitliches Vorgehen
          nicht selten eine schlechte Dokumentation, oder sie ist schlecht auffindbar
          Sender UND Empfänger müssen sich einig sein.

          hast ja recht, aber solche systeme wachsen nun mal. Bisher hab ich es ja geschaft das runde ins eckige zu kriegen, sogar auch anders rum.

          Mein Problem war jetzt aktuell. Ich musste ein Gerät tauschen da das alte defekt war. (kommt vor). Nur das neue bruchte die 0 und 1 zur Steuerung das alte bool true - false. Da ich in scripten dieses Gerät verwendet habe wollte ich natürlich so wenig wie möglich änderungen machen. Scripte sollten gleich bleiben und die VIS auch.

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

          @ubecker [sagte]: Scripte sollten gleich bleiben und die VIS auch.

          Deshalb Alias als "boolean" mit Konvertierung bei Änderung des Original-DP!

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

          1 Antwort Letzte Antwort
          1
          • ubeckerU ubecker

            @MartinP sagte:

            kein einheitliches Vorgehen
            nicht selten eine schlechte Dokumentation, oder sie ist schlecht auffindbar
            Sender UND Empfänger müssen sich einig sein.

            hast ja recht, aber solche systeme wachsen nun mal. Bisher hab ich es ja geschaft das runde ins eckige zu kriegen, sogar auch anders rum.

            Mein Problem war jetzt aktuell. Ich musste ein Gerät tauschen da das alte defekt war. (kommt vor). Nur das neue bruchte die 0 und 1 zur Steuerung das alte bool true - false. Da ich in scripten dieses Gerät verwendet habe wollte ich natürlich so wenig wie möglich änderungen machen. Scripte sollten gleich bleiben und die VIS auch.

            CodierknechtC Online
            CodierknechtC Online
            Codierknecht
            Developer Most Active
            schrieb am zuletzt editiert von
            #7

            @ubecker sagte:

            Mein Problem war jetzt aktuell. Ich musste ein Gerät tauschen da das alte defekt war. (kommt vor). Nur das neue bruchte die 0 und 1 zur Steuerung das alte bool true - false. Da ich in scripten dieses Gerät verwendet habe wollte ich natürlich so wenig wie möglich änderungen machen. Scripte sollten gleich bleiben und die VIS auch.

            Und für genau diesen Fall sind die von @paul53 erwähnten Aliase gedacht. Da braucht man nur den Ziel-DP und ggf. die Konvertierung anpassen. Aber eben nur an dieser einen Stelle.
            Aber das muss man dann bereits im Vorfeld berücksichtigen. Oder aber JETZT auf Alias umstellen und nur noch 1x Scripte und VIS anpassen. Dann hat man zumindest für die Zukunft Ruhe.

            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

            Proxmox 9.1.1 LXC|8 GB|Core i7-6700
            HmIP|ZigBee|Tasmota|Unifi
            Zabbix Certified Specialist
            Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

            ubeckerU 1 Antwort Letzte Antwort
            1
            • paul53P paul53

              @ubecker [sagte]: kämpfe ständig mit 0, 1 - true, false, "true"- "false"

              Dafür gibt es Alias:
              Datenpunkte, die nur zwei Werte annehmen können, definiert man im Alias immer als Logikwert ("boolean") und wendet bei Zahlen und Strings Konvertierung an, wobei beim Lesen automatisch konvertiert wird. Schreibkonvertierung:

              val ? 1 : 0  // Original als Zahl
              val ? 'true' : 'false'  // Original als String
              
              ubeckerU Offline
              ubeckerU Offline
              ubecker
              schrieb am zuletzt editiert von
              #8

              @paul53 sagte:

              Dafür gibt es Alias:
              Datenpunkte, die nur zwei Werte annehmen können, definiert man im Alias immer als Logikwert ("boolean") und wendet bei Zahlen und Strings Konvertierung an, wobei beim Lesen automatisch konvertiert wird. Schreibkonvertierung:

              Das heißt: Der Alias mit zwei Werten 0 - 1 , true -false , "online - "offline" sollte immer als bool erstellt werden? und dann eine schreib - lese Konvertierung gemacht werden?
              Erscheint logisch. Bisher habe ich den Alias immer als das erstellt was das Original war. (Zahl, String, bool)

              Bin ich noch nicht rauf gekommen, aber dann bleibt so ein Chaos wie bei mir aus

              Danke

              Gruß Udo

              1 Antwort Letzte Antwort
              0
              • MartinPM Online
                MartinPM Online
                MartinP
                schrieb am zuletzt editiert von
                #9

                Meist nutze ich nur Einweg-Konvertierung....

                Die momentane Kompressorleistung der Wärmepumpe will man in der Regel nur für Analysezwecke haben, also nur Lesekonvertierung ...

                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
                • CodierknechtC Codierknecht

                  @ubecker sagte:

                  Mein Problem war jetzt aktuell. Ich musste ein Gerät tauschen da das alte defekt war. (kommt vor). Nur das neue bruchte die 0 und 1 zur Steuerung das alte bool true - false. Da ich in scripten dieses Gerät verwendet habe wollte ich natürlich so wenig wie möglich änderungen machen. Scripte sollten gleich bleiben und die VIS auch.

                  Und für genau diesen Fall sind die von @paul53 erwähnten Aliase gedacht. Da braucht man nur den Ziel-DP und ggf. die Konvertierung anpassen. Aber eben nur an dieser einen Stelle.
                  Aber das muss man dann bereits im Vorfeld berücksichtigen. Oder aber JETZT auf Alias umstellen und nur noch 1x Scripte und VIS anpassen. Dann hat man zumindest für die Zukunft Ruhe.

                  ubeckerU Offline
                  ubeckerU Offline
                  ubecker
                  schrieb am zuletzt editiert von
                  #10

                  @Codierknecht sagte:

                  Und für genau diesen Fall sind die von @paul53 erwähnten Aliase gedacht. Da braucht man nur den Ziel-DP und ggf. die Konvertierung anpassen. Aber eben nur an dieser einen Stelle.
                  Aber das muss man dann bereits im Vorfeld berücksichtigen. Oder aber JETZT auf Alias umstellen und nur noch 1x Scripte und VIS anpassen. Dann hat man zumindest für die Zukunft Ruhe.

                  Ich habe schon von Anfang an Aliase benutzt wenn ich Datenpunkte von Geräten oder selbst erstellte in scripten verwende. Nur mit dem Hintergrund wenn ein Gerät getauscht wird das einfach zu realisieren. Aber noch nicht um immer eine Konvertierung durchzuführen (wenn nötig)

                  Gruß Udo

                  1 Antwort Letzte Antwort
                  0
                  • ubeckerU Offline
                    ubeckerU Offline
                    ubecker
                    schrieb am zuletzt editiert von
                    #11

                    Das ist auf jeden Fall mal ein Ansatz um der Chaos her zu werden. Ich werde mal bei meinem letzten Geräten testen wie sich das macht.
                    Alias immer als Bool erstellen und dann die passende Konvertierung

                    Gruß Udo

                    1 Antwort Letzte Antwort
                    0
                    • ubeckerU Offline
                      ubeckerU Offline
                      ubecker
                      schrieb am zuletzt editiert von
                      #12

                      geändertes Teil:
                      Alias ist jetzt bool,
                      "read": "val === 1 ? true : false",
                      "write": "val === true ? 1 : 0"
                      Aus dem script steuere ich mit true, false
                      Das Widget mach 0 - 1.
                      Ist die schreibweise so richtig?

                      Gruß Udo

                      1 Antwort Letzte Antwort
                      0
                      • ubeckerU ubecker

                        Hallo,
                        ich kämpfe ständig mit 0, 1 - true, false, "true"- "false" ; usw.
                        Gerät A verlangt eine Zahl 0 oder 1 zum steuern,
                        Gerät B verlangt ein bool true oder false zum steuern.
                        Gerät C verlangt ein string "true" oder "false"
                        in der VIS gibt es auch diverse unterschiede, mal 0 - 1, mal "true" - "false"

                        ich kovertiere mich hier einen Wolf weiß aber nie so richtig was wo hin gehört.

                        Beispiel: Gerät A:
                        in der VIS(1) ein Widget bool sendet true oder false, Gerät benötigt Zahl 0 - 1, Alias Konvertierung zum schreiben val === true ? 1 : 0. (wird in der VIS auch richtig dargestellt)
                        Gleiches Gerät gleicher Datenpunkt (Alias xy) andere View in der Vis zur besseren Darstellung anderes Widget. Dieses Widget mach Zahl 0-1, was macht jetzt die Konvertierung?
                        Was passiert wenn aus einem Script dieser Datenpunkt geschaltet wird ?
                        Was sende ich von einem script aus steuere 0 -1 oder true - false?

                        Ich habe es bisher immer hinbekommen, aber nicht durch logik sondern durch probieren.
                        Da passieren dann Dinge die ich nicht verstehe, VIS zeigt nichts an wenn über script geschaltet wird oder Gerät reagiert nicht auf die VIS
                        Was gibt es für Lösungen die man auch später noch versteht?

                        OliverIOO Offline
                        OliverIOO Offline
                        OliverIO
                        schrieb am zuletzt editiert von
                        #13

                        @ubecker

                        leider ist es bei vis1 so das die meisten datenpunkte immer als string ankommen, egal welcher typ man am datenpunkt konfiguriert hat.
                        deswegen am besten immer konvertieren.
                        Damit man nicht raten muss, empfiehlt es sich in einem html widget so ein test zu bauen (die ersten 2 Zeilen)

                        typeof v {v:0_userdata.0.val1;typeof v}</br>
                        v {v:0_userdata.0.val1;v}</br></br>
                        new Boolean(v) {v:0_userdata.0.val1;new Boolean(v)}</br>
                        new Boolean(v)==true {v:0_userdata.0.val1;new Boolean(v)==true}</br>
                        new Boolean(v)==false {v:0_userdata.0.val1;new Boolean(v)==false}</br>
                        v=="true" {v:0_userdata.0.val1;v=="true"}</br>
                        
                        

                        in der runtime ansicht sieht man dann 2 zeilen
                        mit typeof wird der datentyp angezeigt
                        in der zweiten zeile der inhalt.

                        in meinem test soeben wurde aus einem boolean datenpunkt ein string
                        538d656c-b856-426f-b450-01af2da7c407-image.jpeg

                        die 3 weiteren Zeilen zeigen wie man dann aus einem string in vis wieder ein boolean macht mit 2 weiteren tests.
                        auf string testen reciht aber auch, also mit v=="true"

                        Meine Adapter und Widgets
                        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                        Links im Profil

                        HomoranH 1 Antwort Letzte Antwort
                        0
                        • OliverIOO OliverIO

                          @ubecker

                          leider ist es bei vis1 so das die meisten datenpunkte immer als string ankommen, egal welcher typ man am datenpunkt konfiguriert hat.
                          deswegen am besten immer konvertieren.
                          Damit man nicht raten muss, empfiehlt es sich in einem html widget so ein test zu bauen (die ersten 2 Zeilen)

                          typeof v {v:0_userdata.0.val1;typeof v}</br>
                          v {v:0_userdata.0.val1;v}</br></br>
                          new Boolean(v) {v:0_userdata.0.val1;new Boolean(v)}</br>
                          new Boolean(v)==true {v:0_userdata.0.val1;new Boolean(v)==true}</br>
                          new Boolean(v)==false {v:0_userdata.0.val1;new Boolean(v)==false}</br>
                          v=="true" {v:0_userdata.0.val1;v=="true"}</br>
                          
                          

                          in der runtime ansicht sieht man dann 2 zeilen
                          mit typeof wird der datentyp angezeigt
                          in der zweiten zeile der inhalt.

                          in meinem test soeben wurde aus einem boolean datenpunkt ein string
                          538d656c-b856-426f-b450-01af2da7c407-image.jpeg

                          die 3 weiteren Zeilen zeigen wie man dann aus einem string in vis wieder ein boolean macht mit 2 weiteren tests.
                          auf string testen reciht aber auch, also mit v=="true"

                          HomoranH Nicht stören
                          HomoranH Nicht stören
                          Homoran
                          Global Moderator Administrators
                          schrieb am zuletzt editiert von
                          #14

                          @OliverIO sagte:

                          leider ist es bei vis1 so das die meisten datenpunkte immer als string ankommen

                          Ääähm, nein!

                          @OliverIO sagte:

                          egal welcher typ man am datenpunkt konfiguriert hat.

                          Das, ja!
                          Der Typ des DP hat keinen Einfluss auf das Format des Widgets

                          kein Support per PN! - Fragen im Forum stellen -
                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                          Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          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

                          577

                          Online

                          32.9k

                          Benutzer

                          83.1k

                          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