Wie versprochen zeige ich noch eine letzte Möglichkeit um große Mengen an gelesenen Modbus in Loxone direkt anzeigen zu lassen. Ist natürlich in jedem Fall komfortabler nur entsprechende Ausgänge anzuschließen, als im Code die richtigen Register herauszufummeln. Oder zum Testen, ohne große Konfiguration einfach mal Daten anzeigen lassen.
Im folgenden Beispiel lese ich aus einem Solaredge Wechselrichter 25 Werte synchron aus. Das Endergebnis wird wie folgt aussehen, wobei einige Besonderheiten zu beachten sind. Diese stelle ich gleich darauffolgend dar.

In den beiden Programm-Bausteinen laufen jeweils picoC Programme. Im linken wird die Modbus-Connection hergestellt, die Daten gelesen und an den Ausgängen O2 bis O13 die ersten 12 Werte ausgegeben. Die restlichen 13 Werte werden an den nächsten Programm-Baustein weitergegeben. Eingestellt ist im Beispielcode die Adresse 40188 des Wechselrichters mit 25 synchron zu lesenden int16-Registern.
Nun ist es leider so, dass eine direkte Verbindung von Aus-/Eingängen in Loxone bei Programm-Bausteinen zwar zunächst funktioniert. Allerdings wird bei einer Folge-Speicherung/Deployment auf dem Miniserver der ganze Miniserver instabil und stürzt ab. Um das zu vermeiden, gehen wir einen Umweg: Wir geben die Daten an einen zwischengeschalteten Textgenerator(Konfiguration im Bild)

und dieser gibt die Daten einfach weiter. Dies tut er, indem bei jedem neuen Datensatz ein kurzer „Impuls bei“ gesetzt wird(Konfiguration im Bild),

welcher dann für die Weitergabe sorgt.
Der empfangende Programm-Baustein erhält zum einen die Daten als Hex-String und zum anderen die Information, um welchen Datentyp es sich bei den Daten handelt.
Da die Programm-Bausteine asynchron laufen, ist das Ganze dann nur fast synchron in der Anzeige. Im Code ist die Update-Häufigkeit des empfangenden Bausteins auf 50ms eingestellt. Kann man natürlich anpassen und beobachten, wie sich der eigene Server dann verhält.
Die Einstellungsmöglichkeiten für den Code sind bereits in Teil 2 beschrieben. Lediglich die Anzahl der zu lesenden Ergebnisse kann in diesem Code auf bis zu 25 gesetzt werden. Einer weiteren Ergebnisweitergabe steht natürlich nichts im Weg…
Für den linken Baustein mit der Modbus-Connection eine Modifikation des Codes aus Teil2.
Für den rechten Baustein nur der Decodier- und Anzeigecode
Ich habe sehr viel Inspiration aus den geteilten Informationen aus dem Internet bekommen. Deshalb auch die Offenheit hinsichtlich dieser Lösung. Ich hoffe, es hilft jemandem.
