-
Notifications
You must be signed in to change notification settings - Fork 4
devices

In den Topics ist die Tilde ~
ein Platzhalter für den Namen, den man dem Device in dessen Einstellungen verpasst hat. Bei Zugriffen über das API kann an dieser Stelle jeder Name verwendet werden, auch die Tilde, da ein Device einen über das API an es gerichteten Befehl immer auf sich bezieht.
3.5 Devices
- SWA1
- simpleSwitch
- lightSensor
- pressureSensor
- flora2
- drawerLight
- smartMeter

Uns sind Varianten mit 1 MB und 2 MB Flash-Speicher bekannt (die 1-MB-Variante lässt sich mangels Speicher leider nicht per OmniESP-OTA aktualisieren). Das Gerät lässt sich leicht zerlegen und nach Auflöten einer Stiftleiste auf OmniESP flashen.
Der Schalter am Gerät schaltet es ein oder aus. Der Schalter kann auch verwendet werden, um das Gerät in den Konfigurationsmodus zu versetzen, d.h. um einen Access-Point zu öffnen und die Weboberfläche unter der IP-Adresse 192.168.4.1 verfügbar zu machen. Dazu muss er lange gedrückt werden. Nochmaliges Drücken oder eine Weile ohne Eingabe schaltet den Konfigurationsmodus wieder aus.
Im Konfigurationsmodus blinkt die blaue LED schnell, wenn niemand mit dem Access-Point verbunden ist, und langsam, wenn mindestens eine Verbindung mit dem Access-Point besteht.
SWA1 kennt neben den standardmäßigen Topics folgende gerätespezifischen Topics:
Topic | Argumente | Bedeutung |
---|---|---|
~/set/device/power |
0 1
|
Strom aus-/einschalten |
~/set/device/togger |
Strom ausschalten, wenn er eingeschaltet ist, und ausschalten, wenn er eingeschaltet ist | |
~/set/device/signal |
0 1
|
blaue LED aus- oder einschalten; nützlich, um eine Steckdose zu identifizieren |
~/get/device/power |
Zustand aus/ein abfragen | |
~/event/device/power |
0 1
|
Ereignis gibt an, ob Strom an oder aus ist |
~/event/device/relay |
0 1
|
Ereignis gibt an, ob Relais an oder aus |
~/event/device/led |
0 1
|
Ereignis gibt an, ob die blaue LED an oder aus |
~/event/device/button/state |
0 1
|
Ereignis gibt an, ob Knopf gedrückt ist oder nicht |
~/event/device/button/click |
short long double
|
Ereignis gibt an, ob Knopf kurz, lang oder doppelt gedrückt wurde |
~/event/device/button/idle |
0 1
|
0 , wenn Knopf gerade gedrückt wurde; 1 , wenn Knopf eine Weile nicht mehr gedrückt wurde |
Die Dokumentation zum Umbau befindet sich bei den Quellen.
Konfiguration in src/customDevice/customDeviceSetup.h
:
#define | Wert | Bedeutung |
---|---|---|
PIN_BUTTON |
13 |
Arduino-Pin, an dem der Taster angeschlossen ist |
PIN_LED |
4 |
Arduino-Pin, an dem die Benutzer-LED angeschlossen ist |
PIN_RELAY |
5 |
Arduino-Pin, an dem das Relais und die EIN/AUS-LED angeschlossen sind |
#####################################################
#
# 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 ist ein FHEM-Device namens MQTT
für den MQTT-Broker definiert.
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
simpleSwitch ist eine Firmware für einen smarten Schalter: über einen Taster am Gerät kann ein Relais geschaltet werden. Eine LED signalisiert den Zustand. Dafür werden insgesamt drei GPIO-Pins des ESP8266 benötigt. Der Taster kann auch verwendet werden, um das Gerät in den Konfigurationsmodus zu versetzen, d.h. um einen Access-Point zu öffnen und die Weboberfläche unter der IP-Adresse 192.168.4.1
verfügbar zu machen.
simpleSwitch kennt neben den standardmäßigen Topics folgende gerätespezifischen Topics:
Topic | Argumente | Bedeutung |
---|---|---|
~/set/device/power |
0 1
|
Strom aus-/einschalten |
~/set/device/togger |
Strom ausschalten, wenn er eingeschaltet ist, und ausschalten, wenn er eingeschaltet ist | |
~/set/device/led/blink |
0 1 2 3
|
LED ausschalten, einschalten, schnell blinken lassen, langsam blinken lassen |
~/get/device/power |
Zustand aus/ein abfragen | |
~/event/device/power |
0 1
|
Ereignis gibt an, ob Strom an oder aus ist |
~/event/device/relay |
0 1
|
Ereignis gibt an, ob Relais an oder aus |
~/event/device/led |
0 1
|
Ereignis gibt an, ob LED an oder aus |
~/event/device/button/state |
0 1
|
Ereignis gibt an, ob Knopf gedrückt ist oder nicht |
~/event/device/button/click |
short long double
|
Ereignis gibt an, ob Knopf kurz, lang oder doppelt gedrückt wurde |
~/event/device/button/idle |
0 1
|
0 , wenn Knopf gerade gedrückt wurde; 1 , wenn Knopf eine Weile nicht mehr gedrückt wurde |
Konfiguration in src/customDevice/customDeviceSetup.h
:
#define | Wert | Bedeutung |
---|---|---|
PIN_BUTTON |
12 |
Arduino-Pin, an dem der Taster angeschlossen ist |
PIN_LED |
15 |
Arduino-Pin, an dem die LED angeschlossen ist |
PIN_RELAY |
14 |
Arduino-Pin, an dem das Relais angeschlossen ist |

lightSensor ist eine Firmware, um damit die Beleuchtungsstärke in lux zu messen und zu übertragen. Dazu muss ein Sensor vom Typ BH1750 per I2C-Bus an den ESP8266 angeschlossen werden.
Topic | Argumente | Bedeutung |
---|---|---|
~/set/device/pollInterval |
setzt, alle wieviel Millisekunden der Zustand abgefragt und per Event gemeldet wird | |
~/get/device/illuminance |
fragt die Helligkeit ab | |
~/event/device/illuminance |
Ereignis gibt die Helligkeit in lux an |
Konfiguration in src/customDevice/customDeviceSetup.h
:
#define | Wert | Bedeutung |
---|---|---|
ADDRESS |
BH1750_DEFAULT_I2CADDR |
I2C-Busadresse des BH1750 |
RESOLUTION |
RESOLUTION_AUTO_HIGH |
Genauigkeit |
POLL_IVL_DEF |
5000 |
standardmäßiges Polling-Intervall in Millisekunden |

pressureSensor ist eine Firmware, um damit den Luftdruck und die Temperatur zu messen und zu übertragen. Dazu muss ein Sensor vom Typ BPM280 per I2C-Bus an den ESP8266 angeschlossen werden.
Topic | Argumente | Bedeutung |
---|---|---|
~/set/device/pollInterval |
setzt, alle wieviel Millisekunden der Zustand abgefragt und per Event gemeldet wird | |
~/get/device/pressure |
fragt den Luftdruck ab | |
~/get/device/temperature |
fragt die Temperatur ab | |
~/event/device/temperature |
Ereignis gibt die Temperatur in °C an |
Konfiguration in src/customDevice/customDeviceSetup.h
:
#define | Wert | Bedeutung |
---|---|---|
ADDRESS |
(0x76) |
I2C-Busadresse des BPM280 |
POLL_IVL_DEF |
5000 |
standardmäßiges Polling-Intervall in Millisekunden |
flora2 ist noch in Arbeit. Sie wird die Beleuchtungsstärke, den Luftdruck, die UV-A-Strahlung, den Füllstand einer Zisterne und die Bodenfeuchte messen und bis zu 8 Relais schalten können.
drawerLight ist noch in Arbeit. Damit sollen Schubladen mit einer smarten Beleuchtung ausgestattet werden können.
smartMeter ist nocht nicht entwickelt. Es ist die Firmware für eine smarte Steckdose analog zum SWA1, welche jedoch zusätzlich über eine hochpräzise Messung von Spannung, Strom, Wirk- und Blindleistung, Netzfrequenz, kumulierten Stromverbrauch und Kurvenform der Netzspannung verfügt. Dayu wird der Chip ADE7953 eingesetzt und das Gehäuse von einem SWA1 verwendet. Ein Vorläufer ist das ADE7953_Breakoutboard.

- Über diese Dokumentation
-
Übersicht und Einleitung
1.1 Out of the Box
1.2 QuickStart -
Benötigte Softwarepakete
2.1 ATOM / PlatformIO
2.2 Node.js / Gulp
2.3 GitKraken -
User Manual
3.1 RapidLoader
3.2 OmniESP Funktionen
- Kommunikation
- WiFi StateMachine
3.3 User-Interface
- Aufbau
- Authentifizierung
- Dashboard
- Configuration
- Events
3.4 Application-Interface
- Topics
- MQTT
- Webinterface
3.5 Devices
3.6 Modules
3.7 Entwicklung
- Device
- Modul
- Core
- Dashboard - Q&A