Externes Schalten von PoKeys-Pins

In diesem Beitrag haben wir uns damit beschäftigt, wie Daten aus PoKeys in externen Geräten verwendet werden können. Aber auch der umgekehrte Weg ist möglich. Dieser Beitrag zeigt, wie von externer Seite Pins an PoKeys geschaltet werden können. Damit wird es beispielsweise möglich, von einer Himbeere aus LEDs an PoKeys ein- und auszuschalten.

 

 

Schalten via URL-Aufruf

Die einfachste Methode, Pins an PoKeys von externer Seite zu schalten, ist der Aufruf einer dafür vorgesehenen URL. Zuvor jedoch müssen wir in der PoKeys-Konfigurationssoftware das Webinterface aktivieren, falls noch nicht geschehen. Dazu rufen wir das Programm auf, verbinden uns mit unserem PoKeys-Modul und wählen den Menüpunkt „Gerät“ => „Webinterface Konfiguration„. Falls dort der Punkt „Disable web interface“ aktiviert ist, entfernen wir den Haken. Zudem aktivieren wir die Möglichkeit der Steuerung über das Webinterface durch die Aktivierung des Punkts „Allow toggling outputs via web interface„.

 

Wir senden die geänderten Einstellungen zum Gerät durch „Send to device“ und öffnen zum Testen das Webinterface, dass wir unter der IP-Adresse des PoKeys-Moduls erreichen. Auf der Übersichtsseite sehen wir alle konfigurierten und für uns sichtbaren Sensoren und Schaltzustände.

 

Der Menüpunkt „Input/Output status“ führt uns zu einer übersichtlichen Tabelle, die die Schaltzustände aller Pins anzeigt. Zudem ist es uns in dieser Tabelle möglich, den Schaltzustand für die als digitale Ausgänge definierten Pins zu ändern.

 

Möchten wir nun den Schaltzustand mit einem externen Gerät ändern, verwenden wir folgende HTTP-Adresse:

http://{IP}/setDO.html?Pin={PIN}&State={STATUS}&u={BENUTZER}&p={PASSWORT}

Dabei sind folgende Parameter in der Adresse anzupassen:

  • IP: Hier die IP-Adresse vom PoKeys-Modul einsetzen
  • PIN: Den zu schaltenden Pin angeben
  • STATUS: der gewünschte Status kann wie folgt angegeben werden:
    • T = toggle, der Zustand wird gewechselt, also von ein auf aus und andersherum
    • 0 = der Pin wird unabhängig vom momentanen Status ausgeschaltet
    • 1 = der Pin wird unabhängig vom momentanen Status eingeschaltet
  • BENUTZER: Angabe des Benutzers, der (schaltenden) Zugriff auf die Weboberfläche hat
  • PASSWORT: Das zum Nutzer gehörende Passwort

 


Die Nutzerdaten werden im Klartext übertragen!
Diese Methode daher bitte nur in einem gesicherten, internen Netzwerk benutzen.

 

Schalten über Modbus-TCP

PoKeys bietet neben dem spezifischen URL-Aufruf die Möglichkeit, Schaltungen über Modbus-TCP vornehmen zu lassen. Dazu ist eine Konfiguration dieser Funktion notwendig. Für die Konfiguration öffnen wir den Menüpunkt „Gerät“ => „Modbus Konfiguration„.

 

 

Dort konfigurieren wir den Port, an welchem PoKeys den Modbus-Client starten soll. Außerdem stellen wir hier die Befugnisse ein, die ein Modbus-Server auslesen und beschreiben darf. In diesem Beitrag verfolgen wir das Ziel, dass der Modbus-Server, also das entfernte Gerät, Pins ein- und ausschalten darf. Daher müssen wir den Punkt „Write“ bei „Digital inputs and outputs“ aktivieren.

 

 

Schlussendlich müssen wir nun den Modbus-Server konfigurieren. Stellvertretend zeige ich das hier beispielhaft anhand eines Loxone-Miniservers. Dafür öffnen wir in der Loxone-Konfiguration den Unterpunkt „Miniserverkommunikation„.

 

 

Mit diesem Schritt ändern sich die Registerkarten im oberen Bereich. Uns wird somit die Möglichkeit angeboten, einen neuen Modbus-Server anzulegen. Die Möglichkeit nehmen wir mit dem entsprechenden Button wahr.

 

 

Den neuen Modbus-Server konfigurieren wir auf die Gegebenheiten unseres PoKeys-Moduls. Wir tragen die entsprechende IP-Adresse sowie getrennt durch einen Doppelpunkt den zuvor konfigurierten Port ein. Die Wartezeit nach dem Start setzen wir auf 0.

 

Anschließend fügen wir ein neues Modbus-Gerät ein.

 

Dieses konfigurieren wir, wie in der nächsten Abbildung gezeigt. Hierbei spielt die „IO-Adresse“ eine wichtige Rolle. In diesem Beitrag wird erläutert, welche Adressen für welchen Zweck und mit welchem Befehl zu verwenden sind.

 


Die Nummerierung von Loxone weicht von der Nummerierung von PoKeys ab. Wollen wir
beispielsweise den Pin 36 schalten ist in Loxone die Adresse 35 zu verwenden.

 

Update (25.01.2017): Schalten via UDP-Befehle

Seit der Beta-Version 4.2.23 ist es möglich, via UDP-Befehle digitale Ausgänge an PoKeys zu schalten. Dazu öffnen wir die Konfigurationssoftware und definieren einen Pin, in unserem Beispiel den Pin 52, als digitalen Ausgang.

 

Dann öffnen wir im Menü „Peripherie“ den Punkt „Digitale Ein- und Ausgänge„.

 

Dort können wir die aktuellen Schaltzustände der Pins einsehen. Zur Zeit ist der Pin 52 noch deaktiviert.

 

PoKeys bietet nun die Möglichkeit, via UDP-Befehl diesen Pin zu aktivieren oder zu deaktivieren. Dazu verwenden wir die Befehle „OSV52=1“ bzw „OSV52=0“ an PoKeys. Zur einfachen Verdeutlichung habe ich dazu das Programm „netcat“ verwendet:

Einschalten des Pins 52:

echo "OSV52=1" | nc -u -q2 mein.pokeys.local 20057

 

Ausschalten des Pins 52:

echo "OSV52=0" | nc -u -q2 mein.pokeys.local 20057

 

 

 

In der PoKeys-Übersicht können wir nachvollziehen, dass der Pin auch tatsächlich aktiviert wurde.

 

Dabei ist der Syntax am Beispiel von „OSV52“ wie folgt aufgebaut:

  • O: Das auszulesende oder zu schaltende Objekt
    • O = Digitalausgang
    • A = Analogeingang
    • I = Digitaleingang
    • E = Encoder
    • C = digitaler Zähler
    • S = Wert eines „Easysensors
    • B = Shared-Memory-Slot (aus PoBlocks)
  • S: Die durchzuführende Aktion
    • S = Setzen eines Wertes (set)
    • G = Empfangen eines Wertes (get)
  • V = Ausgabetyp des Wertes
    • V = Ausgabe eines Wertes
    • S = Ausgabe eines Status

 

Abschließende Worte

Es bleibt nur noch die Frage offen, welche Methode man für welchen Anwendungszweck nutzt. Grundsätzlich unterscheiden sich die Methoden in den Punkten Zuverlässigkeit und Performance nicht. Bei der Methode über den Aufruf der URL ensteht der Aufwand, einen Nutzer zu PoKeys hinzuzufügen, bei Modbus der erhöhte Aufwand seitens des Servers. Die Beantwortung dieser Frage überlasse ich daher jedem selbst.