FHEM Forum

Verschiedenes => Bastelecke => ESP Familie => Thema gestartet von: Dr. Boris Neubert am 30 September 2018, 19:50:54

Titel: [Projekt] SWA1 Smarte Steckdose mit OmniESP
Beitrag von: Dr. Boris Neubert am 30 September 2018, 19:50:54
Hallo,

heute stelle ich Euch kurz ein Projekt vor, wie ich smarte Steckdosen "befreit" habe.

Manchmal gibt es bereits für unter 10 EUR je Stück auf den Handelsplattformen smarte Steckdosen, die unter verschiedenen Marken vertrieben werden, aber alle als Typenbezeichnung SWA1 führen. Die Steckdosen für den Innenbereich sind für 100 bis 240 V AC und bis zu 10 A geeignet. Insgesamt fliegen bei mir jetzt sieben dieser Teile rum. Eine Benutzung im Auslieferungszustand ist nur mit App und Registrierung auf einem Server möglich. Das kommt natürlich keinesfalls in Betracht.  8)

Die vier Schrauben im Gehäuse lassen sich mit einem scharfen Schraubendreher mit flacher 3mm-Klinge herausdrehen. Durch vorsichtiges Verdrehen können dann die obere und untere Hälfte des Gehäuses voneinander getrennt werden.

Darin befindet sich neben dem Stecker- und dem Kupplungsmodul für die Netzspannung eine Platine, die Netzspannung führt, und eine Platine, die einen ESP8266, eine rote und blaue Leuchtdiode und einen Schalter beinhaltet. Auf dieser Platine kann eine Stiftleiste mit 5 Pins eingelötet werden, um an die serielle Konsole zu gelangen bzw. den ESP8266 mit einer anderen Firmware zu beschicken. Pf@nne hat dazu die Pinbelegung ermittelt.

Pf@nne und ich haben im OmniESP-Framework für den ESP8266 eine Firmware für den SWA1 entwickelt. Diese liegt als stable-v1.0 vor und wird einfach kompiliert und über einen Adapter für USB-nach-Seriell (3,3V) auf den SWA1 geflasht. Details gibt es in der Doku zu SWA1 (https://github.com/Pfannex/OmniESP/blob/master/_customDevices/SWA1/doc/SWA1.txt) bzw. im sehr ausführlichen OmniESP-Wiki (https://github.com/Pfannex/OmniESP/wiki).

Eingebunden in FHEM wird die so befreite Steckdose per MQTT.

Man kann einmal ein Template namens SWA1.template anlegen:

#####################################################
#
# FHEM Sample Configuration for OmniESP SWA1
#
# mqtt device name %mqtt%
# device names %name%, %name%_log
# aliases based on %alias%
# all devices are in room %room% or %room_hidden%
# all devices are in group %group%
#
# example:
#       template use /opt/fhem/conf/Templates/SWA1.template \
#               mqtt=MQTT node=dose53 name=switch alias=Light1 \
#               room=office group=lights
#
#####################################################

# ---------------------------------------------------
# ESP8266+Relay
# MQTT name: %node%
# FHEM name: %name%
# ---------------------------------------------------

# define
define %name% MQTT_DEVICE
attr %name% IODev %mqtt%
attr %name% room %room%
attr %name% group %group%
attr %name% sortby 30
attr %name% alias %alias%
attr %name% devStateIcon off:taster_ch_aus_rot:on on:taster_ch_an_gruen:off set_.*:taster_ch:on
attr %name% eventMap { dev=>{"1" => "on", "0" => "off"}, usr=>{"on"=>"1", "off"=>"0"} }
attr %name% publishSet on off %node%/set/device/power
attr %name% publishSet_getStatus %node%/get/device/power
# the last device state will be remembered
attr %name% retain 1     
attr %name% room %room%
attr %name% stateFormat state
attr %name% subscribeReading_state %node%/event/device/power
attr %name% webCmd on:off

# get initial state
define %name%_onInitialized_notify notify global:INITIALIZED set %name% getStatus
attr %name%_onInitialized_notify room %room_hidden%


Es muss zunächst ein FHEM-Device namens MQTT für den MQTT-Broker definiert werden.

Die smarte Steckdose heißt dose53 und wird in FHEM unter dem Namen switch mit alias Light1 geführt im Raum office in der Gruppe lights definiert:

template use /opt/fhem/conf/Templates/SWA1.template mqtt=MQTT node=dose53 name=switch alias=Light1 room=office group=lights

Das Teil hat einen dedizierten Raspberry abgelöst, der per GPIO jede Nacht einen Rechner an- und wieder ausschaltet, der Datensicherungsaufgaben im Hausnetzwerk übernimmt. Die smarte Steckdose läuft seit einigen Wochen sehr zuverlässig, zuverlässiger als jede andere Lösung, die ich dafür vorher hatte (außer dem Raspberry, aber das war Overkill).

Die Geräte gibt es in Ausführungen mit 1 MB und 2 MB Flashspeicher. Diejenigen mit dem größeren Speicher lassen sich auch over-the-air mit einer aktualisierten Version von OmniESP beschicken, wenn sie einmal direkt am Gerät mit der Firmware bespielt wurden.

Vielen Dank für Euer Interesse und viel Spaß bei einem Nachbau!
Boris