Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. DP von Sting nach Zahl konvertieren

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    DP von Sting nach Zahl konvertieren

    This topic has been deleted. Only users with topic management privileges can see it.
    • Thomas Braun
      Thomas Braun Most Active last edited by

      Ich hab hier einen DP, der als String reinkommt:

      {
        "common": {
          "name": "total_battery_power",
          "type": "string",
          "role": "value",
          "read": true,
          "write": true
        },
        "native": {
          "name": "total_battery_power",
          "type": "string",
          "role": "value",
          "read": true,
          "write": true
        },
        "type": "state",
        "from": "system.adapter.javascript.0",
        "user": "system.user.admin",
        "ts": 1698012478706,
        "_id": "0_userdata.0.solix.solarbank_info.total_battery_power",
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        }
      }
      

      wie kann ich den denn am elegantesten in etwas umwandeln, das ich mit 100 multiplizieren könnte? Sollte das nicht mit dem Alias-Adapter gehen? Den kapier ich allerdings nicht... 😉

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

        @thomas-braun sagte in DP von Sting nach Zahl konvertieren:

        Sollte das nicht mit dem Alias-Adapter gehen?

        Wieso mit dem Adapter?
        Lege Dir doch einen Alias im Baum an. Typ Zahl und dann die Konvertierungsfunktion nutzen.

        parseFloat(val)
        
        Thomas Braun 1 Reply Last reply Reply Quote 0
        • Thomas Braun
          Thomas Braun Most Active @Codierknecht last edited by

          @codierknecht

          Ich steh echt auf dem Schlauch. Was meinst du genau?

          Codierknecht 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @Thomas Braun last edited by paul53

            @thomas-braun: Ich hab hier einen DP, der als String reinkommt:

            Weshalb als String? Ein eigener Datenpunkt wird aus einem Skript geschrieben, wo man es selbst in der Hand hat. Rolle "value" gehört zu Datenpunkten vom Typ "number" mit "write" = false.
            Übrigens: Eine Multiplikation mit 100 wandelt einen String (mit einem Zahlenwert) in eine Zahl.

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

              @thomas-braun
              e46800b1-4e0f-427a-ba04-3640651d0b6f-image.png
              c0da279e-761c-4b9f-a817-2d2a3b93a747-image.png
              Edit:
              Kann man auch gleich mit 100 multiplizieren:

              parseFloat(val) * 100
              
              Thomas Braun 1 Reply Last reply Reply Quote 0
              • Thomas Braun
                Thomas Braun Most Active @paul53 last edited by

                @paul53 sagte in DP von Sting nach Zahl konvertieren:

                Weshalb als String?

                Weil das Ding 'roh' so via mqtt reinkommt. Da kann ich erstmal nix machen.
                Dezimaltrenner ist ein Punkt, müsste ich auch noch berücksichtigen, denke ich.

                paul53 BananaJoe 2 Replies Last reply Reply Quote 0
                • paul53
                  paul53 @Thomas Braun last edited by paul53

                  @thomas-braun: so via mqtt reinkommt.

                  In "0_userdata.0.solix.solarbank_info.total_battery_power"?

                  Thomas Braun 1 Reply Last reply Reply Quote 0
                  • Thomas Braun
                    Thomas Braun Most Active @paul53 last edited by Thomas Braun

                    @paul53

                    Ja.
                    Da steht z. B. 0.14 drin. Ziel der Aktion ist ein DP mit der Zahl 14

                    paul53 1 Reply Last reply Reply Quote 0
                    • BananaJoe
                      BananaJoe Most Active @Thomas Braun last edited by

                      @thomas-braun sagte in DP von Sting nach Zahl konvertieren:

                      Weil das Ding 'roh' so via mqtt reinkommt. Da kann ich erstmal nix machen.

                      Also bei mir Meckert der MQTT-Adapter einmal beim ersten reinkommenden Wert und ändert den Typ dann auf Zahl ... (MQTT Adapter als Client mit Mosquitto als Broker)

                      Thomas Braun 1 Reply Last reply Reply Quote 0
                      • Thomas Braun
                        Thomas Braun Most Active @Codierknecht last edited by

                        @codierknecht

                        Der Typ des Ergebnisses ist nicht wie erwartet: string
                        

                        sagt mir die Kiste.
                        bfc0b046-9c54-4774-9fae-1addab2b827c-image.png

                        Codierknecht 1 Reply Last reply Reply Quote 0
                        • Thomas Braun
                          Thomas Braun Most Active @BananaJoe last edited by

                          @bananajoe sagte in DP von Sting nach Zahl konvertieren:

                          (MQTT Adapter als Client mit Mosquitto als Broker)

                          Hier auch. Den ankommenden Datensatz schiebe ich durch 'ein Skript' dann nach 0.userdata

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

                            @thomas-braun sagte in DP von Sting nach Zahl konvertieren:

                            Ziel der Aktion ist ein DP mit der Zahl 14

                            Im Tab "Objekte" selektiere "alias.0" und erstelle Objekt vom Typ "Gerät" mit dem Namen "solix", darunter erstelle einen Kanal mit dem Namen "solarbank_info" und darunter dann einen Datenpunkt vom Typ "Zahl" mit dem Namen "total_battery_power". Dann im Tab "ALIAS" den Original-Datenpunkt zuweisen und eine Lesekonvertierung eintragen

                            100 * val
                            
                            Thomas Braun 1 Reply Last reply Reply Quote 0
                            • Thomas Braun
                              Thomas Braun Most Active @paul53 last edited by

                              @paul53
                              Thx fürs über die Schwelle heben.
                              Funktioniert (natürlich!) 😉

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

                                @thomas-braun
                                Dann war Dein Alias nicht vom Typ "Zahl".

                                @paul53 hat es mal wieder in 2 Sätzen komplett beschrieben. Chapeau!

                                Thomas Braun 1 Reply Last reply Reply Quote 0
                                • Thomas Braun
                                  Thomas Braun Most Active @Codierknecht last edited by

                                  @codierknecht

                                  Ich hatte nicht geschnallt, das der Datenpunkttyp schon auf Zahl gesetzt werden muss.

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

                                    @thomas-braun
                                    Egal, Hauptsache es funzt jetzt 😁

                                    Wenn man das mit den Aliasen ein paarmal "von Hand" gemacht hat, braucht man keinen Adapter mehr dazu.
                                    Ich hatte den einmal ausprobiert und gleich wieder runtergeworfen.
                                    Der hatte mir persönlich zu viel eingebaute "Intelligenz". Kam mir vor wie mein gehasstes Excel, das mir aus "1/2" gerne mal einen "01. Januar" baut.

                                    Alte Weiheit: Was man nicht selbst macht, taugt auch nix 😁

                                    Thomas Braun 1 Reply Last reply Reply Quote 0
                                    • Thomas Braun
                                      Thomas Braun Most Active @Codierknecht last edited by

                                      @codierknecht sagte in DP von Sting nach Zahl konvertieren:

                                      Wenn man das mit den Aliasen ein paarmal "von Hand" gemacht hat, braucht man keinen Adapter mehr dazu.

                                      Ich hab da genau einen DP drin, aber auch nur 'herumgewurschtelt', weil ich wie gesagt den Adapter nie richtig kapiert hab. Ich glaub den stelle ich jetzt auch auf 'handbetrieben' um.

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      391
                                      Online

                                      32.0k
                                      Users

                                      80.4k
                                      Topics

                                      1.3m
                                      Posts

                                      4
                                      17
                                      517
                                      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