Skip to content

Latest commit

 

History

History
118 lines (82 loc) · 6.28 KB

README.md

File metadata and controls

118 lines (82 loc) · 6.28 KB

Version Version Donate

ebusdMQTT

Anbindung von https://github.com/john30/ebusd an IP-Symcon.

Inhaltverzeichnis

  1. Funktionsumfang
  2. Voraussetzungen
  3. Installation
  4. Konfiguration
  5. Einbindung ins Webfront
  6. Schreiben von Werten
  7. Funktionsreferenz
  8. Anhang

1. Funktionsumfang

Das Modul dient zur Einbindung von eBUS Geräten in IP-Symcon. eBUS ('Energie Bus') ist ein Bussystem, das von verschiedenen Herstellern von Heizungs-, Lüftungs- und Solaranlagen genutzt wird.

Die Anbindung erfolgt über den Kommunikationsdienst ebusd in Verbindung mit einem geeigneten Hardwareadapter.

Über das Modul werden die von ebusd zur Verfügung gestellten Parameter zum Auslesen und Schreiben in IP-Symcon als Statusvariablen eingebunden. Die Auswahl der einzubindenden Parameter wird vom Anwender festgelegt.

2. Voraussetzungen

  • Hardware Adapter zur Verbindung mit dem eBUS
  • lauffähiger eBUS Daemon (ebusd (ab V3.4)) mit entsprechender Hardwareanbindung (siehe auch Installationskurzanleitung ebusd)
  • mindestens IPS Version 5.3
  • MQTT Server (IPS built-in Modul)

3. Installation

Füge im "Module Control" (Kern Instanzen->Modules) die URL

https://github.com/bumaas/ebusdMQTT.git

hinzu.

Danach ist es möglich ein neues ebusd MQTT Device zu erstellen:

Instanz erstellen

Falls noch keine übergeordnete MQTT Server Instanz existiert, wird automatisch eine angelegt:

MQTT Server Instanz erstellen

Auch eine Server Socket Instanz wird automatisch angelegt, wenn noch keine existiert:

MQTT Server Instanz erstellen

4. Konfiguration

Für jedes erkannte Gerät/Schaltkreis muss eine Instanz angelegt werden..

Instanz konfigurieren

  • Host:
    Adresse unter der der ebusd Dienst erreichbar ist. Hierbei kann es sich um eine IP Adresse oder einen Hostnamen handeln.

  • Port:
    Portnummer auf dem der ebusd Dienst http-Anfragen entgegennimmt.

  • Schaltkreis Name:
    Der Name des Schaltkreises unter dem das Gerät in ebusd geführt wird ('Circuit'). Beispiele sind 'bai', '700' etc. Über den Button "Ermittle Schaltkreis Namen" wird die Auswahl der zur verfügung stehenden Schaltkreise ermittelt.

  • Aktualisierungsintervall:
    Intervall in dem alle Statusvariablen durch Anfragen an den eBUS aktualisiert werden (0 = keine Aktualisierung). Je nach Anzahl der Statusvariablen kann die Abfrage den eBUS erheblich belasten. Das Intervall sollte nicht zu klein gewählt werden.

Nachdem die Einstellungen gespeichert wurden, kann im Aktionsbereich die Konfiguration gelesen werden und die anzulegenden Statusvariablen können ausgewählt werden. Bei Bedarf kann für eine Statusvariable eine Poll Priorität angegeben werden, die von ebusd verwendet werden soll. Die Poll Prioriät besagt, in welchem Intervallzyklus eine Meldung von ebusd gepollt werden soll. Meldungen mit Priorität 1 werden in jedem Pollzyklus abgefragt, Meldungen mit Priorität 2 werden in jedem zweiten Zyklus abgefragt usw.. Die Pollpriorität kann gesetzt werden, wenn das Abfrageintervall, das im Minutenbereich liegt, für einzelne Meldungen nicht fein genug ist.

5. Einbindung ins Webfront

Alle Statusvariablen sind für eine Anzeige und (sofern vom ebusd ein Schreiben unterstützt wird) zum Ändern im Webfront vorbereitet. Sie haben alle ein Profil, das der ebusd Definition entspricht. Zur Verwendung im Webfront sollten sie jedoch überprüft werden. Insbesondere der Wertebereich (min/max) ist zu kontrollieren und auf reelle bzw. anlagenspezifische Werte zu setzen.

Besonderheit:

Schreibbare Mehrfachfelder können nicht direkt aus dem Webfront heraus geändert werden. Sie lassen sich aber über EBM_publish schreiben.

Beispiel:

EBM_publish(47111, 'ebusd/700/hwctimer.monday/set', '07:00;22:00;00:00;00:00;00:00;00:00');

6. Schreiben von Werten

Sofern die Statusvariablen ein Schreiben zulassen, können die Werte direkt über das Webfront oder per Skript über RequestAction verändert werden.

7. Funktionsreferenz

EBM_publish(int $InstanceID, string $topic, string $payload): void

Published den Wert $payload zum $topic. Kann für "Sonderthemen" genutzt werden, siehe MQTT client Beschreibung. Ein Beispiel zum Schreiben eines Topics:

// der Wert des Parameters 'FlowsetHCMax' des Schaltkreises 'bai' wird auf 75 gesetzt

$InstanceID = 12345;                                  // die Instanz ID des "ebusd MQTT Device"
$topic      = 'ebusd/<Schaltkreis>/<Parameter>/set';  // <Schaltkreis> und <Parameter> sind entsprechend zu ersetzen ('ebusd/bai/FlowsetHCMax')
$payload    = '75';                                   // der Wert ist als String zu übergeben

EBM_publish($InstanceID, $topic, $payload);

8. Anhang

GUIDs der Module

Modul Typ GUID
ebusd MQTT Device Device {0A243F27-C31D-A389-5357-B8D000901D78}

Spenden

Die Nutzung des Moduls ist kostenfrei. Niemand sollte sich verpflichtet fühlen, aber wenn das Modul gefällt, dann freue ich mich über eine Spende.