Shelly Plus 2 PM

Begonnen von tomleitner, 23 Juni 2022, 09:31:53

Vorheriges Thema - Nächstes Thema

tomleitner

Hallo,

Ich habe basierend auf dem attrTemplate des Shelly Plus 1 PM eine Rollosteuerung mit dem Shelly Plus 2 PM implementiert. Auch modelliert nach der Shelly 2.5 Rollo Steuerung.

Vielleicht ist es ja für den einen oder anderen hilfreich.

Schöne Grüße.

Tom


defmod RolloWohnzimmerSeite MQTT2_DEVICE
attr RolloWohnzimmerSeite DbLogExclude .*
attr RolloWohnzimmerSeite cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr RolloWohnzimmerSeite comment Shelly Plus 2 PM in Roller-Mode. 100=opened / 0=closed
attr RolloWohnzimmerSeite devStateIcon opening:fts_shutter_up@red closing:fts_shutter_down@red true:10px-kreis-gruen false:10px-kreis-rot 0:fts_shutter_100 100:fts_shutter_10 9\d:fts_shutter_10 8\d:fts_shutter_20 7\d:fts_shutter_30 6\d:fts_shutter_40 5\d:fts_shutter_50 4\d:fts_shutter_60 3\d:fts_shutter_70 2\d:fts_shutter_80 1\d:fts_shutter_90 0\d:fts_shutter_100 set_.*:fts_shutter_updown
attr RolloWohnzimmerSeite devicetopic shellyplus2pm-48551999067c
attr RolloWohnzimmerSeite genericDeviceType blind
attr RolloWohnzimmerSeite group Rollo
attr RolloWohnzimmerSeite homebridgeMapping clear CurrentPosition=pct TargetPosition=CurrentPosition,cmd=pct
attr RolloWohnzimmerSeite icon fts_shutter
attr RolloWohnzimmerSeite jsonMap status_state:state status_current_pos:pct status_temperature_tC:temperature
attr RolloWohnzimmerSeite model shellyPlus_2.5pm
attr RolloWohnzimmerSeite readingList $DEVICETOPIC/online:.* online\
$DEVICETOPIC/status/mqtt:.* { json2nameValue($EVENT, 'mqtt_', $JSONMAP) }\
$DEVICETOPIC/status/sys:.* { json2nameValue($EVENT, 'sys_', $JSONMAP) }\
$DEVICETOPIC/status/cover_0:.* { json2nameValue($EVENT, 'status_', $JSONMAP) }
attr RolloWohnzimmerSeite room Homekit,MQTT,Wohnzimmer
attr RolloWohnzimmerSeite setList open:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.Open","params": {"id":0}}\
close:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.Close","params": {"id":0}}\
half:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.GoToPosition","params": {"id":0,"pos":50}}\
stop:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.Stop","params": {"id":0}}\
pct:slider,0,1,100 $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.GoToPosition","params": {"id":0,"pos":$EVTPART1}}\
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}}}}
attr RolloWohnzimmerSeite setStateList open close half stop pct
attr RolloWohnzimmerSeite stateFormat online\
pct
attr RolloWohnzimmerSeite webCmd :open:close:half:stop:pct

Beta-User

Danke für den Input, ich habe eben eine erste Variante von deinem Code als attrTemplate eingecheckt.

Wäre super, wenn du das (ggf. mit einem Klon) testen könntest.
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

tomleitner

Hab das neue attrTemplate ausprobiert -- klappt hervorragend.
Danke!

Beta-User

Vielen Dank für's testen und die Rückmeldung!

Hast du zufällig auch funktionierenden Code für den 2Plus pm als "normalen" 2-fach-Aktor (am besten "split")? Der fehlt nämlich noch in unserer Sammlung :) ... (und das würde dann auch komplett dem Thread-Titel entsprechen ;D ).
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

spi3845

#4
Hallo zusammen,

teste gerade auch einen Plus 2PM. Als gen2 Gerät schickt der keine Announces mehr. Damit sehe ich in den readings z. B. die möglichen Firmware-Updates, aber nicht die aktuell installierte.

Ich musste announces so umständlich nachbauen - geht das auch einfacher mit gen2 Geräten?

Habe mir mit einem Skript direkt auf dem Shelly geholfen - das habe ich irgendwo bei Shelly gefunden und um den 2. MQTT-publish ergänzt
let deviceInfo = null;

Shelly.call(
  "Shelly.GetDeviceInfo",
  {},
  function (result, error_code, error_message) {
    if (error_code) return;
    deviceInfo = result;
  }
);

MQTT.subscribe(
  "shellies/command",
  function (topic, message, ud) {
    if (deviceInfo === null) return;
    if (message === "announce") {
      MQTT.publish("shellies/announce", JSON.stringify(deviceInfo), 0, false);
      MQTT.publish("shellies/shelly-eg03/announce", JSON.stringify(deviceInfo), 0, false);
    }
    print(message);
  },
  null
);


Zusätzlich musste ich in readingsList noch ein
shellies/shelly-eg03/announce:.* { json2nameValue($EVENT) }
definieren. Jetzt sehe ich zusätzliche Details in den Readings, z. B.
fw_id           20220722-090230/0.11.0-beta2-g54f3094

Im shellies/announce:.* "Sammeldevice" musste ich die readingList der gen1 für gen2 Shellies anpassen.

shellies/announce:.* { $EVENT =~ m,gen..2, ? ($EVENT =~ m,name...([^"]+), ? json2nameValue($EVENT,$1."_") : json2nameValue($EVENT)) : ($EVENT =~ m,id...([^"]+), ? json2nameValue($EVENT,$1."_") : json2nameValue($EVENT)) }

eg01 und eg02 sind gen1 Geräte, eg03 ist ein Plus 2PM.

Ergebnis:
READINGS:
     2022-07-12 09:55:45   IODev           mqtt_broker
     2022-07-27 19:26:50   shelly-eg01_fw_ver 20220209-094317/v1.11.8-g8c7bb8d
     2022-07-27 19:26:50   shelly-eg01_id  shelly-eg01
     2022-07-27 19:26:50   shelly-eg01_ip  192.168.241.20
     2022-07-27 19:26:50   shelly-eg01_mac xxx
     2022-07-27 19:26:50   shelly-eg01_model SHSW-PM
     2022-07-27 19:26:50   shelly-eg01_new_fw false
     2022-07-27 19:26:50   shelly-eg02_fw_ver 20211109-131033/v1.11.7-g682a0db
     2022-07-27 19:26:50   shelly-eg02_id  shelly-eg02
     2022-07-27 19:26:50   shelly-eg02_ip  192.168.241.21
     2022-07-27 19:26:50   shelly-eg02_mac xxx
     2022-07-27 19:26:50   shelly-eg02_model SHDM-2
     2022-07-27 19:26:50   shelly-eg02_new_fw false
     2022-07-27 19:26:50   shelly-eg03_app Plus2PM
     2022-07-27 19:26:50   shelly-eg03_auth_en false
     2022-07-27 19:26:50   shelly-eg03_fw_id 20220722-090230/0.11.0-beta2-g54f3094
     2022-07-27 19:26:50   shelly-eg03_gen 2
     2022-07-27 19:26:50   shelly-eg03_id  shellyplus2pm-xxx
     2022-07-27 19:26:50   shelly-eg03_mac xxx
     2022-07-27 19:26:50   shelly-eg03_model SNSW-002P16EU
     2022-07-27 19:26:50   shelly-eg03_name shelly-eg03
     2022-07-27 19:26:50   shelly-eg03_profile cover
     2022-07-27 19:26:50   shelly-eg03_ver 0.11.0-beta2



SamNitro

Hey gibt es hier was neues oder kann ich was dazu beitragen? Habe mir auch so ein Gerät zugelegt.
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

fstefan1960

Zitat von: Beta-User am 24 Juni 2022, 10:02:10
Vielen Dank für's testen und die Rückmeldung!

Hast du zufällig auch funktionierenden Code für den 2Plus pm als "normalen" 2-fach-Aktor (am besten "split")? Der fehlt nämlich noch in unserer Sammlung :) ... (und das würde dann auch komplett dem Thread-Titel entsprechen ;D ).

Hallo,
gibt es da inzwischen wohl ein passendes Template?
Wäre toll. Danke
FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.

Beta-User

Habe eben ins svn das "shellyPlus_2pm_split" eingecheckt, basierend auf der Info aus https://forum.fhem.de/index.php/topic,131162.msg1254140.html#msg1254140, dass (im Prinzip) das 4-er pro passen würde.
Allerdings habe ich etwas den Überblick verloren, um welches Modell im Detail dass es ging, und war ebenfalls etwas irritiert, dass die Beschreibung zum 4-er sagt, es würden nur die ersten beiden Kanäle gehen...

Vielleicht kann jemand dazu was sagen, der hier zufällig mitliest und sowas hat...
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

fstefan1960

#8
Vielen Dank,

wenn ich das Template nutze, kann ich nur das erste Relais schalten. Ich habe mir jetzt mit Copy-and-paste folgende Lösung gebastelt. Sie funktioniert, wenn auch sicher noch Luft nach oben ist:
defmod MQTT2_HzgPumpe MQTT2_DEVICE shellyplus2pm_xxxxxxxxxxx
attr MQTT2_HzgPumpe DbLogExclude .*
attr MQTT2_HzgPumpe comment Shelly Plus 2 PM in Relais-Mode
attr MQTT2_HzgPumpe devicetopic shellyplus2pm-xxxxxxxxxxxxxxxx
attr MQTT2_HzgPumpe genericDeviceType switch
attr MQTT2_HzgPumpe getList in_mode:noArg in_mode $DEVICETOPIC/rpc {"id": 1,"src":"$DEVICETOPIC", "method": "Switch.GetConfig", "params": {"id": 0}}
attr MQTT2_HzgPumpe jsonMap switch_state:state switch_aenergy_total:aenergy_total switch_apower:apower switch_temperature_tC:temperature switch_temperature_tF:0 params_wifi_sta_ip:ip params_switch_0_temperature_tC:temperature params_switch_0_temperature_tF:0 result_in_mode:in_mode
attr MQTT2_HzgPumpe model shellyPlus_2pm
attr MQTT2_HzgPumpe readingList $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:.* {}\
shellyplus2pm_xxxxxxxxxx:shellyplus2pm-xxxxxxxxxx/status/switch_1:.* { json2nameValue($EVENT) }
attr MQTT2_HzgPumpe room MQTT2_DEVICE
attr MQTT2_HzgPumpe setList toggle:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Toggle","params": {"id":0}}\
  toggle1:noArg $DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Toggle","params": {"id":1}}\
  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}}\
  off1:noArg $DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":1,"on":false}}\
  on1:noArg $DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":1,"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}}\
  on-for-timer1 $DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":1,"on":true,"toggle_after":$EVTPART1}}\
  off-for-timer1 $DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":1,"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}}}}
attr MQTT2_HzgPumpe setStateList on off toggle on-for-timer off-for-timer on1 off1 toggle1 on-for-timer1 off-for-timer1
attr MQTT2_HzgPumpe stateFormat params_switch_0_current Amp / params_switch_1_current Amp / params_switch_0_output / params_switch_1_output
attr MQTT2_HzgPumpe webCmd on:off:on1:off1:toggle:toggle1

setstate MQTT2_HzgPumpe 0 Amp / 0 Amp / false / false
setstate MQTT2_HzgPumpe 2022-12-29 17:12:32 IODev myMQTT
...


Vielleicht hilft es ja jemandem.

Liebe Grüße
Frank
FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.

SamNitro

Ich muss das neue nachher mal testen wenn ich zuhause bin, aber normalerweise sollte er 2 Geräte erstellen für jeweils 1 Relay.
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

Beta-User

Da war/ist noch ein Typo bei on-for-timer im Kanal 1.

Wenn ich das richtig sehe, ist der wesentliche Unterschied zwischen dem "unified"-Beispiel hier und dem aktuellen attrTemplate in Kanal 1 die Frage, ob die "Haupt-Id" die "0" ist oder die "1".

Also:
  off1:noArg $DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":1,"on":false}}\

vs.  off:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":1,"on":false}}\

Falls das korrekt ist, fixe ich das gerne (für alle künfitgen template-Anwender)...
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

Beta-User

Zitat von: Beta-User am 30 Dezember 2022, 12:02:31
Falls das korrekt ist, fixe ich das gerne (für alle künfitgen template-Anwender)...
Hat dazu bitte jemand eine Info, damit ich das einchecken und gedanklich vollends abhaken kann?
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

flummy1978

Guten Morgen,

ich habe das vorgegebene "template" aus #8 übernommen und bei mir getestet und kann es für weitesgehend funktionierend bestätigen. Kann jetzt (noch) nicht ins Detail jede Funktion der Messungen etc testen, kann das aber gern machen, wenn irgendwo ein Test notwendig ist. Allerdings wäre auch ich ein Befürworter von beiden Volagen. Den 2PlusPM sowohl als Einzelmodul (z.B. für Motor links / rechtslauf) als auch jeder Kanal separat für einzelne Kreisläufe - Je nachdem was sich da machen lässt.

Zitat von: Beta-User am 03 Januar 2023, 17:09:01
Falls das korrekt ist, fixe ich das gerne (für alle künfitgen template-Anwender)...

Hat dazu bitte jemand eine Info, damit ich das einchecken und gedanklich vollends abhaken kann?

Was genau möchtest Du da wissen? Ich hab die Vorlage jetzt nur an meinen Shelly angepasst und sie funktioniert.
Lässt sich die Vorlage dann beim attrTemplate im jeweiligen Device finden, oder wo anders?

VG
Andreas

Beta-User

Also: zu testen wäre eigentlich "shellyPlus_2pm_split".

Da ist aktuell noch ein Typo drin, der aber nur das on-for-timer in Kanal 1 (also 2. Relay) betrifft. Meine Frage ist jetzt, ob das so wie eingecheckt (bis auf den Typo) funktioniert mit on/off für beide Kanäle, einschließlich der "Rückwärtsauswertung" desseb, was der Shelly dann liefert.

Der wesentliche Unterschied scheint zu sein, was "vorne" als Id angegeben wird (es gibt in jedem set-JSON zwei Mal die Angabe "Id", wobei mich grade auch schon irritiert, dass man anscheinend für Kanal 0 auch schon vorne die "1" hat; das ist irgendwie nicht wirklich stringent...).
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

flummy1978

Zitat von: Beta-User am 04 Januar 2023, 11:03:30
Also: zu testen wäre eigentlich "shellyPlus_2pm_split".

Sorry da stehe ich ein wenig auf dem Schlauch -.-
Bisher konnte ich immer alles was ich an MQTT brauchte direkt im Device finden und mit attrTemplate setzen. Das "shellyPlus_2pm_split" finde ich dort nicht. Es ist aber sehr wohl in der "mqtt2.template" Datei - Wie kann ich die denn aufrufen und testen?

Sorry für meine Unwissenheit, aber ich hab keine Plan, wie man dieses Template nutzen kann  :-\

VG
Andreas

Beta-User

Hmm, eigentlich ist der Filter nur TYPE=MQTT2_DEVICE, das sollte also gehen... FHEM ist nach dem update neu gestartet? Browserseite nach dem update refresht?
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

flummy1978

Zitat von: Beta-User am 04 Januar 2023, 12:02:26
Hmm, eigentlich ist der Filter nur TYPE=MQTT2_DEVICE, das sollte also gehen... FHEM ist nach dem update neu gestartet? Browserseite nach dem update refresht?

Genau so hatte ich das nach dem Update auch erhofft. Eben auch weil ich in der template  die Zeile "filter:TYPE=MQTT2_DEVICE" gesehen habe. Habe noch mal (nach dem Update) das Gerät gelöscht, neu anlegen lassen, und Seite mit STRG F5 neu geladen. Leider ohne Erfolg. Zur Vorsicht auch nochmal im aneren Browser getestet. Einzige Auswahl, die ich bei Shelly bekomme (siehe Screenshot)
List vom MQTT2_DEVICE hänge ich auch mit an.


define MQTT2_shelly2pm_Z_KG_LED_441523caa901 MQTT2_DEVICE shelly2pm_Z_KG_LED_441523caa901
attr MQTT2_shelly2pm_Z_KG_LED_441523caa901 DbLogExclude .*
attr MQTT2_shelly2pm_Z_KG_LED_441523caa901 event-on-change-reading .*
attr MQTT2_shelly2pm_Z_KG_LED_441523caa901 readingList shelly2pm_Z_KG_LED_441523caa901:shellyplus2pm-441523caa901/online:.* online\
shelly2pm_Z_KG_LED_441523caa901:shellyplus2pm-441523caa901/status/mqtt:.* { json2nameValue($EVENT) }\
shelly2pm_Z_KG_LED_441523caa901:shellyplus2pm-441523caa901/events/rpc:.* { json2nameValue($EVENT) }\
shelly2pm_Z_KG_LED_441523caa901:shellyplus2pm-441523caa901/status/switch_0:.* { json2nameValue($EVENT) }\
shelly2pm_Z_KG_LED_441523caa901:shellyplus2pm-441523caa901/status/switch_1:.* { json2nameValue($EVENT) }\
shelly2pm_Z_KG_LED_441523caa901:shellyplus2pm-441523caa901/status/sys:.* { json2nameValue($EVENT) }
attr MQTT2_shelly2pm_Z_KG_LED_441523caa901 room MQTT2_DEVICE
#   CFGFN     
#   CID        shelly2pm_Z_KG_LED_441523caa901
#   DEF        shelly2pm_Z_KG_LED_441523caa901
#   FUUID      63b55d02-f33f-6adc-a0d7-1b9c3781acbfb8c1
#   IODev      brok_MQTT2
#   LASTInputDev brok_MQTT2
#   MSGCNT     95
#   NAME       MQTT2_shelly2pm_Z_KG_LED_441523caa901
#   NR         1197885
#   STATE      ???
#   TYPE       MQTT2_DEVICE
#   brok_MQTT2_CONN brok_MQTT2_192.168.50.154_57448
#   brok_MQTT2_MSGCNT 95
#   brok_MQTT2_TIME 2023-01-04 12:20:59
#   eventCount 101
#   .DT:
#     DEVICETOPIC MQTT2_shelly2pm_Z_KG_LED_441523caa901
#   .attraggr:
#   .attreocr:
#     .*
#   .attrminint:
#   READINGS:
#     2023-01-04 12:03:30   IODev           brok_MQTT2
#     2023-01-04 12:20:59   aenergy_by_minute_1 0.000
#     2023-01-04 12:20:59   aenergy_by_minute_2 0.000
#     2023-01-04 12:20:59   aenergy_by_minute_3 0.000
#     2023-01-04 12:20:59   aenergy_minute_ts 1672831259
#     2023-01-04 12:20:59   aenergy_total   0.000
#     2023-01-04 12:20:59   apower          0.0
#     2023-01-04 12:03:55   cfg_rev         24
#     2023-01-04 12:03:31   connected       true
#     2023-01-04 12:20:59   current         0.000
#     2023-01-04 12:20:59   dst             shellyplus2pm-441523caa901/events
#     2023-01-04 12:03:55   fs_free         106496
#     2023-01-04 12:03:55   fs_size         458752
#     2023-01-04 12:20:59   id              1
#     2023-01-04 12:03:55   kvs_rev         5
#     2023-01-04 12:03:55   mac             441523caa901
#     2023-01-04 12:20:59   method          NotifyStatus
#     2023-01-04 12:03:31   online          true
#     2023-01-04 12:20:59   output          false
#     2023-01-04 12:03:31   params_mqtt_connected true
#     2023-01-04 12:20:59   params_switch_0_aenergy_by_minute_1 0.000
#     2023-01-04 12:20:59   params_switch_0_aenergy_by_minute_2 0.000
#     2023-01-04 12:20:59   params_switch_0_aenergy_by_minute_3 0.000
#     2023-01-04 12:20:59   params_switch_0_aenergy_minute_ts 1672831259
#     2023-01-04 12:20:59   params_switch_0_aenergy_total 0.000
#     2023-01-04 12:20:59   params_switch_0_id 0
#     2023-01-04 12:19:38   params_switch_0_temperature_tC 43.98
#     2023-01-04 12:19:38   params_switch_0_temperature_tF 111.17
#     2023-01-04 12:03:31   params_switch_0_voltage 235.7
#     2023-01-04 12:20:59   params_switch_1_aenergy_by_minute_1 0.000
#     2023-01-04 12:20:59   params_switch_1_aenergy_by_minute_2 0.000
#     2023-01-04 12:20:59   params_switch_1_aenergy_by_minute_3 0.000
#     2023-01-04 12:20:59   params_switch_1_aenergy_minute_ts 1672831259
#     2023-01-04 12:20:59   params_switch_1_aenergy_total 0.000
#     2023-01-04 12:20:59   params_switch_1_id 1
#     2023-01-04 12:19:38   params_switch_1_temperature_tC 43.98
#     2023-01-04 12:19:38   params_switch_1_temperature_tF 111.17
#     2023-01-04 12:03:31   params_switch_1_voltage 235.7
#     2023-01-04 12:20:59   params_ts       1672831260.48
#     2023-01-04 12:20:59   pf              0.00
#     2023-01-04 12:03:55   ram_free        160516
#     2023-01-04 12:03:55   ram_size        233652
#     2023-01-04 12:03:55   restart_required false
#     2023-01-04 12:03:55   schedule_rev    0
#     2023-01-04 12:20:59   source          init
#     2023-01-04 12:20:59   src             shellyplus2pm-441523caa901
#     2023-01-04 12:20:59   temperature_tC  43.9
#     2023-01-04 12:20:59   temperature_tF  111.1
#     2023-01-04 12:03:55   time            12:03
#     2023-01-04 12:03:55   unixtime        1672830236
#     2023-01-04 12:03:55   uptime          26
#     2023-01-04 12:20:59   voltage         237.6
#     2023-01-04 12:03:55   webhook_rev     0
#
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:03:30 IODev brok_MQTT2
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 aenergy_by_minute_1 0.000
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 aenergy_by_minute_2 0.000
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 aenergy_by_minute_3 0.000
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 aenergy_minute_ts 1672831259
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 aenergy_total 0.000
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 apower 0.0
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:03:55 cfg_rev 24
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:03:31 connected true
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 current 0.000
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 dst shellyplus2pm-441523caa901/events
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:03:55 fs_free 106496
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:03:55 fs_size 458752
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 id 1
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:03:55 kvs_rev 5
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:03:55 mac 441523caa901
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 method NotifyStatus
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:03:31 online true
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 output false
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:03:31 params_mqtt_connected true
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 params_switch_0_aenergy_by_minute_1 0.000
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 params_switch_0_aenergy_by_minute_2 0.000
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 params_switch_0_aenergy_by_minute_3 0.000
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 params_switch_0_aenergy_minute_ts 1672831259
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 params_switch_0_aenergy_total 0.000
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 params_switch_0_id 0
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:19:38 params_switch_0_temperature_tC 43.98
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:19:38 params_switch_0_temperature_tF 111.17
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:03:31 params_switch_0_voltage 235.7
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 params_switch_1_aenergy_by_minute_1 0.000
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 params_switch_1_aenergy_by_minute_2 0.000
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 params_switch_1_aenergy_by_minute_3 0.000
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 params_switch_1_aenergy_minute_ts 1672831259
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 params_switch_1_aenergy_total 0.000
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 params_switch_1_id 1
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:19:38 params_switch_1_temperature_tC 43.98
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:19:38 params_switch_1_temperature_tF 111.17
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:03:31 params_switch_1_voltage 235.7
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 params_ts 1672831260.48
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 pf 0.00
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:03:55 ram_free 160516
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:03:55 ram_size 233652
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:03:55 restart_required false
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:03:55 schedule_rev 0
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 source init
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 src shellyplus2pm-441523caa901
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 temperature_tC 43.9
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 temperature_tF 111.1
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:03:55 time 12:03
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:03:55 unixtime 1672830236
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:03:55 uptime 26
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:20:59 voltage 237.6
setstate MQTT2_shelly2pm_Z_KG_LED_441523caa901 2023-01-04 12:03:55 webhook_rev 0



Beta-User

Eigenartig. Kann dazu wenig sagen, bei meinem Testsystem (Style: f18) ist alles, wie es sein soll, und dieses template erscheint zwischen dem plus 1pm und dem "roller", ganz wie es sein sollte...

Da attrTemplate läuft auch durch.
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

flummy1978

Sodelle,

OffTopic:
nachdem Hinweis mit dem f18 Style habe ich das Gleiche gemacht: Testsystem -> Update -> Neustart -> Neuladen -> ohne Erfolg. Danach F18 -> ohne Erfolg -> Neustart -> neu laden ->BINGO
Danach exakt das Gleiche nochmal mit dem Live-System gemacht ist dann auch genauso. Nachdem ich beim Yamaha Receiver Modul auch schon so "Darstellungsprobleme" hatte, zweifel ich ein wenig an meinem Cache (Als ob STRG F5) kaum / nix ausmachen würde......

OnTopic:
Nun zum wichtigen Teil des Threads. Habe es getestet und das Template ausgewählt. Übernommen wird alles. Am CH1 funktioniert alles. Am CH2 lediglich der Zustand wird korrekt angezeigt (wenn man über die Weboberfläche schaltet) sonst funktioniert nichts. Keine Anzeige der Leistung. Es lässt sich nicht bedienen etc.... Soweit so gut, bis ich MQTT prefix, Client id,device name (der Übersichtlichkeit halber) geändert habe. Danach ging die Übernahme des Devices nicht mehr. Egal was ich versucht habe (inkl. Werksreset), es kommt jedes Mal die Meldung:
Specify the unknown parameters for MQTT2_shellyplus2pm_Z_KG_LED/shellyPlus_2pm_split:
Shelly name in the topic


Kannst Du mir bitte sagen, welcher Teil hierfür verantwortlich ist und was dort stehen MUSS?

Beta-User

Na ja, das attrTemplate erwartet halt, dass der Shelly die "üblichen" Topics benutzt, was bei den "plus"-Modellen halt bedeutet, dass irgendwas mit
"shellyplus" oder "shellypro4pm" und etwas Gemüse auftaucht. Wenn du das in der firmware änderst, können die Parameter nicht mehr aufgelöst werden. Zurückändern auf den alten Stand geht nicht?

Es hätte erst mal gereicht, wenn du versucht hättest, in der setList von CH2 die '"Id":0'-Angaben duch '"Id":1' zu ersetzen, das war ja die Frage gewesen, ob es daran hängt...
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

flummy1978

Zitat von: Beta-User am 04 Januar 2023, 16:00:12
Zurückändern auf den alten Stand geht nicht?

Genau das ist ja das was ich gedacht habe.... habe alle erdenklichen Varianten probiert (wie gesagt, sogar Werksreset).... Daher die Hoffnung, dass mir jemand die regex erklären kann:
par:DEV_TPC;Shelly name in the topic;{ AttrVal('DEVICE','devicetopic',AttrVal('DEVICE','readingList','')) =~ m<(shellies/[^/]+|shellyp(lus|ro4pm)[^/:_]{4,}+)> ? $1 : undef }
wo er welchen Teil im Namen erwartet (weil ich davon ausgehe, dass diese Regex undef zurück gibt, wenn er den namen nicht findet....

ZitatEs hätte erst mal gereicht, wenn du versucht hättest, in der setList von CH2 die '"Id":0'-Angaben duch '"Id":1' zu ersetzen, das war ja die Frage gewesen, ob es daran hängt...
Das habe ich gemacht und habe dort auch die 0 durch 1 ersetzt. Es hat sich nichts geändert... aber um es zu verifizieren, wollte ich ganz gern das Device korrekt anlegen lassen und dabei ist das o.g dann passiert  :(

Beta-User

Zitat von: flummy1978 am 04 Januar 2023, 16:08:29
(weil ich davon ausgehe, dass diese Regex undef zurück gibt, wenn er den namen nicht findet....
So ist es, duchsucht wird eben das Attribut "deviceTopic", wenn vorhanden, sonst "readingList".

Aus der alten Infos ergibt sich, dass ClientId "shelly2pm_Z_KG_LED_441523caa901" gewesen war und Name (im Topic) "shellyplus2pm-441523caa901".
Zitat
Das habe ich gemacht und habe dort auch die 0 durch 1 ersetzt.
Hmm, nur ein Verdacht: ist das IODev bei beiden identisch?
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

flummy1978

Was für ne Geburt  ??? :-\
Zitat von: Beta-User am 04 Januar 2023, 16:15:49
So ist es, duchsucht wird eben das Attribut "deviceTopic", wenn vorhanden, sonst "readingList".

Aus der alten Infos ergibt sich, dass ClientId "shelly2pm_Z_KG_LED_441523caa901" gewesen war und Name (im Topic) "shellyplus2pm-441523caa901".Hmm, nur ein Verdacht: ist das IODev bei beiden identisch?
Muss das echt irgendwie mal verstehen "lernen" ich hab es auf die von Dir vorgeschlagenen Werte ersetzt und schon ging es. Allerdings bin ich mir sicher dass ich (einzelne) Kombinationen in der Art und Weise schon drin hatte. Und auch den Inhalt vom Reading "src" manuell in die Abfrage "Specify the unknown parameters for MQTT...." eingefügt. Dennoch ging es nicht. Sehe ich das richtig, dass diese Regexp nach "shellies....." oder "shellyplus...." oder "shellypro4pm...." sucht? Den Teil ab ^/:_]{4,}+ bekomme ich (auch auf die Schnelle) kaum zusammen, was er genau bedeutet

Der Hinweis mit dem IODev war hier der entscheidende Punkt, auch wenn ich frage warum er ein anderes IODev nimmt, wenn das erste Device bereits korrekt angelegt ist? Nun denn von Hand geändert und

OnTopic
ich kann alles schalten / nutzen.
Was mir aufgefallen ist:
Im zweiten device wird kein devstateicon Attribut gesetzt (kein problem kann ich selbst machen). Sonst funktioniert es einwandfrei, in der Variante, die man auswählen kann.

Wenn ich da noch was testen kann, oder Du andere Infos brauchst, lass es mich wissen.

VG
Andreas

Beta-User

Zitat von: flummy1978 am 04 Januar 2023, 17:14:46
Was für ne Geburt  ??? :-\
Absolut!
Wäre v.a. auch nicht ohne diese "seltsamen" Effekte auf den Gedanken gekommen, dass es am IODev hängen könnte, warum manche Probleme haben und es bei anderen klappt.
Muß mir überlegen, wie man das ggf. besser lösen kann und das (per Attribut) dauerhaft festnagelt...

Jedenfalls scheint die erste "Id" auch nur ein "Kenner" zu sein, damit man selbst verschiedene Nachrichten auseinanderhalten kann. Braucht man ggf. dann, wenn man komplexe Frage-Antwort-Spiele haben will, hier erschließt sich mir noch nicht, warum der Hersteller (auch für MQTT) so eine komplizierte Sprache nutzt...

Zitat
ich hab es auf die von Dir vorgeschlagenen Werte ersetzt und schon ging es. Allerdings bin ich mir sicher dass ich (einzelne) Kombinationen in der Art und Weise schon drin hatte. Und auch den Inhalt vom Reading "src" manuell in die Abfrage "Specify the unknown parameters for MQTT...." eingefügt. Dennoch ging es nicht.
Na ja, das "Problem" ist, dass die Angaben auf der firmware-Seite zu dem passen müssen, was FHEM grade so an Infos hat. Wenn das auseinanderfällt (was ich für die "funktioniert nicht"-Zeit annehme), dann klappt halt "nichts".

Zitat
Sehe ich das richtig, dass diese Regexp nach "shellies....." oder "shellyplus...." oder "shellypro4pm...." sucht? Den Teil ab ^/:_]{4,}+ bekomme ich (auch auf die Schnelle) kaum zusammen, was er genau bedeutet
Einfach mind. 4 Zeichen, die nicht Slash, Doppelpunkt oder Underscore sind.

Zitatich kann alles schalten / nutzen.
:)

Für den Rest muss ich mir was überlegen, vermutlich mache ich irgendwann über das WE ein update, das dann auch IODev (u.A. für dieses Device) setzt und eben ggf. devStateIcon. Wobei "eigentlich" state passend gefüllt sein sollte, so dass das ganz automatisch paßt. Dem scheint aber nicht so zu sein. Vermutlich paßt das jsonMap im CH2 nicht?
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

flummy1978

Was lange wärt..... immerhin bekommen wir es jetzt so ans Laufen, dass ich Dein Template auch testen kann.

Zitat von: Beta-User am 04 Januar 2023, 17:31:29
Na ja, das "Problem" ist, dass die Angaben auf der firmware-Seite zu dem passen müssen, was FHEM grade so an Infos hat. Wenn das auseinanderfällt (was ich für die "funktioniert nicht"-Zeit annehme), dann klappt halt "nichts".
Einfach mind. 4 Zeichen, die nicht Slash, Doppelpunkt oder Underscore sind.
:)

Mhmm erklärt zwar (für mich) immernoch nicht, warum all die manuelle Auswahl nicht funktionierte, vor allem eben auch, weil ich in den meisten Versuchen als MQTT Topic "shellyplus2pm" und als Client "shellyplus2pm-(Z_KG_LED)" gesetzt hatte (also für mich eben die Regexp ausgeführt sein sollte. Scheinbar war die ID (warum auch immer) so wichtig.

Zitat von: Beta-User am 04 Januar 2023, 17:31:29
Für den Rest muss ich mir was überlegen, vermutlich mache ich irgendwann über das WE ein update, das dann auch IODev (u.A. für dieses Device) setzt und eben ggf. devStateIcon. Wobei "eigentlich" state passend gefüllt sein sollte, so dass das ganz automatisch paßt. Dem scheint aber nicht so zu sein. Vermutlich paßt das jsonMap im CH2 nicht?
Wie gesagt, wenn ich da noch was tun kann, gib laut - Funktioniert ja jetzt erstmal ;D
Das IODev wäre wohl für viele Fehlerquellen sicherlich von großer Bedeutung. Allerdings ist für mich NUN auch klar wonach ich (auch) bei den nächsten Fehlern in der Art schauen muss.
Bezüglich devstateicon, ist es vielleicht ein Missverständniss:
Auf dem CH1 wird das Attribut angelegt mit:
{my $onl = ReadingsVal($name,'online','false') eq 'false'?'10px-kreis-rot': ReadingsVal($name,'new_fw','false') eq 'true' ? '10px-kreis-gelb' : '10px-kreis-gruen'; $onl = FW_makeImage($onl); my $light = FW_makeImage(ReadingsVal($name,'state','off')); my $cons = ReadingsNum($name,'apower',0); my $total = round(ReadingsNum($name,'aenergy_total',0)/1000,1); my $temp = ReadingsVal($name,'temperature','-100'); my $ip = ReadingsVal($name,'ip','none'); qq(<a href="http://$ip" target="_blank">${onl}</a><a href="/fhem?cmd.dummy=set $name toggle&XHR=1">${light}</a><div>Verbrauch: $cons W / Total: $total kwh / Temp: $temp °C</div>)}
Im CH2 gibt es lediglich die "Standard" on / off anzeige mittels Icon und devstateicon ist auch nicht vorhanden

VG
Andreas

OdfFhem

Anwendung von Template "shellyPlus_2pm_split" funktionierte ohne Warnungen/Fehler.

Auffälligkeit bei CH1 ... [1-3]

  $DEVICETOPIC/events/rpc:.* { return if $EVENT =~ m{switch:[1-3]};; $EVENT =~ s/"output":true/"state":"on"/g;; $EVENT =~ s/"output":false/"state":"off"/g;; json2nameValue($EVENT,'',$JSONMAP) }\


Auffälligkeit bei "id" für CH2 ... shellyPlus_2pm_split

  on-for-timer $DEVICETOPIC/rpc {"id"shellyPlus_2pm_split:0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":1,"on":true,"toggle_after":$EVTPART1}}\


Ich habe 2 x MQTT2_CLIENT im Einsatz und der CH2 bekommt (auch) nicht IODev gemäß CH1 ... CH2-set-Funktionalität "wirkungslos"
... Umsetzen von IODev sorgt für erwartete CH2-set-Funktionalität

Beta-User

Was bedeutet das mit der "Auffälligkeit" bei CH1? (Man könnte es auf "switch:1" beschränken, klar; das "mehr" schadet aber auch nicht wirklich, oder?).

CH2 ist klar, hatte ich ja geschrieben mit dem Typo, kommt mit dem nächsten update raus.

Was devStateIcon in CH2 angeht, nehme ich gerne konstruktive Vorschläge entgegen, allerdings bitte ohne irgendwelche Readings, die nichts mit CH2 zu tun haben (LWT/online, z.B.).
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

flummy1978

Zitat von: Beta-User am 04 Januar 2023, 19:03:17
Was devStateIcon in CH2 angeht, nehme ich gerne konstruktive Vorschläge entgegen, allerdings bitte ohne irgendwelche Readings, die nichts mit CH2 zu tun haben (LWT/online, z.B.).

Konstruktiver Vorschlag .... mhmm ich versuchs mal:

1. Zunächst einmal allgemein (nicht nur speziell hier) würde ich mir das devstateicon leserlicher wünschen:
{
my $onl = ReadingsVal($name,'online','false') eq 'false'?'10px-kreis-rot': ReadingsVal($name,'new_fw','false') eq 'true' ? '10px-kreis-gelb' : '10px-kreis-gruen';
$onl = FW_makeImage($onl);
my $light = FW_makeImage(ReadingsVal($name,'state','off'));
my $cons = ReadingsNum($name,'apower',0);
my $total = round(ReadingsNum($name,'aenergy_total',0)/1000,1);
my $temp = ReadingsVal($name,'temperature','-100');
my $ip = ReadingsVal($name,'ip','none');
qq(<a href="http://$ip" target="_blank">${onl}</a><a href="/fhem?cmd.dummy=set $name toggle&XHR=1">${light}</a>
<div>Verbrauch: $cons W / Total: $total kwh / Temp: $temp °C</div>)
}


statt


{my $onl = ReadingsVal($name,'online','false') eq 'false'?'10px-kreis-rot': ReadingsVal($name,'new_fw','false') eq 'true' ? '10px-kreis-gelb' : '10px-kreis-gruen'; $onl = FW_makeImage($onl); my $light = FW_makeImage(ReadingsVal($name,'state','off')); my $cons = ReadingsNum($name,'apower',0); my $total = round(ReadingsNum($name,'aenergy_total',0)/1000,1); my $temp = ReadingsVal($name,'temperature','-100'); my $ip = ReadingsVal($name,'ip','none'); qq(<a href="http://$ip" target="_blank">${onl}</a><a href="/fhem?cmd.dummy=set $name toggle&XHR=1">${light}</a><div>Verbrauch: $cons W / Total: $total kwh / Temp: $temp °C</div>)}

Kann man in der Weboberfläche einfach besser lesen / nachvollziehen

2. Für diesen Fall CH2. Was braucht man? An / Aus und ggf den Verbrauch vom 2. Kanal. Also würde ich es gar nicht so aufwändig machen und da das Mapping funktioniert beim Beispiel von CH1 bleiben. Das wäre dann ohne die Online Anzeige und mit optionaler Temperaturanzeige

{
my $light = FW_makeImage(ReadingsVal($name,'state','off'));
my $cons = ReadingsNum($name,'apower',0);
my $total = round(ReadingsNum($name,'aenergy_total',0)/1000,1);
my $temp = ReadingsVal($name,'temperature','-100');
my $ip = ReadingsVal($name,'ip','none');
qq(<a href="/fhem?cmd.dummy=set $name toggle&XHR=1">${light}</a>
<div>Verbrauch: $cons W / Total: $total kwh / Temp: $temp °C</div>)
}


Vielleicht halten es andere ja für konstruktiv  ;)

VG
Andreas

Beta-User

Ad 1: "Leserlich" ist relativ: für mich wird die file dann noch sehr viel länger => Vorschlag abgelehnt... (Den Code faßt sowieso nur an, wer versteht, wie er funktioniert, und der kann dann auch formatieren, wie er lustig ist  ;) ).

Ad 2: Ich unterstelle mal, dass diese Readings alle in dem Kanal auch da sind und checke das entsprechend dem Vorschlag (unformatiert...) ein :) .

Großes Thx an alle, die sich des Themas jetzt mal angenommen haben und (hoffentlich) zu einem (vorläufigen) Abschluss gebracht!
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

OdfFhem

Zitat von: Beta-User am 04 Januar 2023, 19:03:17
Was bedeutet das mit der "Auffälligkeit" bei CH1? (Man könnte es auf "switch:1" beschränken, klar; das "mehr" schadet aber auch nicht wirklich, oder?).
Ja, war nur der unnötig weite switch-Bereich ... nichts Schlimmes.

Zitat von: Beta-User am 04 Januar 2023, 19:03:17
CH2 ist klar, hatte ich ja geschrieben mit dem Typo, kommt mit dem nächsten update raus.
Dann habe ich das wohl überlesen ...

Zitat von: flummy1978 am 04 Januar 2023, 19:31:51

{
my $light = FW_makeImage(ReadingsVal($name,'state','off'));
my $cons = ReadingsNum($name,'apower',0);
my $total = round(ReadingsNum($name,'aenergy_total',0)/1000,1);
my $temp = ReadingsVal($name,'temperature','-100');
my $ip = ReadingsVal($name,'ip','none');
qq(<a href="/fhem?cmd.dummy=set $name toggle&XHR=1">${light}</a>
<div>Verbrauch: $cons W / Total: $total kwh / Temp: $temp °C</div>)
}

... $ip wird nicht verwendet
... ich würde die Temperatur eher weglassen

OdfFhem

Test gestartet mit Firmware 0.11.4:
Das gemappte Reading "temperature" wird angelegt (CH1+CH2).
Reading "ip" ist nicht vorhanden ... "params_wifi_*" gibt es auch nicht (CH1+CH2).

Update auf Firmware 0.12.0:
Das gemappte Reading "temperature" wird nicht mehr aktualisiert (CH1+CH2).
Es gibt 2 "vielleicht neue" Readings "temperature_tC" und "temperature_tF", die regelmäßig aktualisiert werden (CH1+CH2).
Reading "ip" und "params_wifi_*" gibt es weiterhin nicht (CH1+CH2).

Beta-User

 ??? blödes Ding das...

Dass die aber auch ständig an den Details ihrer firmware rumschrauben >:( ! Die wird davon auch nicht wirklich besser :( .

Na ja, die Temp. scheint jetzt (vermutlich richtigerweise) auf einer anderen Ebene in der JSON-Struktur zu stecken, die spannende Frage ist jetzt, bei welchen anderen Shellyplus/-pro-Varianten das noch so ist (oder wieder anders >:( ).

Bin jedenfalls geneigt, die Info "tC" nur im Hauptdevice anzuzeigen und die jsonMaps entsprechend anzupassen. Einwände?

(Den "alten" Stand hatte ich eben (ohne Temperatur in CH2-devStateIcon) eingecheckt)
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

flummy1978

Zitat von: OdfFhem am 04 Januar 2023, 20:35:14
Update auf Firmware 0.12.0:
Das gemappte Reading "temperature" wird nicht mehr aktualisiert (CH1+CH2).

Kann ich so nicht bestätigen. (ebenfalls Firmenware 0.12.0)
Das Reading gibt es sehr wohl in CH1+CH2. Es DAUERT nur bis eine Temperatur auftaucht. D.h bei mir wurde auch erst eine Temperatur angezeigt als ich bei ca. 47 ° war. Also belaste das Ding mal ein wenig, dann sollte sich da was tun.


#     2023-01-04 19:18:59   state           off
#     2023-01-04 19:52:11   temperature     47.07


Seit 19 Uhr hab ich daran nichts gemacht, d.h die Temp ist so stehen geblieben.

Nu hab ich beide Kanäle mehrmals eingeschaltet und das Teil ein wenig belastet:

#     2023-01-04 23:21:22   state           on
#     2023-01-04 23:20:40   temperature     52.09


Bezüglich dem Rest:
Argumentation zum Vorschlag 1. verstanden, nachvollzogen und ok ...
2. Hab mich auf den grünen Punkt fokussiert und gesehen dass online angezeigt wurde (somit gar nicht beachtet dass die IP nicht vorhanden ist). Auch nach einer Weile / Neustart etc kommt die IP (scheinbar) nicht

VG
Andreas

OdfFhem

Zitat von: flummy1978 am 04 Januar 2023, 23:26:59
Kann ich so nicht bestätigen ... Es DAUERT nur bis eine Temperatur auftaucht ...

Heute das Gerät aktiviert - in KALTEM Zustand ... und tatsächlich wird die gemappte temperature doch noch ab und zu aktualisiert ...

Auf temperature / temperature_tC gefilterter Ausschnitt des bisherigen Tages aus Logfile:

2023-01-05_03:58:34 MQTT2_shelly_powerSwitch9 temperature_tC: 17.0
2023-01-05_03:58:54 MQTT2_shelly_powerSwitch9 temperature: 21.89
2023-01-05_03:58:54 MQTT2_shelly_powerSwitch9 temperature_tC: 21.9
2023-01-05_03:59:00 MQTT2_shelly_powerSwitch9 temperature_tC: 22.6
2023-01-05_03:59:51 MQTT2_shelly_powerSwitch9 temperature: 26.95
2023-01-05_03:59:51 MQTT2_shelly_powerSwitch9 temperature_tC: 27.0
2023-01-05_04:00:00 MQTT2_shelly_powerSwitch9 temperature_tC: 27.3
2023-01-05_04:01:00 MQTT2_shelly_powerSwitch9 temperature_tC: 29.8
2023-01-05_04:02:00 MQTT2_shelly_powerSwitch9 temperature_tC: 31.7
2023-01-05_04:02:12 MQTT2_shelly_powerSwitch9 temperature: 32.03
2023-01-05_04:02:12 MQTT2_shelly_powerSwitch9 temperature_tC: 32.0
2023-01-05_04:03:00 MQTT2_shelly_powerSwitch9 temperature_tC: 33.2
2023-01-05_04:04:00 MQTT2_shelly_powerSwitch9 temperature_tC: 34.4
2023-01-05_04:05:00 MQTT2_shelly_powerSwitch9 temperature_tC: 35.6
2023-01-05_04:06:00 MQTT2_shelly_powerSwitch9 temperature_tC: 36.4
2023-01-05_04:06:57 MQTT2_shelly_powerSwitch9 temperature: 37.04
2023-01-05_04:06:57 MQTT2_shelly_powerSwitch9 temperature_tC: 37.0
2023-01-05_04:07:00 MQTT2_shelly_powerSwitch9 temperature_tC: 37.0
2023-01-05_04:08:00 MQTT2_shelly_powerSwitch9 temperature_tC: 37.6
2023-01-05_04:09:00 MQTT2_shelly_powerSwitch9 temperature_tC: 38.1
2023-01-05_04:10:00 MQTT2_shelly_powerSwitch9 temperature_tC: 38.7
2023-01-05_04:11:00 MQTT2_shelly_powerSwitch9 temperature_tC: 39.1
2023-01-05_04:12:00 MQTT2_shelly_powerSwitch9 temperature_tC: 39.5
2023-01-05_04:13:00 MQTT2_shelly_powerSwitch9 temperature_tC: 39.9
2023-01-05_04:14:00 MQTT2_shelly_powerSwitch9 temperature_tC: 40.0
2023-01-05_04:15:00 MQTT2_shelly_powerSwitch9 temperature_tC: 40.3
2023-01-05_04:16:00 MQTT2_shelly_powerSwitch9 temperature_tC: 40.4
2023-01-05_04:17:00 MQTT2_shelly_powerSwitch9 temperature_tC: 40.7
2023-01-05_04:18:00 MQTT2_shelly_powerSwitch9 temperature_tC: 40.9
2023-01-05_04:19:00 MQTT2_shelly_powerSwitch9 temperature_tC: 41.0
2023-01-05_04:20:00 MQTT2_shelly_powerSwitch9 temperature_tC: 41.2
2023-01-05_04:21:00 MQTT2_shelly_powerSwitch9 temperature_tC: 41.3
2023-01-05_04:22:00 MQTT2_shelly_powerSwitch9 temperature_tC: 41.4
2023-01-05_04:23:00 MQTT2_shelly_powerSwitch9 temperature_tC: 41.4
2023-01-05_04:23:39 MQTT2_shelly_powerSwitch9 temperature: 42.11
2023-01-05_04:23:39 MQTT2_shelly_powerSwitch9 temperature_tC: 42.1
2023-01-05_04:24:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.4
2023-01-05_04:25:00 MQTT2_shelly_powerSwitch9 temperature_tC: 43.1
2023-01-05_04:26:00 MQTT2_shelly_powerSwitch9 temperature_tC: 43.9
2023-01-05_04:27:00 MQTT2_shelly_powerSwitch9 temperature_tC: 44.4
2023-01-05_04:28:00 MQTT2_shelly_powerSwitch9 temperature_tC: 45.0
2023-01-05_04:29:00 MQTT2_shelly_powerSwitch9 temperature_tC: 45.6
2023-01-05_04:30:00 MQTT2_shelly_powerSwitch9 temperature_tC: 45.9
2023-01-05_04:31:00 MQTT2_shelly_powerSwitch9 temperature_tC: 46.2
2023-01-05_04:32:00 MQTT2_shelly_powerSwitch9 temperature_tC: 46.8
2023-01-05_04:32:39 MQTT2_shelly_powerSwitch9 temperature: 47.19
2023-01-05_04:32:39 MQTT2_shelly_powerSwitch9 temperature_tC: 47.2
2023-01-05_04:33:00 MQTT2_shelly_powerSwitch9 temperature_tC: 47.1
2023-01-05_04:34:00 MQTT2_shelly_powerSwitch9 temperature_tC: 47.7
2023-01-05_04:34:59 MQTT2_shelly_powerSwitch9 temperature_tC: 47.5
2023-01-05_04:36:00 MQTT2_shelly_powerSwitch9 temperature_tC: 47.7
2023-01-05_04:37:00 MQTT2_shelly_powerSwitch9 temperature_tC: 47.9
2023-01-05_04:38:00 MQTT2_shelly_powerSwitch9 temperature_tC: 48.0
2023-01-05_04:39:00 MQTT2_shelly_powerSwitch9 temperature_tC: 48.1
2023-01-05_04:40:00 MQTT2_shelly_powerSwitch9 temperature_tC: 48.2
2023-01-05_04:41:00 MQTT2_shelly_powerSwitch9 temperature_tC: 47.5
2023-01-05_04:42:00 MQTT2_shelly_powerSwitch9 temperature_tC: 46.8
2023-01-05_04:43:00 MQTT2_shelly_powerSwitch9 temperature_tC: 46.0
2023-01-05_04:44:00 MQTT2_shelly_powerSwitch9 temperature_tC: 45.5
2023-01-05_04:45:00 MQTT2_shelly_powerSwitch9 temperature_tC: 45.1
2023-01-05_04:46:00 MQTT2_shelly_powerSwitch9 temperature_tC: 44.7
2023-01-05_04:47:00 MQTT2_shelly_powerSwitch9 temperature_tC: 44.3
2023-01-05_04:48:00 MQTT2_shelly_powerSwitch9 temperature_tC: 44.1
2023-01-05_04:49:00 MQTT2_shelly_powerSwitch9 temperature_tC: 43.7
2023-01-05_04:50:00 MQTT2_shelly_powerSwitch9 temperature_tC: 43.6
2023-01-05_04:51:00 MQTT2_shelly_powerSwitch9 temperature_tC: 43.4
2023-01-05_04:52:00 MQTT2_shelly_powerSwitch9 temperature_tC: 43.2
2023-01-05_04:53:00 MQTT2_shelly_powerSwitch9 temperature_tC: 43.1
2023-01-05_04:54:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.8
2023-01-05_04:55:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.7
2023-01-05_04:56:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.7
2023-01-05_04:57:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.6
2023-01-05_04:57:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.6
2023-01-05_04:58:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.5
2023-01-05_04:59:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.4
2023-01-05_05:00:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.5
2023-01-05_05:01:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.4
2023-01-05_05:02:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.3
2023-01-05_05:03:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.3
2023-01-05_05:04:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.3
2023-01-05_05:05:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.3
2023-01-05_05:05:02 MQTT2_shelly_powerSwitch9 temperature: 42.18
2023-01-05_05:05:02 MQTT2_shelly_powerSwitch9 temperature_tC: 42.2
2023-01-05_05:06:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.3
2023-01-05_05:07:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.2
2023-01-05_05:08:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.2
2023-01-05_05:09:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.1
2023-01-05_05:10:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.1
2023-01-05_05:11:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.2
2023-01-05_05:12:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.2
2023-01-05_05:13:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.0
2023-01-05_05:14:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.1
2023-01-05_05:15:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.2
2023-01-05_05:16:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.0
2023-01-05_05:17:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.0
2023-01-05_05:18:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.1
2023-01-05_05:19:00 MQTT2_shelly_powerSwitch9 temperature_tC: 42.0
2023-01-05_05:19:59 MQTT2_shelly_powerSwitch9 temperature_tC: 42.0

... die gemappte temperature wird ungefähr alle 5 Grad transportiert
... die noch nicht gemappte temperature wird minütlich transportiert

Beispiel für die beiden Kanäle zur gemappten temperature (ungefähr alle 5 Grad):

shellies/powerSwitch9/events/rpc {"src":"shellyplus2pm-idididididid","dst":"shellies/powerSwitch9/events","method":"NotifyStatus","params":{"ts":1672889559.98,"switch:0":{"id":0,"temperature":{"tC":47.19,"tF":116.93}}}}
shellies/powerSwitch9/events/rpc {"src":"shellyplus2pm-idididididid","dst":"shellies/powerSwitch9/events","method":"NotifyStatus","params":{"ts":1672889559.98,"switch:1":{"id":1,"temperature":{"tC":47.19,"tF":116.93}}}}


Beispiel für die beiden Kanäle zur ungemappten temperature (minütlich):

shellies/powerSwitch9/status/switch:0 {"id":0, "source":"init", "output":false, "apower":0.0, "voltage":239.6, "current":0.000, "pf":0.00, "aenergy":{"total":0.000,"by_minute":[0.000,0.000,0.000],"minute_ts":1672889558},"temperature":{"tC":47.2, "tF":116.9}}
shellies/powerSwitch9/status/switch:1 {"id":1, "source":"MQTT", "output":true, "apower":0.0, "voltage":239.7, "current":0.000, "pf":-0.00, "aenergy":{"total":0.000,"by_minute":[0.000,0.000,0.000],"minute_ts":1672889558},"temperature":{"tC":47.2, "tF":116.9}}


***

Ein Update, Reboot, o.ä. führt scheinbar nicht "zwanghaft" zur Aktualisierung der gemappten temperature ... 5 Grad Unterschied schon.

Ich habe jetzt das jsonMap-Attribut erweitert um:

temperature_tC:temperature temperature_tF:0

... somit würde die minütliche Information für tC auf das temperature-Reading gemappt und tF geerdet.

flummy1978

#34
Bezüglich der Aktualisierung, versuche ich das Ganze nochmal nachzustellen, ob es bei mir auch alle 5 Grad aktualisiert wird.

Zitat von: OdfFhem am 04 Januar 2023, 20:35:14
Es gibt 2 "vielleicht neue" Readings "temperature_tC" und "temperature_tF", die regelmäßig aktualisiert werden (CH1+CH2).
Reading "ip" und "params_wifi_*" gibt es weiterhin nicht (CH1+CH2).

Das ist lustig, bei mir gibt es dieses Reading gar nicht (weder CH1 noch CH2)  ???
Edith ergänzt noch die FW-ID: 20221206-141957/0.12.0-gafc2404
Nur eine Vermutung: Hast Du Cloud (oder was anderes aktiviert), Debug per MQTT oder oder ?
Bei mir ist lediglich Wifi,Mqtt aktiviert. Ansonsten hat das Ding nicht mal Internetzugang.

Ich habe jetzt im Device das Autocreate noch mal aktiviert und ein Filelog erstellt, so kann ich es noch etwas länger / besser verfolgen

VG
Andreas

OdfFhem

@flummy1978

FIRMWARE ID ... entspricht Deiner (s. Screenshot_firmware)
MQTT ... s. Screenshot_mqtt ... vielleicht abweichend von Deinen Einstellungen
WiFi ... ja
Cloud ... bislang bei keinem Shelly genutzt ... wäre vermutlich aber beim PLUS auch egal

***

Die neue Oberfläche gefällt mir deutlich besser als die alte ... mal schauen, ob alles funktioniert.

Insgesamt nervig, dass offiziell zwar "mac", nicht aber "ip" oder "fw_id" transportiert wird.
... bei PLUS kommt man wohl selbst bei "einfachen" Informationen immer noch nicht um Scripts drum herum.

Bzgl. CH2 bleibt bei mir die Frage, ob man nicht generell viel mehr Werte "erden" sollte
... sind eindeutig zu viele (bzgl. CH1 doppelte) Readings vorhanden

87insane

#36
Hey zusammen,

anbei ein Shutter_Invert_1 mit Shelly2PlusPM. Ich habe das devstateicon auch angepasst, da sonst kein laufendes Rollo angezeigt wird und auch nicht immer die PCT als ICON angezeigt wird.

Es gibt viele Wege um das ganze als Invert anzuzeigen aber ich habe es mir an der Stelle einfach gemacht. Der close Befehl ist nun open und umgekehrt.
close:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.Open","params": {"id":0}}
open:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.Close","params": {"id":0}}

RAW:
defmod MQTT2_shellyplus2pm_441793a7c6a0 MQTT2_DEVICE shellyplus2pm_441793a7c6a0
attr MQTT2_shellyplus2pm_441793a7c6a0 cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr MQTT2_shellyplus2pm_441793a7c6a0 comment Shelly Plus 2 PM in Roller-Mode. 0=opened / 100=closed
attr MQTT2_shellyplus2pm_441793a7c6a0 devStateIcon { \
my $amp = ReadingsVal($name,"online","false") eq "false" \
? "rot" \
: ReadingsVal($name,"new_fw","false") eq "true" \
? "gelb" \
: "gruen";;\
my %mapping = (\
"closing" => "opening",\
"opening" => "closing"\
);;\
my $con = $mapping{ReadingsVal($name, "state", "undef")} // ReadingsVal($name, "pct", "undef");;\
my $pic = $con eq "opening" \
? 'fts_shutter_up@red' \
: $con eq "closing" \
? 'fts_shutter_down@red' \
: $con eq "100" \
? 'fts_shutter_100' \
: $con =~ /(\d)\d/ ? 'fts_shutter_'.$1.'0' \
: $con =~ /\b\d\b/ ? 'fts_shutter_10' \
: 'fts_shutter_updown';;\
my $show = "$amp" eq "gelb" \
? "<a href=\"/fhem?cmd.dummy=set $name x_update&XHR=1\">".FW_makeImage("10px-kreis-".$amp)."</a>" \
: "<a href=\"http://".ReadingsVal($name,"ip","none")." \"target=\"_blank\">".FW_makeImage("10px-kreis-".$amp)."</a>";;\
"<div> $show <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\"></a>".FW_makeImage($pic)." </div>" \
}
attr MQTT2_shellyplus2pm_441793a7c6a0 devicetopic shellyplus2pm-441793a7c6a0
attr MQTT2_shellyplus2pm_441793a7c6a0 genericDeviceType blind
attr MQTT2_shellyplus2pm_441793a7c6a0 icon fts_shutter
attr MQTT2_shellyplus2pm_441793a7c6a0 jsonMap status_state:state status_current_pos:pct status_temperature_tC:temperature
attr MQTT2_shellyplus2pm_441793a7c6a0 model shellyPlus_2pm_roller_invert_1
attr MQTT2_shellyplus2pm_441793a7c6a0 readingList $DEVICETOPIC/online:.* online\
  $DEVICETOPIC/status/mqtt:.* { json2nameValue($EVENT, 'mqtt_', $JSONMAP) }\
  $DEVICETOPIC/status/sys:.* { json2nameValue($EVENT, 'sys_', $JSONMAP) }\
  $DEVICETOPIC/status/cover_0:.* { json2nameValue($EVENT, 'status_', $JSONMAP) }\
  fhem2shelly/rpc:.* {}\
  $DEVICETOPIC/events/rpc:.* { json2nameValue($EVENT) }\
  $DEVICETOPIC/status/cloud:.* { json2nameValue($EVENT) }
attr MQTT2_shellyplus2pm_441793a7c6a0 room MQTT2_DEVICE
attr MQTT2_shellyplus2pm_441793a7c6a0 setList close:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.Open","params": {"id":0}}\
  open:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.Close","params": {"id":0}}\
  half:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.GoToPosition","params": {"id":0,"pos":50}}\
  stop:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.Stop","params": {"id":0}}\
  pct:slider,0,1,100 $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.GoToPosition","params": {"id":0,"pos":$EVTPART1}}\
  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}}}}
attr MQTT2_shellyplus2pm_441793a7c6a0 setStateList open close half stop pct
attr MQTT2_shellyplus2pm_441793a7c6a0 webCmd :open:close:half:stop:pct

(devStateIcon): Ich habe an der Stelle absichtlich mit einer Hash Map gearbeitet, da man so leichter die Richtungen umdrehen kann. Ggf möchte man das invert_0 Template ja auch damit schmücken. Dann wären sie gleich und die Icons würden alle funktionieren.

den Parameter "new_fw" habe ich von den alten Shellys übernommen. Ich weiß bisher nicht aus welchem Zweig die Info kommt. Auch die IP Infos sehe ich bei mir nicht. Selbst im MQTT Explorer wird es mir nicht angezeigt. Egal ob bei Shelly1PLUS oder 1PLUS.
UPDATE: Dafür muss ein status_update erfolgen.

Ggf. möchte jemand noch den "... notwendigen Reboot durchführen" Infotext/Link drin haben. Diesen finde ich bei den 1PLUS Shelly im Template echt gut. Hatte ich nur bisher zu wenig Zeit für.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

UPDATE:

Alternativ kann man auch mal komplett ein wenig aufräumen.
Hier würde ich persönlich die readingList anpassen und RPC rauß nehmen. Steht sonst alles doppelt in den Readings.
Anbei nochmal ein komplettes Gerät:

RAW (mit notwendiger Reboot Text/Link wie bei Shelly 1PLUS(PM)):
defmod MQTT2_shellyplus2pm_441793a7c6a0 MQTT2_DEVICE shellyplus2pm_441793a7c6a0
attr MQTT2_shellyplus2pm_441793a7c6a0 cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr MQTT2_shellyplus2pm_441793a7c6a0 comment Shelly Plus 2 PM in Roller-Mode. 0=opened / 100=closed
attr MQTT2_shellyplus2pm_441793a7c6a0 devStateIcon { \
my $amp = ReadingsVal($name,"online","false") eq "false" \
? "rot" \
: ReadingsVal($name,"new_fw","false") eq "true" \
? "gelb" \
: "gruen";;\
my $con = (ReadingsVal($name, "state", "undef") =~ /unlocked|locked|stopped/) \
? ReadingsVal($name, "pct", "undef") \
: ReadingsVal($name, "state", "undef");;\
my $pic = $con eq "up"\
? 'fts_shutter_up@red' \
: $con eq "down" \
? 'fts_shutter_down@red' \
: $con eq 100\
? 'fts_shutter_100' \
: $con =~ /(\d)\d/ ? 'fts_shutter_'.$1.'0' \
: $con =~ /\b\d\b/ ? 'fts_shutter_10' \
: 'fts_shutter_updown';;\
my $reb = ReadingsVal($name,"sys_restart_required","false") eq "true"\
? "<a href=\"/fhem?cmd.dummy=set $name x_reboot&XHR=1\"> ... notwendigen Reboot durchführen</a>"\
: "";;\
my $show = "$amp" eq "gelb" \
? "<a href=\"/fhem?cmd.dummy=set $name x_update&XHR=1\">".FW_makeImage("10px-kreis-".$amp)."</a>" \
: "<a href=\"http://".ReadingsVal($name,"wifi_sta_ip","none")." \"target=\"_blank\">".FW_makeImage("10px-kreis-".$amp)."</a>";;\
"<div> $show <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\"></a>".FW_makeImage($pic)." $reb</div>" \
}
attr MQTT2_shellyplus2pm_441793a7c6a0 devicetopic shellyplus2pm-441793a7c6a0
attr MQTT2_shellyplus2pm_441793a7c6a0 event-on-change-reading .*
attr MQTT2_shellyplus2pm_441793a7c6a0 genericDeviceType blind
attr MQTT2_shellyplus2pm_441793a7c6a0 group Rollo
attr MQTT2_shellyplus2pm_441793a7c6a0 jsonMap status_state:state status_current_pos:pct status_temperature_tC:temperature
attr MQTT2_shellyplus2pm_441793a7c6a0 model kai_shellyPlus_2pm_roller_invert_1
attr MQTT2_shellyplus2pm_441793a7c6a0 readingList $DEVICETOPIC/online:.* online\
  $DEVICETOPIC/status/mqtt:.* { json2nameValue($EVENT, 'mqtt_', $JSONMAP) }\
  $DEVICETOPIC/status/sys:.* { json2nameValue($EVENT, 'sys_', $JSONMAP) }\
  $DEVICETOPIC/status/cover_0:.* { $EVENT =~ s/(opening)/down/g;; $EVENT =~ s/(closing)/up/g;; $EVENT =~ s/(closed)/unlocked/g;; $EVENT =~ s/(open)/locked/g;; json2nameValue($EVENT, 'status_', $JSONMAP) }\
  $DEVICETOPIC/events/rpc:.* {}\
  $DEVICETOPIC/status/cloud:.* { json2nameValue($EVENT) }\
  $DEVICETOPIC/status:.* {}\
  $DEVICETOPIC/status/ble:.* { json2nameValue($EVENT, 'ble_', $JSONMAP) }\
  $DEVICETOPIC/status/wifi:.* { json2nameValue($EVENT, 'wifi_', $JSONMAP) }\
  $DEVICETOPIC/status/ws:.* { json2nameValue($EVENT, 'ws_', $JSONMAP) }\
shellyplus2pm_441793a7c6a0:shellyplus2pm-441793a7c6a0/status/input_0:.* { json2nameValue($EVENT) }\
shellyplus2pm_441793a7c6a0:shellyplus2pm-441793a7c6a0/status/input_1:.* { json2nameValue($EVENT) }
attr MQTT2_shellyplus2pm_441793a7c6a0 setList close:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.Open","params": {"id":0}}\
  open:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.Close","params": {"id":0}}\
  half:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.GoToPosition","params": {"id":0,"pos":50}}\
  stop:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.Stop","params": {"id":0}}\
  pct:slider,0,1,100 $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.GoToPosition","params": {"id":0,"pos":$EVTPART1}}\
  x_status_update:noArg $DEVICETOPIC/command status_update\
  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}}}}
attr MQTT2_shellyplus2pm_441793a7c6a0 setStateList open close half stop pct
attr MQTT2_shellyplus2pm_441793a7c6a0 webCmd :open:close:half:stop:pct

Was habe ich hier getan?
Da Allterco mich irgendwie ärgern möchte, haben die den MQTT Verkehr mal wieder super benutzerfreundlich gestaltet und ich update dieses Post schon zum x-ten mal.
Nun habe ich aber alles getestet und es läuft bis in die letzte Ecke. Ich habe in der readingList bei cover_0 ein suchen und ersetzen, welcher die Worte ändert, da diese sonst durch den weiteren Suchverlauf wieder geändert würden. Im devStateicon (damit auch angezeigt wird, wenn das Rollo fährt) habe ich pct und state als Indikator.
Erklärung mit einer Message aus dem Zweig "status":
{
  "id": 0,
  "source": "limit_switch",
  "state": "closed",
  "apower": 0,
  "voltage": 233.1,
  "current": 0,
  "pf": 0,
  "aenergy": {
    "total": 63.569,
    "by_minute": [
      0,
      0,
      0
    ],
    "minute_ts": 1682149859
  },
  "temperature": {
    "tC": 46.7,
    "tF": 116.1
  },
  "pos_control": true,
  "current_pos": 0
}

Hier ist state auf "closed". Dies steht nur da, wenn das Rollo zu 100 auf der Position ist.
Gleiches umgekehrt. Dann steht in state "open".
Sollte das Rollo auf einer Zahl zwischen 1-99 stehen, steht in state, "stopped".
Wenn das Rollo fährt, steht in state entweder closing oder opening.

So funktioniert alles aber es geht sicher besser und man weiß nie mit welchem FW Update das wieder geändert wird. Ich habe es mit der, zur Zeit, aktuellen Version )20230308-091102/0.14.1-g22a4cb7) vom 2PLUSpm getestet.

Hinzugefügt: status_update in setList. Ist wie bei GEN1 das announce.

Gruß,
87Insane

87insane

@Beta-User und ggf. auch interessant für Andere: Anbei ein fertiges Template für Roller Invert 1. Hier bekommt man auch die IP usw wieder gesendet, da es am Ende noch ein set x_status_update macht. Ist wie früher das announce bei GEN1 Shelly.
Hier muss man die Reihenfolge vom Template und den Namen noch anpassen. Das entspringt meiner eigenen Template Datei:

#### Shelly Plus 2 PM using original firmware in roller mode.
name:-kai_shellyPlus_2pm_roller_invert_1
filter:TYPE=MQTT2_DEVICE
desc:Early version of the template - for second generation shelly devices (names with "plus", with power measurement). NOTE: requires to activate generic status update in firmware settings (if not available: reset device to factory defaults) and activation of the roller mode.<br>NOTE: Please wait some seconds to allow Shelly device to complete reboot.
order:000000
set DEVICE attrTemplate -kai_shellyPlus_2pm_roller_invert_0 \CALLSPEECHRECOGN=0
par:DEV_TPC;Shelly name in the topic;{ AttrVal('DEVICE','devicetopic',AttrVal('DEVICE','readingList','')) =~ m<(shellies/[^/]+|shellyp(lus|ro4pm)[^/:_]{4,}+)> ? $1 : undef }
par:CALLSPEECHRECOGN;Set this to 0 to not set any speech recogn. related attributes;{ 0 }
par:ICON;ICON as set, defaults to fts_shutter;{ AttrVal('DEVICE','icon','fts_shutter') }
attr DEVICE devicetopic DEV_TPC
attr DEVICE comment Shelly Plus 2 PM in Roller-Mode. 0=opened / 100=closed
attr DEVICE devStateIcon { \
my $amp = ReadingsVal($name,"online","false") eq "false" \
? "rot" \
: ReadingsVal($name,"new_fw","false") eq "true" \
? "gelb" \
: "gruen";\
my $con = (ReadingsVal($name, "state", "undef") =~ /unlocked|locked|stopped/) \
? ReadingsVal($name, "pct", "undef") \
: ReadingsVal($name, "state", "undef");\
my $pic = $con eq "up"\
? 'fts_shutter_up@red' \
: $con eq "down" \
? 'fts_shutter_down@red' \
: $con eq 100\
? 'fts_shutter_100' \
: $con =~ /(\d)\d/ ? 'fts_shutter_'.$1.'0' \
: $con =~ /\b\d\b/ ? 'fts_shutter_10' \
: 'fts_shutter_updown';\
my $reb = ReadingsVal($name,"sys_restart_required","false") eq "true"\
? "<a href=\"/fhem?cmd.dummy=set $name x_reboot&XHR=1\"> ... notwendigen Reboot durchführen</a>"\
: "";\
my $show = "$amp" eq "gelb" \
? "<a href=\"/fhem?cmd.dummy=set $name x_update&XHR=1\">".FW_makeImage("10px-kreis-".$amp)."</a>" \
: "<a href=\"http://".ReadingsVal($name,"wifi_sta_ip","none")." \"target=\"_blank\">".FW_makeImage("10px-kreis-".$amp)."</a>";\
"<div> $show <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\"></a>".FW_makeImage($pic)." $reb</div>" \
}
attr DEVICE cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr DEVICE webCmd :open:close:half:stop:pct
attr DEVICE jsonMap status_state:state status_current_pos:pct status_temperature_tC:temperature
attr DEVICE readingList $\DEVICETOPIC/online:.* online\
  $\DEVICETOPIC/status/mqtt:.* { json2nameValue($EVENT, 'mqtt_', $JSONMAP) }\
  $\DEVICETOPIC/status/sys:.* { json2nameValue($EVENT, 'sys_', $JSONMAP) }\
  $\DEVICETOPIC/status/cover_0:.* { $EVENT =~ s/(opening)/down/g; $EVENT =~ s/(closing)/up/g; $EVENT =~ s/(closed)/unlocked/g; $EVENT =~ s/(open)/locked/g; json2nameValue($EVENT, 'status_', $JSONMAP) }\
  $\DEVICETOPIC/events/rpc:.* {}\
  $\DEVICETOPIC/status/cloud:.* { json2nameValue($EVENT) }\
  $\DEVICETOPIC/status:.* {}\
  $\DEVICETOPIC/status/ble:.* { json2nameValue($EVENT, 'ble_', $JSONMAP) }\
  $\DEVICETOPIC/status/wifi:.* { json2nameValue($EVENT, 'wifi_', $JSONMAP) }\
  $\DEVICETOPIC/status/ws:.* { json2nameValue($EVENT, 'ws_', $JSONMAP) }
attr DEVICE setList close:noArg $\DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.Open","params": {"id":0}}\
  open:noArg $\DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.Close","params": {"id":0}}\
  half:noArg $\DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.GoToPosition","params": {"id":0,"pos":50}}\
  stop:noArg $\DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.Stop","params": {"id":0}}\
  pct:slider,0,1,100 $\DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.GoToPosition","params": {"id":0,"pos":$EVTPART1}}\
  x_status_update:noArg $\DEVICETOPIC/command status_update\
  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}}}}
deletereading -q DEVICE (?!associatedWith|IODev).*
set DEVICE x_status_update
set DEVICE x_reboot
attr DEVICE setStateList open close half stop pct
option:{ CALLSPEECHRECOGN }
set DEVICE attrTemplate speechcontrol_type_blind
attr DEVICE model kai_shellyPlus_2pm_roller_invert_1
setreading DEVICE attrTemplateVersion 20230421

Gruß,
87Insane

Beta-User

@87insane:
Im Moment habe ich ehrlich gesagt etwas den Überblick verloren, was die ganzen Vorschläge an den diversen Stellen angeht.

Können wir das irgendwie mal strukturiert durchgehen und v.a. so, dass ich (einfacher) zumindest grob erkennen kann, was wie geändert ist?
(Oder wenigstens eine Liste machen, was wo vorgeschlagen ist).

Und an die anderen stillen Mitleser: Ich habe diese Geräte alle nicht und kann daher nicht beurteilen, ob das "allgemein wünschenswert" ist...
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

87insane

#39
Guten Morgen,

ja.

Ich versuche das mal aufzulisten:
- RPC Channel rauß genommen. Im Shelly selber sollte man zwar "Enable RPC over MQTT" eingeschaltet haben aber "RPC status notifications over MQTT" muss nicht sein. Die beiden RPC Zweige innerhalb von FHEM habe ich bei mir rauß geschmissen in der readingList. Diese senden nur unnötige und doppelte Werte. (würde ich bei Shelly PLUS1/PM auch machen)
- devStateIcon habe ich angepasst. Denke mal dazu gibt es soweit keine Fragen.
- $\DEVICETOPIC/status/cover_0:.* habe ich angepasst. Hier bekomme ich leider sonst keine sauberen Werte rauß. Wenn es an der Stelle einen besseren Weg gibt, gerne her damit :)
- Aufgrund von invert_1 habe ich die setList angepasst. close ist open und umgekehrt.
- Hinzu habe ich den Befehl x_status_update eingefügt. Dieser ist wie früher das announce und holt beim Shelly sowas wie die IP Adresse usw ab. Daher habe ich im Template auch den Befehl mit eingefügt.
- jsonMap habe ich dementsprechend aufgeräumt

Hoffe ich habe hier nichts vergessen, stehe aber für Fragen, gerne bereit.

EDIT: Ich persönlich würde auch "temperature" vom Shelly Chip, nicht in Temperature schreiben. Sondern in chip_temperature oder so. Denn, wer mit z.B. Alexa arbeitet, wird automatisch das mapping zur Temperatur haben. Fragt man Alexa also nach der Raum Temperatur, wird sie entweder sagen, es gibt mehrere Geräte die das könnnen.... Oder sie Antwortet mit "der Raum 123, hat eine Temperatur von 55.7 °C". Beides ist suboptimal. Daher in der jsonMap erweitern um: switch_temperature_tC:chip_temperature

Gruß,
87Insane

Byllyy

Hallo zusammen,
ich versuche einen Shelly Plus 2PM im Split-Mode zu konfigurieren. Nach einschalten von MQTT wird mir in Fhem auch ein Device angelegt. Wenn ich nun das
Template "Shelly Plus 2PM_Split" nutze werden auch zwei Devices angelegt. Diese funktionieren aber leider nicht. Ist das Template noch im Aufbau oder mache
ich einen Fehler. Wenn nützlich, schicke ich gerne weite Daten der Devices.
Danke für einen Tipp,
Byllyy

87insane

Sende doch mal ein List der Geräte... Und was genau funktioniert nicht?

ThomasL

Hallo zusammen,
bei mir klappt das "Plus 2PM Split" auch nicht.
Es wird ein neues Device angelegt, wo gar keine Readings enthalten sind.
In dem anderem ist alles enthalten, Readings werden angezeigt, man kann aber nichts schalten.
Ich komme da nicht weiter.
Könnte mich da jemand unterstützen?
Was muss ich dafür posten?

Hier mal die Definition und die REadings:
Danke
Thomas

defmod MQTT2_PoolpumpeLampe MQTT2_DEVICE PoolpumpeLampe
attr MQTT2_PoolpumpeLampe alias MQTT2_PoolpumpeLampe
attr MQTT2_PoolpumpeLampe readingList PoolpumpeLampe:PoolpumpeLampe/events/rpc:.* { json2nameValue($EVENT) }
attr MQTT2_PoolpumpeLampe room MQTT2_DEVICE

IODev
MQTT2_FHEM_Server
2023-07-01 15:53:00
dst
PoolpumpeLampe/events
2023-07-01 16:35:00
method
NotifyStatus
2023-07-01 16:35:00
params_switch_0_aenergy_by_minute_1
0.000
2023-07-01 16:35:00
params_switch_0_aenergy_by_minute_2
0.000
2023-07-01 16:35:00
params_switch_0_aenergy_by_minute_3
0.000
2023-07-01 16:35:00
params_switch_0_aenergy_minute_ts
1688222099
2023-07-01 16:35:00
params_switch_0_aenergy_total
67536.336
2023-07-01 16:35:00
params_switch_0_apower
0
2023-07-01 15:58:26
params_switch_0_current
0
2023-07-01 15:58:26
params_switch_0_id
0
2023-07-01 16:35:00
params_switch_0_output
false
2023-07-01 15:58:26
params_switch_0_pf
0
2023-07-01 15:58:26
params_switch_0_source
WS_in
2023-07-01 15:58:26
params_switch_1_aenergy_by_minute_1
0.000
2023-07-01 16:35:00
params_switch_1_aenergy_by_minute_2
0.000
2023-07-01 16:35:00
params_switch_1_aenergy_by_minute_3
0.000
2023-07-01 16:35:00
params_switch_1_aenergy_minute_ts
1688222099
2023-07-01 16:35:00
params_switch_1_aenergy_total
101.575
2023-07-01 16:35:00
params_switch_1_apower
0
2023-07-01 15:58:19
params_switch_1_current
0
2023-07-01 15:58:19
params_switch_1_id
1
2023-07-01 16:35:00
params_switch_1_output
false
2023-07-01 15:58:19
params_switch_1_pf
0
2023-07-01 15:58:19
params_switch_1_source
WS_in
2023-07-01 15:58:19
params_temperature_100_id
100
2023-07-01 16:33:30
params_temperature_100_tC
24.25
2023-07-01 16:33:30
params_temperature_100_tF
75.65
2023-07-01 16:33:30
params_temperature_101_id
101
2023-07-01 16:14:40
params_temperature_101_tC
23.81
2023-07-01 16:14:40
params_temperature_101_tF
74.86
2023-07-01 16:14:40
params_temperature_102_id
102
2023-07-01 16:31:10
params_temperature_102_tC
26.56
2023-07-01 16:31:10
params_temperature_102_tF
79.81
2023-07-01 16:31:10
params_ts
1688222100.24
2023-07-01 16:35:00
src
shellyplus2pm-c049ef8a73b4
2023-07-01 16:35:00
subscriptions
PoolpumpeLampe/command PoolpumpeLampe/command/switch:0 PoolpumpeLampe/command/switch:1 PoolpumpeLampe/command/sys PoolpumpeLampe/rpc shellies/command


rudolfkoenig

ZitatWas muss ich dafür posten?
Am besten den Inhalt von "Copy for forum.fhem.de", unten in der Detailansicht.

ThomasL

define MQTT2_PoolpumpeLampe MQTT2_DEVICE PoolpumpeLampe
attr MQTT2_PoolpumpeLampe alias MQTT2_PoolpumpeLampe
attr MQTT2_PoolpumpeLampe readingList PoolpumpeLampe:PoolpumpeLampe/events/rpc:.* { json2nameValue($EVENT) }\
PoolpumpeLampe:PoolpumpeLampe/online:.* online
attr MQTT2_PoolpumpeLampe room MQTT2_DEVICE
#  CID        PoolpumpeLampe
#  DEF        PoolpumpeLampe
#  FUUID      64a02fbc-f33f-55bc-18d7-632a7c76cb2e20fd
#  IODev      MQTT2_FHEM_Server
#  LASTInputDev MQTT2_FHEM_Server
#  MQTT2_FHEM_Server_CONN MQTT2_FHEM_Server_192.168.8.189_53421
#  MQTT2_FHEM_Server_MSGCNT 886
#  MQTT2_FHEM_Server_TIME 2023-07-02 00:15:00
#  MSGCNT    886
#  NAME      MQTT2_PoolpumpeLampe
#  NR        393
#  STATE      ???
#  TYPE      MQTT2_DEVICE
#  eventCount 887
#  READINGS:
#    2023-07-01 17:41:08  IODev          MQTT2_FHEM_Server
#    2023-07-02 00:15:00  dst            PoolpumpeLampe/events
#    2023-07-02 00:15:00  method          NotifyStatus
#    2023-07-01 19:49:09  online          true
#    2023-07-01 19:49:09  params_cloud_connected false
#    2023-07-01 17:12:34  params_events_1_component input:0
#    2023-07-01 17:12:34  params_events_1_event single_push
#    2023-07-01 17:12:34  params_events_1_id 0
#    2023-07-01 17:12:34  params_events_1_ts 1688224354.41
#    2023-07-01 19:49:09  params_input_0_id 0
#    2023-07-01 19:49:09  params_input_100_id 100
#    2023-07-01 19:49:09  params_input_100_state false
#    2023-07-01 19:49:09  params_input_1_id 1
#    2023-07-01 19:49:09  params_mqtt_connected true
#    2023-07-02 00:15:00  params_switch_0_aenergy_by_minute_1 0.000
#    2023-07-02 00:15:00  params_switch_0_aenergy_by_minute_2 0.000
#    2023-07-02 00:15:00  params_switch_0_aenergy_by_minute_3 0.000
#    2023-07-02 00:15:00  params_switch_0_aenergy_minute_ts 1688249699
#    2023-07-02 00:15:00  params_switch_0_aenergy_total 68250.344
#    2023-07-01 19:49:09  params_switch_0_apower 0.0
#    2023-07-01 19:49:09  params_switch_0_current 0.000
#    2023-07-02 00:15:00  params_switch_0_id 0
#    2023-07-01 19:49:09  params_switch_0_output false
#    2023-07-01 19:49:09  params_switch_0_pf 0.00
#    2023-07-01 19:49:09  params_switch_0_source loopback
#    2023-07-01 21:39:45  params_switch_0_temperature_tC 51.70
#    2023-07-01 21:39:45  params_switch_0_temperature_tF 125.06
#    2023-07-01 19:49:09  params_switch_0_voltage 228.3
#    2023-07-02 00:15:00  params_switch_1_aenergy_by_minute_1 0.000
#    2023-07-02 00:15:00  params_switch_1_aenergy_by_minute_2 0.000
#    2023-07-02 00:15:00  params_switch_1_aenergy_by_minute_3 0.000
#    2023-07-02 00:15:00  params_switch_1_aenergy_minute_ts 1688249699
#    2023-07-02 00:15:00  params_switch_1_aenergy_total 101.575
#    2023-07-01 19:49:09  params_switch_1_apower 0.0
#    2023-07-01 19:49:09  params_switch_1_current 0.000
#    2023-07-02 00:15:00  params_switch_1_id 1
#    2023-07-01 19:49:09  params_switch_1_output false
#    2023-07-01 19:49:09  params_switch_1_pf 0.00
#    2023-07-01 19:49:09  params_switch_1_source WS_in
#    2023-07-01 21:39:45  params_switch_1_temperature_tC 51.70
#    2023-07-01 21:39:45  params_switch_1_temperature_tF 125.06
#    2023-07-01 19:49:09  params_switch_1_voltage 228.4
#    2023-07-01 19:49:09  params_sys_available_updates_stable_version 0.14.1
#    2023-07-01 19:49:09  params_sys_cfg_rev 29
#    2023-07-01 19:49:09  params_sys_fs_free 86016
#    2023-07-01 19:49:09  params_sys_fs_size 458752
#    2023-07-01 19:49:09  params_sys_kvs_rev 1
#    2023-07-01 19:49:09  params_sys_mac  C049EF8A73B4
#    2023-07-01 19:49:09  params_sys_ram_free 137300
#    2023-07-01 19:49:09  params_sys_ram_size 242348
#    2023-07-01 19:49:09  params_sys_restart_required false
#    2023-07-01 19:49:09  params_sys_schedule_rev 3
#    2023-07-01 19:49:09  params_sys_time 19:49
#    2023-07-01 19:49:09  params_sys_unixtime 1688233748
#    2023-07-01 19:49:09  params_sys_uptime 14330
#    2023-07-01 19:49:09  params_sys_webhook_rev 0
#    2023-07-02 00:00:19  params_temperature_100_id 100
#    2023-07-02 00:00:19  params_temperature_100_tC 22.88
#    2023-07-02 00:00:19  params_temperature_100_tF 73.18
#    2023-07-02 00:04:09  params_temperature_101_id 101
#    2023-07-02 00:04:09  params_temperature_101_tC 22.56
#    2023-07-02 00:04:09  params_temperature_101_tF 72.61
#    2023-07-01 23:58:34  params_temperature_102_id 102
#    2023-07-01 23:58:34  params_temperature_102_tC 24.06
#    2023-07-01 23:58:34  params_temperature_102_tF 75.31
#    2023-07-02 00:15:00  params_ts      1688249700.12
#    2023-07-01 19:49:09  params_wifi_rssi -50
#    2023-07-01 19:49:09  params_wifi_ssid ThomasKabel
#    2023-07-01 19:49:09  params_wifi_sta_ip 192.168.8.189
#    2023-07-01 19:49:09  params_wifi_status got ip
#    2023-07-01 19:49:09  params_ws_connected false
#    2023-07-02 00:15:00  src            shellyplus2pm-c049ef8a73b4
#    2023-07-01 17:42:07  subscriptions  PoolpumpeLampe/command PoolpumpeLampe/command/switch:0 PoolpumpeLampe/command/switch:1 PoolpumpeLampe/command/sys PoolpumpeLampe/rpc shellies/command
#
setstate MQTT2_PoolpumpeLampe 2023-07-01 17:41:08 IODev MQTT2_FHEM_Server
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:15:00 dst PoolpumpeLampe/events
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:15:00 method NotifyStatus
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 online true
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_cloud_connected false
setstate MQTT2_PoolpumpeLampe 2023-07-01 17:12:34 params_events_1_component input:0
setstate MQTT2_PoolpumpeLampe 2023-07-01 17:12:34 params_events_1_event single_push
setstate MQTT2_PoolpumpeLampe 2023-07-01 17:12:34 params_events_1_id 0
setstate MQTT2_PoolpumpeLampe 2023-07-01 17:12:34 params_events_1_ts 1688224354.41
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_input_0_id 0
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_input_100_id 100
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_input_100_state false
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_input_1_id 1
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_mqtt_connected true
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:15:00 params_switch_0_aenergy_by_minute_1 0.000
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:15:00 params_switch_0_aenergy_by_minute_2 0.000
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:15:00 params_switch_0_aenergy_by_minute_3 0.000
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:15:00 params_switch_0_aenergy_minute_ts 1688249699
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:15:00 params_switch_0_aenergy_total 68250.344
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_switch_0_apower 0.0
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_switch_0_current 0.000
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:15:00 params_switch_0_id 0
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_switch_0_output false
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_switch_0_pf 0.00
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_switch_0_source loopback
setstate MQTT2_PoolpumpeLampe 2023-07-01 21:39:45 params_switch_0_temperature_tC 51.70
setstate MQTT2_PoolpumpeLampe 2023-07-01 21:39:45 params_switch_0_temperature_tF 125.06
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_switch_0_voltage 228.3
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:15:00 params_switch_1_aenergy_by_minute_1 0.000
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:15:00 params_switch_1_aenergy_by_minute_2 0.000
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:15:00 params_switch_1_aenergy_by_minute_3 0.000
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:15:00 params_switch_1_aenergy_minute_ts 1688249699
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:15:00 params_switch_1_aenergy_total 101.575
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_switch_1_apower 0.0
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_switch_1_current 0.000
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:15:00 params_switch_1_id 1
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_switch_1_output false
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_switch_1_pf 0.00
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_switch_1_source WS_in
setstate MQTT2_PoolpumpeLampe 2023-07-01 21:39:45 params_switch_1_temperature_tC 51.70
setstate MQTT2_PoolpumpeLampe 2023-07-01 21:39:45 params_switch_1_temperature_tF 125.06
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_switch_1_voltage 228.4
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_sys_available_updates_stable_version 0.14.1
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_sys_cfg_rev 29
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_sys_fs_free 86016
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_sys_fs_size 458752
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_sys_kvs_rev 1
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_sys_mac C049EF8A73B4
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_sys_ram_free 137300
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_sys_ram_size 242348
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_sys_restart_required false
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_sys_schedule_rev 3
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_sys_time 19:49
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_sys_unixtime 1688233748
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_sys_uptime 14330
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_sys_webhook_rev 0
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:00:19 params_temperature_100_id 100
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:00:19 params_temperature_100_tC 22.88
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:00:19 params_temperature_100_tF 73.18
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:04:09 params_temperature_101_id 101
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:04:09 params_temperature_101_tC 22.56
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:04:09 params_temperature_101_tF 72.61
setstate MQTT2_PoolpumpeLampe 2023-07-01 23:58:34 params_temperature_102_id 102
setstate MQTT2_PoolpumpeLampe 2023-07-01 23:58:34 params_temperature_102_tC 24.06
setstate MQTT2_PoolpumpeLampe 2023-07-01 23:58:34 params_temperature_102_tF 75.31
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:15:00 params_ts 1688249700.12
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_wifi_rssi -50
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_wifi_ssid ThomasKabel
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_wifi_sta_ip 192.168.8.189
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_wifi_status got ip
setstate MQTT2_PoolpumpeLampe 2023-07-01 19:49:09 params_ws_connected false
setstate MQTT2_PoolpumpeLampe 2023-07-02 00:15:00 src shellyplus2pm-c049ef8a73b4
setstate MQTT2_PoolpumpeLampe 2023-07-01 17:42:07 subscriptions PoolpumpeLampe/command PoolpumpeLampe/command/switch:0 PoolpumpeLampe/command/switch:1 PoolpumpeLampe/command/sys PoolpumpeLampe/rpc shellies/command


rudolfkoenig

Damit man Befehle an einem per MQTT angeschlossenes Geraet absetzen kann, muss man das setList Attribut entweder selbst erstellen, oder (die empfohlene Methode) dieses Attribut ueber "set attrTemplate shellyPlus_2pm_split" setzen.
Damit werden auch diverse andere sinnvolle Attribute gesetzt.

Beta-User

Dieses attrTemplate scheint nicht (immer?) zu passen, warum auch immer.
Jedenfalls gibt es u.a. neue Topics?

(Das macht nach wie vor keinen großen Spaß mit diesen 2nd gen. Shelly!)
Kann mich aber grade nicht kümmern.
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

@ThomasL: kannst Du bitte MQTT2_PoolpumpeLampe entfernen, danach FHEM oder das Geraet neu starten (damit MQTT2_PoolpumpeLampe erneut angelegt wird), und danach das "Copy for forum.fhem.de" hier nochmal anchaengen, vor Anwenden des Templates.
Wurde in der MQTT Einstellung der PoolpumpeLampe ausser Serveradresse was geaendert?

ThomasL

so hab es entfernt und neu anlegen lassen.
Das Template habe ich nicht angewendet:

define MQTT2_PoolpumpeLampe MQTT2_DEVICE PoolpumpeLampe
attr MQTT2_PoolpumpeLampe alias MQTT2_PoolpumpeLampe
attr MQTT2_PoolpumpeLampe readingList PoolpumpeLampe:PoolpumpeLampe/events/rpc:.* { json2nameValue($EVENT) }
attr MQTT2_PoolpumpeLampe room MQTT2_DEVICE
#  CFGFN     
#  CID        PoolpumpeLampe
#  DEF        PoolpumpeLampe
#  FUUID      64a275a7-f33f-55bc-ebde-5f3619548ffba13e
#  IODev      MQTT2_FHEM_Server
#  LASTInputDev MQTT2_FHEM_Server
#  MQTT2_FHEM_Server_CONN MQTT2_FHEM_Server_192.168.8.189_53424
#  MQTT2_FHEM_Server_MSGCNT 3
#  MQTT2_FHEM_Server_TIME 2023-07-03 09:16:00
#  MSGCNT    3
#  NAME      MQTT2_PoolpumpeLampe
#  NR        532
#  STATE      ???
#  TYPE      MQTT2_DEVICE
#  eventCount 4
#  READINGS:
#    2023-07-03 09:15:51  IODev          MQTT2_FHEM_Server
#    2023-07-03 09:16:00  dst            PoolpumpeLampe/events
#    2023-07-03 09:16:00  method          NotifyStatus
#    2023-07-03 09:16:00  params_switch_0_aenergy_by_minute_1 7022.604
#    2023-07-03 09:16:00  params_switch_0_aenergy_by_minute_2 7025.936
#    2023-07-03 09:16:00  params_switch_0_aenergy_by_minute_3 7038.190
#    2023-07-03 09:16:00  params_switch_0_aenergy_minute_ts 1688368559
#    2023-07-03 09:16:00  params_switch_0_aenergy_total 72455.852
#    2023-07-03 09:16:00  params_switch_0_id 0
#    2023-07-03 09:16:00  params_switch_1_aenergy_by_minute_1 0.000
#    2023-07-03 09:16:00  params_switch_1_aenergy_by_minute_2 0.000
#    2023-07-03 09:16:00  params_switch_1_aenergy_by_minute_3 0.000
#    2023-07-03 09:16:00  params_switch_1_aenergy_minute_ts 1688368559
#    2023-07-03 09:16:00  params_switch_1_aenergy_total 101.575
#    2023-07-03 09:16:00  params_switch_1_id 1
#    2023-07-03 09:15:51  params_temperature_100_id 100
#    2023-07-03 09:15:51  params_temperature_100_tC 23.25
#    2023-07-03 09:15:51  params_temperature_100_tF 73.85
#    2023-07-03 09:15:56  params_temperature_101_id 101
#    2023-07-03 09:15:56  params_temperature_101_tC 22.19
#    2023-07-03 09:15:56  params_temperature_101_tF 71.94
#    2023-07-03 09:16:00  params_ts      1688368560.39
#    2023-07-03 09:16:00  src            shellyplus2pm-c049ef8a73b4
#    2023-07-03 09:15:51  subscriptions  PoolpumpeLampe/command PoolpumpeLampe/command/switch:0 PoolpumpeLampe/command/switch:1 PoolpumpeLampe/command/sys PoolpumpeLampe/rpc shellies/command
#
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:15:51 IODev MQTT2_FHEM_Server
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:16:00 dst PoolpumpeLampe/events
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:16:00 method NotifyStatus
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:16:00 params_switch_0_aenergy_by_minute_1 7022.604
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:16:00 params_switch_0_aenergy_by_minute_2 7025.936
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:16:00 params_switch_0_aenergy_by_minute_3 7038.190
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:16:00 params_switch_0_aenergy_minute_ts 1688368559
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:16:00 params_switch_0_aenergy_total 72455.852
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:16:00 params_switch_0_id 0
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:16:00 params_switch_1_aenergy_by_minute_1 0.000
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:16:00 params_switch_1_aenergy_by_minute_2 0.000
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:16:00 params_switch_1_aenergy_by_minute_3 0.000
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:16:00 params_switch_1_aenergy_minute_ts 1688368559
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:16:00 params_switch_1_aenergy_total 101.575
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:16:00 params_switch_1_id 1
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:15:51 params_temperature_100_id 100
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:15:51 params_temperature_100_tC 23.25
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:15:51 params_temperature_100_tF 73.85
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:15:56 params_temperature_101_id 101
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:15:56 params_temperature_101_tC 22.19
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:15:56 params_temperature_101_tF 71.94
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:16:00 params_ts 1688368560.39
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:16:00 src shellyplus2pm-c049ef8a73b4
setstate MQTT2_PoolpumpeLampe 2023-07-03 09:15:51 subscriptions PoolpumpeLampe/command PoolpumpeLampe/command/switch:0 PoolpumpeLampe/command/switch:1 PoolpumpeLampe/command/sys PoolpumpeLampe/rpc shellies/command


rudolfkoenig

ZitatWurde in der MQTT Einstellung der PoolpumpeLampe ausser Serveradresse was geaendert?
Diese Frage wurde leider nicht beantwortet.
Ich vermute ja, weil in subscriptions (was vom Geraet kommt) alles mit PoolpumpeLampe anfaengt, und das Template von irgendwas mit shellies ausgeht.

Ich habe die o.g. Definitionen bei mir eingespielt, und das shellyPlus_2pm_split Template angewendet.
Dabei werde ich (zweimal?) nach devicetopic gefragt, vmtl. wegen der Aenderungen in der MQTT Einstellung.
Als Antwort habe ich jeweils PoolpumpeLampe eingegeben, weil setList alles nach $DEVICETOPIC/rpc absetzt, und in subscriptions nur PoolpumpeLampe/rpc mit /rpc aufhoert.

Die so per setList definierten Befehle werden an das Geraet gesendet.
Ob es mit dem Inhalt was anfangen kann, kann ich mangels Geraet nicht testen.

Verwirrend ist, dass fuer das zweite Kanal angelegte MQTT2_PoolpumpeLampe_CH2 den alias MQTT2_PoolpumpeLampe traegt.
Damit sieht man in FHEMWEB zweimal den gleichen Namen => alias sollte geaendert oder geloescht werden.

ThomasL

In den MQTT Einstellungen habe ich nichts geändert.
Hab einfach nur das Templates Split ausgeführt.
Zweimal wurde ich nach dem Devisetopic Namen gefragt. Hab das aber jeweils Poolpumpe und Lampe eingegeben, weil ich dachte, das das die Namen von den bei angelegten Devices für Channel 1 und 2 sind.
Das war also schon Mal falsch.
Ich probiere es gleich Mal aus.
Danke schonmal

rudolfkoenig

ZitatIn den MQTT Einstellungen habe ich nichts geändert.
Das wuerde bedeuten, dass neuere(?) Firmware Versionen fuer subscription den vom Anwender geaenderten Namen des Geraetes verwenden.

ThomasL

Zitat von: rudolfkoenig am 03 Juli 2023, 13:27:14
ZitatIn den MQTT Einstellungen habe ich nichts geändert.
Das wuerde bedeuten, dass neuere(?) Firmware Versionen fuer subscription den vom Anwender geaenderten Namen des Geraetes verwenden.

Das kann sein

ThomasL

Zitat von: rudolfkoenig am 03 Juli 2023, 12:30:17
ZitatWurde in der MQTT Einstellung der PoolpumpeLampe ausser Serveradresse was geaendert?
Diese Frage wurde leider nicht beantwortet.
Ich vermute ja, weil in subscriptions (was vom Geraet kommt) alles mit PoolpumpeLampe anfaengt, und das Template von irgendwas mit shellies ausgeht.

Ich habe die o.g. Definitionen bei mir eingespielt, und das shellyPlus_2pm_split Template angewendet.
Dabei werde ich (zweimal?) nach devicetopic gefragt, vmtl. wegen der Aenderungen in der MQTT Einstellung.
Als Antwort habe ich jeweils PoolpumpeLampe eingegeben, weil setList alles nach $DEVICETOPIC/rpc absetzt, und in subscriptions nur PoolpumpeLampe/rpc mit /rpc aufhoert.

Die so per setList definierten Befehle werden an das Geraet gesendet.
Ob es mit dem Inhalt was anfangen kann, kann ich mangels Geraet nicht testen.

Verwirrend ist, dass fuer das zweite Kanal angelegte MQTT2_PoolpumpeLampe_CH2 den alias MQTT2_PoolpumpeLampe traegt.
Damit sieht man in FHEMWEB zweimal den gleichen Namen => alias sollte geaendert oder geloescht werden.
So, ich habe es mal so gemacht und tatsächlich genauso wie Du es beschrieben hast,
hat es geklappt.
Hab dann das Device für Channel 2 umbenannt und ein weiteres nach dieser Logik für Channel 1 gemacht,
da bei dem für Channel 1 der Status im Icon nicht angezeigt wurde.

Jetzt klappt es!!!
Vielen Danke

yoho

Hallo Zusammen,
ich traue mich auch mal etwas beizutragen. Beim Benutzen des split-Templates stört mich der Typo bei "on-for-timer" im ersten Kanal. Im Template müsste es m. E. so heißen:
on-for-timer $\DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true,"toggle_after":$EVTPART1}}\anstelle von:
on-for-timer $\DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":1,"on":true,"toggle_after":$EVTPART1}}\Das gleiche gilt wohl auch für "off-for-timer". Ich habe eben ein fhem-Update durchgeführt. Das Template scheint diesbezüglich fehlerhaft zu sein. Ich habe die setlist bei mir von Hand korrigiert, aber evtl. hilft es ja hier.
Viele Grüße
FHEM auf Debian Bookworm

Beta-User

Zitat von: yoho am 26 September 2023, 19:20:28Hallo Zusammen,
ich traue mich auch mal etwas beizutragen. Beim Benutzen des split-Templates stört mich der Typo bei "on-for-timer" im ersten Kanal. Im Template müsste es m. E. so heißen:
on-for-timer $\DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true,"toggle_after":$EVTPART1}}\anstelle von:
on-for-timer $\DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":1,"on":true,"toggle_after":$EVTPART1}}\Das gleiche gilt wohl auch für "off-for-timer". Ich habe eben ein fhem-Update durchgeführt. Das Template scheint diesbezüglich fehlerhaft zu sein. Ich habe die setlist bei mir von Hand korrigiert, aber evtl. hilft es ja hier.
Viele Grüße
Danke für die Info, das war immer etwas nebulös, kommt mir aber logisch vor.
Fix ist im svn.
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

87insane

Guten Morgen zusammen,

anbei mal wie ich es löse aktuell. Hier zeigt das Rollo auch an, wenn es fährt usw. Das ist im ersten Template nicht der Fall. Ggf. geht es anstelle des suchen und ersetzen innerhalb des JSON auch schöner aber ich sehe erstmal kein Problem darin. In dem Template sind auch die Events reduziert. Die Shellys sprechen mir sonst zu viel.

PS: Ich würde mir generell wünschen, dass bei Shelly Geräten das "temperature" Reading umbenannt wird in z.B. "chip_temperature". Denn es ist die Gerätetemperatur und nicht die außen Temperatur. Hinzu kommt - Schließt man ein AddOn an den Shelly an, hat man wirklich eine Temperatur und dann wird es lustig. Ich selber habe das in allen Templates angepasst wie auch hier in diesem.


define MQTT2_shellyplus2pm_441793a7c6a0 MQTT2_DEVICE shellyplus2pm_441793a7c6a0
attr MQTT2_shellyplus2pm_441793a7c6a0 cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr MQTT2_shellyplus2pm_441793a7c6a0 comment Shelly Plus 2 PM in Roller-Mode. 0=opened / 100=closed
attr MQTT2_shellyplus2pm_441793a7c6a0 devStateIcon { \
my $amp = ReadingsVal($name,"online","false") eq "false" \
? "rot" \
: ReadingsVal($name,"new_fw","false") eq "true" \
? "gelb" \
: "gruen";;\
my $con = (ReadingsVal($name, "state", "undef") =~ /unlocked|locked|stopped/) \
? ReadingsVal($name, "pct", "undef") \
: ReadingsVal($name, "state", "undef");;\
my $pic = $con eq "up"\
? 'fts_shutter_up@red' \
: $con eq "down" \
? 'fts_shutter_down@red' \
: $con eq 100\
? 'fts_shutter_100' \
: $con =~ /(\d)\d/ ? 'fts_shutter_'.$1.'0' \
: $con =~ /\b\d\b/ ? 'fts_shutter_10' \
: 'fts_shutter_updown';;\
my $reb = ReadingsVal($name,"sys_restart_required","false") eq "true"\
? "<a href=\"/fhem?cmd.dummy=set $name x_reboot&XHR=1\"> ... notwendigen Reboot durchführen</a>"\
: "";;\
my $show = "$amp" eq "gelb" \
? "<a href=\"/fhem?cmd.dummy=set $name x_update&XHR=1\">".FW_makeImage("10px-kreis-".$amp)."</a>" \
: "<a href=\"http://".ReadingsVal($name,"wifi_sta_ip","none")." \"target=\"_blank\">".FW_makeImage("10px-kreis-".$amp)."</a>";;\
"<div> $show <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\"></a>".FW_makeImage($pic)." $reb</div>" \
}
attr MQTT2_shellyplus2pm_441793a7c6a0 devicetopic shellyplus2pm-441793a7c6a0
attr MQTT2_shellyplus2pm_441793a7c6a0 event-on-change-reading state,online,new_fw,pct,sys_restart_required
attr MQTT2_shellyplus2pm_441793a7c6a0 genericDeviceType blind
attr MQTT2_shellyplus2pm_441793a7c6a0 group Rollo
attr MQTT2_shellyplus2pm_441793a7c6a0 jsonMap status_state:state status_current_pos:pct status_temperature_tC:chip_temperature
attr MQTT2_shellyplus2pm_441793a7c6a0 model 87Insane_shellyPlus_2pm_roller_invert_1
attr MQTT2_shellyplus2pm_441793a7c6a0 readingList $DEVICETOPIC/online:.* online\
  $DEVICETOPIC/status/mqtt:.* { json2nameValue($EVENT, 'mqtt_', $JSONMAP) }\
  $DEVICETOPIC/status/sys:.* { json2nameValue($EVENT, 'sys_', $JSONMAP) }\
  $DEVICETOPIC/status/cover_0:.* { $EVENT =~ s/(opening)/down/g;; $EVENT =~ s/(closing)/up/g;; $EVENT =~ s/(closed)/unlocked/g;; $EVENT =~ s/(open)/locked/g;; json2nameValue($EVENT, 'status_', $JSONMAP) }\
  $DEVICETOPIC/events/rpc:.* {}\
  $DEVICETOPIC/status/cloud:.* { json2nameValue($EVENT) }\
  $DEVICETOPIC/status:.* {}\
  $DEVICETOPIC/status/ble:.* { json2nameValue($EVENT, 'ble_', $JSONMAP) }\
  $DEVICETOPIC/status/wifi:.* { json2nameValue($EVENT, 'wifi_', $JSONMAP) }\
  $DEVICETOPIC/status/ws:.* { json2nameValue($EVENT, 'ws_', $JSONMAP) }\
shellyplus2pm_441793a7c6a0:shellyplus2pm-441793a7c6a0/status/input_0:.* { json2nameValue($EVENT) }\
shellyplus2pm_441793a7c6a0:shellyplus2pm-441793a7c6a0/status/input_1:.* { json2nameValue($EVENT) }
attr MQTT2_shellyplus2pm_441793a7c6a0 room 1. Dashboard,OG Kinderzimmer 1
attr MQTT2_shellyplus2pm_441793a7c6a0 setList close:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.Open","params": {"id":0}}\
  open:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.Close","params": {"id":0}}\
  half:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.GoToPosition","params": {"id":0,"pos":50}}\
  stop:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.Stop","params": {"id":0}}\
  pct:slider,0,1,100 $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.GoToPosition","params": {"id":0,"pos":$EVTPART1}}\
  x_status_update:noArg $DEVICETOPIC/command status_update\
  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}}}}
attr MQTT2_shellyplus2pm_441793a7c6a0 setStateList open close half stop pct
attr MQTT2_shellyplus2pm_441793a7c6a0 webCmd :open:close:half:stop:pct


yoho

Zitat von: Beta-User am 27 September 2023, 08:33:10
Zitat von: yoho am 26 September 2023, 19:20:28Hallo Zusammen,
ich traue mich auch mal etwas beizutragen. Beim Benutzen des split-Templates stört mich der Typo bei "on-for-timer" im ersten Kanal. Im Template müsste es m. E. so heißen:
on-for-timer $\DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true,"toggle_after":$EVTPART1}}\anstelle von:
on-for-timer $\DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":1,"on":true,"toggle_after":$EVTPART1}}\Das gleiche gilt wohl auch für "off-for-timer". Ich habe eben ein fhem-Update durchgeführt. Das Template scheint diesbezüglich fehlerhaft zu sein. Ich habe die setlist bei mir von Hand korrigiert, aber evtl. hilft es ja hier.
Viele Grüße
Danke für die Info, das war immer etwas nebulös, kommt mir aber logisch vor.
Fix ist im svn.
Vielen Dank!
FHEM auf Debian Bookworm

uron

#58
Ich komme mit der Installation meines neuen Shelly Plus 2PM als Rollladenschalter auch nach Lesen der Beiträge nicht klar:
Zunächst die Info, dass ich das Rollo über die App steuern kann, eine ordnungsgemäße Verbindung steht also.

Nun zur FHEM-Integration und dem list
Internals:
   DEF        192.168.2.171
   FUUID      65323e84-f33f-aab4-9081-68dac3f93798e562
   INTERVAL   40
   NAME       EG_Rollo_Gaeste_WC_R
   NR         1422
   STATE      pct
   TCPIP      192.168.2.171
   TYPE       Shelly
   eventCount 9
   OLDREADINGS:
   READINGS:
     2023-10-20 11:26:59   network         <html>connected to <a href="http://192.168.2.171">192.168.2.171</a></html>
     2023-10-20 11:51:37   state           Error
Attributes:
   alias      EG_Rollo_Gaeste_WC_R
   devStateIcon 100:fts_shutter_10@green 0:fts_shutter_100@black
   event-on-change-reading inttemp:2
   eventMap   open:öffnen closed:schließen
   icon       shutter_4
   interval   40
   maxtime    20
   mode       roller
   model      shelly2.5
   room       Favourites,Gäste-WC,Shelly-Devices
   stateFormat pct
   timeout    10
   verbose    3
   webCmd     öffnen:schließen:stop
Im Reading state fällt natürlich direkt "Error" auf.
Wenn ich den Rollladen per FHEM starte, entpuppt sich der Fehler als
Error: roller blind EG_Rollo_Gaeste_WC_R still moving, wait for some time
Als Modell habe ich "shelly2.5" eingetragen, ein "shelly2PM" ist ja nicht in der Modell-Auswahlliste enthalten.
Die Konfiguration entspricht genau der eines weiteren Rollladenmotors, der jedoch über einen Shelly 2.5 angesteuert wird.

Kann mir jemand weiterhelfen?
Raspberry Pi  fhem  FHEMobile  CUL  FS20-, HM-, Intertechno-, AVM- und Shelly-Aktoren, Vitoconnect 100, Vitocal 200-S, Optolink, FTUI auf iPad, FTUI auf iPhone, Stromzähler von Powerfox, Wechselrichter Growatt MIN 4600 TL-XH, RasPi ioBroker

Beta-User

Zitat von: uron am 20 Oktober 2023, 13:06:11Ich komme mit der Installation meines neuen Shelly Plus 2PM
[...]
Kann mir jemand weiterhelfen?
Für die "Plus"-Modelle musst du ein gepatchtes Shelly-Modul verwenden, bitte den support-Thread dazu konsultieren.
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

flummy1978

Zitat von: Beta-User am 21 Oktober 2023, 12:13:27Für die "Plus"-Modelle musst du ein gepatchtes Shelly-Modul verwenden, bitte den support-Thread dazu konsultieren.

Welchen support Thread meinst Du damit? (vielleicht komme ich ja hier weiter)

Dennoch habe ich eine Frage zu shellyplus2pm, vielleicht isses ja nur ne Kleinigkeit....

Ich hab ein entsprechendes Teil eingebunden und habe beim ersten Kanal immerwieder die Problematik, dass dort manchmal als State "false" statt on / off angezeigt wird. Da ich auch versuche das ein wenig zu verstehen:

DEVICETOPIC/events/rpc:.* { return if $EVENT =~ m{switch:[1-3]}; $EVENT =~ s/"output":true/"state":"on"/g; $EVENT =~ s/"output":false/"state":"off"/g; json2nameValue($EVENT,'',$JSONMAP) }
Die entsprechende Stelle scheint diese hier zu sein - wofür steht hier der Teil  $EVENT =~ m{switch:[1-3]}; ?
Wenn ich nun in meinen Readings nach online schaue, "scheint" es so als würde dort immer der richtige Zustand stehen (unabhängig vom zweiten Kanal)
Das Reading output steht hingegen auf true - würde also die richtige Rückmeldung geben?

List vom betroffenen Gerät (CH1)
define dev_OG_BUE_PC1 MQTT2_DEVICE shellyplus2pm_xxxxxxxx
attr dev_OG_BUE_PC1 DbLogExclude .*
attr dev_OG_BUE_PC1 alias PC Andreas
attr dev_OG_BUE_PC1 autocreate 1
attr dev_OG_BUE_PC1 comment Channel 1 for MQTT2_shellyplus2pm_xxxxxxxx, see also MQTT2_shellyplus2pm_xxxxxxxx_CH2
attr dev_OG_BUE_PC1 devStateIcon off:it_pc@green:on false:it_pc@green:on on:it_pc@red:off
attr dev_OG_BUE_PC1 devicetopic shellyplus2pm-xxxxxxxx
attr dev_OG_BUE_PC1 event-on-change-reading params_switch_0_aenergy_by_minute_3:1500,params_kwh_.,params_kwh_.,zaehler_.:1500,state
attr dev_OG_BUE_PC1 getList in_mode:noArg in_mode $DEVICETOPIC/rpc {"id": 1,"src":"$DEVICETOPIC", "method": "Switch.GetConfig", "params": {"id": 0}}
attr dev_OG_BUE_PC1 group Geräte
attr dev_OG_BUE_PC1 icon it_pc
attr dev_OG_BUE_PC1 jsonMap params_switch_0_state:state params_switch_0_aenergy_total:aenergy_total params_switch_0_apower:apower params_switch_0_temperature_tC:temperature params_switch_0_temperature_tF:0 params_wifi_sta_ip:ip temperature_tC:temperature temperature_tF:0
attr dev_OG_BUE_PC1 model shellyPlus_2pm_split
attr dev_OG_BUE_PC1 readingList $DEVICETOPIC/online:.* online\
  $DEVICETOPIC/events/rpc:.* { return if $EVENT =~ m{switch:[1-3]};; $EVENT =~ s/"output":true/"state":"on"/g;; $EVENT =~ s/"output":false/"state":"off"/g;; json2nameValue($EVENT,'',$JSONMAP) }\
  $DEVICETOPIC/status/switch.0:.* { json2nameValue($EVENT, '', $JSONMAP) }\
  $DEVICETOPIC/status/mqtt:.* { json2nameValue($EVENT, '', $JSONMAP) }\
  fhem2shelly/rpc:.* {}\
shellyplus2pm_xxxxxxxx:shellyplus2pm-xxxxxxxx/status/sys:.* { json2nameValue($EVENT) }\
shellyplus2pm_xxxxxxxx:shellyplus2pm-xxxxxxxx/status/ble:.* ble\
shellyplus2pm_xxxxxxxx:shellyplus2pm-xxxxxxxx/status/cloud:.* { json2nameValue($EVENT) }\
shellyplus2pm_xxxxxxxx:shellyplus2pm-xxxxxxxx/status/input_0:.* { json2nameValue($EVENT) }\
shellyplus2pm_xxxxxxxx:shellyplus2pm-xxxxxxxx/status/input_1:.* { json2nameValue($EVENT) }\
shellyplus2pm_xxxxxxxx:shellyplus2pm-xxxxxxxx/status/wifi:.* { json2nameValue($EVENT) }\
shellyplus2pm_xxxxxxxx:shellyplus2pm-xxxxxxxx/status/ws:.* { json2nameValue($EVENT) }
attr dev_OG_BUE_PC1 room Büro / Gäste
attr dev_OG_BUE_PC1 setList toggle:noArg $DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Toggle","params": {"id":0}}\
  off:noArg $DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":false}}\
  on:noArg $DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true}}\
  on-for-timer $DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":1,"on":true,"toggle_after":$EVTPART1}}\
  off-for-timer $DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":1,"on":false,"toggle_after":$EVTPART1}}\
  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"}
attr dev_OG_BUE_PC1 userReadings zaehler_0 monotonic {  ReadingsVal($NAME,"aenergy_total",0)},\
params_wifi_rssi {  ReadingsVal($NAME,"rssi",0)}
attr dev_OG_BUE_PC1 verbose 2
attr dev_OG_BUE_PC1 webCmd :
#   CFGFN     
#   CID        shellyplus2pm_xxxxxxxx
#   DEF        shellyplus2pm_xxxxxxxx
#   FUUID      659ea40a-f33f-6adc-84f5-af14bb996af1af02
#   IODev      brok_MQTT2
#   LASTInputDev brok_MQTT2
#   MSGCNT     67295
#   NAME       dev_OG_BUE_PC1
#   NR         136222
#   STATE      false
#   TYPE       MQTT2_DEVICE
#   brok_MQTT2_CONN brok_MQTT2_192.168.50.154_54538
#   brok_MQTT2_MSGCNT 67295
#   brok_MQTT2_TIME 2024-01-11 13:45:28
#   eventCount 10
#   JSONMAP:
#     params_switch_0_aenergy_total aenergy_total
#     params_switch_0_apower apower
#     params_switch_0_state state
#     params_switch_0_temperature_tC temperature
#     params_switch_0_temperature_tF 0
#     params_wifi_sta_ip ip
#     temperature_tC temperature
#     temperature_tF 0
#   READINGS:
#     2024-01-10 15:05:07   IODev           brok_MQTT2
#     2024-01-11 13:45:27   aenergy_by_minute_1 762.511
#     2024-01-11 13:45:27   aenergy_by_minute_2 1688.128
#     2024-01-11 13:45:27   aenergy_by_minute_3 1691.733
#     2024-01-11 13:45:27   aenergy_minute_ts 1704977126
#     2024-01-11 13:45:27   aenergy_total   168714.496
#     2024-01-11 13:45:27   apower          96.7
#     2023-02-02 12:55:36   associatedWith  dev_OG_BUE_PC2
#     2023-02-02 12:53:46   attrTemplateVersion 20230111
#     2023-12-20 03:10:31   available_updates_beta_version 1.0.7-beta1
#     2023-12-21 11:50:26   available_updates_stable_version 1.1.0
#     2023-02-23 10:34:04   battery         plug
#     2024-01-11 13:36:35   ble             {}
#     2024-01-11 13:36:35   cfg_rev         43
#     2024-01-11 13:36:35   connected       true
#     2024-01-11 13:45:27   current         0.462
#     2024-01-11 13:45:28   dst             shellyplus2pm-xxxxxxxx/events
#     2024-01-11 13:45:27   freq            50.0
#     2024-01-11 13:36:35   fs_free         131072
#     2024-01-11 13:36:35   fs_size         458752
#     2024-01-11 13:45:27   id              0
#     2024-01-11 13:36:35   kvs_rev         3
#     2024-01-11 13:36:35   mac             xxxxxxxx
#     2024-01-11 13:45:28   method          NotifyStatus
#     2023-11-20 09:46:58   on              set
#     2024-01-11 13:36:35   online          true
#     2024-01-11 13:45:27   output          true
#     2023-12-21 11:50:26   params_events_1_cfg_rev 41
#     2024-01-11 13:31:57   params_events_1_component sys
#     2024-01-11 13:31:57   params_events_1_event scheduled_restart
#     2023-12-21 11:50:26   params_events_1_msg success
#     2023-12-21 11:50:24   params_events_1_progress_percent 98
#     2023-12-21 11:50:26   params_events_1_restart_required false
#     2024-01-11 13:31:57   params_events_1_time_ms 996
#     2024-01-11 13:31:57   params_events_1_ts 1704976317.91
#     2024-01-06 18:47:59   params_input_1_id 1
#     2024-01-06 18:47:59   params_input_1_state false
#     2023-02-03 23:22:10   params_kwh_0    0.000
#     2024-01-11 13:36:35   params_mqtt_connected true
#     2024-01-11 13:45:02   params_switch_0_aenergy_by_minute_1 1688.128
#     2024-01-11 13:45:02   params_switch_0_aenergy_by_minute_2 1691.733
#     2024-01-11 13:45:02   params_switch_0_aenergy_by_minute_3 1715.939
#     2024-01-11 13:45:02   params_switch_0_aenergy_minute_ts 1704977099
#     2024-01-11 13:45:28   params_switch_0_current 0.462
#     2024-01-11 13:45:28   params_switch_0_id 0
#     2024-01-11 02:54:28   params_switch_0_pf 0
#     2024-01-11 13:45:02   params_switch_0_ret_aenergy_by_minute_1 0.000
#     2024-01-11 13:45:02   params_switch_0_ret_aenergy_by_minute_2 0.000
#     2024-01-11 13:45:02   params_switch_0_ret_aenergy_by_minute_3 0.000
#     2024-01-11 13:45:02   params_switch_0_ret_aenergy_minute_ts 1704977099
#     2024-01-11 13:45:02   params_switch_0_ret_aenergy_total 0.000
#     2024-01-11 11:04:46   params_switch_0_source MQTT
#     2024-01-09 12:44:07   params_switch_0_voltage 237.1
#     2024-01-11 13:33:02   params_switch_1_aenergy_by_minute_1 2804.772
#     2024-01-11 13:33:02   params_switch_1_aenergy_by_minute_2 1474.886
#     2024-01-11 13:33:02   params_switch_1_aenergy_by_minute_3 1479.566
#     2024-01-11 13:33:02   params_switch_1_aenergy_minute_ts 1704976379
#     2024-01-11 13:33:02   params_switch_1_aenergy_total 26664.443
#     2024-01-11 13:33:29   params_switch_1_apower 67.5
#     2024-01-11 13:33:30   params_switch_1_current 0.337
#     2024-01-11 13:33:30   params_switch_1_id 1
#     2024-01-11 13:33:02   params_switch_1_ret_aenergy_by_minute_1 0.000
#     2024-01-11 13:33:02   params_switch_1_ret_aenergy_by_minute_2 0.000
#     2024-01-11 13:33:02   params_switch_1_ret_aenergy_by_minute_3 0.000
#     2024-01-11 13:33:02   params_switch_1_ret_aenergy_minute_ts 1704976379
#     2024-01-11 13:33:02   params_switch_1_ret_aenergy_total 0.005
#     2023-10-18 12:35:48   params_sys_available_updates_beta_version 1.0.7-beta1
#     2023-12-21 11:49:41   params_sys_available_updates_stable_version 1.1.0
#     2023-12-21 11:50:26   params_sys_cfg_rev 41
#     2024-01-11 13:45:28   params_ts       1704977127.74
#     2024-01-11 13:45:28   params_wifi_rssi -64
#     2024-01-11 13:45:27   pf              0.87
#     2024-01-11 13:36:35   ram_free        131904
#     2024-01-11 13:36:35   ram_size        244280
#     2024-01-11 13:36:35   reset_reason    3
#     2024-01-11 13:36:35   restart_required false
#     2024-01-11 13:45:27   ret_aenergy_by_minute_1 0.000
#     2024-01-11 13:45:27   ret_aenergy_by_minute_2 0.000
#     2024-01-11 13:45:27   ret_aenergy_by_minute_3 0.000
#     2024-01-11 13:45:27   ret_aenergy_minute_ts 1704977126
#     2024-01-11 13:45:27   ret_aenergy_total 0.000
#     2024-01-11 13:36:35   rssi            -64
#     2024-01-11 13:36:35   schedule_rev    0
#     2024-01-11 13:45:27   source          init
#     2024-01-11 13:45:28   src             shellyplus2pm-xxxxxxxx
#     2024-01-11 13:36:35   ssid            FlummyDev50
#     2024-01-11 13:36:35   sta_ip          192.168.50.154
#     2024-01-11 13:36:35   state           false
#     2024-01-11 13:36:35   status          got ip
#     2024-01-11 13:45:27   temperature     60.1
#     2024-01-10 15:05:01   temperature_tC  53.6
#     2024-01-10 15:05:01   temperature_tF  128.5
#     2024-01-11 13:36:35   time            13:36
#     2024-01-11 13:36:35   unixtime        1704976594
#     2024-01-11 13:36:35   uptime          275
#     2024-01-11 13:45:27   voltage         236.9
#     2024-01-11 13:36:35   webhook_rev     0
#     2023-02-02 12:53:45   x_reboot        set
#     2024-01-11 13:45:28   zaehler_0       309160.290000001
#
setstate dev_OG_BUE_PC1 false
setstate dev_OG_BUE_PC1 2024-01-10 15:05:07 IODev brok_MQTT2
setstate dev_OG_BUE_PC1 2024-01-11 13:45:27 aenergy_by_minute_1 762.511
setstate dev_OG_BUE_PC1 2024-01-11 13:45:27 aenergy_by_minute_2 1688.128
setstate dev_OG_BUE_PC1 2024-01-11 13:45:27 aenergy_by_minute_3 1691.733
setstate dev_OG_BUE_PC1 2024-01-11 13:45:27 aenergy_minute_ts 1704977126
setstate dev_OG_BUE_PC1 2024-01-11 13:45:27 aenergy_total 168714.496
setstate dev_OG_BUE_PC1 2024-01-11 13:45:27 apower 96.7
setstate dev_OG_BUE_PC1 2023-02-02 12:55:36 associatedWith dev_OG_BUE_PC2
setstate dev_OG_BUE_PC1 2023-02-02 12:53:46 attrTemplateVersion 20230111
setstate dev_OG_BUE_PC1 2023-12-20 03:10:31 available_updates_beta_version 1.0.7-beta1
setstate dev_OG_BUE_PC1 2023-12-21 11:50:26 available_updates_stable_version 1.1.0
setstate dev_OG_BUE_PC1 2023-02-23 10:34:04 battery plug
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 ble {}
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 cfg_rev 43
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 connected true
setstate dev_OG_BUE_PC1 2024-01-11 13:45:27 current 0.462
setstate dev_OG_BUE_PC1 2024-01-11 13:45:28 dst shellyplus2pm-xxxxxxxx/events
setstate dev_OG_BUE_PC1 2024-01-11 13:45:27 freq 50.0
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 fs_free 131072
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 fs_size 458752
setstate dev_OG_BUE_PC1 2024-01-11 13:45:27 id 0
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 kvs_rev 3
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 mac xxxxxxxx
setstate dev_OG_BUE_PC1 2024-01-11 13:45:28 method NotifyStatus
setstate dev_OG_BUE_PC1 2023-11-20 09:46:58 on set
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 online true
setstate dev_OG_BUE_PC1 2024-01-11 13:45:27 output true
setstate dev_OG_BUE_PC1 2023-12-21 11:50:26 params_events_1_cfg_rev 41
setstate dev_OG_BUE_PC1 2024-01-11 13:31:57 params_events_1_component sys
setstate dev_OG_BUE_PC1 2024-01-11 13:31:57 params_events_1_event scheduled_restart
setstate dev_OG_BUE_PC1 2023-12-21 11:50:26 params_events_1_msg success
setstate dev_OG_BUE_PC1 2023-12-21 11:50:24 params_events_1_progress_percent 98
setstate dev_OG_BUE_PC1 2023-12-21 11:50:26 params_events_1_restart_required false
setstate dev_OG_BUE_PC1 2024-01-11 13:31:57 params_events_1_time_ms 996
setstate dev_OG_BUE_PC1 2024-01-11 13:31:57 params_events_1_ts 1704976317.91
setstate dev_OG_BUE_PC1 2024-01-06 18:47:59 params_input_1_id 1
setstate dev_OG_BUE_PC1 2024-01-06 18:47:59 params_input_1_state false
setstate dev_OG_BUE_PC1 2023-02-03 23:22:10 params_kwh_0 0.000
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 params_mqtt_connected true
setstate dev_OG_BUE_PC1 2024-01-11 13:45:02 params_switch_0_aenergy_by_minute_1 1688.128
setstate dev_OG_BUE_PC1 2024-01-11 13:45:02 params_switch_0_aenergy_by_minute_2 1691.733
setstate dev_OG_BUE_PC1 2024-01-11 13:45:02 params_switch_0_aenergy_by_minute_3 1715.939
setstate dev_OG_BUE_PC1 2024-01-11 13:45:02 params_switch_0_aenergy_minute_ts 1704977099
setstate dev_OG_BUE_PC1 2024-01-11 13:45:28 params_switch_0_current 0.462
setstate dev_OG_BUE_PC1 2024-01-11 13:45:28 params_switch_0_id 0
setstate dev_OG_BUE_PC1 2024-01-11 02:54:28 params_switch_0_pf 0
setstate dev_OG_BUE_PC1 2024-01-11 13:45:02 params_switch_0_ret_aenergy_by_minute_1 0.000
setstate dev_OG_BUE_PC1 2024-01-11 13:45:02 params_switch_0_ret_aenergy_by_minute_2 0.000
setstate dev_OG_BUE_PC1 2024-01-11 13:45:02 params_switch_0_ret_aenergy_by_minute_3 0.000
setstate dev_OG_BUE_PC1 2024-01-11 13:45:02 params_switch_0_ret_aenergy_minute_ts 1704977099
setstate dev_OG_BUE_PC1 2024-01-11 13:45:02 params_switch_0_ret_aenergy_total 0.000
setstate dev_OG_BUE_PC1 2024-01-11 11:04:46 params_switch_0_source MQTT
setstate dev_OG_BUE_PC1 2024-01-09 12:44:07 params_switch_0_voltage 237.1
setstate dev_OG_BUE_PC1 2024-01-11 13:33:02 params_switch_1_aenergy_by_minute_1 2804.772
setstate dev_OG_BUE_PC1 2024-01-11 13:33:02 params_switch_1_aenergy_by_minute_2 1474.886
setstate dev_OG_BUE_PC1 2024-01-11 13:33:02 params_switch_1_aenergy_by_minute_3 1479.566
setstate dev_OG_BUE_PC1 2024-01-11 13:33:02 params_switch_1_aenergy_minute_ts 1704976379
setstate dev_OG_BUE_PC1 2024-01-11 13:33:02 params_switch_1_aenergy_total 26664.443
setstate dev_OG_BUE_PC1 2024-01-11 13:33:29 params_switch_1_apower 67.5
setstate dev_OG_BUE_PC1 2024-01-11 13:33:30 params_switch_1_current 0.337
setstate dev_OG_BUE_PC1 2024-01-11 13:33:30 params_switch_1_id 1
setstate dev_OG_BUE_PC1 2024-01-11 13:33:02 params_switch_1_ret_aenergy_by_minute_1 0.000
setstate dev_OG_BUE_PC1 2024-01-11 13:33:02 params_switch_1_ret_aenergy_by_minute_2 0.000
setstate dev_OG_BUE_PC1 2024-01-11 13:33:02 params_switch_1_ret_aenergy_by_minute_3 0.000
setstate dev_OG_BUE_PC1 2024-01-11 13:33:02 params_switch_1_ret_aenergy_minute_ts 1704976379
setstate dev_OG_BUE_PC1 2024-01-11 13:33:02 params_switch_1_ret_aenergy_total 0.005
setstate dev_OG_BUE_PC1 2023-10-18 12:35:48 params_sys_available_updates_beta_version 1.0.7-beta1
setstate dev_OG_BUE_PC1 2023-12-21 11:49:41 params_sys_available_updates_stable_version 1.1.0
setstate dev_OG_BUE_PC1 2023-12-21 11:50:26 params_sys_cfg_rev 41
setstate dev_OG_BUE_PC1 2024-01-11 13:45:28 params_ts 1704977127.74
setstate dev_OG_BUE_PC1 2024-01-11 13:45:28 params_wifi_rssi -64
setstate dev_OG_BUE_PC1 2024-01-11 13:45:27 pf 0.87
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 ram_free 131904
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 ram_size 244280
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 reset_reason 3
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 restart_required false
setstate dev_OG_BUE_PC1 2024-01-11 13:45:27 ret_aenergy_by_minute_1 0.000
setstate dev_OG_BUE_PC1 2024-01-11 13:45:27 ret_aenergy_by_minute_2 0.000
setstate dev_OG_BUE_PC1 2024-01-11 13:45:27 ret_aenergy_by_minute_3 0.000
setstate dev_OG_BUE_PC1 2024-01-11 13:45:27 ret_aenergy_minute_ts 1704977126
setstate dev_OG_BUE_PC1 2024-01-11 13:45:27 ret_aenergy_total 0.000
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 rssi -64
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 schedule_rev 0
setstate dev_OG_BUE_PC1 2024-01-11 13:45:27 source init
setstate dev_OG_BUE_PC1 2024-01-11 13:45:28 src shellyplus2pm-xxxxxxxx
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 ssid FlummyDev50
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 sta_ip 192.168.50.154
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 state false
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 status got ip
setstate dev_OG_BUE_PC1 2024-01-11 13:45:27 temperature 60.1
setstate dev_OG_BUE_PC1 2024-01-10 15:05:01 temperature_tC 53.6
setstate dev_OG_BUE_PC1 2024-01-10 15:05:01 temperature_tF 128.5
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 time 13:36
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 unixtime 1704976594
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 uptime 275
setstate dev_OG_BUE_PC1 2024-01-11 13:45:27 voltage 236.9
setstate dev_OG_BUE_PC1 2024-01-11 13:36:35 webhook_rev 0
setstate dev_OG_BUE_PC1 2023-02-02 12:53:45 x_reboot set
setstate dev_OG_BUE_PC1 2024-01-11 13:45:28 zaehler_0 309160.290000001


CH2
define dev_OG_BUE_PC2 MQTT2_DEVICE
attr dev_OG_BUE_PC2 DbLogExclude .*
attr dev_OG_BUE_PC2 IODev brok_MQTT2
attr dev_OG_BUE_PC2 alias PC Yvonne
attr dev_OG_BUE_PC2 autocreate 1
attr dev_OG_BUE_PC2 comment Channel 2 for MQTT2_shellyplus2pm_xxxxxxxx
attr dev_OG_BUE_PC2 devStateIcon off:it_pc@green:on false:it_pc@green:on on:it_pc@red:off
attr dev_OG_BUE_PC2 devicetopic shellyplus2pm-xxxxxxxx
attr dev_OG_BUE_PC2 event-on-change-reading aenergy_by_minute_.:50,state,apower:10,aenergy_total:50
attr dev_OG_BUE_PC2 getList in_mode:noArg in_mode $DEVICETOPIC/rpc {"id": 1,"src":"$DEVICETOPIC", "method": "Switch.GetConfig", "params": {"id": 0}}
attr dev_OG_BUE_PC2 group Geräte
attr dev_OG_BUE_PC2 icon it_pc
attr dev_OG_BUE_PC2 jsonMap params_switch_1_state:state params_switch_1_aenergy_total:aenergy_total params_switch_1_apower:apower params_switch_1_temperature_tC:temperature params_switch_1_temperature_tF:0 temperature_tC:temperature temperature_tF:0
attr dev_OG_BUE_PC2 model shellyPlus_2pm_split
attr dev_OG_BUE_PC2 readingList $DEVICETOPIC/events/rpc:.* { return if $EVENT !~ m{switch:1};; $EVENT =~ s/"output":true/"state":"on"/g;; $EVENT =~ s/"output":false/"state":"off"/g;; json2nameValue($EVENT,'',$JSONMAP) }\
  $DEVICETOPIC/status/switch.1:.* { json2nameValue($EVENT, '', $JSONMAP) }\
shellyplus2pm_xxxxxxxx:shellyplus2pm-xxxxxxxx/status/sys:.* { json2nameValue($EVENT) }
attr dev_OG_BUE_PC2 room Büro / Gäste
attr dev_OG_BUE_PC2 setList toggle:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Toggle","params": {"id":1}}\
  off:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":1,"on":false}}\
  on:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":1,"on":true}}\
  on-for-timer $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":1,"on":true,"toggle_after":$EVTPART1}}\
  off-for-timer $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":1,"on":false,"toggle_after":$EVTPART1}}
attr dev_OG_BUE_PC2 userReadings online { ReadingsVal("dev_OG_BUE_PC1","online",0)}
attr dev_OG_BUE_PC2 verbose 2
attr dev_OG_BUE_PC2 webCmd :
#   CFGFN     
#   DEF       
#   FUUID      659ea40f-f33f-6adc-0782-f081446f26a91dd5
#   IODev      brok_MQTT2
#   LASTInputDev brok_MQTT2
#   MSGCNT     38685
#   NAME       dev_OG_BUE_PC2
#   NR         136223
#   STATE      on
#   TYPE       MQTT2_DEVICE
#   brok_MQTT2_CONN brok_MQTT2_192.168.50.154_54538
#   brok_MQTT2_MSGCNT 38685
#   brok_MQTT2_TIME 2024-01-11 13:46:44
#   eventCount 1096
#   JSONMAP:
#     params_switch_1_aenergy_total aenergy_total
#     params_switch_1_apower apower
#     params_switch_1_state state
#     params_switch_1_temperature_tC temperature
#     params_switch_1_temperature_tF 0
#     temperature_tC temperature
#     temperature_tF 0
#   READINGS:
#     2024-01-10 15:05:10   IODev           brok_MQTT2
#     2024-01-11 13:46:02   aenergy_by_minute_1 1266.379
#     2024-01-11 13:46:02   aenergy_by_minute_2 1352.803
#     2024-01-11 13:46:02   aenergy_by_minute_3 1541.680
#     2024-01-11 13:46:02   aenergy_minute_ts 1704977159
#     2024-01-11 13:46:02   aenergy_total   26682.048
#     2024-01-11 13:46:02   apower          79.5
#     2023-02-02 12:55:31   associatedWith  dev_OG_BUE_PC1
#     2023-02-02 12:53:46   attrTemplateVersion 20230111
#     2023-12-20 03:10:31   available_updates_beta_version 1.0.7-beta1
#     2023-12-21 11:50:26   available_updates_stable_version 1.1.0
#     2023-02-23 10:34:04   battery         plug
#     2024-01-11 13:36:35   cfg_rev         43
#     2024-01-11 13:46:02   current         0.387
#     2024-01-11 13:46:02   dst             shellyplus2pm-xxxxxxxx/events
#     2024-01-11 13:46:02   freq            50.0
#     2024-01-11 13:36:35   fs_free         131072
#     2024-01-11 13:36:35   fs_size         458752
#     2024-01-11 13:46:02   id              1
#     2024-01-11 13:36:35   kvs_rev         3
#     2024-01-11 13:36:35   mac             xxxxxxxx
#     2024-01-11 13:46:02   method          NotifyStatus
#     2024-01-11 13:46:02   online          true
#     2024-01-11 13:46:02   output          true
#     2024-01-11 13:36:35   params_cloud_connected false
#     2024-01-11 13:36:35   params_input_0_id 0
#     2024-01-11 13:36:35   params_input_0_state false
#     2024-01-11 13:36:35   params_input_1_id 1
#     2024-01-11 13:36:35   params_input_1_state false
#     2024-01-11 13:36:35   params_mqtt_connected true
#     2024-01-11 13:36:35   params_switch_0_aenergy_by_minute_1 969.128
#     2024-01-11 13:36:35   params_switch_0_aenergy_by_minute_2 1715.038
#     2024-01-11 13:36:35   params_switch_0_aenergy_by_minute_3 1743.197
#     2024-01-11 13:36:35   params_switch_0_aenergy_minute_ts 1704976593
#     2024-01-11 13:36:35   params_switch_0_aenergy_total 168699.238
#     2024-01-11 13:36:35   params_switch_0_apower 92.1
#     2024-01-11 13:36:35   params_switch_0_current 0.456
#     2024-01-11 13:36:35   params_switch_0_freq 50.0
#     2024-01-11 13:36:35   params_switch_0_id 0
#     2024-01-11 13:36:35   params_switch_0_pf 0.86
#     2024-01-11 13:36:35   params_switch_0_ret_aenergy_by_minute_1 0.000
#     2024-01-11 13:36:35   params_switch_0_ret_aenergy_by_minute_2 0.000
#     2024-01-11 13:36:35   params_switch_0_ret_aenergy_by_minute_3 0.000
#     2024-01-11 13:36:35   params_switch_0_ret_aenergy_minute_ts 1704976593
#     2024-01-11 13:36:35   params_switch_0_ret_aenergy_total 0.000
#     2024-01-11 13:36:35   params_switch_0_source init
#     2024-01-11 13:36:35   params_switch_0_state on
#     2024-01-11 13:36:35   params_switch_0_temperature_tC 59.6
#     2024-01-11 13:36:35   params_switch_0_temperature_tF 139.3
#     2024-01-11 13:36:35   params_switch_0_voltage 238.0
#     2024-01-11 13:46:02   params_switch_1_aenergy_by_minute_1 1266.379
#     2024-01-11 13:46:02   params_switch_1_aenergy_by_minute_2 1352.803
#     2024-01-11 13:46:02   params_switch_1_aenergy_by_minute_3 1541.680
#     2024-01-11 13:46:02   params_switch_1_aenergy_minute_ts 1704977159
#     2024-01-11 13:46:02   params_switch_1_current 0.387
#     2024-01-11 13:36:35   params_switch_1_freq 50.0
#     2024-01-11 13:46:02   params_switch_1_id 1
#     2024-01-11 13:36:35   params_switch_1_pf 0.86
#     2024-01-11 13:46:02   params_switch_1_ret_aenergy_by_minute_1 0.000
#     2024-01-11 13:46:02   params_switch_1_ret_aenergy_by_minute_2 0.000
#     2024-01-11 13:46:02   params_switch_1_ret_aenergy_by_minute_3 0.000
#     2024-01-11 13:46:02   params_switch_1_ret_aenergy_minute_ts 1704977159
#     2024-01-11 13:46:02   params_switch_1_ret_aenergy_total 0.005
#     2024-01-11 13:36:35   params_switch_1_source init
#     2024-01-11 13:36:35   params_switch_1_voltage 238.1
#     2023-12-20 03:10:31   params_sys_available_updates_beta_version 1.0.7-beta1
#     2024-01-11 13:36:35   params_sys_cfg_rev 43
#     2024-01-11 13:36:35   params_sys_fs_free 131072
#     2024-01-11 13:36:35   params_sys_fs_size 458752
#     2024-01-11 13:36:35   params_sys_kvs_rev 3
#     2024-01-11 13:36:35   params_sys_mac  xxxxxxxx
#     2024-01-11 13:36:35   params_sys_ram_free 133572
#     2024-01-11 13:36:35   params_sys_ram_size 244364
#     2024-01-11 13:36:35   params_sys_reset_reason 3
#     2024-01-11 13:36:35   params_sys_restart_required false
#     2024-01-11 13:36:35   params_sys_schedule_rev 0
#     2024-01-11 13:36:35   params_sys_time 13:36
#     2024-01-11 13:36:35   params_sys_unixtime 1704976594
#     2024-01-11 13:36:35   params_sys_uptime 275
#     2024-01-11 13:36:35   params_sys_webhook_rev 0
#     2024-01-11 13:46:02   params_ts       1704977160.75
#     2024-01-11 13:36:35   params_wifi_rssi -64
#     2024-01-11 13:36:35   params_wifi_ssid FlummyDev50
#     2024-01-11 13:36:35   params_wifi_sta_ip 192.168.50.154
#     2024-01-11 13:36:35   params_wifi_status got ip
#     2024-01-11 13:36:35   params_ws_connected false
#     2024-01-11 13:46:02   pf              0.85
#     2024-01-11 13:36:35   ram_free        131904
#     2024-01-11 13:36:35   ram_size        244280
#     2024-01-11 13:36:35   reset_reason    3
#     2024-01-11 13:36:35   restart_required false
#     2024-01-11 13:46:02   ret_aenergy_by_minute_1 0.000
#     2024-01-11 13:46:02   ret_aenergy_by_minute_2 0.000
#     2024-01-11 13:46:02   ret_aenergy_by_minute_3 0.000
#     2024-01-11 13:46:02   ret_aenergy_minute_ts 1704977159
#     2024-01-11 13:46:02   ret_aenergy_total 0.005
#     2024-01-11 13:36:35   schedule_rev    0
#     2024-01-11 13:46:02   source          init
#     2024-01-11 13:46:02   src             shellyplus2pm-xxxxxxxx
#     2024-01-11 13:36:35   state           on
#     2024-01-11 13:46:02   temperature     59.8
#     2024-01-11 13:36:35   time            13:36
#     2024-01-11 13:36:35   unixtime        1704976594
#     2024-01-11 13:36:35   uptime          275
#     2024-01-11 13:46:02   voltage         237.2
#     2024-01-11 13:36:35   webhook_rev     0
#
setstate dev_OG_BUE_PC2 on
setstate dev_OG_BUE_PC2 2024-01-10 15:05:10 IODev brok_MQTT2
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 aenergy_by_minute_1 1266.379
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 aenergy_by_minute_2 1352.803
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 aenergy_by_minute_3 1541.680
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 aenergy_minute_ts 1704977159
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 aenergy_total 26682.048
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 apower 79.5
setstate dev_OG_BUE_PC2 2023-02-02 12:55:31 associatedWith dev_OG_BUE_PC1
setstate dev_OG_BUE_PC2 2023-02-02 12:53:46 attrTemplateVersion 20230111
setstate dev_OG_BUE_PC2 2023-12-20 03:10:31 available_updates_beta_version 1.0.7-beta1
setstate dev_OG_BUE_PC2 2023-12-21 11:50:26 available_updates_stable_version 1.1.0
setstate dev_OG_BUE_PC2 2023-02-23 10:34:04 battery plug
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 cfg_rev 43
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 current 0.387
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 dst shellyplus2pm-xxxxxxxx/events
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 freq 50.0
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 fs_free 131072
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 fs_size 458752
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 id 1
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 kvs_rev 3
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 mac xxxxxxxx
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 method NotifyStatus
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 online true
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 output true
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_cloud_connected false
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_input_0_id 0
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_input_0_state false
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_input_1_id 1
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_input_1_state false
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_mqtt_connected true
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_0_aenergy_by_minute_1 969.128
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_0_aenergy_by_minute_2 1715.038
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_0_aenergy_by_minute_3 1743.197
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_0_aenergy_minute_ts 1704976593
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_0_aenergy_total 168699.238
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_0_apower 92.1
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_0_current 0.456
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_0_freq 50.0
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_0_id 0
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_0_pf 0.86
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_0_ret_aenergy_by_minute_1 0.000
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_0_ret_aenergy_by_minute_2 0.000
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_0_ret_aenergy_by_minute_3 0.000
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_0_ret_aenergy_minute_ts 1704976593
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_0_ret_aenergy_total 0.000
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_0_source init
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_0_state on
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_0_temperature_tC 59.6
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_0_temperature_tF 139.3
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_0_voltage 238.0
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 params_switch_1_aenergy_by_minute_1 1266.379
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 params_switch_1_aenergy_by_minute_2 1352.803
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 params_switch_1_aenergy_by_minute_3 1541.680
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 params_switch_1_aenergy_minute_ts 1704977159
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 params_switch_1_current 0.387
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_1_freq 50.0
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 params_switch_1_id 1
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_1_pf 0.86
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 params_switch_1_ret_aenergy_by_minute_1 0.000
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 params_switch_1_ret_aenergy_by_minute_2 0.000
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 params_switch_1_ret_aenergy_by_minute_3 0.000
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 params_switch_1_ret_aenergy_minute_ts 1704977159
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 params_switch_1_ret_aenergy_total 0.005
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_1_source init
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_switch_1_voltage 238.1
setstate dev_OG_BUE_PC2 2023-12-20 03:10:31 params_sys_available_updates_beta_version 1.0.7-beta1
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_sys_cfg_rev 43
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_sys_fs_free 131072
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_sys_fs_size 458752
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_sys_kvs_rev 3
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_sys_mac xxxxxxxx
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_sys_ram_free 133572
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_sys_ram_size 244364
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_sys_reset_reason 3
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_sys_restart_required false
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_sys_schedule_rev 0
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_sys_time 13:36
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_sys_unixtime 1704976594
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_sys_uptime 275
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_sys_webhook_rev 0
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 params_ts 1704977160.75
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_wifi_rssi -64
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_wifi_ssid FlummyDev50
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_wifi_sta_ip 192.168.50.154
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_wifi_status got ip
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 params_ws_connected false
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 pf 0.85
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 ram_free 131904
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 ram_size 244280
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 reset_reason 3
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 restart_required false
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 ret_aenergy_by_minute_1 0.000
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 ret_aenergy_by_minute_2 0.000
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 ret_aenergy_by_minute_3 0.000
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 ret_aenergy_minute_ts 1704977159
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 ret_aenergy_total 0.005
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 schedule_rev 0
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 source init
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 src shellyplus2pm-xxxxxxxx
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 state on
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 temperature 59.8
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 time 13:36
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 unixtime 1704976594
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 uptime 275
setstate dev_OG_BUE_PC2 2024-01-11 13:46:02 voltage 237.2
setstate dev_OG_BUE_PC2 2024-01-11 13:36:35 webhook_rev 0


Würde mich freuen, wenn mich jemand in die richtige Richtung schubsen könnte.

VG
Andreas

87insane

Hey super lange Beschreibung. Kannst du in 2 Sätzen sagen was dein Problem ist?

Gruß,
87Insane

flummy1978

Holla,
Zitat von: 87insane am 12 Januar 2024, 18:04:00Hey super lange Beschreibung. Kannst du in 2 Sätzen sagen was dein Problem ist?
Ist meist mein Problem, weil ich keine Infos unterschlagen möchte ;)  aber ich hab oben ja auch in einem Satz beschrieben:
ZitatIch hab ein entsprechendes Teil eingebunden und habe beim ersten Kanal immerwieder die Problematik, dass dort manchmal als state "false" statt on / off angezeigt wird.

Sprich der on / off status wird beim ersten Kanal gelegentlich nicht korrekt angezeigt

VG
Andreas

87insane

Das gelegentlich stört mich.. Entweder immer oder nie. Ich habe keine Lust dein komplettes Zeugs zu durchsuchen, daher frage ich nochmal expliziert, was das Problem ist. Soll auch nicht böse gemeint sein, aber ich habe alle mehrmals durchgelesen von dir und habe es einfach nicht verstanden. Du hast es an sich aber sehr gut, wie im Forum gewünscht aufgeschlüsselt.

Ich selber habe über 60 Shelly PLUS im Einsatz und dieses Problem nicht. Allerdings habe ich auch viel selber gebaut. Wenn ich es ggf etwas genauer verstehen würde...

TomLee

Hallo,

hab gar kein shellyplus-Device und les nur mit.
Kann es sein das in dem CH1-Device state von den Daten überschrieben wird, die über diese Topics kommen ?
shellyplus2pm_xxxxxxxx:shellyplus2pm-xxxxxxxx/status/input_0:.* { json2nameValue($EVENT) }\
shellyplus2pm_xxxxxxxx:shellyplus2pm-xxxxxxxx/status/input_1:.* { json2nameValue($EVENT) }\

flummy1978

#65
Hallo zusammen,
Zitat von: 87insane am 13 Januar 2024, 01:39:46Das gelegentlich stört mich..
Sagen wir so: Es ist mir in den letzten Tagen gelegentlich aufgefallen, also passiert es nach einer gewissen Zeit wohl immer (seit dem ich es im Blick habe)

Zitat von: 87insane am 13 Januar 2024, 01:39:46Ich selber habe über 60 Shelly PLUS
Wenn dort ein shellyplus2pm dabei ist, könntest du mir ein list, oder die reading lists zukommen lassen? Vielleicht komme ich auch selbst auf eine Lösung  ???
Ich hab bei den anderen (Shelly) Geräten bis dato auch keine Probleme.

Zitat von: TomLee am 13 Januar 2024, 03:26:21Kann es sein das in dem CH1-Device state von den Daten überschrieben wird, die über diese Topics kommen ?
Hey TomLee,
Das wäre einer der besagten Schubser... Ich werds versuchen mal zu kontrollieren. Danke schon mal für n Tipp in diese Richtung

VG
Andreas

Beta-User

Vielleicht (!) ist das Problem, dass üblicherweise in "rpc"-Systemen die Id fortlaufend nummeriert wird. Das gibt dann Probleme beim Schalten, wenn die Befehle zu schnell nacheinander kommen, OHNE, dass die Id geändert wurde (wie bei uns hier). Speziell schnelle doppelte Befehle waren im Forum auch schon mal ein Thema, weiß nicht, ob das hier in diesem Thread war.

(OT: Keine Ahnung, warum die bei diesem Hersteller der Ansicht sind, dass eine firmware derartig kompliziert funktionieren müßte, mir geht das jedenfalls zunehmend gegen den Strich....)
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

87insane

@Beta-User: Bin ich ganz deiner Meinung. Ich weiß nicht warum die das in den RPC Channel ausgelagert haben. Speziell für long oder double Push braucht man den aber leider.

@flummy1978: Ich nutze keine Shelly PLUS 2 für Schalter. Dafür nehme ich die 1er Serie. Die 2er sind in meinen Augen nur für Rollos geeignet. Nach wie vor habe ich noch ein Problem mit dem "gelegentlich". Du muss das Problem irgendwie nachstellen. Sonst wird es keine Lösung geben.
In den Templates ist das gerne mal so, wenn sie falsch "abgegeben" wurden, dass die Channel Infos nicht ganz richtig sind. Kann es einfach sein, dass du Channel 2 schaltest und das auch korrekt angezeigt wird. Wenn du dann aber Channel 1 schaltest, du damit auch zwei überschreibst? Also wenn du das irgendwie eingrenzen kannst, spiel ein wenig rum, dann kann man dir sicher helfen. Ich habe jedenfalls bei keinem meiner Shellys derartige Probleme. Ganz gut beobachten kannst du das z.B. auch mit dem MQTT Explorer. Der zeigt genau an was vom Shelly kommt. Wenn dann in FHEM etwas anderes landet, muss es ne Kleinigkeit im Bereich der readingsList sein.

Gruß,
87Insane

flummy1978

Hallo zusammen,

vielen Dank nochmal für Euer Brainstorming in der Zwischenzeit. Kleiner Zwischenstand von mir, nachdem ich alle Hinweise zusammen genommen habe und ein wenig rumprobiert habe:
Den MQTT Explorer hatte ich vorher auch schon aktiviert gehabt. Das Problem war, weil es meinen PC betrifft, dass der Status schon falsch war bevor ich den Explorer angeschmissen hab, ODER er danach nicht mehr gewechselt hat. So auch bei den Tests am WE. Seitdem ich drauf achte, was dort passiert, ist der Status nicht einmal gewechselt  >:(

Gehört zwar vielleicht eher in den MQTT Template Bereich, aber vielleicht kann mir einer von Euch beiden das auch direkt beantworten:
Warum nimmt man denn für den Schaltzustand nicht die Rückmeldung die wirklich sicher kommt?
{"id":0, "source":"MQTT", "output":true, "apower":102.0, "voltage":239.7, "freq":50.0, "current":0.487, "pf":0.87, "aenergy":{"total":169706.809,"by_minute":[639.250,1812.797,1815.912],"minute_ts":1705313540}, "ret_aenergy":{"total":0.000,"by_minute":[0.000,0.000,0.000],"minute_ts":1705313540},"temperature":{"tC":53.4, "tF":128.1}}
{"id":1, "source":"MQTT", "output":false, "apower":0.0, "voltage":239.5, "freq":50.0, "current":0.000, "pf":0.00, "aenergy":{"total":27125.659,"by_minute":[0.000,0.000,0.000],"minute_ts":1705313519}, "ret_aenergy":{"total":0.005,"by_minute":[0.000,0.000,0.000],"minute_ts":1705313519},"temperature":{"tC":53.3, "tF":127.9}}
So sieht das aktuell aus, wenn ein Schalter an einer aus ist. Der Punkt "output" liefert doch genau den Schaltzustand vom Relais oder?

VG
Andreas

87insane

Hey Andreas,

ich verstehe leider nicht was du meinst mit deinem PC und dem MQTT Explorer.
Was die Werte angeht, die in FHEM genommen werden, verstehe ich auch nicht genau was du möchtest. An sich sind die Werte in FHEM immer gleich. Also ein FS20 oder Shelly oder oder oder, sollen am Ende das gleiche ausspucken. Daher nimmt man da nicht true/false sondern on/off. Wenn du das meinst.

Gruß,
87Insane

flummy1978

Also ich versuch mal zu übersetzen  ;)

PC / MQTT:
Den Explorer nutze ich an meinem PC. Der betroffene Shelly schaltet eben den Steckdosenkreis von meinem PC. Wenn also der Shelly aus ist, kann ich mit dem MQTT Explorer nicht schauen 😉

Output:
Mir ist bewusst dass FHEM on off Anzeigen soll und es demnach auch verarbeiten soll.
In der reading Angabe gibt es ja die Zeile:
  $DEVICETOPIC/events/rpc:.* { return if $EVENT =~ m{switch:[1-3]};; $EVENT =~ s/"output":true/"state":"on"/g;; $EVENT =~ s/"output":false/"state":"off"/g;; }\
Diese bearbeitet auch den Status von output true und false auf state on/off
Ich verstehe die regexp Zeile ansich nicht vollständig. Also wird hier meiner Meinung nach das rpc event in Verbindung mit switch / output verwendet.
Das oben erwähnte
{"id":0, "source":"MQTT", "output":true, "apower":102.0, "voltage":239.7, "freq":50.0, "current":0.487, "pf":0.87, "aenergy":{"total":169706.809,"by_minute":[639.250,1812.797,1815.912],"minute_ts":1705313540}, "ret_aenergy":{"total":0.000,"by_minute":[0.000,0.000,0.000],"minute_ts":1705313540},"temperature":{"tC":53.4, "tF":128.1}}
{"id":1, "source":"MQTT", "output":false, "apower":0.0, "voltage":239.5, "freq":50.0, "current":0.000, "pf":0.00, "aenergy":{"total":27125.659,"by_minute":[0.000,0.000,0.000],"minute_ts":1705313519}, "ret_aenergy":{"total":0.005,"by_minute":[0.000,0.000,0.000],"minute_ts":1705313519},"temperature":{"tC":53.3, "tF":127.9}}
Ist eben kein rpc Event sondern ein reines Status Event

Ist am Mäuskino(Handy) n bissl schwer zu beschreiben / formatieren

VG
Andreas

87insane

  $DEVICETOPIC/events/rpc:.* { return if $EVENT =~ m{switch:[1-3]};; $EVENT =~ s/"output":true/"state":"on"/g;; $EVENT =~ s/"output":false/"state":"off"/g;; }\Eigentlich ganz einfach:
Der Zweig RPC wird genommen (kann man super sehen im MQTT Explorer).
Da wird gesucht nach switch:1-3 und nur wenn das vorkommt auch ausgegeben.
Danach ist nur noch suchen/ersetzen. Das hast du ja schon erkannt.

Da ich keinen 2er Shelly als Schalter nutze habe ich nur die Möglichkeit das mit einem 1er Shelly zu vergleichen. Da läuft es bei mir, wie folgt:
  $DEVICETOPIC/events/rpc:.* { $EVENT =~ m/.*"component":"input:0",."id":0,."event":"(.*)",.*/ ? {input_event => $1} : {} }
  $DEVICETOPIC/status/switch_0:.* { $EVENT =~ s/"output":true/"state":"on"/g; $EVENT =~ s/"output":false/"state":"off"/g;
Den RPC Channel nehme ich hier nur, damit ich erkennen kann ob single, double oder longpush. Sonst brauch ich den garnicht. Ggf. sollten die Templates mal konsolidiert werden. Ich weiß auch nicht ob das der schönste Weg ist, wie ich das löse aber so läuft es 1A und ich habe auch die Info wie geschaltet wurde. Im normal Fall ist diese Info nicht da. Zumindest war sie nicht da, vor ca. 6 Monaten. Ich prüfe aber auch nicht jeden Tag die Templates. Hatte mir aus den vorhandenen, eigene gebaut.

Vielleicht kannst du dein Template bzw. deine Konfig dahingehend anpassen...

Gruß,
87Insane

Beta-User

Zitat von: flummy1978 am 15 Januar 2024, 13:00:55Das oben erwähnte
Code Auswählen Erweitern
{"id":0, "source":"MQTT", "output":true, "apower":102.0, "voltage":239.7, "freq":50.0, "current":0.487, "pf":0.87, "aenergy":{"total":169706.809,"by_minute":[639.250,1812.797,1815.912],"minute_ts":1705313540}, "ret_aenergy":{"total":0.000,"by_minute":[0.000,0.000,0.000],"minute_ts":1705313540},"temperature":{"tC":53.4, "tF":128.1}}
{"id":1, "source":"MQTT", "output":false, "apower":0.0, "voltage":239.5, "freq":50.0, "current":0.000, "pf":0.00, "aenergy":{"total":27125.659,"by_minute":[0.000,0.000,0.000],"minute_ts":1705313519}, "ret_aenergy":{"total":0.005,"by_minute":[0.000,0.000,0.000],"minute_ts":1705313519},"temperature":{"tC":53.3, "tF":127.9}}
Ist eben kein rpc Event sondern ein reines Status Event
Hmmm, wenn es bei "id" jetzt plötzlich nicht mehr um die Nummerierung der Messages geht, sondern um die Nummer des outputs, dann scheint entweder das alte Vorgehen jedenfalls für den "Plus 2" nicht zu passen (oder es hat sich allg. was geändert).

Dann muss es für das erste Device (Relais 1) wohl so anfangen:
return if $EVENT !=~ m{"id":0};
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

flummy1978

Zitat von: Beta-User am 15 Januar 2024, 19:30:37Hmmm, wenn es bei "id" jetzt plötzlich nicht mehr um die Nummerierung der Messages geht, sondern um die Nummer des outputs, dann scheint entweder das alte Vorgehen jedenfalls für den "Plus 2" nicht zu passen (oder es hat sich allg. was geändert).

Dann muss es für das erste Device (Relais 1) wohl so anfangen:
return if $EVENT !=~ m{"id":0};

Nicht dass wir hier aneinander vorbei schreiben. Es gibt immernoch Events und Status ... somit auch RPC und switch:0 bzw switch:1
Beispiel für RPC:
{"src":"shellyplus2pm-441793xxx904","dst":"shellyplus2pm-441793xxx904/events","method":"NotifyStatus","params":{"ts":1705356480.05,"switch:1":{"id":1,"aenergy":{"by_minute":[0.000,0.000,0.000],"minute_ts":1705356479,"total":27287.223},"ret_aenergy":{"by_minute":[0.000,0.000,0.000],"minute_ts":1705356479,"total":0.005}}}}
switch:0 / 1
{"id":0, "source":"MQTT", "output":true, "apower":91.4, "voltage":239.8, "freq":50.0, "current":0.446, "pf":0.85, "aenergy":{"total":169926.521,"by_minute":[1523.774,1775.657,1806.804],"minute_ts":1705356531}, "ret_aenergy":{"total":0.000,"by_minute":[0.000,0.000,0.000],"minute_ts":1705356531},"temperature":{"tC":53.5, "tF":128.2}}
{"id":1, "source":"MQTT", "output":false, "apower":0.0, "voltage":239.8, "freq":50.0, "current":0.000, "pf":0.00, "aenergy":{"total":27287.223,"by_minute":[0.000,0.000,0.000],"minute_ts":1705356539}, "ret_aenergy":{"total":0.005,"by_minute":[0.000,0.000,0.000],"minute_ts":1705356539},"temperature":{"tC":53.5, "tF":128.2}}

Ich bleibe aber am Ball und versuche es mal mitzubekommen, wann das state vom ersten Device auf "False" rutscht, wie oben beschrieben.

VG
Andreas