Guten Abend Kai,
genau das hatte ich nicht verstanden und deswegen hier angefragt. Welche mqtt topics (commands) werden vom shelly beantwortet/ unterstützt.
Der http - command: /settings liefert ausführliche Informationen zur aktuellen Konfiguration des Shelly's, die ich gerne idealerweise als MQTT topic hätte, und, es funktioniert auch mit Anmeldung in der URL:
http://<username>:<password>@<shelly IP>/settings
Bis zu einer möglichen Freigabe des/der entsprechenden MQTT - topics ist meine laienhafte "Idee" diese Funktionalität in fhem als 99_my_SHELLYUtils.pm zu ermöglichen.
Da Du Dich ja auch sehr gut in fhem und shelly mqtt aus kennst, frage ich einfach mal nach:
Die anhängende 99_mySHELLYUtils.pm.txt ('.txt' muß entfernt werden bevor es nach /opt/fhem/FHEM hochgeladen wird) wird durch den zusätzlichen Eintrag im setlist Attribut des fhem device
x_httpCMND { X_PerformShellyHttpRequest($NAME,ReadjngsVal($NAME,"ip","").",".$EVTPART1[.",<username>,<password>"]}
mit dem fhem Befehl:
set <devicename> x_httpCMND <shelly|settings|status|reboot>
aufgerufen und erzeugt aus dem http command das dem command entsprechende sub topic mit dem json String als value auf dem MQTT2_SERVER. Z.B. für settings:
topic: shellies/shelly1-B9FF78/settings
value: {
"device": {
"type": "SHSW-1",
"mac": "A4CF12B9FF78",
"hostname": "shelly1-B9FF78",
"num_outputs": 1
},
"wifi_ap": {
"enabled": false,
"ssid": "shelly1-B9FF78",
"key": ""
},
"wifi_sta": {
"enabled": true,
"ssid": "RAUNET Fritz WLAN",
"ipv4_method": "static",
"ip": "192.168.1.72",
"gw": "192.168.1.1",
"mask": "255.255.255.0",
"dns": "192.168.1.1"
},
"wifi_sta1": {
"enabled": false,
"ssid": null,
"ipv4_method": "dhcp",
"ip": null,
"gw": null,
"mask": null,
"dns": null
},
"mqtt": {
"enable": true,
"server": "192.168.1.100:1884",
"user": "fhem",
"reconnect_timeout_max": 60,
"reconnect_timeout_min": 2,
"clean_session": true,
"keep_alive": 60,
"will_topic": "home/20_KELLER/25_VORFLUR/Deckenleuchte",
"will_message": "false",
"max_qos": 0,
"retain": false,
"update_period": 30
},
"sntp": {
"server": "time.google.com"
},
"login": {
"enabled": true,
"unprotected": false,
"username": "admin",
"password": "XXXXX"
},
"pin_code": "",
"coiot_execute_enable": false,
"name": "",
"fw": "20190711-084053/v1.5.0-hotfix4@3b4f7414",
"build_info": {
"build_id": "20190711-084053/v1.5.0-hotfix4@3b4f7414",
"build_timestamp": "2019-07-11T08:40:53Z",
"build_version": "1.0"
},
"cloud": {
"enabled": false,
"connected": false
},
"timezone": "Europe/Berlin",
"lat": 51.921001,
"lng": 8.40135,
"tzautodetect": true,
"time": "19:16",
"hwinfo": {
"hw_revision": "Shelly1_Restore_1.3.0",
"batch_id": 9130
},
"mode": "relay",
"relays": [
{
"name": null,
"ison": false,
"has_timer": false,
"default_state": "switch",
"btn_type": "toggle",
"btn_reverse": 1,
"auto_on": 0,
"auto_off": 0,
"power": 0,
"btn_on_url": null,
"btn_off_url": null,
"out_on_url": null,
"out_off_url": null,
"schedule": false,
"schedule_rules": []
}
]
}
Alles anzeigen
Diese sind im mqtt-explorer auch sichtbar!
Aber wie daraus readings zum fhem device gemacht werden, habe ich noch nicht herausgefunden.
Danke,
Gernot
17.07.2017 EDIT: Dateianhang und setList Eintrag aktualisiert
Hinweis:
Achtung das Attribut "rePublish" am MQTT2 Server muss auf 1 stehen!
attr <MQTT2_SERVER> rePublish 1