Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Konvertierung Zeichekette in Zahl

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Konvertierung Zeichekette in Zahl

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      docsnyder7 last edited by

      Guten Morgen.. bin mit den JS Funktionen noch nicht ganz firm und benötige Hilfe.
      Ich möchte eine schaltbare Steckdose visualisieren und per Vis steuerbar machen, die allerdings den Status und den zu schreiben Status in getrennten DP liefert..
      Hab einen Alias mit getrennten DP für read und Write angelegt. Da der Wert der Steckdose die zeichen "off" und "now" annimmt, in der Vis ich aber "0" und "1" benötige, werd ich ne Konvertierung benötigen.
      Jetzt hab ich einiges zu parseInt etc gelesen, aber ehrlich gesagt sind das noch böhmische Dörfer...
      Somit bräuchte ich etwas Erleuchtung, welche JS Funktion ich in die Konvertierung einfügen müsste
      herzlichen Dank schonmal

      Codierknecht paul53 2 Replies Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @docsnyder7 last edited by

        @docsnyder7
        Liefert die Steckdose tatsächlich "off" und "now", oder wird das lediglich so dargestellt?

        Brauchst Du für die vis 0 und 1 oder vielleicht true und false?

        Nehmen wir mal an, die Dose liefert tatsächlich off/now und die vis braucht bool.
        Dann sähe eine mögliche Konvertierung so aus:

        val == 'now'
        

        Das liefert true wenn die Dose now anzeigt und in allen anderen Fällen kommt false.

        Als Alternative käme auch noch der ternäre Operator in Frage.

        val == 'now' ? 1 : val == 'off' ? 0 : -1
        

        Hier würde now zu 1, off zu 0 und alles andere zu -1. Falls das gebraucht werden sollte.

        Viele Wege führen nach Rom. Zeig mal die Definitionen der entsprechenden DP.

        Ein parseInt hilft Dir nicht weiter. Das könnte lediglich Strings in die numerische Entsprechung wandeln. Mit "now" oder "off" kann die Funktion aber nix anfangen.

        D 1 Reply Last reply Reply Quote 1
        • D
          docsnyder7 @Codierknecht last edited by

          @codierknecht

          Steckdose.jpg

          oben zum lesen, der set eben zum schreiben

          Die werte kommen aus dem evcc Adapter via MQTT... mir fällt aber grad ein, dass man die Steckdose (Shelly plug S) über den shelly Adapter steuern kann und den DP Mode aus dem bild für die VIS nutzt, oder

          Codierknecht 1 Reply Last reply Reply Quote 0
          • Codierknecht
            Codierknecht Developer Most Active @docsnyder7 last edited by

            @docsnyder7 sagte in Konvertierung Zeichekette in Zahl:

            oben zum lesen, der set eben zum schreiben

            Interessant wären die "Objektdaten" (als Text in Code-Tags</>) die sich hinter dem Stift verbergen.

            Die werte kommen aus dem evcc Adapter via MQTT... mir fällt aber grad ein, dass man die Steckdose (Shelly plug S) über den shelly Adapter steuern kann und den DP Mode aus dem bild für die VIS nutzt, oder

            Klingt für mich ziemlich verwirrend.
            Kannst Du ein und dieselbe Dose mit 2 Adaptern ansprechen?
            Was für ein Widget willst Du einsetzen?
            Bin heute ausnahmsweise mal im Büro und komme da gerade nicht ran. Aber einigen Widgets kann man mitgeben, welcher Wert nun "AN" und welcher "AUS" bedeuten soll.

            D 1 Reply Last reply Reply Quote 0
            • D
              docsnyder7 @Codierknecht last edited by

              @codierknecht

              die anpassbaren radio buttons wollte ich nehmen, dass klappt ansich auch ohne alias und so, aber ich würde gerne die farbe des buttons verändern, um zu sehen welcher Modus aktiv ist.

              welchen Stift hättest du gerne.. den von der ersten oder der 2. Zeile?

              Das ich die Dose mit 2 Adaptern auswerte ist richtig... bin grad dabei, den umweg über evcc zu reduzieren. hier kann für die Steckdose (auch für die Wallbox) der Wert OFF, PV(Ladung mit PV STROM), minpv ( mindestladeleistung +PV) und now (volle ladeleistung) einegstellt werden... das brauch ich aber bei ner Steckdose nicht.. somit kann ich das womöglich alles über den shelly Adapter erledingen, dann muss ich auch nix konvertieren.. nichtsdestotroz ist der Lerneffekt da

              Codierknecht 1 Reply Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @docsnyder7 last edited by

                @docsnyder7 sagte in Konvertierung Zeichekette in Zahl:

                welchen Stift hättest du gerne.. den von der ersten oder der 2. Zeile?

                Am besten beide.

                D 2 Replies Last reply Reply Quote 0
                • D
                  docsnyder7 @Codierknecht last edited by

                  @codierknecht

                  {
                    "_id": "mqtt.0.evcc.loadpoints.4.mode",
                    "common": {
                      "name": "evcc/loadpoints/4/mode",
                      "write": true,
                      "read": true,
                      "role": "variable",
                      "desc": "mqtt server variable",
                      "type": "string"
                    },
                    "native": {
                      "topic": "evcc/loadpoints/4/mode"
                    },
                    "type": "state",
                    "from": "system.adapter.mqtt.0",
                    "user": "system.user.admin",
                    "ts": 1696966787691,
                    "acl": {
                      "object": 1636,
                      "state": 1636,
                      "owner": "system.user.admin",
                      "ownerGroup": "system.group.administrator"
                    }
                  
                  1 Reply Last reply Reply Quote 0
                  • D
                    docsnyder7 @Codierknecht last edited by

                    {
                      "_id": "mqtt.0.evcc.loadpoints.4.mode.set",
                      "common": {
                        "name": "evcc/loadpoints/4/mode/set",
                        "write": true,
                        "read": true,
                        "role": "variable",
                        "desc": "mqtt server variable",
                        "type": "number"
                      },
                      "native": {
                        "topic": "evcc/loadpoints/4/mode/set"
                      },
                      "type": "state",
                      "from": "system.adapter.mqtt.0",
                      "user": "system.user.admin",
                      "ts": 1696966787555,
                      "acl": {
                        "object": 1636,
                        "state": 1636,
                        "owner": "system.user.admin",
                        "ownerGroup": "system.group.administrator"
                      }
                    }
                    
                    Codierknecht 1 Reply Last reply Reply Quote 0
                    • Codierknecht
                      Codierknecht Developer Most Active @docsnyder7 last edited by

                      @docsnyder7
                      OK. Sind also tatsächlich nur Strings und Zahlen.
                      Sollte mit 'nem Alias kein Problem sein.

                      Wenn's Dir reicht, schau ich mir das heute Abend mal an.
                      Oder es hilft bis dahin jemand anders aus. Du vielleicht @paul53 ???

                      D 1 Reply Last reply Reply Quote 1
                      • D
                        docsnyder7 @Codierknecht last edited by

                        @codierknecht
                        wie gesagt.. letztlich bin ich auch dabei, denn Umweg über den EVCC Adapter zu eliminieren, zumindest was die schaltbaren Steckdosen angeht... da ist es mir fast egal, ob die in Modus PV laufen oder schnell oder sonstwas...
                        aber fürs lernen wäre das cool, wenn wir auch über die DP´s eine Lösen finden mit der Konvertierung!

                        1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @docsnyder7 last edited by

                          @docsnyder7 sagte: Hab einen Alias mit getrennten DP für read und Write angelegt. Da der Wert der Steckdose die zeichen "off" und "now" annimmt, in der Vis ich aber "0" und "1" benötige

                          Wenn der Alias den Typ "boolean" hat (ist zu empfehlen), könnten die Konvertierungen so aussehen:

                          val != 'off'
                          

                          Schreiben:

                          val ? 1 : 0
                          
                          D 1 Reply Last reply Reply Quote 0
                          • D
                            docsnyder7 @paul53 last edited by

                            @paul53

                            kannst du bitte eine kleine Erklärung zu geben?
                            die beiden zeilen habe ich jetzt in der Konv funktion eingefügt...
                            der Radiobutton hat Wert falsch u Wert wahr... packe ich hier 0 und 1 oder false und true rein?

                            paul53 Codierknecht 2 Replies Last reply Reply Quote 0
                            • paul53
                              paul53 @docsnyder7 last edited by

                              @docsnyder7 sagte: Radiobutton hat Wert falsch u Wert wahr... packe ich hier 0 und 1 oder false und true rein?

                              Typ "boolean": false / true

                              1 Reply Last reply Reply Quote 0
                              • Codierknecht
                                Codierknecht Developer Most Active @docsnyder7 last edited by

                                @docsnyder7 sagte in Konvertierung Zeichekette in Zahl:

                                kannst du bitte eine kleine Erklärung zu geben?

                                Kleine Erklärung zu @paul53's Konvertierungsfunktionen (Danke übrigens), weil Verstehen immer besser ist als Abschreiben:

                                Lesen:
                                val - also der Wert Deines Alias (der hoffentlich vom Typ "Boolean" (Logikwert) ist) wird zu true, wenn im gelesenen DP etwas anders als off steht.

                                Schreiben:
                                Wenn val (also Dein Alias) true ist, wird eine 1 in den Ziel-DP geschrieben. In allen anderen Fällen eine 0.

                                D 1 Reply Last reply Reply Quote 1
                                • D
                                  docsnyder7 @Codierknecht last edited by docsnyder7

                                  @codierknecht

                                  Wunderbare Erklärung!👍

                                  soweit verstanden... ich muss aber den "SET" DP ändern oder beschreiben, dies bewirkt ein Ändern des "Mode" DP mit eben diesem Wert.. also off in den SET schreiben bewirkt off im Mode DP
                                  die radiobuttons können aber nur einen DP verarbeiten... deshalb wollte ich über die alias gehen... somit muss ein Befehl ( true oder false) an den alias bewirken, dass der SET DP mit off oder now beschrieben wird...

                                  paul53 1 Reply Last reply Reply Quote 0
                                  • paul53
                                    paul53 @docsnyder7 last edited by

                                    @docsnyder7 sagte: der SET DP mit off oder now beschrieben wird...

                                    val ? 'now' : 'off'
                                    

                                    Der set-DP muss dann aber vom Typ "string" sein.

                                    1 Reply Last reply Reply Quote 0
                                    • D
                                      docsnyder7 last edited by

                                      @paul53
                                      Hab ich umgestellt… und dann passt es prima…
                                      Herzlichen Dank für Eure Hilfe @Codierknecht und @

                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        docsnyder7 last edited by docsnyder7

                                        ich greife diese Fred nochmal auf...
                                        Hab mich an einen weiteren Alias gewagt...der ebenso 2 verschieden DP für lesen und Schreiben benötigt.. soweit so gut.
                                        Ich würde per Radiobutton 4 verschieden Worte 1 zu 1 über den Alias an den Write DP senden wollen... muss ich hier meinen Alias als String oder gemischt einstellen?
                                        Ich hab mich durch verschieden Einstellung die mir logisch erschienen gearbeitet...alles was bisher funktioniert, ist das erkennen des Alias wenn der DP von extern verändert wird... aber das Schreiben übern radiobutton will noch nicht recht klappen...
                                        Konvertierung muss ich ja nix, weil die Worte so wie sie sind in den DP sollen

                                        alias1.jpg
                                        alias2.jpg

                                        [{"tpl":"i-vis-radiobutton-list","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","iRadiobtnWidth":"90","iRadiobtnHeight":"50","iRadiobtnSpace":"10","iRadiobtnAlign":"horizontal","iRadiobtnWrap":"iOneRowCol","iRadiobtnsCount":"4","iImgColorFalse1":"#2fd7e9","iImgColorTrue1":"#bab917","iButtonCol":"#333333","iButtonActive":"#455618","iButtonColHover":"","iOpacityBack":"1","iCornerRadiusUL":"12","iCornerRadiusUR":"0","iCornerRadiusLR":"12","iCornerRadiusLL":"0","iContentFlexDirection":"vertical","iContentVertAlign":"iSpace-between","iContentOrder":"orderTextImg","iOpacityCtn":"1","iTextColor":"#ffffff","iTextSize":"15","iTextAlign":"iStart","iTextSpaceTop":"0","iTextSpaceBottom":"0","iTextSpaceLeft":"0","iTextSpaceRight":"0","iIconSize":"35","iImgAlign":"iCenter","iImgRotation":"0","iImgSpaceTop":"0","iImgSpaceBottom":"0","iImgSpaceLeft":"0","iImgSpaceRight":"0","iShadowXOffset":"2","iShadowYOffset":"2","iShadowBlur":"2","iShadowSpread":"1","iShadowColor":"#111111","iShadowColorActive":"#111111","iShadowInnerXOffset":"0","iShadowInnerYOffset":"0","iShadowInnerBlur":"0","iShadowInnerSpread":"0","iShadowInnerColor":"#111111","iShadowInnerColorActive":"#111111","iBorderSize":"1","iBorderStyle":"solid","iBorderColor":"#111111","iBorderColorActive":"#ffffff","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"iImgColorFalse2":"#118d28","iImgColorTrue2":"#bab917","iImgColorFalse3":"#085ad9","iImgColorTrue3":"#bab917","oid":"alias.0.Steckdosen.Wallbox","iImgColorFalse4":"#ec0909","iImgColorTrue4":"#bab917","iValue1":"off","iTextTrue1":"OFF Aktiv","iButtonBackM1":"#2fd7e9","iTextFalse1":"OFF","iTextFalse2":"PV","iTextTrue2":"PV Aktiv","iValue2":"pv","iButtonBackM2":"#118d28","iTextFalse3":"Min+PV","iTextTrue3":"Min+PV Aktiv","iValue3":"minpv","iButtonBackM3":"#085ad9","iTextFalse4":"Schnell","iTextTrue4":"Schnell Aktiv","iValue4":"now","iButtonBackM4":"#ec0909","iButtonBackActiveM1":"#bab917","iButtonBackActiveM2":"#bab917","iButtonBackActiveM3":"#bab917","iButtonBackActiveM4":"#bab917"},"style":{"left":"883px","top":"256px"},"widgetSet":"vis-inventwo"}]
                                        
                                        paul53 Codierknecht 2 Replies Last reply Reply Quote 0
                                        • paul53
                                          paul53 @docsnyder7 last edited by paul53

                                          @docsnyder7 sagte: Radiobutton 4 verschieden Worte

                                          Die 4 Worte hast du im Radiobutton unter Werte eingetragen? Bitte zeigen!

                                          1 Reply Last reply Reply Quote 1
                                          • Codierknecht
                                            Codierknecht Developer Most Active @docsnyder7 last edited by

                                            @docsnyder7
                                            Ob da ein Widget dranhängt oder nicht, ist erstmal zweitrangig.
                                            Kannst Du den Ziel-DP umschalten, indem Du den Wert des Alias im Objektbaum manuell änderst?

                                            D 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            871
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            23
                                            729
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo