Skip to content

devices

Pf@nne edited this page Oct 29, 2018 · 14 revisions







Übersicht über die fertigen 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


SWA1

Allgemeines

Der WiFi Smart Socket mit der Typenbezeichnung SWA1 wird immer mal wieder unter verschiedenen Marken von ostasiatischen Händlern zu Schnäppchenpreisen von unter 10 EUR vertrieben. Ab Werk ist das Gerät mit einer Firmware vorbelegt, die zwingend eine Registrierung beim Hersteller und die Nutzung von dessen Dienst erfordert. Das geht natürlich gar nicht.

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.

Topics

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

Hardwarekonfiguration

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

Einbindung in FHEM

SWA1.template

#####################################################
#
# 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%

Definition

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

TOP


simpleSwitch

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

TOP


lightSensor

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

TOP


pressureSensor

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

TOP


flora2

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.

TOP


drawerLight

drawerLight ist noch in Arbeit. Damit sollen Schubladen mit einer smarten Beleuchtung ausgestattet werden können.

TOP


smartMeter

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.

TOP




HOME

  1. Über diese Dokumentation
  2. Übersicht und Einleitung
    1.1 Out of the Box
    1.2 QuickStart
  3. Benötigte Softwarepakete
    2.1 ATOM / PlatformIO
    2.2 Node.js / Gulp
    2.3 GitKraken
  4. 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
  5. Q&A

CodeStruktur


changeLOG

Clone this wiki locally