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 Offline
    Denis ClaßD Offline
    Denis Claß
    schrieb am zuletzt editiert von Denis Claß
    #1

    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 CodierknechtC 2 Antworten Letzte Antwort
    0
    • 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

                            723

                            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