ESP8266 RELAY LC Technology

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]
    
 

 

ESP8266 RELAY LC Technology

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

  • Die IP-Adresse vom Tasmota herausfinden und auf das WebUI zugreifen
  • Das alte Board verwendet 9600 Baud
  • Konfiguration Modul wie im Screenshot
  • Konsole:
    • 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
  • Reboot

 

ESP-01 DollaTek 4-Chan Relais

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

  • Die IP-Adresse vom Tasmota herausfinden und auf das WebUI zugreifen, z.B. http://192.168.178.57
  • Hauptmenü > Configure Module im Feld Module type 4 Channel (13) auswählen
  • Hauptmenü > Configure Template einen eigenen Templatenamen vergeben und alle GPIO Pins auf None setzen
  • Hauptmenü > Configure Others sollte wie folgt aussehen:
    • Template: {"NAME":"My4ChanRelais","GPIO":[0,0,0,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":13}
    • Device Name: Geräteneame, erscheint so als Gerät in HomeAssistant, hier: "Tasmota 4-Chan Relais"
    • Friendly Name 1: hier "Relais 1", etc

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

  • Baudrate: muss einmalig initialisiert werden
  • SerialSend5: Hex-Daten an die serielle Schnittstelle
  • Power1: virtualisiert, dass der Button gedrückt wurde (im WebUI)

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.

FriendlyElec Nanopi NEO3

Links:

Voraussetzungen:

Nutzung/Ideen:

  • Plex Media Server (via Docker) - ungetestet
  • rtl_tcp - Server für Funkanwendungen
  • GPIO-Ports
  • NAS via USB3
  • Netzwerkserver/-brücke für Glasfaser-WAN (DualStack mit CGNATv4)
    • VPN-Client zu Hetzner-Server
    • Port-Weiterleitung auf Hetzner-Server (VPN-Port zu Public-Port)
    • Local IP:Port <-> VPN <-> Public IP:Port

FriendlyCore Ubuntu Issues:

  • keine DNS Auflösung
    • 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
EXP700

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

ESP8266

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 GS108E

Netgear Switch Integration in Homeassistant

Code für HomeAssistant unter github.com/ckarrie/ckw-ha-gs108e.

PiFace Digital

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:

  • Raspberry Pi 1
  • PiFace Digital (v1)
  • 5V Netzteil
  • SD-Karte

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)
  • usw.

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