mit ESPHome
Configuration File
esphome:
name: esp8266-relay-lc-tech
friendly_name: ESP8266 RELAY LC Tech esp8266:
board: esp01_1m
# Enable Home Assistant API
api:
...
# Disable uart/serial logging
logger:
baud_rate: 0
uart:
tx_pin: 1
rx_pin: 3
baud_rate: 9600
switch:
- platform: template
name: "Relais 1"
optimistic: true
turn_on_action:
- uart.write: [0xA0, 0x01, 0x01, 0xA2]
turn_off_action:
- uart.write: [0xA0, 0x01, 0x00, 0xA1]
mit Tasmota
Links:
ESP-01 flashen
Mit tasmonizer und den ESP-Flasher (DIP-Schalter auf PROG) ein Backup erstellen und das Tasmota Image (releases) flashen. In diesem Fall ist der Speicher 1MB und die tasmota.bin sollte darauf passen. Die WiFi und die MQTT-Settings ebenfalls mit tasmonizer hochladen.
ESP-01 aus dem ESP-Flasher entfernen und auf das Board zurück stecken.
Konfiguration Tasmota
Rule1 on System#Boot do Backlog Baudrate 9600; SerialSend5 0 endon on Power1#State=1 do SerialSend5 A00101A2 endon on Power1#State=0 do SerialSend5 A00100A1 endon
mit Tasmota
Hinweis: siehe Artikel ESP8266 RELAY LC Technology für evtl. besseren Workaround via Tasmota Rules.
Links:
ESP-01 flashen
Mit tasmonizer und den ESP-Flasher (DIP-Schalter auf PROG) ein Backup erstellen und das Tasmota Image (releases) flashen. In diesem Fall ist der Speicher 1MB und die tasmota.bin sollte darauf passen. Die WiFi und die MQTT-Settings ebenfalls mit tasmonizer hochladen.
ESP-01 aus dem ESP-Flasher entfernen und auf das Board zurück stecken.
Konfiguration Tasmota
{"NAME":"My4ChanRelais","GPIO":[0,0,0,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":13}
Das Relais via Serieller Schnittstelle ansprechen
Die vier Buttons im WebUI vom Tasmota gehen nicht, da via serieller Schnittstelle ein weiterer Microcontroller auf dem Ralis-Board angesprochen werden muss und dies nicht via GPIO Ports passiert. D.h. wir verschicken Tasmota Serial Commands via MQTT um die Relais zu schalten.
In der Console vom Tasmota (via WebUI) kann man den Controller ansprechen:
SerialLog 1
Baudrate 115200
SerialSend5 A00101A2
SerialSend5 A00100A1
Für Relais 2:
SerialSend5 A00201A3
SerialSend5 A00200A2
Für Relais 3:
SerialSend5 A00301A4
SerialSend5 A00300A3
Für Relais 4:
SerialSend5 A00401A5
SerialSend5 A00400A4
Diese Befehle können auch via MQTT (MQTTfx) gesendet werden:
Publish Topic: cmnd/tasmota_4D7E7C/Backlog
Payload: Baudrate 115200; SerialSend5 A00101A2; Power1 on
HomeAssistant
Da der Tasmota als reiner Befehlsempfänger dient und die Steuerung über HomeAssistant erfolgt, ignorieren wir die Buttons im WebUI von Tasmota. Werden die Switches in HomeAssistant (Relais 1-4) umgeschaltet, wird das an Tasmota weitergeleitet und der (virtuelle) Status der Buttons ändert sich. D.h. Statusabfrage ist korrekt, wir müssen nur zusätzlich das physische Relais schalten:
1. Automation: Baudrate beim Start von HomeAssistant und bei Sonnenaufgang setzen
alias: Tasmota 4-Chan Relais Baudrate
description: ""
trigger:
- platform: homeassistant
event: start
- platform: sun
event: sunrise
offset: 0
condition: []
action:
- service: mqtt.publish
data:
topic: cmnd/tasmota_4D7E7C/Baudrate
payload: "115200"
mode: single
2. Automation: Relais 1 schalten
alias: Tasmota 4-Chan Relais Relais 1 schalten
description: ""
trigger:
- platform: device
type: changed_states // "Umschalten"
device_id: XXX // Geräte-ID vom Gerät "Tasmota 4-Chan Relais"
entity_id: XXX // Entity-ID vom Schalter "Relais 1"
domain: switch
condition: []
action:
- if:
- condition: device
type: is_off
device_id: XXX // Geräte-ID vom Gerät "Tasmota 4-Chan Relais"
entity_id: XXX // Entity-ID vom Schalter "Relais 1"
domain: switch
then:
- service: mqtt.publish
data:
topic: cmnd/tasmota_4D7E7C/SerialSend5
payload: A00100A1
else:
- service: mqtt.publish
data:
payload: A00101A2
topic: cmnd/tasmota_4D7E7C/SerialSend5
mode: single
3. bis 5. Automation, Kopie der 2. Automation erstellen und Relais und Payload austauschen (unterer Wert zuerst).
Finito.
Links:
Voraussetzungen:
Nutzung/Ideen:
FriendlyCore Ubuntu Issues:
sudo mv /etc/resolv.conf /etc/resolv.conf.old
sudo nano /etc/resolv.conf
nameserver 1.1.1.1
nameserver 8.8.8.8
search fritz.box
ab Raspberry Pi 2
Code für den Raspberry Pi unter github.com/ckarrie/ckw-hass-rb-exp700.
Preis: ~20,00€
Dokumentationen vom Hersteller: joy-it.net
aka ESP-01
Links:
Arduino-IDE:
Unter Datei > Voreinstellungen folgende Borverwalter-URL ergänzen:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Bestand:
Aktuell besitze ich zwei ESP-01'er, auf dem einen läuft ein Webserver mit einer Dummy-Grafik, der zweite ist auf ein 5V Relais-Modul bestückt.
WebSchalter3.1:
!Aktuell funktioniert das Schalten des Relais nicht, evtl. sind die Pinnummern falsch
Netgear Switch Integration in Homeassistant
Code für HomeAssistant unter github.com/ckarrie/ckw-ha-gs108e.
Raspberry Pi 1 mit PiFace Digital IO, MQTT und Python 3
Wir nutzen unseren alten Raspberry Pi 1 mit dem PiFace Digital und verbinden die Input- und Outputports via MQTT. Sofern Homeassistant mit eurem MQTT-Broker verbunden ist, wird das neue Gerät dank MQTT-Discovery erkannt.
Der Quellcode für den Raspberry Pi liegt unter github.com/ckarrie/ckw-ha-mqtt.
mkdir ~/src/
cd ~/src/
git clone https://github.com/ckarrie/ckw-ha-mqtt
Für Python 3 muss mit
git checkout py3
der Branch gewechselt werden.
Hardware:
Software:
Installation:
sudo apt install python3-pip
sudo apt install screen
sudo pip3 install pifacecommon
sudo pip3 install pifacedigitalio
sudo pip3 install paho-mqtt
Integration in Homeassistant:
hostname ist mit dem Hostnamen von eurem Raspberry zu ersetzen.
Input Entitäts-IDs:
binary_sensor.hostname_input_0 (Eingang 0)
binary_sensor.hostname_input_1 (Eingang 1)
binary_sensor.hostname_input_2 (Eingang 2)
binary_sensor.hostname_input_3 (Eingang 3)
binary_sensor.hostname_input_4 (Eingang 4)
binary_sensor.hostname_input_5 (Eingang 5)
binary_sensor.hostname_input_6 (Eingang 6)
binary_sensor.hostname_input_7 (Eingang 7)
Output Entitäts-IDs:
switch.hostname_switch_0 (Relais 0)
switch.hostname_switch_1 (Relais 1)
switch.hostname_switch_2 (Output 2)
switch.hostname_switch_3 (Output 3)
Screenshots aus Homeassistant:
Auszug aus der Frontend yaml-Datei:
type: entities
entities:
- entity: binary_sensor.rpi_keller_piface_input_0
- entity: binary_sensor.rpi_keller_piface_input_1
- entity: binary_sensor.rpi_keller_piface_input_2
- entity: switch.rpi_keller_piface_switch_0
- entity: switch.rpi_keller_piface_switch_1
title: RPI Piface Keller