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. ioBroker Allgemein
  4. Alias Read -> konvertierung [gelöst]

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.3k

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Alias Read -> konvertierung [gelöst]

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
13 Beiträge 4 Kommentatoren 912 Aufrufe 4 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.
  • Denis ClaßD Denis Claß

    Ich habe einige Aliase die ich konvertiere in der Einstellung zum jeweiligen Datenpunkt:
    Alias Read-Function (keyword for value is val)

    val === 'BSH.Common.EnumType.PowerState.On' ? true : (val === 'BSH.Common.EnumType.PowerState.Off' ? false : val)

    Das funktioniert Problemlos, so wie ich das möchte. Da ich in JS nicht so mega fit bin die Frage (Und ich habe über die Suche auch nichts passendes gefunden) -> kann ich auch mehr als 2 Werte konvertieren? Wenn ja, wie müsste das aussehen? den zweiten Wert frage ich ja in der Klammer, müsste ein dritter Wert erneut eingeklammert sein?

    Danke

    MartinPM Offline
    MartinPM Offline
    MartinP
    schrieb am zuletzt editiert von
    #2

    @denis-claß Mit "true" und "false" kommt man dann nicht aus...

    Der Ternary-Operator "?:" kann aber durchaus auch mit Klammern und verschachtelt genutzt werden ...

    Füllstandsanzeiger mit Werten von 0 .... 100 %, bei 0...10% soll "Reserve!" zurückgegeben werden, zwischen 10 ... 90% "Normal", und ab 90% "Voll"

    (val>90) ? "Voll" :  ((val < 10) ? "Reserve!" : "Normal")
    

    Bei Klammern bin ich der Meinung, dass sie nicht zu sparsam eingesetzt werden sollten. In manchen Konstrukten helfen mir eigentlich überflüssige Klammern, den Code zu verstehen, wenn ich nach Monaten wieder draufgucke ... Auf die Rechenzeit sollten sie keinen messbaren Einfluss haben...

    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

    Denis ClaßD 2 Antworten Letzte Antwort
    1
    • Denis ClaßD Denis Claß

      Ich habe einige Aliase die ich konvertiere in der Einstellung zum jeweiligen Datenpunkt:
      Alias Read-Function (keyword for value is val)

      val === 'BSH.Common.EnumType.PowerState.On' ? true : (val === 'BSH.Common.EnumType.PowerState.Off' ? false : val)

      Das funktioniert Problemlos, so wie ich das möchte. Da ich in JS nicht so mega fit bin die Frage (Und ich habe über die Suche auch nichts passendes gefunden) -> kann ich auch mehr als 2 Werte konvertieren? Wenn ja, wie müsste das aussehen? den zweiten Wert frage ich ja in der Klammer, müsste ein dritter Wert erneut eingeklammert sein?

      Danke

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

      @denis-claß
      Ein Alias kann nur seinen "eigenen" Ziel-DP auswerten. Das ist letztlich das was in val drinsteht.
      Wenn mehrere DP auszuwerten sind, muss das per Script erledigt werden. Das Ergebnis kann dann natürlich nur in DP unterhalb von 0_userdata geschrieben werden.

      Eigentlich sollte Deine Konvertierungsfunktion also lauten:

      val == 'On' 
      

      Das reicht völlig aus.
      Steht im Ziel-DP gerade On, zeigt der Alias true. In allen anderen Fällen false.
      Also auch wenn da mal (warum auch immer) Blubb drinstehen würde.

      "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

      Denis ClaßD 1 Antwort Letzte Antwort
      1
      • MartinPM MartinP

        @denis-claß Mit "true" und "false" kommt man dann nicht aus...

        Der Ternary-Operator "?:" kann aber durchaus auch mit Klammern und verschachtelt genutzt werden ...

        Füllstandsanzeiger mit Werten von 0 .... 100 %, bei 0...10% soll "Reserve!" zurückgegeben werden, zwischen 10 ... 90% "Normal", und ab 90% "Voll"

        (val>90) ? "Voll" :  ((val < 10) ? "Reserve!" : "Normal")
        

        Bei Klammern bin ich der Meinung, dass sie nicht zu sparsam eingesetzt werden sollten. In manchen Konstrukten helfen mir eigentlich überflüssige Klammern, den Code zu verstehen, wenn ich nach Monaten wieder draufgucke ... Auf die Rechenzeit sollten sie keinen messbaren Einfluss haben...

        Denis ClaßD Offline
        Denis ClaßD Offline
        Denis Claß
        schrieb am zuletzt editiert von
        #4

        @martinp
        ah super, genau das was ich gefragt hatte. Damit kann ich arbeiten. DANKE!

        1 Antwort Letzte Antwort
        0
        • CodierknechtC Codierknecht

          @denis-claß
          Ein Alias kann nur seinen "eigenen" Ziel-DP auswerten. Das ist letztlich das was in val drinsteht.
          Wenn mehrere DP auszuwerten sind, muss das per Script erledigt werden. Das Ergebnis kann dann natürlich nur in DP unterhalb von 0_userdata geschrieben werden.

          Eigentlich sollte Deine Konvertierungsfunktion also lauten:

          val == 'On' 
          

          Das reicht völlig aus.
          Steht im Ziel-DP gerade On, zeigt der Alias true. In allen anderen Fällen false.
          Also auch wenn da mal (warum auch immer) Blubb drinstehen würde.

          Denis ClaßD Offline
          Denis ClaßD Offline
          Denis Claß
          schrieb am zuletzt editiert von
          #5

          @codierknecht
          ein alias = 1 Datenpunkt. Also erstmal, für meinen Fall kein Script notwendig.
          Danke für deinen Tipp

          1 Antwort Letzte Antwort
          0
          • MartinPM MartinP

            @denis-claß Mit "true" und "false" kommt man dann nicht aus...

            Der Ternary-Operator "?:" kann aber durchaus auch mit Klammern und verschachtelt genutzt werden ...

            Füllstandsanzeiger mit Werten von 0 .... 100 %, bei 0...10% soll "Reserve!" zurückgegeben werden, zwischen 10 ... 90% "Normal", und ab 90% "Voll"

            (val>90) ? "Voll" :  ((val < 10) ? "Reserve!" : "Normal")
            

            Bei Klammern bin ich der Meinung, dass sie nicht zu sparsam eingesetzt werden sollten. In manchen Konstrukten helfen mir eigentlich überflüssige Klammern, den Code zu verstehen, wenn ich nach Monaten wieder draufgucke ... Auf die Rechenzeit sollten sie keinen messbaren Einfluss haben...

            Denis ClaßD Offline
            Denis ClaßD Offline
            Denis Claß
            schrieb am zuletzt editiert von
            #6

            @martinp
            weißt du zufällig auch bei der nächsten Frage die dazu gehört Rat?
            Kann man in der Read Function auch anstatt eindeutige vals zu konvertieren auch Teile davon nur prüfen und ändern?
            Also wenn immer 0 oder 1 kommt diese zu true/false ist ja klar.
            Aber wenn mein original Wert mal hallo1 oder hallo2 sein kann für true und tschüss für false -> gibts hier nicht eine "contains" funktion? also z.B.
            val.contains('hallo') ? true : ((val === 'tschüss') ? false : false)

            paul53P CodierknechtC 2 Antworten Letzte Antwort
            0
            • Denis ClaßD Denis Claß

              @martinp
              weißt du zufällig auch bei der nächsten Frage die dazu gehört Rat?
              Kann man in der Read Function auch anstatt eindeutige vals zu konvertieren auch Teile davon nur prüfen und ändern?
              Also wenn immer 0 oder 1 kommt diese zu true/false ist ja klar.
              Aber wenn mein original Wert mal hallo1 oder hallo2 sein kann für true und tschüss für false -> gibts hier nicht eine "contains" funktion? also z.B.
              val.contains('hallo') ? true : ((val === 'tschüss') ? false : false)

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

              @denis-claß sagte: Wert mal hallo1 oder hallo2 sein kann für true

              val == 'hallo1' || val == 'hallo2'
              

              oder

              val.startsWith('hallo')
              

              oder

              val != 'tschüss'
              

              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

              CodierknechtC 1 Antwort Letzte Antwort
              0
              • Denis ClaßD Denis Claß

                @martinp
                weißt du zufällig auch bei der nächsten Frage die dazu gehört Rat?
                Kann man in der Read Function auch anstatt eindeutige vals zu konvertieren auch Teile davon nur prüfen und ändern?
                Also wenn immer 0 oder 1 kommt diese zu true/false ist ja klar.
                Aber wenn mein original Wert mal hallo1 oder hallo2 sein kann für true und tschüss für false -> gibts hier nicht eine "contains" funktion? also z.B.
                val.contains('hallo') ? true : ((val === 'tschüss') ? false : false)

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

                @denis-claß
                Mit z.B. contains oder auch mit indexOf funktioniert das nicht.

                Aber was hast Du immer mit dem ternären Operator?
                Wenn da nur true oder false geliefert werden sollen, ist das völlig unnötig. Ein einfacher Vergleich tut's ja auch - so wie @paul53 das zeigt.

                "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

                1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @denis-claß sagte: Wert mal hallo1 oder hallo2 sein kann für true

                  val == 'hallo1' || val == 'hallo2'
                  

                  oder

                  val.startsWith('hallo')
                  

                  oder

                  val != 'tschüss'
                  
                  CodierknechtC Online
                  CodierknechtC Online
                  Codierknecht
                  Developer Most Active
                  schrieb am zuletzt editiert von Codierknecht
                  #9

                  @paul53
                  Meine Versuche mit startsWith() funktionieren nicht.
                  Hast Du das mal getestet?

                  75fde545-531f-4975-8413-b1b9cc239835-grafik.png

                  "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

                  paul53P Denis ClaßD 2 Antworten Letzte Antwort
                  0
                  • CodierknechtC Codierknecht

                    @paul53
                    Meine Versuche mit startsWith() funktionieren nicht.
                    Hast Du das mal getestet?

                    75fde545-531f-4975-8413-b1b9cc239835-grafik.png

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

                    @codierknecht sagte: Hast Du das mal getestet?

                    Ja, funktioniert.
                    Browser-Refresh?

                    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

                    Denis ClaßD 1 Antwort Letzte Antwort
                    0
                    • CodierknechtC Codierknecht

                      @paul53
                      Meine Versuche mit startsWith() funktionieren nicht.
                      Hast Du das mal getestet?

                      75fde545-531f-4975-8413-b1b9cc239835-grafik.png

                      Denis ClaßD Offline
                      Denis ClaßD Offline
                      Denis Claß
                      schrieb am zuletzt editiert von
                      #11

                      @codierknecht
                      ich hab jetzt mal ein wenig gegoogelt und getestet. contains geht nicht. aber includes klappt genau wie man es von contains kennt.
                      Mein Problem ist somit gelöst.
                      Vielen Dank für die Denkanstöße

                      1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @codierknecht sagte: Hast Du das mal getestet?

                        Ja, funktioniert.
                        Browser-Refresh?

                        Denis ClaßD Offline
                        Denis ClaßD Offline
                        Denis Claß
                        schrieb am zuletzt editiert von
                        #12

                        @paul53
                        auch danke an dich. du hast mir den finalen Denkanstoß gegeben

                        1 Antwort Letzte Antwort
                        0
                        • CodierknechtC Online
                          CodierknechtC Online
                          Codierknecht
                          Developer Most Active
                          schrieb am zuletzt editiert von
                          #13

                          @paul53
                          Mag wohl daran gelegen haben, dass ich einen alten DP "wiederverwertet" habe.
                          Mit einem neuen funzt das einwandfrei:

                          val.startsWith('hallo')
                          

                          "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

                          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
                          FAQ Cloud / IOT
                          HowTo: Node.js-Update
                          HowTo: Backup/Restore
                          Downloads
                          BLOG

                          718

                          Online

                          32.6k

                          Benutzer

                          82.2k

                          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