Shelly Plus 2 PM

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

Vorheriges Thema - Nächstes Thema

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