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.
  • MartinPM Online
    MartinPM Online
    MartinP
    schrieb am zuletzt editiert von MartinP
    #2

    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 ;-)

    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

    ubeckerU 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?

      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

                            528

                            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