Graph-IT

ControlPi-Plugin für das Lesen von JSON von einem seriellen Device

Dieses Paket enthält ein Plugin für das ControlPi-System, mit dem von einem seriellen Device JSON-Nachrichten gelesen und auf den Message-Bus des ControlPi-Systems gelegt werden können. Alle auf der seriellen Schnittstelle gelesenen Zeilen, die keine JSON-Objekte sind, werden ignoriert.

Installation

Eine ausführliche Dokumentation ist in der Dokumentation der ControlPi-Infrastruktur zu finden.

Der Code dieses Plugins kann mit git geclonet werden:

$ git clone git://git.graph-it.com/graphit/controlpi-readjson.git

(Falls Zugang zu diesem Server per SSH besteht und Änderungen gepusht werden sollen, sollte stattdessen die SSH-URL benutzt werden.)

Dann kann es editierbar in ein virtuelles Environment installiert werden:

(venv)$ pip install --editable <Pfad zum Code-Repository>

Auf dem Raspberry Pi (oder wenn keine Code-Änderungen gewünscht sind) kann es auch direkt, ohne einen git-Clone installiert werden:

(venv)$ pip install git+git://git.graph-it.com/graphit/controlpi-readjson.git

Benutzung

Eine minimale ControlPi-Konfiguration, die dieses Plugin benutzt, ist im git-Repository enthalten:

{
    "Log": {
        "plugin": "Log",
        "filter": [{}]
    },
    "SerialTest": {
        "plugin": "ReadJSON",
        "device": "/tmp/serialout"
    }
}

Als weitere Schlüssel können in der Konfiguration "baudrate", "parity" und "stopbits" angegeben werden, wobei die Voreinstellungen 115200, "none" und 1 sind.

Wir können das Plugin ohne serielle Hardware testen, in dem wir mit socat eine virtuelle serielle Verbindung aufmachen:

$ socat -d -d pty,raw,echo=0,link=/tmp/serialin pty,raw,echo=0,link=/tmp/serialout

Dann kann die Beispiel-Konfiguration von /tmp/serialout lesen und mit echo Test-Nachrichten in /tmp/serialin geschrieben werden: Test mit virtuellem seriellen Device