Loxone Config – Testdaten für Loxmock abfragen

Entwicklungshilfe für picoC Skripte

Wer den Loxmock einsetzt, muss sich seine Testdaten teilweise recht umständlich holen: Aufrufen, kopieren, bei Bedarf quoten, ggfls. Bytes/Hexwerte ausrechnen etc.. Da wäre doch ein Tool ganz recht, das einem genau diese Arbeit abnimmt. Zudem braucht man kein weiteres Werkzeug um z.B. Daten über http oder Modbus TCP aus seinem Device auszulesen und in die Testumgebung zu übertragen. 🙂 Wie das also geht inkl. des Tools (v01) für Linux und Windows findet sich nachstehend.

Das Tool, ich habe es mal cli_tcp getauft, ist primär für den Loxmock gedacht, kann aber natürlich auch unabhängig davon verwendet werden. cli_tcp kann vier verschiedene Arten von Kommandozeilenaufrufen über TCP machen und das Ergebnis auf Wunsch dann auch gleich gequoted ausgeben. Die Übernahme der abfragten Daten wird im aktualisierten Loxmock-Artikel beschrieben. Im Zuge der Entwicklung gab es dort nicht rückwärtskompatible Anpassungen und damit eine neue Version.

Allgemeine Optionen:

-q   quietmode, weniger gesprächig
-e   escapemode, Anführungszeichen im Output werden gequoted

Unterstützte TCP Aufrufe

Bytestream über TCP

Option: hex

Schonmal java, python oder Englisch gesprochen? Nun kommt Modbus-TCP dazu. 🙂 Zumindest benutze ich dieses Protokoll als Beispiel. Man kann sein Device mittels cli_tcp natürlich mit beliebigen Bytes anfragen. Klassischerweise würde man ein Modbus-Tool über eine GUI nutzen. Ist aber unpraktisch für die Entwicklung und für das Übernehmen von Testdaten in seinen Code.

Im Screenshot wird eine Modbus-TCP Anfrage gestellt, indem Bytes an das Device geschickt werden und nach einer kurzen Wartezeit von 800ms die Antwort gelesen wird. Im Beispiel ist das ein Solaredge-Wechselrichter. Die Bytes werden als Hex-Werte an- und ausgegeben.

Die Interpretation der Ergebnisbytes erfordert natürlich Wissen über die Registerfunktionen. Zu sehen sind Rohdaten. Da kommen dann Big/Little Endian, Registergrößen, Wertebereiche, Einheiten etc. noch ins Spiel. Ist wie gesagt nur zur Demonstration. Für das blockweise Auslesen und Ausgeben größerer Datenmengen hatte ich für den Loxone Miniserver bereits das Modbus-Skript bereitgestellt.

ascii-Stream über TCP

Option: asc

Möchte man nach einem Connection Aufbau einfach mal ungefiltert ascii-Werte verschicken, so kann man das mit diesem Modus tun. In diesem Beispiel verbinde ich mich mit einem Webserver und schicke diesem eine selbst formulierte http-Anfrage. Genauso könnte man sich über telnet verbinden und diesen Request absetzen. Direkter geht es nicht. 🙂

http request

Option: http

Der unter „asc“ gezeigte Aufruf kann einfacher und „echter“ über die http Option gemacht werden. Einfach den Pfad/Parameter-Anteil einer URL angeben.

Da wir mit picoC auf Loxone arbeiten und https dort nicht unterstützt wird, macht das in diesem Tool ebenfalls keinen Sinn. Wir beschränken uns also auf http.

http request mit Basic Authentication

Option: httpbasicauth

Praktisch für Requests an den Loxone Miniserver oder typische Aufrufe mittels localwebservice(). Der Miniserver verlangt eine Authentifizierung. Die geben wir ihm mit dieser Option.

Wer mag – cli_tcp zum Download

Für beide Downloads gilt: In ein Verzeichnis entpacken und aufrufen. Hilfe erscheint.

cli_tcp.tar für Linux

cli_tcp.zip für Windows


Wie immer gilt: Fortschritt, nicht Perfektion… Feedback ist also jederzeit willkommen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert