Shelly EM Template?

Begonnen von deathworm, 05 November 2021, 08:04:06

Vorheriges Thema - Nächstes Thema

deathworm

Hi!

Ich hatte bisher nur Shelly 3EM im Einsatz. Dafür gibt es ein Template. Nun habe ich mehrere Shelly EM's verbaut. Jedoch finde ich hierzu kein passendes Template? Ich habe auch schon im Forum gesucht und keinen anderen passenden Beitrag gefunden. Jedoch habe ich einen Revision Eintrag gefunden:


Revision 23391: 36_Shelly.pm: Version erlaubt Nutzung von ShellyEM

36_Shelly.pm: Version erlaubt Nutzung von ShellyEM

Source: Revision 23391: 36_Shelly.pm: Version erlaubt Nutzung von ShellyEM


Ich habe daraufhin einfach mal testweiße "shelly1_w_energy_measuring" als Template genommen. Erst einmal kommt ein Fehler Userreading Nachfrage. Habe hier bereits beide Optionen getestet (Wobei nur eine Option mit Userreading eigentlich Sinn macht). Aber bei beiden bekomme ich keinerlei Werte angezeigt.

Verbrauch: unknown / Total: unknown/ Temp: -100 °C

Die Installation ist Uptodate.


Übersehe ich das passende Template etwa?

MadMax-FHEM

#1
Wie hast du eingebunden?

Per Shelly-Modul? (zumindest schreibst du davon) Da gibt es mWn kein Template, sondern Attrubute: model und gegebenenfalls mode.

Und da gibt es model 1PM...

Oder mqtt besser mqtt2?
Mqtt2_Server in fhem und mqtt beim Shelly aktivieren -> mqtt2_Device und da dann attrTemplate.
Ob es da eines für 1PM gibt weiß ich grad nicht.

Poste doch wenigstens ein list vom Device (in code-Tags, das '#' im "Menü")...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

deathworm

Ahoj,

eingebunden mit MQTT2. Und genau das passende attrTemplate bin ich am suchen. 1PM wäre ja auch wieder nicht korrekt, habe ja die EM's. Also nur Verbraucherzähler mit Messzange.


Internals:
   CID        shellyem_98CDAC1EA52F
   DEF        shellyem_98CDAC1EA52F
   DEVICETOPIC MQTT2_shellyem_98CDAC1EA52F
   FUUID      6184d776-f33f-53f2-7758-d5c3ffdc62f0bae5
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     1480
   NAME       MQTT2_shellyem_98CDAC1EA52F
   NR         599
   STATE      Relay: off,<br>P1: 2.37 W / Total P1: unknown kWh<br>P2: 7.10 W / Total P2: unknown kWh<br>P3: unknown W / Total P3: unknown kWh
   TYPE       MQTT2_DEVICE
   myBroker_MSGCNT 1480
   myBroker_TIME 2021-11-05 08:57:33
   READINGS:
     2021-11-05 08:04:25   IODev           myBroker
     2021-11-05 08:56:53   emeter_0_energy 0
     2021-11-05 08:57:33   emeter_0_power  2.37
     2021-11-05 08:57:33   emeter_0_reactive_power 0.00
     2021-11-05 08:56:53   emeter_0_returned_energy 0
     2021-11-05 08:57:33   emeter_0_total  23.5
     2021-11-05 08:57:33   emeter_0_total_returned 0.0
     2021-11-05 08:57:33   emeter_0_voltage 235.74
     2021-11-05 08:56:53   emeter_1_energy 7
     2021-11-05 08:56:53   emeter_1_energy_total 1654
     2021-11-05 08:57:33   emeter_1_power  7.10
     2021-11-05 08:57:33   emeter_1_reactive_power 12.20
     2021-11-05 08:56:53   emeter_1_returned_energy 0
     2021-11-05 08:57:33   emeter_1_total  470.8
     2021-11-05 08:57:33   emeter_1_total_returned 0.0
     2021-11-05 08:57:33   emeter_1_voltage 235.74
     2021-11-05 08:04:32   fw_ver          20210909-150325/v1.11.4-DNSfix-ge6b2f6d
     2021-11-05 08:04:32   id              shellyem-98CDAC1EA52F
     2021-11-05 08:04:32   ip              192.168.1.76
     2021-11-05 08:04:32   mac             98CDAC1EA52F
     2021-11-05 08:04:32   model           SHEM
     2021-11-05 08:04:32   new_fw          false
     2021-11-05 08:04:32   online          true
     2021-11-05 08:57:33   relay0          off
     2021-11-05 08:57:33   state           off
Attributes:
   alias      shelly-em-uv-og-p1-1
   comment    To get appropriate loadState values: Change the default limit "100" in readingList to your needs.
   devStateIcon {my $onl = ReadingsVal($name,"online","false") eq "false"?"10px-kreis-rot" : ReadingsVal($name,"new_fw","false") eq "true" ? "10px-kreis-gelb" : "10px-kreis-gruen"; my $light = ReadingsVal($name,"state","off"); my $cons = ReadingsVal($name,"relay_0_power","unknown"); my $total = ReadingsVal($name,"relay_0_kWh","unknown"); my $temp = ReadingsVal($name,"temperature","-100"); "<a href=\"http://".ReadingsVal($name,"ip","none")." \"target=\"_blank\">".FW_makeImage($onl)."</a> <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a><div>Verbrauch: $cons / Total: $total/ Temp: $temp °C</div>"}
   model      shelly1_w_energy_measuring
   readingList shellies/shellyem-98CDAC1EA52F/relay/0:.* state
  shellies/shellyem-98CDAC1EA52F/relay/0:.* relay0
  shellies/shellyem-98CDAC1EA52F/input/0:.* input0
  shellies/shellyem-98CDAC1EA52F/online:.* online
  shellies/announce:.* { $EVENT =~ m,..id...shellyem-98CDAC1EA52F...mac.*, ? json2nameValue($EVENT) : return }
  shellies/shellyem-98CDAC1EA52F/announce:.* { json2nameValue($EVENT) }
  shellies/shellyem-98CDAC1EA52F/relay/0/power:.* relay_0_power
  shellies/shellyem-98CDAC1EA52F/relay/0/power:.* { my $compare = $EVTPART0 < 100 ? "off":"on"; ReadingsVal($NAME,"loadState","off") ne $compare ? { 'loadState' => $compare } : return }
  shellies/shellyem-98CDAC1EA52F/temperature:.* temperature
  shellies/shellyem-98CDAC1EA52F/temperature_f:.* temperature_f
  shellies/shellyem-98CDAC1EA52F/input_event/0:.* { json2nameValue($EVENT) }
  shellies/shellyem-98CDAC1EA52F/overtemperature:.* overtemperature
  shellies/shellyem-98CDAC1EA52F/relay/0/energy:.* relay_0_energy
  shellies/shellyem-98CDAC1EA52F/relay/0/energy:.* {'relay_0_kWh' => sprintf("%.2f",$EVENT/60/1000)}
  shellies/shellyem-98CDAC1EA52F/longpush/0:.* longpush_0
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/info:.* { json2nameValue($EVENT) }
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/0/power:.* emeter_0_power
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/0/reactive_power:.* emeter_0_reactive_power
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/0/voltage:.* emeter_0_voltage
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/0/total:.* emeter_0_total
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/0/total_returned:.* emeter_0_total_returned
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/1/power:.* emeter_1_power
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/1/reactive_power:.* emeter_1_reactive_power
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/1/voltage:.* emeter_1_voltage
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/1/total:.* emeter_1_total
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/1/total_returned:.* emeter_1_total_returned
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/0/energy:.* emeter_0_energy
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/0/returned_energy:.* emeter_0_returned_energy
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/1/energy:.* emeter_1_energy
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/emeter/1/returned_energy:.* emeter_1_returned_energy
shellyem_98CDAC1EA52F:shellies/shellyem-98CDAC1EA52F/online:.* online
   room       Unwichtig->Zähler
   setList    relay0:on,off,toggle shellies/shellyem-98CDAC1EA52F/relay/0/command $EVTPART1
  toggle:noArg shellies/shellyem-98CDAC1EA52F/relay/0/command toggle
  off:noArg shellies/shellyem-98CDAC1EA52F/relay/0/command off
  on:noArg shellies/shellyem-98CDAC1EA52F/relay/0/command on
  x_update:noArg shellies/shellyem-98CDAC1EA52F/command update_fw
  x_mqttcom shellies/shellyem-98CDAC1EA52F/command $EVTPART1
   setStateList on off toggle
   stateFormat { my $light = ReadingsVal($name,"state","off"); my $cons1 = ReadingsVal($name,"emeter_0_power","unknown"); my $cons2 = ReadingsVal($name,"emeter_1_power","unknown"); my $cons3 = ReadingsVal($name,"emeter_2_power","unknown"); my $total1 = ReadingsVal($name,"emeter_0_kWh","unknown"); my $total2 = ReadingsVal($name,"emeter_1_kWh","unknown"); my $total3 = ReadingsVal($name,"emeter_2_kWh","unknown"); return qq(Relay: $light,<br>P1: $cons1 W / Total P1: $total1 kWh<br>P2: $cons2 W / Total P2: $total2 kWh<br>P3: $cons3 W / Total P3: $total3 kWh) }
   userReadings relay_0_energy_total:relay_0_energy:.* monotonic {ReadingsNum("$name","relay_0_energy",0)} emeter_0_energy_total:emeter_0_energy:.* monotonic {ReadingsNum("$name","emeter_0_energy",0)}, emeter_1_energy_total:emeter_1_energy:.* monotonic {ReadingsNum("$name","emeter_1_energy",0)}, emeter_2_energy_total:emeter_2_energy:.* monotonic {ReadingsNum("$name","emeter_2_energy",0)}
   webCmd     :




Da zeigt er ja sogar nen paar Sachen an... nur in der Übersicht ist nach wie vor "Verbrauch: unknown / Total: unknown/ Temp: -100 °C"


Grüße,
Sascha

MadMax-FHEM

Jetzt wo klar ist, dass es sich um MQTT und nicht um Shelly handelt -> verschieben ins MQTT-Unterforum...

Kannst du selbst machen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Beta-User

Es gibt für den em3 mWn. ein noch verbesserungsfähiges attrTemplate, das sollte eigentlich eine akzeptable Basis sein.

Da (im attrTemplate sollte ein Link stehen) sollten auch die Bausteine zu finden sein, wie man die Anzeige verbessern kann. Bitte erst mal selbst Einarbeiten, will grade nicht nochmal bei den Basics anfangen.
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

deathworm

Zitat von: Beta-User am 05 November 2021, 10:48:02
Es gibt für den em3 mWn. ein noch verbesserungsfähiges attrTemplate, das sollte eigentlich eine akzeptable Basis sein.

Da (im attrTemplate sollte ein Link stehen) sollten auch die Bausteine zu finden sein, wie man die Anzeige verbessern kann. Bitte erst mal selbst Einarbeiten, will grade nicht nochmal bei den Basics anfangen.

HI!


VIelen Dank für die Info. Ich dachte nur, da für nahezu alles ein Template da wäre, dass es hierfür auch sicher eines geben müsste. Ich habe nun etwas rumgespielt und für alle bisher verbaute Shellys (Shellies?) mal andere Optionen bzw. andere Templates versucht. Am Besten passt schon das 3em und nicht 1 with power consumpting... beim 3er müsste man eigentlich nur die dritte Phase raushauen und noch einen Weg ermöglichen, die beiden Kanäle umbenennen zu können. Dann ist das glaube ich schon ausreichend.

Aber einen Link für Infos habe ich nicht gefunden?

Beta-User

Zitat von: deathworm am 08 November 2021, 08:18:46
VIelen Dank für die Info. Ich dachte nur, da für nahezu alles ein Template da wäre, dass es hierfür auch sicher eines geben müsste.
Vorab mal Danke für die Rückmeldung :) .
Es gibt für "alles" ein attrTemplate, bei dem jemand sich die Mühe gemacht hat, das irgendwie "allgemeinverträglich" fertig zu entwickeln oder von dem ich dachte, es ist soweit "ok", aber eben noch experimentell - was beim 3-er der Fall zu sein scheint.

Zitat
Aber einen Link für Infos habe ich nicht gefunden?
Es gibt dazu zwei Threads, einer (der spätere) ist https://forum.fhem.de/index.php/topic,111905.0.html. Leider ist der etwas speziell, so dass ich das abweichend zu meinen sonstigen Gewohnheiten vermutlich aus diesem Grund unterlassen habe, in der Beschreibung auf den Thread zu verweisen (im ersten Fall wollte der User das auch irgendwie anders haben, soweit ich mich entsinne).

Wie dem auch sei: wir können gerne ein "em2" basteln, ich bräuchte dann aber ggf. noch "input", was genau mit dem hier gemeint ist:
Zitatdie beiden Kanäle umbenennen zu können

Für mich ist in der Regel ein "raw-listing" ein guter Ausgangspunkt, manchmal braucht es dann noch den MQTT-Verkehr (siehe auch https://forum.fhem.de/index.php/topic,94494.msg872200.html#msg872200).
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

deathworm

#7
Sicher. Sofern ich hier iwie helfen kann immer gerne.
War mir schon klar, dass sich auch deswegen jemand hingesetzt haben musste. Ich dachte nur, da die EM's nicht so neu sind, dass es da ja eigentlich was geben müsste.


Ich habe insgesamt 4 von den normalen EM's derzeit im Einsatz. Einen habe ich nun wieder gelöscht und ihn komplett unangefasst im MQTT2 Device Raum gelassen.

Hier nun ein List im "raw" Zustand:



Internals:
   CFGFN     
   CID        shellyem_C45BBE5FFF34
   DEF        shellyem_C45BBE5FFF34
   DEVICETOPIC MQTT2_shellyem_C45BBE5FFF34
   FUUID      6188f557-f33f-53f2-1057-a64b95090da0a404
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     516
   NAME       MQTT2_shellyem_C45BBE5FFF34
   NR         14118
   STATE      ???
   TYPE       MQTT2_DEVICE
   myBroker_MSGCNT 516
   myBroker_TIME 2021-11-08 11:20:56
   READINGS:
     2021-11-08 11:00:55   IODev           myBroker
     2021-11-08 11:19:55   emeter_0_energy 24
     2021-11-08 11:20:56   emeter_0_power  24.06
     2021-11-08 11:20:56   emeter_0_reactive_power -39.39
     2021-11-08 11:19:55   emeter_0_returned_energy 0
     2021-11-08 11:20:56   emeter_0_total  2924.1
     2021-11-08 11:20:56   emeter_0_total_returned 0.0
     2021-11-08 11:20:56   emeter_0_voltage 235.91
     2021-11-08 11:19:55   emeter_1_energy 0
     2021-11-08 11:20:56   emeter_1_power  0.00
     2021-11-08 11:20:56   emeter_1_reactive_power 0.00
     2021-11-08 11:19:55   emeter_1_returned_energy 0
     2021-11-08 11:20:56   emeter_1_total  0.0
     2021-11-08 11:20:56   emeter_1_total_returned 0.0
     2021-11-08 11:20:56   emeter_1_voltage 235.91
     2021-11-08 11:20:56   fw_ver          20210909-150325/v1.11.4-DNSfix-ge6b2f6d
     2021-11-08 11:20:56   id              shelly-em-uv-og-p1-2
     2021-11-08 11:20:56   ip              192.168.1.77
     2021-11-08 11:20:56   mac             C45BBE5FFF34
     2021-11-08 11:20:56   model           SHEM
     2021-11-08 11:20:56   new_fw          false
     2021-11-08 11:20:56   online          true
     2021-11-08 11:20:56   relay_0         off
Attributes:
   readingList shellyem_C45BBE5FFF34:shellies/shelly-em-uv-og-p1-2/emeter/0/energy:.* emeter_0_energy
shellyem_C45BBE5FFF34:shellies/shelly-em-uv-og-p1-2/emeter/0/returned_energy:.* emeter_0_returned_energy
shellyem_C45BBE5FFF34:shellies/shelly-em-uv-og-p1-2/emeter/1/energy:.* emeter_1_energy
shellyem_C45BBE5FFF34:shellies/shelly-em-uv-og-p1-2/emeter/1/returned_energy:.* emeter_1_returned_energy
shellyem_C45BBE5FFF34:shellies/shelly-em-uv-og-p1-2/relay/0:.* relay_0
shellyem_C45BBE5FFF34:shellies/shelly-em-uv-og-p1-2/emeter/0/power:.* emeter_0_power
shellyem_C45BBE5FFF34:shellies/shelly-em-uv-og-p1-2/emeter/0/reactive_power:.* emeter_0_reactive_power
shellyem_C45BBE5FFF34:shellies/shelly-em-uv-og-p1-2/emeter/0/voltage:.* emeter_0_voltage
shellyem_C45BBE5FFF34:shellies/shelly-em-uv-og-p1-2/emeter/0/total:.* emeter_0_total
shellyem_C45BBE5FFF34:shellies/shelly-em-uv-og-p1-2/emeter/0/total_returned:.* emeter_0_total_returned
shellyem_C45BBE5FFF34:shellies/shelly-em-uv-og-p1-2/emeter/1/power:.* emeter_1_power
shellyem_C45BBE5FFF34:shellies/shelly-em-uv-og-p1-2/emeter/1/reactive_power:.* emeter_1_reactive_power
shellyem_C45BBE5FFF34:shellies/shelly-em-uv-og-p1-2/emeter/1/voltage:.* emeter_1_voltage
shellyem_C45BBE5FFF34:shellies/shelly-em-uv-og-p1-2/emeter/1/total:.* emeter_1_total
shellyem_C45BBE5FFF34:shellies/shelly-em-uv-og-p1-2/emeter/1/total_returned:.* emeter_1_total_returned
shellyem_C45BBE5FFF34:shellies/shelly-em-uv-og-p1-2/online:.* online
shellyem_C45BBE5FFF34:shellies/shelly-em-uv-og-p1-2/announce:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE




ACHTUNG: Ich habe dem Shelly ein custom MQTT Prefix verpasst. Darum steht dort der Name erneut drin. Falls gewünscht, kann ich das gerne auch erneut rauslöschen. Hier habe ich auch extra den genommen, bei dem nur EIN Kanal in Betrieb ist. Meine anderen sind alle bereits mit beiden Kanälen belastet.



ALso zum Unterschied zum 3EM Template:

- "die beiden Kanäle umbenennen zu können": Der 3EM hat ja direkt Phase1, Phase2, Phase3. Da braucht man nicht mehr wissen, denn das is ja klar und fertig. Der normale EM wird ja vorrangig zur Erfassung der Daten von einzelnen Verbrauchern genutzt. In meinem Fall möchte ich jeden einzelnen Raum erfassen. Darum würde es Sinn machen, wenn ich die jeweilige Kanäle umbenennen könnte. Zum Beispiel "linkes Zimmer", "rechtes Zimmer", "Badezimmer" etc.

- "P1: 4.97 W / Total P1: 0.82 kWh": Anzeige mit Total passt ja auch soweit.

- "3 Phases total: 1.21 kWh": In dem Fall ja 2 Phases total. Bräuchte man nun meines Erachtens nicht unbedingt. Aber das ist ja nur mein Fall. Mir fällt nun aber auch kein Fall ein, in dem es interessant wäre, die beiden zusammen zu zählen. Aber "haben ist besser als brauchen", oder?

Beta-User

Via update kommt jetzt auch eine erste Fassung eines attrTemplate für den em2.

Zitat von: deathworm am 08 November 2021, 11:17:24
Hier nun ein List im "raw" Zustand:
Gemeint war was anderes: https://wiki.fhem.de/wiki/Import_von_Code_Snippets

Zitat- "die beiden Kanäle umbenennen zu können": Der 3EM hat ja direkt Phase1, Phase2, Phase3. Da braucht man nicht mehr wissen, denn das is ja klar und fertig. Der normale EM wird ja vorrangig zur Erfassung der Daten von einzelnen Verbrauchern genutzt. In meinem Fall möchte ich jeden einzelnen Raum erfassen. Darum würde es Sinn machen, wenn ich die jeweilige Kanäle umbenennen könnte. Zum Beispiel "linkes Zimmer", "rechtes Zimmer", "Badezimmer" etc.
Das geht nicht allgemeingültig via attrTemplate, aber du kannst ohne weiteres search+replace in einem RAW-listing machen und das Ergebnis wieder in dein FHEM einfügen, wenn du andere Reading-Namen haben willst. Sollte kein Problem sein.

Zitat
Mir fällt nun aber auch kein Fall ein, in dem es interessant wäre, die beiden zusammen zu zählen. Aber "haben ist besser als brauchen", oder?
Na ja, da wegwerfen leichter ist wie dazufügen, habe ich die Addition mal drin gelassen.

Bitte um Rückmeldung, wenn irgendwas "allgemeingültiges" an dem attrTemplate nicht passen sollte.
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

deathworm

Wahnsinn. Dankeschön!

Also.. gleich mal rangemacht:

2021.11.12 11:17:25 1 : UPD FHEM/lib/AttrTemplate/mqtt2.template

Habe dann einen von Shelly3em auf Shelly2em umgeändert. Bekam dann aber folgende Fehler:


attr MQTT2_shellyem_98CDAC1EA643 devStateIcon: No such class my at (eval 2059) line 1, near "; my my"
Global symbol "$total1" requires explicit package name (did you forget to declare "my $total1"?) at (eval 2059) line 1.
Global symbol "$total1" requires explicit package name (did you forget to declare "my $total1"?) at (eval 2059) line 1.
Global symbol "$total1" requires explicit package name (did you forget to declare "my $total1"?) at (eval 2059) line 1.

No such class my at (eval 2060) line 1, near "; my my"
Global symbol "$total1" requires explicit package name (did you forget to declare "my $total1"?) at (eval 2060) line 1.
Global symbol "$total1" requires explicit package name (did you forget to declare "my $total1"?) at (eval 2060) line 1.


Bei dem einen ohne Template habe ich das selbe Problem.



Beta-User

Autsch, da sind mir zwei doppelte "my" reingerutscht. Kannst du das in Zeile 2550 und 2551 von mqtt2.template (bzw. einfach in devStateIcon und stateFormat deines Devices) mal testweise auf eines ändern, dann sollte das klappen...
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

deathworm

EInen wunderschönen guten Abend,

sry, aber das bwk wollte mich dann doch ohne vorankündigung etwas bei sich behalten...

also.. ich hab devstateicon und stateformat geöffnet, aber beides war in der auswahl leer. somit konnte ich es per handy nicht regeln.

habe es eben nun per nano gemacht und tada, schaut einwandfrei nun aus:


shelly-em-uv-og-p3-1
   
10px-kreis-gruen
Schlafzimmer | P1: 11.52 W / Total P1: 3.09 kWh
Technikraum & Bad | P2: 74.54 W / Total P2: 25.17 kWh
2 Phases total: 28.26 kWh


P1: 24.21 W / Total P1: 6.25 kWh
P2: 0.00 W / Total P2: 0.00 kWh
2 Phases total: 6.25 kWh


Ich denke, damit ist das ganze schon abgeschlossen und fertig. Nun muss ich als nächstes mir ne Tabelle machen und alle einzelnen Zähler zusammenzählen um einerseits damit dann den Haupteingang zu vergleichen und andererseits mir eine monatliche Kontrolle einzubauen.


Vielen liebsten Dank!

Riverghost

Hallo,

da ich immer unzufrieden mit dem ELV ESA2000WZ war bin ich nun auch auf den Shelly EM umgestiegen.

Dank des Templates war das Einrichten ein Kinderspiel. Vielen Dank an der Stelle.  :)

Ich habe versucht irgendwie auch den Zählerstand abzubilden. Den "realen" Zählerstand konnte man über das ESA2000WZ Modul als spezielles Attribut eingeben.

Nach meinem Verständnis müsste man hier ein userattribut anlegen. Z.B. "Zaehlerstand" und dem dann manuell den aktuellen Zählerstand zuordnen.
Ungefähr so:

attr ShellyEM userattr Zaehlerstand:34200

Anschließend dieses Attribut über AttrVal() für die Berechnung nutzen.

Soweit die Theorie.

Da ich aber bei den userReadings und stateFormat nicht mehr durchblicke und ich kein Programmierer bin wollte ich mal fragen ob mir hier jemand auf die Sprünge helfen kann.  ::)

Gruß
Riverghost


Beta-User

Falls du die userReadings vom attrTemplate hast anlegen lassen, müßte eigentlich ein "setreading" auf den aktuellen Wert genügen, um den monotonic-Zähler mit dem aktualisierten Stand weiterlaufen zu lassen.

Zu dem ESA2000WZ habe ich entfernt im Ohr, dass der immer wieder von vorne angefangen hat, wenn er einmal beim Höchststand angekommen war. Dazu gab es dann ggf. dieses spezielle Attribut, das hier aber wegen des anderen Mechanismus nicht erforderlich 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

Riverghost

Zitat von: Beta-User am 21 November 2021, 09:26:59
Falls du die userReadings vom attrTemplate hast anlegen lassen, müßte eigentlich ein "setreading" auf den aktuellen Wert genügen, um den monotonic-Zähler mit dem aktualisierten Stand weiterlaufen zu lassen.

Warum sind die einfachen Lösungen nur immer so schwer zu finden?  ::)

Vielen Dank für die Hilfe!

Ja, ich habe einfach das attrTemplate angewandt und nix verändert.

Aufgrund deines Hinweises habe ich jetzt ein neues userReading erstellt, da ich ja die kWh benötige.

attr ShellyEM userReadings emeter_0_kWh_total:emeter_0_kWh:.* monotonic {ReadingsNum($name,'emeter_0_kWh',0)}

Und mit Hilfe von
setreading ShellyEM emeter_0_kWh_total xxx

habe ich den gleichen Wert wie im Original Stromzähler.