ESPHome Optolink - openv/openv GitHub Wiki
ESPHome
Die ESPHome-Plattform erlaubt es, sehr komfortable eine eigene Firmware für ESP8266 und ESP32 Microcontroller zu erstellen. Einmal eingerichtet, kann die Firmware dann im laufenden Betrieb über Wifi (OTA) aktualisiert werden.
Ein mit dieser Firmware ausgestatteter Microcontroller lässt sich danach sehr einfach in die Hausautomatisierung integrieren, insbesondere die Integration in Home Assistant funktioniert fast aufwandslos. Bei Bedarf kann über ESPHome ein eigener Web-Server in die Firmware integriert werden, so dass auch ohne Hausautomatisierung-Plattform die Ansteuerung möglich ist. Auch die Verbindung zu einem MQTT-Broker ist möglich (wurde von mir aber nicht getestet).
Hardware
Der von mir verwendete Optolink-Adapter orientiert sich an den hier und hier vorgestellten Bauanleitungen. Da die IR-LED SFH487-2
quasi nicht mehr verfügbar ist, habe ich beim Elektronik-Händler meiner Wahl nach einer LED mit gleichem Frequenzband gesucht und bin mit der SIR 204 EVL
fündig geworden. Den in den beiden Bauanleitungen vorgeschlagenen Vorwiderstand von 180Ω habe ich durch 220Ω ersetzt. Erst versuchsweise, weil ich 180Ω gerade nicht zur Hand hatte, inzwischen dauerhaft, weil die Schaltung so seit einigen Monaten problemlos läuft.
Als Microcontroller habe ich einen Wemos D1 mini
mit externem Antennenanschluss gewählt um die Wifi-Strecke aus unserem Keller bis ins Obergeschoss problemlos zu überbrücken.
Software
Für die Integration in ESPHome habe ich eine sogenannte Komponente entwickelt. Aktuell ist sie noch nicht Teil des offizielle ESPHome-Releases, ist aber schon als Pull Request verfügbar. Um den Software-Stand des Pull Request zu nutzen, müssen drei zusätzliche Zeilen in die ESPHome-Konfiguration mit aufgenommen werden:
external_components:
- source: github://pr#4453
components: [ optolink ]
Die Initialisierung der Optolink-Komponente erfolgt über:
optolink:
protocol: P300 # P300 oder KW
logger: enable # wenn später alles rund läuft, wieder entfernen
state: Status # wenn später alles rund läuft, wieder entfernen
device_info: Gerätekennung # dient zur Identifizierung der Vitotronic
Da der serielle Port UART0
zur Kommunikation mit der Optolink-Schnittstelle verwendet wird, muss beim Einsatz der logger
-Komponente deren Ausgabe auf UART1
umgeleitet werden oder ganz deaktivert werden. Unabhängig davon werden die Log-Ausgabe weiterhin im ESPHome-Frontend angezeigt, und auch in der optionalen web_server
-Komponente.
logger:
hardware_uart: UART1
level: DEBUG
logger:
hardware_uart: UART0
baud_rate: 0
level: DEBUG
Danach können beliebige Sensoren und Kontrollelemente konfiguriert werden. Beispiel:
sensor:
- platform: optolink
name: ${name} Kesseltemperatur
address: 0x0810
bytes: 2
div_ratio: 10
unit_of_measurement: °C
device_class: temperature
number:
- platform: optolink
name: ${name} Sollwert Raumtemperatur
unit_of_measurement: °C
address: 0x2306
bytes: 1
min_value: 3
max_value: 37
step: 1
mode: box
icon: "mdi:home-thermometer"
device_class: temperature
Die vollständige Beschreibung der Konfigurationsmöglichkeiten kann in der Dokumentation des Pull Requests nachgelesen werden.
Gehäuse
Das von mir verwendete Gehäuse ist etwas größer als für den Wemos D1 mini
notwendig. Für den Anschluss einer Buchse, über die ich von der Gasuhr Signale über den Gasverbrauch beziehe habe ich etwas mehr Platz gebraucht.
Hier die STL-Dateien meines Gehäuses für den 3D-Druck: STL.zip.