Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Script zum auslesen eines C.M.I von TA UVR1611

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

Script zum auslesen eines C.M.I von TA UVR1611

Scheduled Pinned Locked Moved Skripten / Logik
78 Posts 25 Posters 24.2k Views 8 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    Sineos
    wrote on last edited by
    #7

    @Klausi:

    Wenn ich Werte von iobroker zur UVR übertrage werden nur Integerzahlen zum Modbuseingang der UVR weitergeben.

    Das Objekt in Iobroker (erstellt im Modbusadapter dort : input Registers ) zeigt eine Real-Zahl an. `

    Das liegt an der eigenwilligen Art der UVR mit Größen und Einheiten umzugehen. Über den Bus und, nach meinem Eindruck, auch intern arbeitet die UVR nur mit Integer Zahlen und erst in Kombination mit einer Einheit wird das ganze zu einer Float.

    So hat z.B. die Einheit Temperatur 1 Dezimalstelle, Leistung (kW) 2 Dezimalstellen usw. Ich hab mal für ein JS-Script die Anzahl Stellen rausgesucht:

      var MeasurementMapping = {
        '0': {
          Name: 'None',
          Unit: 'None',
          Decimals: 0
        },
        '1': {
          Name: 'Temperature',
          Unit: '°C',
          Decimals: 1
        },
        '2': {
          Name: 'Global Radiation',
          Unit: 'W/m²',
          Decimals: 0
        },
        '3': {
          Name: 'FlowRate',
          Unit: 'l/h',
          Decimals: 0
        },
        '4': {
          Name: 'Time',
          Unit: 's',
          Decimals: 0
        },
        '5': {
          Name: 'Time',
          Unit: 'min',
          Decimals: 0
        },
        '8': {
          Name: 'Percent',
          Unit: '%',
          Decimals: 1
        },
        '10': {
          Name: 'Power',
          Unit: 'kW',
          Decimals: 2
        },
        '11': {
          Name: 'Power Consumption',
          Unit: 'kWh',
          Decimals: 1
        },
        '12': {
          Name: 'Power Consumption',
          Unit: 'MWh',
          Decimals: 0
        },
        '13': {
          Name: 'Voltage',
          Unit: 'V',
          Decimals: 2
        },
        '14': {
          Name: 'Current',
          Unit: 'mA',
          Decimals: 1
        },
        '15': {
          Name: 'Time',
          Unit: 'h',
          Decimals: 0
        },
        '16': {
          Name: 'Time',
          Unit: 'd',
          Decimals: 0
        },
        '17': {
          Name: 'Pulse',
          Unit: 'None',
          Decimals: 0
        },
        '18': {
          Name: 'Resistance',
          Unit: 'kOhm',
          Decimals: 2
        },
        '19': {
          Name: 'Volume',
          Unit: 'l',
          Decimals: 0
        },
        '20': {
          Name: 'Speed',
          Unit: 'km/h',
          Decimals: 0
        },
        '22': {
          Name: 'FlowRate',
          Unit: 'l/min',
          Decimals: 0
        },
        '23': {
          Name: 'Pressure',
          Unit: 'bar',
          Decimals: 2
        },
        '24': {
          Name: 'Performance Factor',
          Unit: 'None',
          Decimals: 2
        },
        '28': {
          Name: 'Volume',
          Unit: 'm3',
          Decimals: 0
        },
        '35': {
          Name: 'FlowRate',
          Unit: 'l/d',
          Decimals: 0
        },
        '36': {
          Name: 'Speed',
          Unit: 'm/s',
          Decimals: 0
        },
        '37': {
          Name: 'FlowRate',
          Unit: 'm3/min',
          Decimals: 0
        },
        '38': {
          Name: 'FlowRate',
          Unit: 'm3/h',
          Decimals: 0
        },
        '39': {
          Name: 'FlowRate',
          Unit: 'm3/d',
          Decimals: 0
        },
        '50': {
          Name: 'Currency',
          Unit: 'Euro',
          Decimals: 2
        },
        '51': {
          Name: 'Currency',
          Unit: 'USD',
          Decimals: 2
        },
        '52': {
          Name: 'Absolute Humidity',
          Unit: 'g/m3',
          Decimals: 1
        },
        '53': {
          Name: 'None',
          Unit: 'None',
          Decimals: 5
        },
        '54': {
          Name: 'Angle',
          Unit: 'Degree',
          Decimals: 2
        },
        '58': {
          Name: 'None',
          Unit: 'None',
          Decimals: 1
        },
        '63': {
          Name: 'Current',
          Unit: 'A',
          Decimals: 1
        },
        '65': {
          Name: 'Pressure',
          Unit: 'mbar',
          Decimals: 1
        },
        '66': {
          Name: 'Pressure',
          Unit: 'Pa',
          Decimals: 0
        },
        '-1': {
          Name: 'Undefinded',
          Unit: 'None',
          Decimals: 0
        }
      };
    

    Ist aber ein älterer Firmware Stand, ich glaube die haben was geändert.

    Heisst also übersetzt, du musst in der UVR und im CMI die richtige Messgröße einstellen und eine entsprechend skalierte Integerzahl über den Bus schicken. So wird dann aus 227 und der Einheit Temperatur die gewünschten 22,7 °C.

    Im ioBroker Modbus Adapter kann man bei den Registern das Verhalten über den Faktor steuern. So würde hier ein Temperaturwert einen Faktor 10 bekommen. Sprich ein anderer ioBroker Adapter sendet 22,7 °C, der Modbus Adpater skaliert mit 10 (=227) und die UVR macht dann über die eingestellte Einheit wieder 22,7 draus.

    Braucht man eine höhere Genauigkeit, gibt es auch eine dimensionslose Einheit mit 5 Dezimalstellen. Hier wäre entsprechend mit 100.000 zu skalieren.

    1 Reply Last reply
    0
    • K Offline
      K Offline
      Klausi
      wrote on last edited by
      #8

      Vielen Dank für die tolle Erklärung.

      Das mit den Messgrößen habe ich damit super hinbekommen.

      Allerdings sieht es derzeit so aus, als würde die CMI das Register des Modbus-Adapters nicht triggern.

      Nur wenn ich den Modbus-Adapter neu starte, bekomme ich neue Werte.

      Meine CMI Einstellung:

      siehe Bild
      6962_download__1_.png

      1 Reply Last reply
      0
      • S Offline
        S Offline
        Sineos
        wrote on last edited by
        #9

        @Klausi:

        Allerdings sieht es derzeit so aus, als würde die CMI das Register des Modbus-Adapters nicht triggern.

        Nur wenn ich den Modbus-Adapter neu starte, bekomme ich neue Werte. `
        Die Anzeige in den CMI Einstellungen aktualisiert sich nicht freiwillig (zumindest bei mir). Wenn ein neuer Wert gesendet wurde (Intervallzeiten beachten) und man drückt, wie in deinem Screenshot dargestellt, nochmals auf "Speichern" aktualisiert sich der Wert.

        In der UVR sollten die Werte ankommen, also am besten dort testen oder über ein Online-Schema in der CMI.

        1 Reply Last reply
        0
        • K Offline
          K Offline
          Klausi
          wrote on last edited by
          #10

          Hallo,

          das sich die Anzeige im CMI nur nach dem Speichern erneut aktualisiert ist klar.

          Leider aktualisiert sich der Wert in der UVR sowie im Onlineschema erst nach Neustart des Modbus-Adapters.

          1 Reply Last reply
          0
          • S Offline
            S Offline
            Sineos
            wrote on last edited by
            #11

            Sorry für die späte Antwort, ich war geschäftlich unterwegs.

            Kann mir keinen direkten Reim drauf machen, warum es bei dir nicht funktioniert. Läuft bei mir anstandslos mit mehreren Werten. Ich hab mal ein Beispiel von mir angehängt:

            2178_screenshot_20180428-000409.png
            2178_screenshot_20180428-000444.png

            Kann es vielleicht sein, dass du eine hohe "Sendebedingung bei Änderung" hast?

            1 Reply Last reply
            0
            • K Offline
              K Offline
              Klausi
              wrote on last edited by
              #12

              Hallo Sineos:

              vielen Dank für deine Mühe.

              Genauso wie in deinen Beispiel habe ich die Einstellungen auch.

              Trotzdem werden ohne periodischen Modbus_Neustart keine Werte in Richtung Modbus (iobroker) und Modbus (UVR1611) aktualisiert.

              Ich habe Werte in sämtlichen Registern getestet – gleiches Ergebnis.

              Ich wollte einen Heizkreis der UVR mittels Raumthermostat der Homematic steurern (Vorlaufsoll).

              Ich muss mir was anderes einfallen lassen.

              Nochmal vielen Dank für die Mühe.

              1 Reply Last reply
              0
              • S Offline
                S Offline
                Sineos
                wrote on last edited by
                #13

                Vielleicht noch ein paar Ideen:

                • Ich benutze node-red für die Übertragung an den Modbus Adapter. Siehe Screenshot

                • Screenshot meines Eingangsregisters

                • In der CMI Firmware gab es ein paar Bugfixes den Modbus betreffend. Neueste CMI Firmware ist gerade 1.30.2

                • Ggf. mal den Modbus Adpater auf Debug setzen und schauen ob er auch tatsächlich periodisch neue Werte bekommt

                • Den Modbus Adpater über die Konsole (nicht in der WebUI) neu installieren und schauen ob diese fehlerfrei durchläuft

                2178_clipboard03.png
                2178_clipboard02.png
                2178_clipboard01.png

                1 Reply Last reply
                0
                • K Offline
                  K Offline
                  Klausi
                  wrote on last edited by
                  #14

                  Habe alles durchprobiert.

                  Neuste Firmware auf dem CMI, Modbus Adpater auf Debug gesetzt, Adapter neu installiert über Konsole.

                  Immer das gleiche Ergebnis: in Richtung Iobroker läuft der Modbus; in Richtung CMI leider nicht.

                  Scheint am CMI zu liegen.

                  Nochmal vielen Dank für deine Mühe.

                  Wenn ich dazu komme teste ich es mal über node-red.

                  Grüsse

                  1 Reply Last reply
                  0
                  • S Offline
                    S Offline
                    Sineos
                    wrote on last edited by
                    #15

                    Wenn dein CMI einmalig die Daten nach einem Neustart des Modbus Adapter bekommt, dann glaube ich nicht, dass es am CMI liegt. Auch ist das CMI der Master und sitzt deshalb eigentlich nur faul rum und wartet bis ein Slave sich meldet. Heißt, der Modbus Adapter baut für jeden Wert eine neue Verbindung zum Master auf. Ich denke, das Problem liegt irgendwo in deiner ioBroker Instanz.

                    Du kannst den Modbus auch mit Tools wie z.B. http://www.tuomio.fi/ananas/index.htm testen:

                    2178_clipboard02.png

                    1 Reply Last reply
                    0
                    • K Offline
                      K Offline
                      Klausi
                      wrote on last edited by
                      #16

                      Hallo Sineos,

                      vielen Dank für den Tipp mit dem Tool Ananas.

                      An ihm konnte ich erkennen, dass es nicht am CMI liegt.

                      In Ananas wird der Modbus Wert des iobrokers auch nicht aktualisiert.

                      Dies bezieht sich aber nur auf das Input-Register.

                      Die Holdings und Coils werden aktualisiert!

                      Ich kann es mir nicht erklären.

                      Die Werte in den Objekten des Iobroker werden brav aktualisiert und angezeigt.

                      Ich weiss nicht weiter.

                      1 Reply Last reply
                      0
                      • S Offline
                        S Offline
                        Sineos
                        wrote on last edited by
                        #17

                        Mir fällt jetzt leider auch nichts mehr ein.

                        Einzig vielleicht auf https://github.com/ioBroker/ioBroker.modbus ein Issue aufmachen mit Referenz zu diesem Thread. Vielleicht können die Entwickler zusätzliche Debug-Ausgaben hinzufügen, um zu sehen wo was falsch läuft.

                        1 Reply Last reply
                        0
                        • StabilostickS Offline
                          StabilostickS Offline
                          Stabilostick
                          wrote on last edited by
                          #18

                          Und momentan maximal den Modbus-Adapter in Version 1.1.2 verwenden, da die Slave-Option in 2.x broken ist.

                          1 Reply Last reply
                          0
                          • K Offline
                            K Offline
                            Klausi
                            wrote on last edited by
                            #19

                            Lässt sich leider bei mir nicht mehr downgraden..

                            1 Reply Last reply
                            0
                            • StabilostickS Offline
                              StabilostickS Offline
                              Stabilostick
                              wrote on last edited by
                              #20

                              Öhm, doch geht. Brauchst Du aber nicht mehr, weil jetzt eine neuere Variante von 2.0.6 auf Github steht. Die neuste Version (immer noch 2.0.6, aber von Bluefox nachgebessert) tut jetzt bei "Slave" was sie soll.

                              Lösung: Die Partner-ID auf 0.0.0.0 stellen oder die IP des ioBroker Servers angeben. Das funktioniert bei mir. Den Rest wie bei 1.1.2 lassen.

                              Nutzt du auch eine UVR? Edit: Dumme Frage ;-)

                              1 Reply Last reply
                              0
                              • K Offline
                                K Offline
                                Klausi
                                wrote on last edited by
                                #21

                                Vielen Dank für den Hinweis.

                                Habe es getestet und es läuft mit der IP 0.0.0.0

                                Ja, ich benutze auch eine UVR1611 und steuere mit dem Modbus Pumpenabschaltungen usw.

                                1 Reply Last reply
                                0
                                • K Offline
                                  K Offline
                                  Klausi
                                  wrote on last edited by
                                  #22

                                  Nur sieht es derzeit so aus, als wäre die Logik der coil's umgedreht.

                                  true=false

                                  false=true

                                  1 Reply Last reply
                                  0
                                  • StabilostickS Offline
                                    StabilostickS Offline
                                    Stabilostick
                                    wrote on last edited by
                                    #23

                                    Hilfe, was sind Coils? Ich übertrage nur einige analoge Messwerte. Und das klappt.

                                    1 Reply Last reply
                                    0
                                    • K Offline
                                      K Offline
                                      Klausi
                                      wrote on last edited by
                                      #24

                                      Das sind die diskreten Ausgänge des Modbus.

                                      Ich benutzte Sie zum Übertragen von Logikwerten.

                                      1 Reply Last reply
                                      0
                                      • StabilostickS Offline
                                        StabilostickS Offline
                                        Stabilostick
                                        wrote on last edited by
                                        #25

                                        Kannst Du bitte einige Screenshots machen von den Einstellungen, die Du verwendest, um digitale Werte aus der UVR zu ioBroker zu übertragen und ggf auch zurück? Bei mir steht da z.B. immer 0 im ioBroker, obwohl das CMI am Modbus-Ausgang "Ein" sagt.

                                        1 Reply Last reply
                                        0
                                        • StabilostickS Offline
                                          StabilostickS Offline
                                          Stabilostick
                                          wrote on last edited by
                                          #26

                                          Verflixt, wo sehe ich denn in Ananas die Coils, d.h. das, was das CMI so an Digitalwerten an den ioBroker sendet?

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          760

                                          Online

                                          32.4k

                                          Users

                                          81.5k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe