UVR1611 Werte via CMI nach Modbus - CMI zeigt keine UVR Werte

  • Hallo Meggle,


    ich würde mal im CMI bei Modbus TCP-Ausgang als Funktion nicht 06-preset single register, sondern 16-preset single register wählen, das widerspricht sich mit den Modbus Einstellungen im iobroker,
    da hast du 16-preset single register.


    Im CMI hast du als Geräte ID:2, in den Verbindungsparameter 0, würde hier auch 2 eintragen.


    Dann müsste es meines Erachtens funktionieren, ich habe auch keine anderen Parametereinstellungen.


    Ich glaube aber, es liegt einzig und allein an 16-preset single register, wie in der 1. Zeile erläutert.


    Bei mir hat es mit diesen Einstellungen funktioniert.

  • Servus,


    das mit der Geräte ID war nur zum testen, funktioniert beides nicht.


    Das mit den 16-preset-multiple-register hab ich geändert. keine Änderung.


    Ich wart jetzt einfach, vielleicht renkt es sich ja noch ein. Bei der CMI war es auch so.;-)

  • Hallo an Alle,


    im Moment übergebe ich von der CMI die Werte per CGI und parse das dann in ioBroker.


    Ich würde es gerne mal über MOD Bus versuchen, kenn mich aber damit nicht so aus.


    Also, habe nur eine alte UVR über Datenleitung.
    Über Eingänge-Datenleitung-Analog habe ich was definiert, Werte werden angezeigt.


    Nun muss ich wohl über Ausgänge-Modbus-Master-Analog definieren.
    Die IP ist wohl die von ioBroker?
    Was gebe ich als Gerät, Funktion, Adresse, Datentyp und Bytereihenfolge ein?
    Bin leider kein Programmierer....

  • @hg6806


    Wie kann man vom CMI Werte per CGI übergeben und in iobroker parsen ?


    Ist es nicht so, dass der Adapter-Parser im iobroker sich die Werte vom CMI über einen request holt ?


    Ich habe beim parser im iobroker das Problem, dass er die Werte nicht aktualisiert.


    Habe vor einigen Wochen mal Werte bekommen, aber die werden nicht mehr aktualisiert.


    Kann dies mit dem Zeitintervall mind. 30 Sek. zusammenhängen ? Wenn der Abfrage-Zeitintervall zu kurz ist, dann bringt er ja die Fehlermeldung "TOO MANY REQUESTS".


    Könntest du mir bitte einen Screenshot von deiner Adapterconfiguration hochladen ?


    Welche RegEx hast du verwendet ?
    Number ?
    Typ ?


    Du hast sicherlich die Doku CMI-JSON-API Vers. 6 verwendet und mit folgendem Beispiel-Request die Werte abgefragt ?
    Beispielabfrage UVR16x2 - KNOTEN2:


    Nun zu deinem Modbus Problem:


    Ich habe eine UVR16x2 und 2 RSM`s, aber ich denke dies müsste bei der alten UVR auch so funktionieren.
    Habe alle meine digitalen Ausgänge und 1 analogen Werte (Testwert) vom CMI durch den Adapter-Modbus in den iobroker bereits übertragen.


    ABLAUF:
    UVR-CAN-AUSGANG (Analog/Digital) - CMI-CAN-EINGANG (Analog/Digital) - CMI-MODBUS-TCP-AUSGANG (Analog/Digital) - IOBROKER-HOLDINGREGISTER (ANALOGE WERTE) oder IOBROKER-DISKRETE-AUSGÄNGE(DIGITALE WERTE)


    IP-ADRESSE: Ist die IP des Raspberry.
    Einstellungen analoge Werte wie im Beitrag 184486, digitale Werte siehe Screenshot.


    Für einen analogen Wert habe ich dies am 23.2.2021 unter dem Artikel 184486 in diesem Thread bereits dokumentiert.

  • Da es bei mir jetzt endlich funktioniert, geb ich gerne den Tipp der mir geholfen hat. Schau in die Info zum Modbus Adapter, dort ist das ganze beschrieben.


    Readme Modbus



    Bei mir ist es übrigens so, ich geb im CMI als Adresse 1 ein und es kommt beim HoldingRegister 40000 raus. Liegt an der Verwendung von Aliasen (vermute ich)


    Hier die Screenshots meiner Einstellungen. Anstatt 0.0.0.0 sollte auch die IP des IOBroker oder 127.0.0.1 gehen.

  • Hallo meggle,


    danke für deine Info.


    Ich verstehe dies auch so, möchte es hiermit nochmal in meinen Worten ausdrücken.
    Zumindest hat dies bei mir nach dieser Logik und Vorgehensweise funktioniert und so ist es für mich einfacher anwendbar.


    Jedes Register (Bereich) 1 - 4 im Modbus kann mit der Adresse 0 oder 1 beginnen.
    Damit man die Handhabung und Anwendung in der Praxis erleichtert, hat man eine Zahlenstruktur (Präfix) für die 4 Bereiche eingeführt.


    Wenn man z. b. im CMI (=Master) Modbus TCP-Ausgang als Empfangs-Adresse 1 eingibt, weiß der Anwender oder Leser noch nicht in welches Register dieser Wert zu schreiben ist.
    Daher sollte z. B. im CMI bei einem Temp. Wert als Adressen-Wert 40001 verwendet werden, dann sieht man sofort aufgrund der "Präfix", dass diese Wert in das Holdingregister im iobroker wandern muss, da für Werte für das Holding Register 40.000 und fortlaufend vorgesehen ist.
    Im Holding Register bekommt der Temp. Wert anschließend die gleiche Adresse.


    Ich mache dies zwecks Übersichtlichkeit von Beginn an so.


    Ausgänge habe ich mit 1 und fortlaufend definiert, da coils (Ausgänge) mit 1 in Modbus TCP beginnen und im iobroker unter diskrete Ausgänge (1 und fortlaufend) dargestellt werden.
    Siehe Doku Gliederung unten.

    • Diskrete Eingänge
    • Coils (Ausgänge)
    • Eingangsregister
    • Halteregister


    meggle: Hier die Screenshots meiner Einstellungen. Anstatt 0.0.0.0 sollte auch die IP des IOBroker oder 127.0.0.1 gehen.


    Das CMI ist der Master und der iobroker/Adapter der Slave.


    Wenn das CMI der Master ist, muss meines Erachtens im CMI die IP-Adresse des iobroker eingetragen werden, damit der Master die Werte an den Slave (iobroker) senden kann.
    So erkläre ich mir den Eintrag im iobroker unter IP-Adresse mit: 0.0.0.0, da hier die IP-Adresse im Slave keine Funktion hat.


    Ich sende vom CMI unter Modbus TCP-Ausgang auch Digitale Werte (Relais-Schalzustände, Ein-, Aus) an den Smartfox Pro und habe im CMI auch die IP-Adresse des Smartfox Pro eingetragen.
    Zumindest funktioniert es so bei mir.



    Sonnige Grüße



    Karl




    ioBroker.modbus/README.md at master · ioBroker/ioBroker.modbus · GitHub


    Verwenden Sie Aliase als Adresse


    Normalerweise können alle Register Adressen von 0 bis 65535 haben. Mithilfe von Aliasen können Sie virtuelle Adressfelder für jeden Registertyp definieren.
    Normalerweise:

    • Die diskreten Eingänge reichen von 10001 bis 20000
    • Coils (Ausgänge) sind von 1 bis 1000
    • Eingangsregister sind von 30001 bis 40000
    • Halteregister reichen von 40001 bis 60000

    Jeder Alias wird intern der Adresse zugeordnet, z. B. wird 30011 dem Eingangsregister 10 zugeordnet und so weiter.

  • Hallo alle zusammen,


    ich stehe auch irgendwie vor einem Fehler...ich bekomme keine Verbindung und das komische ist, ich sehe auch keinen Aktuellen Wert.


    Ich habe mein CMI per DL an einem HZR65 angeschlossen und kann diesen auch ohne Probleme auslesen.


    Wenn ich jetzt über Modbus Ausgänge folgende Einstellungen vornehmen kommt da nichts...


    Eingang : Datenleitung, 1 Kesseltemperatur, Messwert
    IP Adresse : Habe Modbus Poll zum Testen, also meine IP vom PC
    Gerät : 0
    Funktion : 16
    Adresse : 40009 (8)


    Faktor : 0,01 mit allem getestet
    Sendebedingung : 1
    Blockierzeit : 10s
    Intervallzeit : 1


    aktueller Wert 0 ( real wäre hier 77,4 )



    Was mache ich hier Grundsätzlich verkehrt?
    Kommt ein akt. Wert erst, wenn eine Modbus Verbindung aufgebaut ist ?


    Wenn ich mit einem Modbus-Scanner mein Netzwerk durchsuche, bekomme ich auch keine Verbindung zum Port 502

  • Guten Abend zusammen,
    ich habe nun alle erdenklichen Möglichkeiten ausprobiert bekomme aber keinerlei Werte übertragen.


    Die Instanz wird grün und im CMI wird die Verbindung auch aufgeführt.



    Wäre für jeden Tipp von euch dankbar.
    Gruß Jens

  • Hallo Jens,


    folgendes ist mir aufgefallen:


    CMI-Modbus Digital-Ausgang ist im Modbus Adapter=Diskrete Ausgänge und nicht Eingänge. Dies habe ich bei mir so eingestellt und funktioniert bei mir auch problemlos.


    Bei den Analogen Eingängen in das Holding Register habe ich auch Probleme, es hat bei mir schon mal mit einem Wert funktioniert, aber aktuell habe ich Probleme.


    Dies dürfte meines Erachtens nur ein Parameterproblem sein, da die Verbindung ja korrekt ist.
    Mit "sudo netstat -tulpn" siehst du welche Ports offen sind.


    Stell dich mal mit der Maus auf dem Wert 0 Grad in den Objekten im iobroker, dann siehst du, dass der Wert 0 Grad, aber bestätigt true ist.




    Sonnige Grüße



    Karl

  • Hallo Jens,


    jetzt funktioniert es bei mir.
    Frage mich aber nicht nach der Logik im modbus-Adapter, ich habe dies bei den Alias-Adressen noch nicht wirklich durchschaut.
    Beim Smartfox hat es mit 40.000 und fortlaufende funktioniert.


    Dies dürfte offenbar ein Adressen u. Parameterproblem sein.
    Einfach die Adressen von 1 beginnend starten, Faktor 10 (weiß nicht warum) und value.temperature.


    Vergiss mal die Alias-Adressen und nimm beide Hacken heraus. 2. Screenhot Adapterkonfiguration.


    Gib mir Bescheid ob es funktioniert !



    LG




    Karl

  • Hallo Karl,
    entschuldige bitte die späte Rückmeldung bin leider erst heute dazu gekommen es auszuprobieren.
    Die analogen Werten funktionieren aber nun.
    Werde sie nun alle erstmal konfigurieren.


    Das einzigste was ich noch anpassen musste, war der Faktor dort habe ich jetzt 0.1 drin stehen damit ich die richtigen Temperaturen übermittelt bekomme.


    Vielen Dank für deine Hilfe.
    Gruß Jens

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!