generelle frage wäre eigentlich: kann shelly.pm auch an wlangeräte angeschlossene blu devices?
ich bin recht neu in sachen shelly und ein wenig überfragt, was nun hier alles aktuell, veraltet oder nur test von leuten ist.
somit ganz einfach:
ich habe eine 4-fachsteckdose von shelly, an der ein blu ht eingebunden ist.
o) derzeit läuft unter shelly.pm die 4-fachsteckdose + schalten der einzelnen dosen. es fehlt also das gesamte blu device mit den werten + der button action des blu devices.
o) parallel dazu test ich gerade mqtt. da fehlt wohl noch ein template, aber ich erkenne alle werte für die dose und das device. da fehlt mir allerdings noch generell das wissen, wie ich schalten kann.
die bitte:
so ein wenig aufklärung - ein stoß in die richtige richtung - über shelly, und was nun wie generell oder am besten funzt. ich denke nämlich, ich hab' mich da geistig ein klein wenig verrant ...
kann mir da keiner ein bissi helfen?
Kannst du deine Geräte etwas genauer beschreiben?
4-fach Steckdose wird vermutlich die Shelly Power Strip 4 Gen4 sein?
Was genau ist blu ht? Shelly BLU H&T ?
ganz genau
die steckdose:
model_ID S4PL-00416EU
firmware_ID 20250819-150404/ga0def2d
firmware_current v1.7.99-powerstripg4prod1
bluetooth senosr:
name: Shelly BLU H&T Ivory Temperatursensor und Luftfeuchtesensor Bluetooth
firmware v1.0.16
aktueller stand ist auch unverändert ...
o) shelyy.pm hat die dose, bis auf die bluetooth-werte.
die 4 extra channels zum schalten der einzelnen steckdosen sind angelegt und funzen ebenfalls.
hier fehlen also die 4 werte des bt-sensors: battery, temp. und luftfeuchte und eine info zum schaltzustand des buttons.
o) mqtt liefert alle werte, inkl. bluetooth sensor, aber da bin ich zu blöd für template und wie man die dose zum schalten kriegt.
wenn irgendwelche infos verlangt sind - ich liefere die gerne. man darf mich auch gerne als tester mißbrauchen.
man muss mir nur genau sagen, was gefragt ist - bin nicht gerade der große computer-flüsterer *g*.
Wenn ich das richtig verstehe hast du das Shelly Device der Steckdosenleiste als 36_Shelly.pm angelegt.
Dann müsstest du auch in dem Device die Steckdosen schalten können und entspr. Info "off" oder "on" bekommen.
Da braucht man weiter kein MQTT dazu.
Das Bluetooth Device würde ich als MQTT2_DEVICE anlegen (alles in <> must du entspr. anpassen,
ein Template dafür scheint es nicht zu geben):
defmod shelly_bt MQTT2_DEVICE
attr shelly_bt IODev <DeinMQTT_IODevice>
attr shelly_bt devicetopic <DeinTopicDesShellyB&T>
attr shelly_bt event-on-change-reading .*
attr shelly_bt getList in_mode:noArg in_mode $DEVICETOPIC/rpc {"id": 1,"src":"$DEVICETOPIC", "method": "Switch.GetConfig", "params": {"id": 0}}
attr shelly_bt model <DeinModel>
attr shelly_bt shelly_bt $DEVICETOPIC/online:.* online\
$DEVICETOPIC/events/rpc:.* { json2nameValue($EVENT,'',$JSONMAP) }\
$DEVICETOPIC/status/mqtt:.* { json2nameValue($EVENT, 'mqtt_', $JSONMAP) }\
$DEVICETOPIC/status/sys:.* { json2nameValue($EVENT, 'sys_', $JSONMAP) }\
$DEVICETOPIC/status/switch_0:.* { $EVENT =~ s/"output":true/"state":"on"/g;;;; $EVENT =~ s/"output":false/"state":"off"/g;;;; json2nameValue($EVENT, 'switch_', $JSONMAP) }\
$DEVICETOPIC/status/cloud:.* {}\
$DEVICETOPIC/rpc:.* { json2nameValue($EVENT, 'req_', $JSONMAP, 'in_mode')}\
$DEVICETOPIC/status/input_0:.* { json2nameValue($EVENT, 'input_', $JSONMAP) }\
fhem2shelly/rpc:.* {}
erst mal danke für die hilfe! muss ich probieren, sobald ich wieder am pc sitze.
ich schließe zusätzlich daraus: das shelly modul bietet generell keine unterstützung für blu devices?
fangen wir ganz am anfang zur vermeidung vom missverständnisden an *g*
ich versuche nur grade herauszufinden, was für mich künftig die bessere lösung ist. shelly modul, mqtt, oder eine mischung daraus.
und da ich shelly sensoren über bt als recht nette idee empfinde, ist mir ein einfaches einbinden der sensoren in fhem durchaus wichtig.
generell will ich - wenn mit shelly meine tests klappen - meine alten homematic- und philips-hue devices damit ersetzen.
das schalten der 4 steckdosen per shelly modul funzt problemlos. das ist auch angenehm einfach zu lösen mit dem modul.
allerdings fehlen halt alle daten vom bt-device.
als "gegentest" hab ich eben die steckdose auch per mqtt in fhem eingebunden. hauptsächlich um zu sehen, was da an daten kommt. da wäre eben der sensor mit seinen daten auch sichtbar.
aufgrund leichter überforderung fehlt mir unter mqtt noch das wissen, wie ich die 4 steckdosen nicht nur lesen, sondern auch schalten kann.
ja, mein wissen:
wo krieg ich den <DeinTopicDesShellyB&T> her?
und die genaue model bezeichnung ist mir auch ein rätsel.
bisher erfolglos:
defmod shelly_bt MQTT2_DEVICE
attr shelly_bt IODev ratBroker
attr shelly_bt devicetopic tempsensor_01
attr shelly_bt event-on-change-reading .*
attr shelly_bt getList in_mode:noArg in_mode $DEVICETOPIC/rpc {"id": 1,"src":"$DEVICETOPIC", "method": "Switch.GetConfig", "params": {"id": 0}}
attr shelly_bt model Shelly BLU HT
attr shelly_bt room mqttdie bezeichnung des bt-devices im shelly eigenen webserver wäre:
Zitattempsensor_01
Shelly BLU HT - 7c:c6:b6:75:1c:73
bthomedevice:200
Du hast 2 Shelly, warum das in einem Thema? Für mich 2 eigene Dinge.
Zitat von: the ratman am 10 Februar 2026, 12:56:40wo krieg ich den <DeinTopicDesShellyB&T> her?
Aus der Web-GUI des Shelly.
und was is da was? ich hab wirklich keinen dunst von mqtt ...
in der webgui unter components hab ich den bt sensor mit obigen werten stehen, also:
tempsensor_01
Shelly BLU HT - 7c:c6:b6:75:1c:73
bthomedevice:200 <-- das ist wohl das topic?
was is das model?
ein problem ist auch
attr shelly_bt shelly_bt $DEVICETOPIC/online:.* online\
$DEVICETOPIC/events/rpc:.* { json2nameValue($EVENT,'',$JSONMAP) }\
$DEVICETOPIC/status/mqtt:.* { json2nameValue($EVENT, 'mqtt_', $JSONMAP) }\
$DEVICETOPIC/status/sys:.* { json2nameValue($EVENT, 'sys_', $JSONMAP) }\
$DEVICETOPIC/status/switch_0:.* { $EVENT =~ s/"output":true/"state":"on"/g;;;; $EVENT =~ s/"output":false/"state":"off"/g;;;; json2nameValue($EVENT, 'switch_', $JSONMAP) }\
$DEVICETOPIC/status/cloud:.* {}\
$DEVICETOPIC/rpc:.* { json2nameValue($EVENT, 'req_', $JSONMAP, 'in_mode')}\
$DEVICETOPIC/status/input_0:.* { json2nameValue($EVENT, 'input_', $JSONMAP) }\
fhem2shelly/rpc:.* {}
das will er mir ned nehmen, wegen unknown device
Unter http://<ip-des-shelly>/#/settings/mqtt sehe ich bei meinen Shelly die Mqtt-Einstellungen.
Client-ID ist das Topic
Über den prefix baue ich die Struktur der Nachrichten auf, da finde ich mich im MQTT-Explorer besser zurecht.
versteh ich das richtig?
das topic ist die client id der steckdose? da kann ich lang beim sensor selber suchen *g*
den letzten satz verstehe ich nicht. der prefix ist also quasi das selbe wie das topic? zumindest steht bei mir in beiden fällen das selbe drinnen
und da:
attr shelly_bt shelly_bt $DEVICETOPIC/online:.* online\
$DEVICETOPIC/events/rpc:.* { json2nameValue($EVENT,'',$JSONMAP) }\
$DEVICETOPIC/status/mqtt:.* { json2nameValue($EVENT, 'mqtt_', $JSONMAP) }\
$DEVICETOPIC/status/sys:.* { json2nameValue($EVENT, 'sys_', $JSONMAP) }\
$DEVICETOPIC/status/switch_0:.* { $EVENT =~ s/"output":true/"state":"on"/g;;;; $EVENT =~ s/"output":false/"state":"off"/g;;;; json2nameValue($EVENT, 'switch_', $JSONMAP) }\
$DEVICETOPIC/status/cloud:.* {}\
$DEVICETOPIC/rpc:.* { json2nameValue($EVENT, 'req_', $JSONMAP, 'in_mode')}\
$DEVICETOPIC/status/input_0:.* { json2nameValue($EVENT, 'input_', $JSONMAP) }\
fhem2shelly/rpc:.* {}ist wohl was falsch - ich kriege also obigen defmod nicht vollständig zusammen
und nur zur sicherheit, bevor wir hier sachen machen, die ich eventuell gar nicht brauche:
es ging mir hier nur mal darum überhaupt zu wissen, was das shelly modul kann und dass ich alternativ auch mqtt nehmen würde, weil das die daten des bt-devices schon mit abbildet, ich aber nicht weiß, wie man bei mqtt die einzelnen steckdosen und den button des bt-devices von fhem aus schalten kann.
ich brauch also das bt-device nicht extra, ich brauche entweder
o) eine info, wie man im shelly modul das bt-device rein kriegt
oder
o) wie ich in mqtt die 4 steckdosen und den button des bt-devices schalten kann
Ich nutze MQTT für fast alle meine Shelly. BT-Shelly habe ich nicht. " Device gehen über shelly.pm, aber die dienen nur zur Anzeige.
toggle:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Toggle","params": {"id":0}}
off:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":false}}
on:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true}}
on-for-timer $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true,"toggle_after":$EVTPART1}}
off-for-timer $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":false,"toggle_after":$EVTPART1}}
in_mode:toggle,flip,detached {fhem("sleep 0.2; get $NAME in_mode"); my $val = $EVTPART1 ne 'toggle' ? $EVTPART1 : ReadingsVal($NAME,'in_mode','flip') eq 'flip' ? 'detached':'flip'; qq($DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.SetConfig","params": {"id":0, "config": {"in_mode": "$val"}}})}
x_update:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Shelly.Update","params": {"stage":"stable"}}
x_reboot:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Shelly.Reboot"}
x_eco:true,false $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Sys.SetConfig","params": {"config": {"device": {"eco_mode": $EVTPART1}}}}Das ist von einem shellyplus1pm, mit diesem Setlist werden die Befehle definiert (MQTT).
ok. dann muss i mir was anderes suchen ... das kapier ich ned im ansatz
Das hier mal sehr aufmerksam lesen:
https://wiki.fhem.de/wiki/MQTT2_DEVICE_-_Schritt_für_Schritt
Wenn man MQTT einmal kapiert hat, ist es sehr sehr nützlich!
Ich empfehle, wie rabehd schon gesagt hat, zur besseren Übersicht beim Einbinden/Debuggen der Geräte ebenfalls den MQTT-Explorer: https://mqtt-explorer.com
Mit dem MQTT-Explorer und mit der Anleitung im Wiki solltest du zumindest schon einmal Daten vom Shelly lesen können und per autocreate dürfte sich dann auch schon automatisch ein FHEM-Device erstellen.
ich hab doch das device schon in mqtt.
ich brauch doch nur noch eine info, wie ich auch aktionen auslösen kann.
mir fehlt einfach das dumme on/off, wie es jeder schalter mit jedem modul hat ...
Zitat von: the ratman am 10 Februar 2026, 20:55:28ich hab doch das device schon in mqtt.
Hast Du das/ein passendes Template geladen?
ja, dann ist das Attribut setlist gefüllt und du hast deine Set-Befehle.
es gibt wohl noch kein template für die 4fach steckdose und den damit verbundenen blu ht sensor.
angefragt hab ich schon wegen des templates, bisher aber keine info.
Zitat von: the ratman am 10 Februar 2026, 22:15:18und den damit verbundenen blu ht sensor
Dafehlt mir das Verständnis. Wie sind die "verbunden"?
die steckdose per wlan über meine fritte mit fhem als mqtt-server.
per bluetooth der sensor mit der steckdose. die steckdose ist also quasi der hub des bt-devices, also ein ganz normales vorgehen bei shelly, wie mir gesagt wurde.
aber: da ich kein template und eben auch kein wissen habe, habe ich keine ahnung, wie ich mehr als nur daten abrufen kann. mir fehlen also sämtliche schaltvorgänge für die steckdose und den taster des sensors bei mqtt.
die daten des sensors werden über die wlan steckdose weiter geleitet ... das schaut dann so aus:
defmod shellypstripg4_206ef10295f4 MQTT2_DEVICE shellypstripg4_206ef10295f4
attr shellypstripg4_206ef10295f4 alias shelly 4-fach steckdose
attr shellypstripg4_206ef10295f4 group 4xdose
attr shellypstripg4_206ef10295f4 readingList shellypstripg4_206ef10295f4:shellypstripg4-206ef10295f4/online:.* online\
shellypstripg4_206ef10295f4:shellypstripg4-206ef10295f4/events/rpc:.* { json2nameValue($EVENT) }\
shellypstripg4_206ef10295f4:shellypstripg4-206ef10295f4/rpc:.* { json2nameValue($EVENT) }
attr shellypstripg4_206ef10295f4 room mqtt
setstate shellypstripg4_206ef10295f4 2026-02-09 14:07:25 IODev ratBroker
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:17 dst shellypstripg4-206ef10295f4/events
setstate shellypstripg4_206ef10295f4 2026-02-10 16:22:24 id 1
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:17 method NotifyStatus
setstate shellypstripg4_206ef10295f4 2026-02-10 22:47:47 online false
setstate shellypstripg4_206ef10295f4 2026-02-10 13:20:17 params_bthomedevice_200_battery 100
setstate shellypstripg4_206ef10295f4 2026-02-09 09:54:18 params_bthomedevice_200_fw_ver v1.0.16
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:17 params_bthomedevice_200_last_updated_ts 1770759976
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:17 params_bthomedevice_200_packet_id 170
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:17 params_bthomedevice_200_rssi -49
setstate shellypstripg4_206ef10295f4 2026-02-10 22:02:17 params_bthomesensor_201_last_updated_ts 1770757337
setstate shellypstripg4_206ef10295f4 2026-02-10 22:02:17 params_bthomesensor_201_value 53
setstate shellypstripg4_206ef10295f4 2026-02-10 21:41:17 params_bthomesensor_202_last_updated_ts 1770756077
setstate shellypstripg4_206ef10295f4 2026-02-10 21:41:17 params_bthomesensor_202_value 20.8
setstate shellypstripg4_206ef10295f4 2026-02-10 13:45:02 params_events_1_cfg_rev 20
setstate shellypstripg4_206ef10295f4 2026-02-10 18:01:25 params_events_1_channel -1
setstate shellypstripg4_206ef10295f4 2026-02-10 18:01:25 params_events_1_component bthomedevice:200
setstate shellypstripg4_206ef10295f4 2026-02-10 18:01:25 params_events_1_event single_push
setstate shellypstripg4_206ef10295f4 2026-02-10 18:01:25 params_events_1_id 200
setstate shellypstripg4_206ef10295f4 2026-02-10 18:01:25 params_events_1_idx 0
setstate shellypstripg4_206ef10295f4 2026-02-10 13:45:02 params_events_1_restart_required false
setstate shellypstripg4_206ef10295f4 2026-02-10 18:01:25 params_events_1_sensors_1_1_id 200
setstate shellypstripg4_206ef10295f4 2026-02-10 18:01:25 params_events_1_sensors_1_1_last_updated_ts 1770742885
setstate shellypstripg4_206ef10295f4 2026-02-10 18:01:25 params_events_1_sensors_1_1_value 100
setstate shellypstripg4_206ef10295f4 2026-02-10 18:01:25 params_events_1_sensors_46_1_id 201
setstate shellypstripg4_206ef10295f4 2026-02-10 18:01:25 params_events_1_sensors_46_1_last_updated_ts 1770742885
setstate shellypstripg4_206ef10295f4 2026-02-10 18:01:25 params_events_1_sensors_46_1_value 51
setstate shellypstripg4_206ef10295f4 2026-02-10 18:01:25 params_events_1_sensors_69_1_id 202
setstate shellypstripg4_206ef10295f4 2026-02-10 18:01:25 params_events_1_sensors_69_1_last_updated_ts 1770742885
setstate shellypstripg4_206ef10295f4 2026-02-10 18:01:25 params_events_1_sensors_69_1_value 21.4
setstate shellypstripg4_206ef10295f4 2026-02-10 13:45:02 params_events_1_target group:200
setstate shellypstripg4_206ef10295f4 2026-02-10 18:01:25 params_events_1_ts 1770742885.35
setstate shellypstripg4_206ef10295f4 2026-02-10 13:19:50 params_mqtt_connected true
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:00 params_switch_0_aenergy_by_minute_1 0.000
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:00 params_switch_0_aenergy_by_minute_2 0.000
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:00 params_switch_0_aenergy_by_minute_3 0.000
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:00 params_switch_0_aenergy_minute_ts 1770759960
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:00 params_switch_0_aenergy_total 0.000
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:00 params_switch_0_apower 0.0
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:00 params_switch_0_aprtpower 0.0
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:00 params_switch_0_current 0.000
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:00 params_switch_0_freq 49.96
setstate shellypstripg4_206ef10295f4 2026-02-10 21:31:19 params_switch_0_output false
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:00 params_switch_0_pf 0.0
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:00 params_switch_0_ret_aenergy_by_minute_1 0.000
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:00 params_switch_0_ret_aenergy_by_minute_2 0.000
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:00 params_switch_0_ret_aenergy_by_minute_3 0.000
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:00 params_switch_0_ret_aenergy_minute_ts 1770759960
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:00 params_switch_0_ret_aenergy_total 0.000
setstate shellypstripg4_206ef10295f4 2026-02-10 21:31:19 params_switch_0_source HTTP_in
setstate shellypstripg4_206ef10295f4 2026-02-10 22:46:00 params_switch_0_voltage 235.3
... und noch viele readings mehr ...
bthomedevice ist dabei der sensor
switch 0 ist die steckdose nr. 1 von 4
Dann würde ich mal meinen Weg beschreiben.
Da ich nicht wißt was shelly.pm da unterstützt, wäre MQTT für mich die Wahl.
1. in der GUI des Shelly einen/deinen MQtt-Server eintragen.
2. wenn der MQtt-Server läuft, dann per MQTT-Explorer damit verbinden und schauen was an Informationen ankommt.
3. In FHEM per autocreate das Device anlegen lassen.
4. mit Templates experimentieren und weiter anpassen.
5. Wenn ok, Tewmplate generieren und hier zur Verfügung stellen.
Entweder jemand mit Erfahrung mit ähnlichen Geräten hilft Dir besser oder Du wirst lesen und probieren müssen.
das da oben ist mqtt - weil hier alle mit mqtt angefangen haben, nachdem ich nach shelly gefragt hab und mqtt nur als beispiel gebracht hab, dass der sensor mal generell durchgereicht wird, wie er soll.
und mir sagen, ich soll die anleitung besser lesen - BITTE lests doch mal, was ich in meinen ersten beiden beiträgen geschrieben hab!
ich will niemanden was böses und bin echt für jegliche hilfe sehr dankbar, aber wenigstens könnte man dann doch auch so nett sein, und lesen, was ich mehrfach schreibe ... ich kann ja nix dafür, das ich dann auf fragen antworte, und der fred so derartig zerfleddert wird, dass er langsam unlesbar wird.
Zitat4. mit Templates experimentieren und weiter anpassen.
DAS ist mein problem - ich beschäftige mich seit dem wochende mit mqtt, habe 0 ahnung und von scripten schon gar ned.
ich hab auch schon längst wegen eines templates beim entsprechenden fred angefragt - nur hat dort leider noch niemand was gesagt zu ... https://forum.fhem.de/index.php?topic=94495.msg1357365#msg1357365
Du möchtest keine Infos liefern, dann bin ich raus.
Ich habe nur ein shellyplus1pm mit angeschlossenem Temperatursensor, keinen per BT.
In der GUI vom Shelly sehe ich die Temperatur. Im MQTT-Exlorer sehe ich sie auch.
Ohne Antworten auf diese Fragen wüßte ich nicht wie ich dir helfen könnte.
defmod shellyem_EC64C9C68993 MQTT2_DEVICE shellyem_EC64C9C68993
attr shellyem_EC64C9C68993 alias Gartenstrom
attr shellyem_EC64C9C68993 comment uptime:uptime.* { ReadingsVal($name,"uptime",0)/86400 }
attr shellyem_EC64C9C68993 readingList shellyem_EC64C9C68993:shellies/shellyem-EC64C9C68993/relay/0:.* relay_0\
shellyem_EC64C9C68993:shellies/shellyem-EC64C9C68993/emeter/0/power:.* emeter_0_power\
shellyem_EC64C9C68993:shellies/shellyem-EC64C9C68993/emeter/0/reactive_power:.* emeter_0_reactive_power\
shellyem_EC64C9C68993:shellies/shellyem-EC64C9C68993/emeter/0/pf:.* emeter_0_pf\
shellyem_EC64C9C68993:shellies/shellyem-EC64C9C68993/emeter/0/voltage:.* emeter_0_voltage\
shellyem_EC64C9C68993:shellies/shellyem-EC64C9C68993/emeter/0/total:.* emeter_0_total\
shellyem_EC64C9C68993:shellies/shellyem-EC64C9C68993/emeter/0/total_returned:.* emeter_0_total_returned\
shellyem_EC64C9C68993:shellies/shellyem-EC64C9C68993/emeter/1/power:.* emeter_1_power\
shellyem_EC64C9C68993:shellies/shellyem-EC64C9C68993/emeter/1/reactive_power:.* emeter_1_reactive_power\
shellyem_EC64C9C68993:shellies/shellyem-EC64C9C68993/emeter/1/pf:.* emeter_1_pf\
shellyem_EC64C9C68993:shellies/shellyem-EC64C9C68993/emeter/1/voltage:.* emeter_1_voltage\
shellyem_EC64C9C68993:shellies/shellyem-EC64C9C68993/emeter/1/total:.* emeter_1_total\
shellyem_EC64C9C68993:shellies/shellyem-EC64C9C68993/emeter/1/total_returned:.* emeter_1_total_returned\
shellyem_EC64C9C68993:shellies/shellyem-EC64C9C68993/emeter/0/energy:.* emeter_0_energy\
shellyem_EC64C9C68993:shellies/shellyem-EC64C9C68993/emeter/0/returned_energy:.* emeter_0_returned_energy\
shellyem_EC64C9C68993:shellies/shellyem-EC64C9C68993/emeter/1/energy:.* emeter_1_energy\
shellyem_EC64C9C68993:shellies/shellyem-EC64C9C68993/emeter/1/returned_energy:.* emeter_1_returned_energy\
shellyem_EC64C9C68993:shellies/shellyem-EC64C9C68993/online:.* online\
shellyem_EC64C9C68993:shellies/announce:.* { json2nameValue($EVENT) }\
shellyem_EC64C9C68993:shellies/shellyem-EC64C9C68993/announce:.* { json2nameValue($EVENT) }\
shellyem_EC64C9C68993:shellies/shellyem-EC64C9C68993/info:.* { json2nameValue($EVENT) }
attr shellyem_EC64C9C68993 room HOME
attr shellyem_EC64C9C68993 sortby K
attr shellyem_EC64C9C68993 stateFormat <hr>Momentan: emeter_0_power W ; Heute: heute_kWh kWh<br>Gestern: gestern_kWh kWh ;\
Gesamt: energy_kWh kWh ; Dauer: uptime_days Tage<hr>\
attr shellyem_EC64C9C68993 userReadings energy_kWh:emeter_0_total.* { ReadingsVal($name,"emeter_0_total",0)/1000 }, heute_kWh:emeter_0_total.* { sprintf("%.2f",(ReadingsVal($name,"emeter_0_total",0)-ReadingsVal($name,"energy_start_day",0))/1000) }, uptime_days:uptime.* { sprintf("%.2f", ReadingsVal($name,"uptime",0)/86400) }, gestern_kWh:gestern_raw.* { sprintf("%.2f",ReadingsVal($name,"gestern_raw",0)/1000) }
setstate shellyem_EC64C9C68993 <hr>Momentan: 38.23 W ; Heute: 0.47 kWh<br>Gestern: 0.96 kWh ;\
Gesamt: 50.9135 kWh ; Dauer: 8.23 Tage<hr>\
defmod reset_shelly_day at *00:00:01 { fhem("setreading shellyem_EC64C9C68993 gestern_raw ". (ReadingsVal("shellyem_EC64C9C68993","emeter_0_total",0) - ReadingsVal("shellyem_EC64C9C68993","energy_start_day",0)));; fhem("setreading shellyem_EC64C9C68993 energy_start_day ". ReadingsVal("shellyem_EC64C9C68993","emeter_0_total",0)) }
attr reset_shelly_day room Garten
@rabehd
welche infos willst den noch haben?
ich hab doch schon mehrfach die defmod geschrieben, ich hab sogar am anfang die firmwareversionen der geräte und was weiß ich alles geschrieben ...
mehr hab ich doch nicht.
aber zur sicherheit zum 4. oder 5. mal:
1) ich habe einen funktionierenden mqtt-server unter fhem
2) ich habe eine 4-fachsteckdose von shelly, die ber bluetooth einen "blu ht" sensor einbindet und dessen daten mit der steckdose zusammen an fhem sendet.
3) diese daten empfange ich - auch ohne passendes template - korrekt in fhem
x) was mir fehlt, ist das wissen, wie ich befehle über mqtt an die steckdose (genauer: die 4 steckdosen) senden kann.
mehr brauch ich nicht und das finde ich selber scheinbar nicht heraus, weil ich sonst nicht fragen müsste.
@taskkill
vielen dank - wird in kürze getestet *bg*
1. Bei Geräten mit Tasmota-Firmware
Tasmota nutzt für Mehrfachsteckdosen einen Index direkt im Topic oder Befehl.
Einzelne Dose schalten: Sende eine Nachricht an das Topic cmnd/DEIN_GERÄT/POWER<x>, wobei <x> die Nummer der Steckdose (1 bis 4) ist.
Topic: cmnd/meine_dose/POWER2
Payload: ON (an) oder OFF (aus)
Status abfragen: Sende ein leeres Payload an das Topic cmnd/meine_dose/POWER2.
2. Bei Nutzung von Zigbee2MQTT
Hier wird meist ein JSON-Payload an ein gemeinsames Topic gesendet, wobei die Steckdosen über einen Zusatz im Namen oder im JSON angesprochen werden.
Variante A (Unter-Topics): Viele 4-fach-Leisten erscheinen als separate Endpunkte.
Topic: zigbee2mqtt/FRIENDLY_NAME/l1/set (für Dose 1)
Payload: {"state": "ON"}
Variante B (JSON-Index): Manche Geräte erwarten die Indexnummer im Payload.
Topic: zigbee2mqtt/FRIENDLY_NAME/set
Payload: {"state_l1": "ON"} oder {"state_l2": "OFF"}
3. Beispiel für die manuelle Steuerung (MQTT Explorer/CLI)
Wenn du ein Tool wie den MQTT Explorer nutzt, kannst du die Befehle direkt testen:
Verbinde dich mit deinem MQTT Broker.
Suche das Statustopic (meist stat/ oder tele/), um zu sehen, wie die Steckdose ihre aktuellen Werte meldet.
Publiziere (Publish) den Befehl im entsprechenden Command-Topic (cmnd/ oder /set).
Tipp: Falls du die genauen Bezeichnungen nicht kennst, schalte die Steckdosen einmal manuell am Gerät oder über deren Web-Interface. Beobachte dabei im MQTT-Explorer, auf welchen Topics Nachrichten eingehen – so identifizierst du die richtige Struktur für deine Befehle.
is lieb, aber kapieren tu ich davon nix ... ich hab mal deine vorlage angepasst
defmod shellypstripg4 MQTT2_DEVICE shellypstripg4-206ef10295f4
attr shellypstripg4 comment uptime:uptime.* { ReadingsVal($name,"uptime",0)/86400 }
attr shellypstripg4 readingList shellypstripg4-206ef10295f4:shellies/shellypstripg4-206ef10295f4/relay/0:.* relay_0\
shellypstripg4-206ef10295f4:shellies/shellypstripg4-206ef10295f4/emeter/0/power:.* emeter_0_power\
shellypstripg4-206ef10295f4:shellies/shellypstripg4-206ef10295f4/emeter/0/reactive_power:.* emeter_0_reactive_power\
shellypstripg4-206ef10295f4:shellies/shellypstripg4-206ef10295f4/emeter/0/pf:.* emeter_0_pf\
shellypstripg4-206ef10295f4:shellies/shellypstripg4-206ef10295f4/emeter/0/voltage:.* emeter_0_voltage\
shellypstripg4-206ef10295f4:shellies/shellypstripg4-206ef10295f4/emeter/0/total:.* emeter_0_total\
shellypstripg4-206ef10295f4:shellies/shellypstripg4-206ef10295f4/emeter/0/total_returned:.* emeter_0_total_returned\
shellypstripg4-206ef10295f4:shellies/shellypstripg4-206ef10295f4/emeter/1/power:.* emeter_1_power\
shellypstripg4-206ef10295f4:shellies/shellypstripg4-206ef10295f4/emeter/1/reactive_power:.* emeter_1_reactive_power\
shellypstripg4-206ef10295f4:shellies/shellypstripg4-206ef10295f4/emeter/1/pf:.* emeter_1_pf\
shellypstripg4-206ef10295f4:shellies/shellypstripg4-206ef10295f4/emeter/1/voltage:.* emeter_1_voltage\
shellypstripg4-206ef10295f4:shellies/shellypstripg4-206ef10295f4/emeter/1/total:.* emeter_1_total\
shellypstripg4-206ef10295f4:shellies/shellypstripg4-206ef10295f4/emeter/1/total_returned:.* emeter_1_total_returned\
shellypstripg4-206ef10295f4:shellies/shellypstripg4-206ef10295f4/emeter/0/energy:.* emeter_0_energy\
shellypstripg4-206ef10295f4:shellies/shellypstripg4-206ef10295f4/emeter/0/returned_energy:.* emeter_0_returned_energy\
shellypstripg4-206ef10295f4:shellies/shellypstripg4-206ef10295f4/emeter/1/energy:.* emeter_1_energy\
shellypstripg4-206ef10295f4:shellies/shellypstripg4-206ef10295f4/emeter/1/returned_energy:.* emeter_1_returned_energy\
shellypstripg4-206ef10295f4:shellies/shellypstripg4-206ef10295f4/online:.* online\
shellypstripg4-206ef10295f4:shellies/announce:.* { json2nameValue($EVENT) }\
shellypstripg4-206ef10295f4:shellies/shellypstripg4-206ef10295f4/announce:.* { json2nameValue($EVENT) }\
shellypstripg4-206ef10295f4:shellies/shellypstripg4-206ef10295f4/info:.* { json2nameValue($EVENT) }
attr shellypstripg4 room HOME
attr shellypstripg4 sortby K
attr shellypstripg4 stateFormat <hr>Momentan: emeter_0_power W ; Heute: heute_kWh kWh<br>Gestern: gestern_kWh kWh ;\
Gesamt: energy_kWh kWh ; Dauer: uptime_days Tage<hr>\
attr shellypstripg4 userReadings energy_kWh:emeter_0_total.* { ReadingsVal($name,"emeter_0_total",0)/1000 }, heute_kWh:emeter_0_total.* { sprintf("%.2f",(ReadingsVal($name,"emeter_0_total",0)-ReadingsVal($name,"energy_start_day",0))/1000) }, uptime_days:uptime.* { sprintf("%.2f", ReadingsVal($name,"uptime",0)/86400) }, gestern_kWh:gestern_raw.* { sprintf("%.2f",ReadingsVal($name,"gestern_raw",0)/1000) }
setstate shellypstripg4 <hr>Momentan: emeter_0_power W ; Heute: heute_kWh kWh<br>Gestern: gestern_kWh kWh ;\
Gesamt: energy_kWh kWh ; Dauer: uptime_days Tage<hr>\
setstate shellypstripg4 2026-02-11 11:15:20 IODev ratBrokerda kommt aber leider auch 0
Starte mal den shelly neu, und den at mal die Uhrzeit auf jetzt + 3min stellen (nachher wieder auf 00:00:01).
da passiert ned viel - nicht mal ein logeintrag *G*
aber wenn ich das richtig verstehe (man möge mich verbessern), gehts da eh nur um eine schöne darstellung der energiewerte.
mich interessiert, wie ich die 4 steckdosen und den 1 button von fhem aus an steckdose und sensor schalten kann.
attr shellyxxxx setList
off:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":false}}\
on:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true}}
es wird! danke dir!
mit
off:noArg shellypstripg4-206ef10295f4/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":false}}\
on:noArg shellypstripg4-206ef10295f4/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true}}kann ich nun steckdose 0 schalten.
noch eine hilfe bitte:
steckdose 1 würde ja wie folgt funktionieren
off:noArg shellypstripg4-206ef10295f4/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":1,"on":false}}\
on:noArg shellypstripg4-206ef10295f4/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":1,"on":true}}
aber wie kann ich alle 4 steckdosen zum schalten abbilden, also quasi für jede der steckdosen einen eigenen schalter haben?
und ganz dumme frage: wie würde ich dass dann von z.b. einem doif aus ansteuern?
liese sich dass eventuell über einen readingsproxy lösen, so wie das shelly.pm auch macht?
Zitat von: the ratman am 10 Februar 2026, 20:55:28ich hab doch das device schon in mqtt.
Oh, das tut mir leid, das hatte ich überlesen. Aber gut, dass du jetzt jedenfalls die MQTT-Befehle zum Schalten hast!
Die
setList ist einfach eine Liste an MQTT-Nachrichten, die dann per
set-Befehl gesaendet werden können. Das müsste, glaube ich, auch in dem von mir gestern verlinkten Wiki erklärt werden.
Ich würde übrigens mal das Attribut
devicetopic auf
shellypstripg4-206ef10295f4 setzen, also
attr shellypstripg4 shellypstripg4-206ef10295f4Dann kannst du nämlich sowohl in der
readingList als auch der
setList die Variable
$DEVICETOPIC benutzen, was das viel viel besser lesbar macht.
Jetzt musst du einfach nur noch die
setList entsprechend erweitern. Entweder um zusätzliche
on/
off-Befehle:
off0:noArg $devicetopic/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":false}}
on0:noArg shellypstripg4-206ef10295f4/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true}}
off1:noArg $devicetopic/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":false}}
on1:noArg shellypstripg4-206ef10295f4/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true}}
[usw ...]und dann kannst du mit
set shellypstripg4 on0 bzw.
set shellypstripg4 on1 die jeweiligen Dosen schalten.
Eleganter wäre es aber vermutlich, wenn du einfach mit
set shellypstripg4 on n arbeiten könntest (n=0–3), das geht mit Nutzung der FHEMWEB-Widgets (siehe dazu hier (https://fhem.de/commandref_DE.html#FHEMWEB), gaaanz lang scrollen, bis du zu "widgetOverride" kommst). Du musst das
noArg durch
selectnumbers,<min>,<step>,<max>,<decimal>,lin ersetzen, dann generiert dir FHEMWEB eine Zahlenreihe, die du dann im Dropdown hast. Genauso gut könntest du statt
noArg aber auch einfach
0,1,2,3 schreiben. Der jeweils im Dropdown ausgewählte Wert wird dann als
$EVTPART1 (so wie man es auch vom notify kennt) mitgesendet.
Hier wäre das also:
off:selectnumbers,0,1,3,0,lin $DEVICETOPIC/rpc {"id":$EVTPART1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":$EVTPART1,"on":false}}
on:selectnumbers,0,1,3,0,lin $DEVICETOPIC/rpc {"id":$EVTPART1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":$EVTPART1,"on":true}}und dann müsstest du z.B. mit
set shellypstripg4 on 0 die erste Steckdose einschalten können.
Alternativ könntest du das ganze auch für Menschen besser nachvollziehbar von 1–4 nummerieren, dazu braucht es nur ein bisschen Perl, um vom vom Benutzer gewählten Wert 1 abzuziehen:
off:selectnumbers,1,1,4,0,lin {my $num = $EVTPART1-1; return qq {$DEVICETOPIC/rpc {"id":$num,"src":"fhem2shelly","method":"Switch.Set","params": {"id":$num,"on":false}}}; }
on:selectnumbers,1,1,4,0,lin {my $num = $EVTPART1-1; return qq {$DEVICETOPIC/rpc {"id":$num,"src":"fhem2shelly","method":"Switch.Set","params": {"id":$num,"on":true}}}; }Die erste Steckdose müsste man dann mit
set shellypstripg4 on 1 einschalten können.
Das
qq {...}; dient einfach dazu, dass du nach wie vor die Anführungszeichen im JSON benutzen kannst.
Der genaue Code ist jetzt natürlich ungetestet, weil ich keine solche Steckdosenleiste habe, aber das sollte, wenn ich mich nicht irgendwo böse vertippt habe, funktionieren.
Bitte auch beachten, dass der Code am besten direkt über das FHEMWEB attr-Eingabefeld eingegeben werden sollte. Ich habe jetzt keine \ für neue Zeilen oder so hinzugefügt, also bitte nicht über das grüne Plus oben links setzen. FHEMWEB sollte dir für
setList aber ja auch ein großes Textfeld geben.
off:selectnumbers,0,1,3,0,lin $DEVICETOPIC/rpc {"id":$EVTPART1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":$EVTPART1,"on":false}}
on:selectnumbers,0,1,3,0,lin $DEVICETOPIC/rpc {"id":$EVTPART1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":$EVTPART1,"on":true}}
ich kann dann wunderbar oben 1 bis 4 auswählen. einmal für on, einmal für off
leider passiert nix, ausser, dass das lampenicon vor dem drop downs an geht.
ein set shellypstripg4_206ef10295f4 on 0
macht auch nix - auch keine logeinträge - lediglich auch da zeigt das glühbirnen icon on an
aja, thx für den hinweis zum devicetopic ... macht das leben auch einfacher *g*
Hast du devicetopic gesetzt?
Kannst du mal entweder im MQTT2_SERVER-Device "show MQTT traffic" anklicken oder, falls du ihn installiert hast, im MQTT Explorer schauen und posten, was da gesendet wird, wenn du set shellypstripg4_206ef10295f4 on 0 ausführst?
Vielleicht auch nochmal die Payload überprüfen, kann gut sein, dass ich da irgendwas verbaselt habe.
devicetopic ... jetzt ja *g*
hab jetzt mal den explorer besorgt ... falls ich da was spezielles schauen soll - nur sagen
drücke ich set shellypstripg4_206ef10295f4 on 0
kommt als topic und valueshellypstripg4_206ef10295f4/rpc{
"id": 0,
"src": "fhem2shelly",
"method": "Switch.Set",
"params": {
"id": 0,
"on": true
}
}seh ich wo mehr?
Ne, das sollte passen und sieht ja auch irgendwie richtig aus, oder?
Was kommt denn im MQTT Explorer, wenn du das hier, was schon einmal funktioniert hast, testest?
Zitat von: the ratman am 11 Februar 2026, 13:37:09es wird! danke dir!
mit
Code Auswählen Erweitern
off:noArg shellypstripg4-206ef10295f4/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":false}}\
on:noArg shellypstripg4-206ef10295f4/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true}}kann ich nun steckdose 0 schalten.
Eigentlich kann ich da keinen Unterschied erkennen ... hmm
tut sie auch ... ich probier selbiges jetzt nomal mit $DEVICETOPIC
off:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":false}}\
on:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true}}
devicetopic shellypstripg4_206ef10295f4
und im der shelly webinterface steht shellypstripg4-206ef10295f4
das war mal der generelle fehler "_" anstelle "-"
und schon geht auch
off:selectnumbers,0,1,3,0,lin $DEVICETOPIC/rpc {"id":$EVTPART1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":$EVTPART1,"on":false}}
on:selectnumbers,0,1,3,0,lin $DEVICETOPIC/rpc {"id":$EVTPART1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":$EVTPART1,"on":true}}
set shellypstripg4_206ef10295f4 on 0
set shellypstripg4_206ef10295f4 off 0
geht auch problemlos
das passiert, wenn ich blind rumkopiere *g*
somit: vielen dank an dich! die sache rennt. die schuld lag auf meiner seite ...
geniale sache ... hab mir jetzt mal eine ganz primitve readingsgroup gebastelt, und schon schalte ich per knopfdruck *g*
Ah, da lag der Fehler :D Sehr schön, freut mich, dass es klappt.