Graph-IT

ControlPi-Plugin für UniPis

Dieses Paket enthält ein Plugin für das ControlPi-System, mit dem Neuron-Controller des Herstellers UniPi mit dem ControlPi-System betrieben werden können.

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-unipi.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-unipi.git

Benutzung

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

{
    "Debug": {
        "plugin": "WSServer",
        "web": {
            "/": {
                "module": "controlpi_plugins.wsserver",
                "location": "Debug"
            }
        }
    },
    "Log": {
        "plugin": "Log",
        "filter": [{}]
    },
    "UniPi": {
        "plugin": "UniPi"
    }
}

Das UniPi-Plugin benötigt keine weitere Konfiguration, wenn es auf einem UniPi ausgeführt wird. Es such selbständig alle digitalen Ein- und Ausgänge und Relais-Ausgänge im SysFS-Dateisystem, das unter https://kb.unipi.technology/en:sw:02-apis:04-sysfs dokumentiert ist, und richtet diese als Clients am ControlPi-Bus ein.

Die Beschaltung und die technischen Parameter sind dokumentiert unter:

Die Darstellung der drei Arten von Komponenten in der Debug-Oberfläche ist im Folgenden zu sehen: Debug-Oberfläche Eingang Debug-Oberfläche Ausgänge

Zusätzlich zum üblichen Zustands-Interface haben die Eingänge einen Zähler, der mit dem Kommando get counter abgefragt und mit dem Kommando reset counter sowohl abgefragt als auch auf 0 gesetzt werden kann.

Sowohl die digitalen als auch die Relais-Ausgänge implementieren das übliche Interface mit den Kommandos get state und set state.