[gelöst] Antw: MQTT2 Shelly 4 Pro (shellypro4pm) wie bekomme ich den zum Laufen?

Begonnen von enno, 02 Januar 2022, 22:00:45

Vorheriges Thema - Nächstes Thema

enno

Moin zusammen,

die neue Generation von Shelly bringt mich an meine Grenzen... Nachdem ich einen Shelly 1 Plus zur Zusammenarbeit bewegen konnte, scheiter ich gerade an meinem Shelly 4 Plus. Gibt es hier jemand, der das Teil in FHEM per MQTT schalten kann? Ich hänge mal ein Liste an wie er sich zur Zeit in FHEM bei mir meldet. Jetzt würde ich ihn auch noch gerne schalten, aber für "setlist" habe ich keine Ideen.

defmod KG_HK_Schaltschrank_Shelly2 MQTT2_DEVICE shellypro4pm_84cca87f924c
attr KG_HK_Schaltschrank_Shelly2 DbLogExclude .*
attr KG_HK_Schaltschrank_Shelly2 readingList shellypro4pm_84cca87f924c:shellypro4pm-84cca87f924c/online:.* online\
shellypro4pm_84cca87f924c:shellypro4pm-84cca87f924c/events/rpc:.* { json2nameValue($EVENT) }


Kann mir jemand unter die Arme packen?

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

Otto123

Hallo Enno,

ich meine das Gerät ist per Hand erzeugt? Per autocreate und einmal shelly neu starten (aus und wieder an) sollte ein umfangreicheres Device erzeugen.

Dann kannst Du Dich an den Templates für die shellies orientieren. Da solltest Du ein Stück weit kommen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

enno

Zitat von: Otto123 am 02 Januar 2022, 22:19:52
Hallo Enno,

ich meine das Gerät ist per Hand erzeugt?

Moin Otto,

das Device ist per Autocreate erzeugt und per rename dann umbenannt. Mehr kommt nicht. Templates zeigt er mir nur shelly1, shellyPlus_1 und shellyPlus_1pm

Bei meinem Shelly 4 pro (shelly4pro) erste Generation klappt das mit Templates, dort werden auch deutliche mehr shelly Templates angezeigt.

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

Otto123

es fehlen readinglist Einträge - hast Du den shelly neu gestartet? Oder mal "per Hand" geschaltet? Oder hat sich da was geändert? Dann würden die attrTemplate Filter nicht mehr stimmen.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

rudolfkoenig

Zitatdas Device ist per Autocreate erzeugt [...]
Dann sollten aber auch einige Readings entstanden sein,  sonst waere readingList nicht leer.
Zum Schalten (wegen setList) kann man die Doku lesen, oder (wenn man MQTT2_SERVER verwendet) sich vom subscriptions Reading inspirieren.

Otto123

scheinbar sind die neuen anders? siehe https://forum.fhem.de/index.php/topic,94060.msg1195493.html#msg1195493

Einige Shelly Templates haben diesen Filter:
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*shellies.*

Damit werden die nicht mehr angezeigt.

Aber trotzdem ein frisches Raw Def muss mehr zeigen! https://forum.fhem.de/index.php/topic,94060.msg1195633.html#msg1195633

Zu zeitig umbenannt?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

enno

ok, alles in FHEM gelöscht. Denn Shelly ausgestöpselt, eingestöpselt, (also Neustart) dann am Shelly mal die Kanäle geschaltet und hier das List von dem was ankommt und per Autocreate angelegt wurde:


Internals:
   CFGFN     
   CID        shellypro4pm_84cca87f924c
   DEF        shellypro4pm_84cca87f924c
   DEVICETOPIC MQTT2_shellypro4pm_84cca87f924c
   FUUID      61d21d24-f33f-8f0b-6ec6-9b84d603a00e3cd4
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     19
   NAME       MQTT2_shellypro4pm_84cca87f924c
   NR         37214
   STATE      ???
   TYPE       MQTT2_DEVICE
   myBroker_CONN myBroker_192.168.179.209_53022
   myBroker_MSGCNT 19
   myBroker_TIME 2022-01-02 22:49:34
   READINGS:
     2022-01-02 22:46:12   IODev           myBroker
     2022-01-02 22:49:34   dst             shellypro4pm-84cca87f924c/events
     2022-01-02 22:49:34   method          NotifyStatus
     2022-01-02 22:46:12   online          true
     2022-01-02 22:46:12   params_eth_ip   192.168.179.209
     2022-01-02 22:46:12   params_mqtt_connected true
     2022-01-02 22:49:34   params_switch_0_apower 0
     2022-01-02 22:49:34   params_switch_0_id 0
     2022-01-02 22:49:34   params_switch_0_output false
     2022-01-02 22:49:34   params_switch_0_source WS_in
     2022-01-02 22:46:12   params_switch_0_temperature_tC 20.46
     2022-01-02 22:46:12   params_switch_0_temperature_tF 68.83
     2022-01-02 22:49:34   params_switch_0_voltage 0
     2022-01-02 22:49:33   params_switch_1_apower 0
     2022-01-02 22:49:33   params_switch_1_id 1
     2022-01-02 22:49:33   params_switch_1_output false
     2022-01-02 22:49:33   params_switch_1_source WS_in
     2022-01-02 22:46:12   params_switch_1_temperature_tC 20.46
     2022-01-02 22:46:12   params_switch_1_temperature_tF 68.83
     2022-01-02 22:49:33   params_switch_1_voltage 0
     2022-01-02 22:49:31   params_switch_2_apower 0
     2022-01-02 22:49:31   params_switch_2_id 2
     2022-01-02 22:49:31   params_switch_2_output false
     2022-01-02 22:49:31   params_switch_2_source WS_in
     2022-01-02 22:46:12   params_switch_2_temperature_tC 20.46
     2022-01-02 22:46:12   params_switch_2_temperature_tF 68.83
     2022-01-02 22:49:31   params_switch_2_voltage 0
     2022-01-02 22:49:29   params_switch_3_apower 0
     2022-01-02 22:49:29   params_switch_3_id 3
     2022-01-02 22:49:29   params_switch_3_output false
     2022-01-02 22:49:29   params_switch_3_source WS_in
     2022-01-02 22:46:12   params_switch_3_temperature_tC 20.46
     2022-01-02 22:46:12   params_switch_3_temperature_tF 68.83
     2022-01-02 22:49:29   params_switch_3_voltage 0
     2022-01-02 22:49:34   params_ts       328.24
     2022-01-02 22:49:34   src             shellypro4pm-84cca87f924c
Attributes:
   DbLogExclude .*
   readingList shellypro4pm_84cca87f924c:shellypro4pm-84cca87f924c/online:.* online
shellypro4pm_84cca87f924c:shellypro4pm-84cca87f924c/events/rpc:.* { json2nameValue($EVENT) }
   room       NEW


Hier habe ich auch schon gesucht:
https://www.shelly-support.eu/forum/index.php?thread/11908-shelly-pro-4pm-in-fhem-einbinden/

https://shelly-api-docs.shelly.cloud/gen2/Components/SystemComponents/Mqtt habe ich schon versucht.

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

Beta-User

Moin.

Das aktuelle shelly1plus-pm stammt aus diesem Thread:
Zitat von: Beta-User am 22 November 2021, 15:46:37
Irgendwie gibt es jetzt an versVchiedenen Stellen diverse "Häppchen", aber das sinnstiftend zusammenzubasteln, ist irgendwie schwierig.

Hier mal ein erster Wurf zum Thema als Diskussionsgrundlage, mit "ein bißchen von hier und ein bißchen von da".

Irgendwie werde ich den Verdacht nicht los, dass man da manches noch streamlinen kann und sollte, v.a. wg. dieses "true"=>"on"-Themas, aber dazu fehlt irgendwie auch etwas "Futter" (also der vollst. MQTT-Verkehr für diverse Fälle)...
, und es gab auch mind. einen Vorgänger dazu, bin daher etwas verwundert, dass wir hier gefühlt zum mind. 4. Mal dieselben Fragen diskutieren...

Würde vorschlagen, die Diskussion über die "neuen Shelly" nur noch in dem oben genannten weiterzuführen, ich werde versuchen, einen Vorschlag für den 4-er zu machen.

Weitere Fundstellen:
- https://forum.fhem.de/index.php/topic,94060.msg1196883.html#msg1196883 und die paar vorgehenden;
- https://forum.fhem.de/index.php/topic,124995.0.html
- https://forum.fhem.de/index.php/topic,123980.0.html:
Zitat von: Beta-User am 08 November 2021, 15:16:23
Hmm, das war (leider) irgendwie in der Form zu erwarten.

Die "Umwandlung" von true=>"on" findest du z.B. in 6channel_ethernet_board_6input_split. Das Problem scheint mir "nur" zu sein, dass das Ganze zu einer "Umetikettierungsorgie" wird. Übergangsweise läßt sich das sicher irgendwie lösen, aber es gefällt mir nicht und ist ggf. auch fehleranfällig.

Falls ein paar Leute mitlesen, die die "große weite" API-Welt etwas mehr im Blick haben: Gibt's da einen roten Faden, in welche Richtung sich das entwickeln wird/soll, den man ggf. berücksichtigen könnte, um das ganze irgendwie generischer anzugehen...? Das sieht mir irgendwie nach "neuen Standards" aus, die uns noch öfter begegnen werden. Oder ist das eben nur eine "Shelly-Sonderlocke" wie unter https://shelly-api-docs.shelly.cloud/gen2/ beschrieben?

@Rudi: Da ist das generisch beschrieben, allerdings ist unklar, wie "änderungsfest" das ist. Weiter vermute ich, dass auch pah sehr daran interessiert wäre, eine generische Lösung zu haben, die man auch mit dem Shelly-Modul nutzen kann...
(Wenigstens sind es nicht sekündlich 300 Events, verteilt auf 72 Topics...)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Otto123

Moin,

zumindest mal probieren zu schalten (mit den Infos aus Deinen Links) für die Raw Def:

attr MQTT2_shellypro4pm_84cca87f924c devicetopic shellypro4pm-84cca87f924c
attr MQTT2_shellypro4pm_84cca87f924c setList on1:noArg $DEVICETOPIC/rpc {"method":"Switch.Set", "params":{"id":0,"on":true}}\
off1:noArg $DEVICETOPIC/rpc {"method":"Switch.Set", "params":{"id":0,"on":false}}\
on2:noArg $DEVICETOPIC/rpc {"method":"Switch.Set", "params":{"id":1,"on":true}}\
off2:noArg $DEVICETOPIC/rpc {"method":"Switch.Set", "params":{"id":1,"on":false}}\
on3:noArg $DEVICETOPIC/rpc {"method":"Switch.Set", "params":{"id":2,"on":true}}\
off3:noArg $DEVICETOPIC/rpc {"method":"Switch.Set", "params":{"id":2,"on":false}}\
on4:noArg $DEVICETOPIC/rpc {"method":"Switch.Set", "params":{"id":3,"on":true}}\
off4:noArg $DEVICETOPIC/rpc {"method":"Switch.Set", "params":{"id":3,"on":false}}


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

enno

Moin Otto,

das habe ich schon in vielen Varianten versucht. Auch diese Versuch ohne Erfolg:

on1:noArg $DEVICETOPIC/rpc {"method":"Switch.Set", "params":{"id":0,"on":true}}\
off1:noArg $DEVICETOPIC/rpc {"method":"Switch.Set", "params":{"id":0,"on":false}}\
on2:noArg $DEVICETOPIC/rpc {"method":"Switch.Set", "params":{"id":1,"on":true}}\
off2:noArg $DEVICETOPIC/rpc {"method":"Switch.Set", "params":{"id":1,"on":false}}\
on3:noArg $DEVICETOPIC/rpc {"method":"Switch.Set", "params":{"id":2,"on":true}}\
off3:noArg $DEVICETOPIC/rpc {"method":"Switch.Set", "params":{"id":2,"on":false}}\
on4:noArg $DEVICETOPIC/rpc {"method":"Switch.Set", "params":{"id":3,"on":true}}\
off4:noArg $DEVICETOPIC/rpc {"method":"Switch.Set", "params":{"id":3,"on":false}}


@Beta-User: Nach dem hin und her in "Shelly Plus 1 - Anbindung"  finde ich es für mich als nicht Informatiker hilfreicher genau für den speziellen Fall Shelly 4 die Frage zu stellen, in der Hoffnung, dass doch schon jemand eine laufende Version bei sich hat. Deine genannten Links lese ich auch mit, aber dort sind Informationen enthalten, die ich auch schon erfolglos versucht habe. Speziell die Tips von 87insane brachten mich bei dem 1er schon weiter, aber ich schaffe es nicht diese auch für den 4er zu nutzen.

Gruss
  Enno

Einfacher FHEM Anwender auf Intel®NUC

Otto123

#10
Aber devicetopic  hast Du gesetzt? Das hast Du nicht im DEF Editor eingetragen?
Laut dem Thread auf den Beta-user verweist muss da noch sowas davor "id":0, "src":"trockner/status", - da ist mir der benötigte Inhalt von src nicht klar. Das sieht in den Beispielen für mich bisher wie "egal" aus.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto123

#11
einzel test für die Raw Def:
attr MQTT2_shellypro4pm_84cca87f924c setList on1:noArg $DEVICETOPIC/rpc {"id":0,"method":"Switch.Set", "params":{"id":0,"on":true}}\
off1:noArg $DEVICETOPIC/rpc {"id":0,"method":"Switch.Set", "params":{"id":0,"on":false}}


Du sagst zwar das Du alles mögliche probiert hast, allerdings war ich nicht dabei :) - kann also sein ich brech mir jetzt einen ab. Werd ich wohl besser nur mitlesen - oder mir einen shelly besorgen?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Beta-User

Zitat von: enno am 03 Januar 2022, 07:34:26
@Beta-User: Nach dem hin und her in "Shelly Plus 1 - Anbindung"  finde ich es für mich als nicht Informatiker hilfreicher genau für den speziellen Fall Shelly 4 die Frage zu stellen, in der Hoffnung, dass doch schon jemand eine laufende Version bei sich hat. Deine genannten Links lese ich auch mit, aber dort sind Informationen enthalten, die ich auch schon erfolglos versucht habe. Speziell die Tips von 87insane brachten mich bei dem 1er schon weiter, aber ich schaffe es nicht diese auch für den 4er zu nutzen.
Solche unnötigen Rückmeldungen heben nicht meine Motivation, mich mit dem Sch.. auseinanderzusetzen.

Nach meinem Eindruck ist der 4-er selbstredend deswegen speziell, weil er mehr Kanäle hat, aber der Rest ist schlicht "gleich". Und weil wir schon beim 1-er rumrätseln, wie es denn geht, wird es beim 4-er kaum besser sein... Wenn du also deinen Ärger über was auch immer verdaut hast, kannst du gerne deine Hardware dafür nutzen, das ganze für andere nutzbar zu machen. Denn ich werde mir so einen Sch... nicht kaufen und würde auch direkt dem Impuls nicht widerstehen können, das Ding auf Tasmota umzuflashen. Wer baut den so eine sch... firmware?!?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

rudolfkoenig

Laut https://shelly-api-docs.shelly.cloud/gen2/Overview/RPCProtocol sind die Parameter id, src, und method "required",  jsonrpc und params "optional".

Das ist konsistent mit dem Beitrag https://forum.fhem.de/index.php/topic,124995.msg1197464.html#msg1197464 aus dem vorhin verlinkten Diskussion. Das dort abgebildete setList Attribut sollte nach Anpassen des Topics auch beim 4pm den ersten Kanal schalten.
Fuer die anderen Kanale sollte die zweite(!) id entsprechend geaendert werden.

Otto123

#14
Zitat von: rudolfkoenig am 03 Januar 2022, 10:23:27
Fuer die anderen Kanale sollte die zweite(!) id entsprechend geaendert werden.
Und genau das war für mich erstmal verwirrend, inklusive der Tatsache das es mal src (vorne) und mal source (hinten) heisst. Insofern sind alle meine Vorschläge oben obsolete. :-[

Nachtrag: und in den Beispielen der shelly Doku fehlt dann genau der src Teil - wobei mqtt Beispiele komplett fehlen, aber mMn sollte das ja egal sein: Methodenegal sollte der json String gleich sein!?
curl -X POST -d '{"id":1, "method":"Switch.Toggle", "params":{"id":0}}' http://${SHELLY}/rpc
das Beispiel zeigt: wenn src nicht angebeben wird der devicectopic genommen ? ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz