Mitte 2019 konnte ich dem Hype um die Shelly Produkte nicht mehr ausweichen, und habe mir, mit dem Ziel meine Bastelarbeiten durch Produkte mit CE – Zeichen ohne Cloud-Zwang zu ersetzten, direkt in Bulgarien bei alterco im Shop 4 x Shelly 1PM, 4 x Shelly 2.5 und 4 x Shelly 1 bestellt.
Die Lieferung erfolgte erfreulich schnell, was ein wenig die damals sehr hohen Versandkosten bei DHL – Lieferung rechtfertigten.
Installation
Anschlussschemas Shelly
Selbstverständlich erfolgte die völlig problemlose Installation (Verkabelung) durch einen freundlichen und interessierten Elektriker, vielen Dank dafür.
WLAN – Konfiguration
Alle Shellies funken im 2,4 Mhz WLAN. Unser Haus mit 3 Etagen und verschiedenen Räumen mit Fußbodenheizung ist für die optimale Verteilung von Funkwellen in diesem oder höheren Frequenzbereichen nicht wirklich geeignet. Aus diesem Grund hatte ich bereits vor der Shelly – Installation die Etagen über Devolo DLAN – Wifi verbunden.
Es wurde mir jedoch klar, dass eine Fritz-Box auf Dauer keine geeignete Lösung für mittlerweile deutlich über 30 WLAN – Clients und diverse weitere LAN – Clients sein wird. Immerhin habe ich es zum Laufen gebracht.
Konfigurationsregeln
Konfiguration über Web-GUI des Shellies (ohne Cloud):
Der Standard Mode bei Auslieferung oder nach dem Zurücksetzen auf die Werkseinstellungen ist: Access Point
Verbinden des Shellies mit dem Standard Wi-Fi-Netzwerk (im Auslieferungszustand) (SSID) z.B. wie Shelly1 – 84CCA87D7CDC ohne Passwort. Die universelle IP-Adresse für alle Shelly-Geräte lautet: 192.168.33.1, um auf die Webschnittstelle zu gelangen.
Es erscheint eine abgespeckte Konfigurationsmaske für die Erfassung der eigenen WLAN – Zugangsdaten (SSID und Passwort WPA).
Nach dem Neustart verbindet sich der Shelly mit eigenen WLAN
Über die lokale IP Adresse wird die Konfiguration fortgesetzt
Beispiel „Returned json from:“ http://admin:[password]@[IP | DNS-Name]/settings
{
"device":{
"type":"SHSW-1",
"mac":"0123456789AB",
"hostname":"shelly1-6789AB",
"num_outputs":1
},
"wifi_ap":{
"enabled":false,
"ssid":"shelly1-6789AB",
"key":""
},
"wifi_sta":{
"enabled":true,
"ssid":"RAUNETWLANIOT",
"ipv4_method":"dhcp",
"ip":null,
"gw":null,
"mask":null,
"dns":null
},
"wifi_sta1":{
"enabled":false,
"ssid":null,
"ipv4_method":"dhcp",
"ip":null,
"gw":null,
"mask":null,
"dns":null
},
"ap_roaming":{
"enabled":true,
"threshold":-70
},
"mqtt":{
"enable":true,
"server":"service.iot:1883",
"user":"admin",
"id":"24_Deckenleuchte",
"reconnect_timeout_max":60.000000,
"reconnect_timeout_min":2.000000,
"clean_session":true,
"keep_alive":60,
"max_qos":1,
"retain":false,
"update_period":30
},
"coiot":{
"enabled":true,
"update_period":15,
"peer":""
},
"sntp":{
"server":"time.google.com",
"enabled":true
},
"login":{
"enabled":true,
"unprotected":false,
"username":"admin"
},
"pin_code":"",
"name":"24_Deckenleuchte",
"fw":"20230329-161525/v1.13.0-rc2-g1b3e5af",
"factory_reset_from_switch":true,
"discoverable":true,
"build_info":{
"build_id":"20230329-161525/v1.13.0-rc2-g1b3e5af",
"build_timestamp":"2023-03-29T16:15:25Z",
"build_version":"1.0"
},
"cloud":{
"enabled":false,
"connected":false
},
"timezone":"Europe/Berlin",
"lat":50.123456,
"lng":7.123456,
"tzautodetect":true,
"tz_utc_offset":7200,
"tz_dst":true,
"tz_dst_auto":true,
"time":"09:19",
"unixtime":1682493563,
"debug_enable":false,
"allow_cross_origin":true,
"ext_switch_enable":false,
"ext_switch_reverse":false,
"ext_switch":{
"0":{
"relay_num":-1
}
},
"actions":{
"active":false,
"names":[
"btn_on_url",
"btn_off_url",
"longpush_url",
"shortpush_url",
"out_on_url",
"out_off_url",
"lp_on_url",
"lp_off_url",
"report_url",
"report_url",
"report_url",
"ext_temp_over_url",
"ext_temp_under_url",
"ext_temp_over_url",
"ext_temp_under_url",
"ext_temp_over_url",
"ext_temp_under_url",
"ext_hum_over_url",
"ext_hum_under_url"
]
},
"hwinfo":{
"hw_revision":"prod-2018-08",
"batch_id":2
},
"mode":"relay",
"longpush_time":800,
"relays":[
{
"name":"24_Deckenleuchte",
"appliance_type":"Switch",
"ison":false,
"has_timer":false,
"default_state":"off",
"btn_type":"edge",
"btn_reverse":1,
"auto_on":0.00,
"auto_off":0.00,
"power":0.00,
"schedule":false,
"schedule_rules":[
]
}
],
"ext_sensors":{
},
"ext_temperature":{
},
"ext_humidity":{
},
"eco_mode_enabled":true
}
MQTT
Als (ehemaliger) FHEM – User hat man ein latentes Unwohlsein bei der Nutzung einer Cloud. Da Shellies auf MQTT „ohne Cloud“ umgestellt werden konnten und in FHEM MQTT Server und Client Module bereits existierten, habe ich mich in dieses Thema eingearbeitet.
Trotz aller folgenden tollen Entwicklungen sehe ich auch heute noch die Vorteile dieser Kommunikation von IOT – Ereignissen über einen oder mehrere Broker und beliebig vielen Abonnenten von topics. Leider bietet dieses System einfach zu viele Gestaltungsmöglichkeiten und keinen einheitlichen Standard.
So publizieren Shellies relativ starr generell alles unter dem Topic „shellies/[devicename]/#“. Eine Abbildung des Raumnummernsystems in MQTT ist, – wenn zwingend gewünscht -, nur durch zusätzliche Topic – Spiegelungen möglich. Ich habe es mittlerweile aufgegeben und nur noch den Gerätenamen auf Basis des Raumnummernsystems vergeben.
Beispiel Shelly 1 (SHSW-1) Deckenleuchte im Vorratsraum im Keller (settings: s.o.):
Feld(er) | Inhalt |
---|---|
Name (DEVICE NAME, CHANNEL NAME) | 24_Deckenleuchte |
Use custom MQTT prefix | 24_Deckenleuchte |
MQTT – Topic (base) | shellies/24_Deckenleuchte/# |
IP | DHCP | [Fix IP without local DNS] |
Local DNS | 24.deckenleuchte.iot |
Haus | home |
Etage | 20_KELLER |
Raum | 24_VORRATSRAUM |