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?

    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

                        580

                        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