Die Geräte vom bulgarischen Hersteller Shelly sind schwer im kommen. Nicht nur wegen ihrer Größe sondern auch wegen ihres vergleichsweise günstigen Preises. Sie sind über viele Wege ansprechbar. So bietet der Hersteller eine eigene Cloud an, mit der man die unterschiedlichsten Shelly-Geräte steuern und verbinden kann. Für FHEM gibt es ein eigenes Modul und man kann die Geräte auch über das MQTT-Protokoll ansprechen. Mit dem geräteintegrierten Web-Interface kann man die Shelly-Geräte steuern und es dient zur grundlegenden Konfiguration. Manche Konfiguration lassen sich aber nicht so einfach über das Webinterface einsehen und ändern. Wie man die "versteckten" Konfigurationseiträge ändert beschreibe ich in diesem Block-Beitrag.
Die Shelly API ist gut Dokumentiert. Dort kann man nachlesen, dass die Konfiguration des Shelly Gerätes auch via HTTP möglich ist. Beispielsweise beantwortet der Shelly 1 ein http://<IPAdresss_des_Shelly>/settings mit einem JSON-String in folgender Form.
{
"device":{
"type":"SHSW-1",
"mac":"xxxxxxxxxxxx",
"hostname":"shelly1-24CFDE",
"num_outputs":1
},
"wifi_ap":{
"enabled":false,
"ssid":"shelly1-24AFDE",
"key":""
},
"wifi_sta":{
"enabled":true,
"ssid":"SSID",
"ipv4_method":"dhcp",
"ip":null,
"gw":null,
"mask":null,
"dns":null
},
"mqtt": {
"enable":true,
"server":"<IP-Address>:<PORT>",
"user":"",
"reconnect_timeout_max":120.000000,
"reconnect_timeout_min":2.000000,
"clean_session":true,
"keep_alive":120,
"will_topic":"shellies/shelly1-24AFDE/online",
"will_message":"false",
"max_qos":0,
"retain":false,
"update_period":30
},
"login":{
"enabled":false,
"unprotected":false,
"username":"admin",
"password":"admin"
},
"pin_code":"",
"coiot_execute_enable":false,
"name":"",
"fw":"20190311-121907/v1.4.8@e44d9e2c",
"build_info":{
"build_id":"20190311-121907/v1.4.8@e44d9e2c",
"build_timestamp":"2019-03-11T12:19:07Z",
"build_version":"1.0"
},
"cloud":{
"enabled":false,
"connected":false
},
"timezone":"Europe/Berlin",
"lat":12.345678,
"lng":12.345678,
"tzautodetect":true,
"time":"14:19",
"hwinfo":{
"hw_revision":"prod-2018-08",
"batch_id":2
},
"mode" :"relay",
"relays":[
{
"name":null,
"ison":false,
"has_timer":false,
"default_state":"off",
"btn_type":"edge",
"btn_reverse":1,
"auto_on":0.00,
"auto_off":0.00,
"schedule":false,
"schedule_rules":[]
]
}
Hier sieht man, dass es mehr Konfigurationspunkte gibt als im Webinterface angezeigt werden. Möchte man nun zum Beispiel den Wert "update_period" im Objekt "mqtt" von default 30 Sekunden auf 60 Sekunden ändern, kann man den neuen Wert mit:
http://<IPAdresss_des_Shelly>/settings?mqtt_update_period=60
in das Shelly-Device schreiben. Der Wert wird ohne weitere Nachfrage geschrieben. Der darauf automatisch erfolgte Seiten Refresh zeigt im JSON-String sofort den neuen Wert. Der Wert wird so im Shelly gespeichert, dass er auch nach einen Neustart erhalten bleibt.
Weitere Informationen bietet der Status des Shelly. Diese kann man mit http://<IP-Adresse>/status auslesen.
{
"wifi_sta":{
"connected":true,
"ssid":"WLANNAME",
"ip":"192.168.xxx.yyy",
"rssi":-65},
"cloud":{
"enabled":false,
"connected":false
},
"mqtt":{
"connected":true
},
"time":"09:34",
"serial":1,
"has_update":false,
"mac":"EEFABC24CFDE",
"relays" :[
{
"ison":false,
"has_timer":false
}],
"meters":[
{
"power":0.00,
"is_valid":"true"
}],
"update":{
"status":"idle",
"has_update":false,
"new_version":"20190402-134233/v1.4.9@9be72c7e",
"old_version":"20190402-134233/v1.4.9@9be72c7e"},
"ram_total":51224,
"ram_free":40752,
"fs_size":233681,
"fs_free":174696,
"uptime":96
}
Kommentare powered by CComment