Shelly Plug S energy

Begonnen von satprofi, 23 Mai 2023, 12:04:41

Vorheriges Thema - Nächstes Thema

satprofi

#15
DEF        shellyplug_s_80646F8167C7
   DEVICETOPIC MQTT2_shellyplug_s_80646F8167C7
   FUUID      646b36b6-f33f-6917-eab5-e9111a48f7d47015
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     115912
   NAME       MQTT2_shellyplug_s_80646F8167C7
   NR         740831
   STATE      on
   TYPE       MQTT2_DEVICE
   myBroker_MSGCNT 115912
   myBroker_TIME 2023-05-26 09:20:16
   OLDREADINGS:
   READINGS:
     2023-05-22 11:32:38   IODev           myBroker
     2023-05-26 08:56:07   actions_stats_skipped 0
     2023-05-24 05:37:41   attrTemplateVersion 20200831
     2023-05-26 08:56:07   cfg_changed_cnt 0
     2023-05-26 08:56:07   cloud_connected false
     2023-05-26 08:56:07   cloud_enabled   false
     2023-05-26 08:56:07   fs_free         166413
     2023-05-26 08:56:07   fs_size         233681
     2023-05-26 08:56:07   fw_ver          20230503-101129/v1.13.0-g9aed950
     2023-05-26 08:56:07   has_update      false
     2023-05-26 08:56:07   id              shellyplug-s-80646F8167C7
     2023-05-26 08:56:07   ip              192.168.0.101
     2023-05-26 08:55:40   loadState       off
     2023-05-26 08:56:07   mac             80646F8167C7
     2023-05-26 08:56:07   meters_1_counters_1 0.000
     2023-05-26 08:56:07   meters_1_counters_2 0.000
     2023-05-26 08:56:07   meters_1_counters_3 0.000
     2023-05-26 08:56:07   meters_1_is_valid true
     2023-05-26 08:56:07   meters_1_overpower 0.00
     2023-05-26 08:56:07   meters_1_power  0.00
     2023-05-26 08:56:07   meters_1_timestamp 0
     2023-05-26 08:56:07   meters_1_total  0
     2023-05-26 08:56:07   model           SHPLG-S
     2023-05-26 08:56:07   mqtt_connected  true
     2023-05-26 08:56:07   new_fw          false
     2023-05-26 08:56:07   online          true
     2023-05-26 09:20:08   overtemperature 0
     2023-05-26 08:56:07   ram_free        40500
     2023-05-26 08:56:07   ram_total       52056
     2023-05-26 09:20:08   relay0          on
     2023-05-26 09:20:16   relay_0_energy  1
     2023-05-26 09:20:16   relay_0_energy_total 6771
     2023-05-26 09:20:16   relay_0_kWh     0.00
     2023-05-26 09:20:07   relay_0_power   0.00
     2023-05-26 08:56:07   relays_1_has_timer false
     2023-05-26 08:56:07   relays_1_ison   true
     2023-05-26 08:56:07   relays_1_overpower false
     2023-05-26 08:56:07   relays_1_source input
     2023-05-26 08:56:07   relays_1_timer_duration 0
     2023-05-26 08:56:07   relays_1_timer_remaining 0
     2023-05-26 08:56:07   relays_1_timer_started 0
     2023-05-26 08:56:07   serial          1
     2023-05-26 09:20:08   state           on
     2023-05-26 09:20:08   temperature     31.16
     2023-05-26 09:20:08   temperature_f   88.08
     2023-05-26 08:56:07   time           
     2023-05-26 08:56:07   tmp_is_valid    true
     2023-05-26 08:56:07   tmp_tC          0.00
     2023-05-26 08:56:07   tmp_tF          32.00
     2023-05-26 08:56:07   unixtime        0
     2023-05-26 08:56:07   update_has_update false
     2023-05-26 08:56:07   update_new_version
     2023-05-26 08:56:07   update_old_version 20230503-101129/v1.13.0-g9aed950
     2023-05-26 08:56:07   update_status   unknown
     2023-05-26 08:56:07   uptime          1
     2023-05-26 08:56:07   wifi_sta_connected true
     2023-05-26 08:56:07   wifi_sta_ip     192.168.0.101
     2023-05-26 08:56:07   wifi_sta_rssi   -60
     2023-05-26 08:56:07   wifi_sta_ssid   Home
     2023-05-24 05:37:41   x_mqttcom       set announce
Attributes:
   alias      Saeco
   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>"}
   getList    power:noArg shellies/shellyplug-s-80646F8167C7/relay/power power
   model      shelly1_w_energy_measuring
   readingList shellies/shellyplug-s-80646F8167C7/relay/0:.* state
  shellies/shellyplug-s-80646F8167C7/relay/0:.* relay0
  shellies/shellyplug-s-80646F8167C7/input/0:.* input0
  shellies/shellyplug-s-80646F8167C7/online:.* online
  shellies/announce:.* { $EVENT =~ m,..id...shellyplug-s-80646F8167C7...mac.*, ? json2nameValue($EVENT) : return }
  shellies/shellyplug-s-80646F8167C7/announce:.* { json2nameValue($EVENT) }
  shellies/shellyplug-s-80646F8167C7/relay/0/power:.* relay_0_power
  shellies/shellyplug-s-80646F8167C7/relay/0/power:.* { my $compare = $EVTPART0 < 100 ? "off":"on"; ReadingsVal($NAME,"loadState","off") ne $compare ? { 'loadState' => $compare } : return }
  shellies/shellyplug-s-80646F8167C7/temperature:.* temperature
  shellies/shellyplug-s-80646F8167C7/temperature_f:.* temperature_f
  shellies/shellyplug-s-80646F8167C7/input_event/0:.* { json2nameValue($EVENT) }
  shellies/shellyplug-s-80646F8167C7/overtemperature:.* overtemperature
  shellies/shellyplug-s-80646F8167C7/relay/0/energy:.* relay_0_energy
  shellies/shellyplug-s-80646F8167C7/relay/0/energy:.* {'relay_0_kWh' => sprintf("%.2f",$EVENT/60/1000)}
  shellies/shellyplug-s-80646F8167C7/longpush/0:.* longpush_0
shellyplug_s_80646F8167C7:shellies/shellyplug-s-80646F8167C7/info:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE
   setList    relay0:on,off,toggle shellies/shellyplug-s-80646F8167C7/relay/0/command $EVTPART1
  toggle:noArg shellies/shellyplug-s-80646F8167C7/relay/0/command toggle
  off:noArg shellies/shellyplug-s-80646F8167C7/relay/0/command off
  on:noArg shellies/shellyplug-s-80646F8167C7/relay/0/command on
  x_update:noArg shellies/shellyplug-s-80646F8167C7/command update_fw
  x_mqttcom shellies/shellyplug-s-80646F8167C7/command $EVTPART1
   setStateList on off toggle
   userReadings relay_0_energy_total:relay_0_energy:.* monotonic {ReadingsNum("$name","relay_0_energy",0)}
   webCmd     :
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Otto123

Du hast jetzt (eventuell durch das alte Template) noch Readings drin die mMn nicht da hingehören.
Du hast auch eine readingList die ich nicht zuordnen kann (gibt es bei mir nicht) -> shellyplug_s_80646F8167C7:shellies/shellyplug-s-80646F8167C7/info:.* { json2nameValue($EVENT) }

Das empfohlenen userReadings sieht kaputt aus, bestenfalls ein c&p Problem :) denn relay_0_energy_total wird gesetzt. Stehen Werte dafür im FileLog_...?
Hat der Shelley Internet Zugang? Wieso findet der seine neue Firmware von 2023 nicht?
Warum dein relay_0_energy  0 ist kann ich nicht erklären, selbst bei geringer Leistung sollten dort langsam steigende Werte kommen.

Hast Du so etwas wie eine MQTT general Bridge?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

satprofi

#17
habe jetzt neueste firmware gezogen. au h dort steht unter status 0, nur der aktuelle verbrauch wird angezeigt.

userreadings kommen vom template, nix c&p
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Otto123

Du hast c&p hier ins Forum gemacht und dabei ist offenbar der "Schwanz" abgefallen ;) sie doch selbst in Deinen Post, das userReadings hört mittendrin auf.

status ? spielt keine Rolle - meinst Du STATE? dort werden transformierte Werte in kWh reingeschrieben, die erreichst Du theoretisch bei 1.25 Watt nach 10 Stunden oder so?

öffne mal das Device myBroker und geh dort auf show MQTT Traffic und setze den Filter auf .*energy.*
Kommt da immer 0  ? Dann wäre wirklich was mit dem Plug  :o

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

satprofi

hallo. update, es klappt jetzt.
habe cloud aktiviert, da wollte er gateway adresse, eingetragen. verbindung klappte. dann wieder mqtt aktiviert, und jetzt zählt total auf einmal.
komisch.
danje jedenfalls
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

satprofi

Zitat von: Otto123 am 23 Mai 2023, 12:08:40Hi,

ich weiß nicht wie Du es eingebunden hast (Template?) - aber ich habe ein userReadings dafür:
relay_0_energy_total:relay_0_energy:.* monotonic {ReadingsNum("$name","relay_0_energy",0)}
BTW: energy ist bei mir die Momentanleistung

Gruß Otto

Hallo Otto.

Ich habe den Plug S kurz abgesteckt, jetzt sehe ich die readings ,bis auf energy_total, leer. 2023-05-26 09:46:15   relay_0_energy  2
     2023-05-26 09:46:15   relay_0_energy_total 6772
     2023-05-26 09:46:15   relay_0_kWh     0.00
     2023-05-26 09:46:08   relay_0_power   0.00


energy_total zählt jetzt weiter. was bedeutet der wert? und welcher wert für Total in der statuszeile wird da herangezogen?
dort steht ja jetzt "Verbrauch: 0.00 / Total: 0.00/ Temp: 33.46 °C" , total wäre für mich doch die 6772, oder?

Gruss Manfred
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Otto123

#21
Moin,

nix ist perfekt ;) das Template ist sicher noch nicht 100 % konsistent.
Der Wert im STATE wird aus relay_0_kWh (kWh) genommen, dieser wiederum aus relay_0_energy (Watt Minuten), dieser geht beim Stromausfall verloren.
relay_0_energy_total wird in FHEM gespeichert und aus den Werten in relay_0_energy aufsummiert (monotonic) und ist auch in Watt Minuten.

Ich glaube es gibt Shellies die speichern, da ist das Template ok. Der Plug S speichert nicht, da müsste man jetzt für STATE den Wert aus energy_total nehmen und in kWh umrechnen.
Im devStateIcon den Ausdruck für $total ersetzen:
my $total = sprintf("%.2f",ReadingsNum($name,"relay_0_energy_total",0)/60/1000)
Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

satprofi

passt, danke.
Gruss Manfred
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

pula

Hallo und sorry, wenn ich das Thema noch einmal ausgrabe.
Wie macht Ihr das mit stündlichen/täglichen/monatlichen/jährlichen Auswertungen (zb Richtung Grafana)?
Userreading, das stündlich/täglich die Differenz zum vorher gemerkten relay_0_energy_total wegschreibt (und damit in die db) würde mir da als erstes einfallen?
cheers,
Pula
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

RalfRog

Den energy-Wert bereitet mit das statistics-Modul auf (Hour, Day, Month, Year).

Ich nutze zwar Grafana nicht aber schreibe in DBLog.
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

pula

Danke! an das modul hatte ich gar nicht mehr gedacht :-)
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram