Gosund SP 1 und Waschmaschine Auswertung funktioniert nicht

Begonnen von grossmaggul, 27 Februar 2021, 15:01:04

Vorheriges Thema - Nächstes Thema

grossmaggul

Hallo,

ich habe vor ein paar Tagen eine Gosund SP1 umgeflasht und versuche gerade damit eine Auswertung meiner Waschmaschine.

Ich habe mich dabei zum einen hieran und zum anderen an diesem Thread orientiert.

Nur leider will das Ganze nicht so, wie es soll.

Die Gosund Steckdose wurde als MQTT2 Device angelegt:
Internals:
   CID        DVES_09DE70
   DEF        DVES_09DE70
   DEVICETOPIC wk.waschmaschine
   FUUID      6039389f-f33f-f310-6c45-dbba44058287c267
   IODev      MQTT2_Server
   LASTInputDev MQTT2_Server
   MQTT2_Server_MSGCNT 956
   MQTT2_Server_TIME 2021-02-27 14:41:36
   MSGCNT     956
   NAME       wk.waschmaschine
   NR         325
   STATE     
fertig
| Strom: 0.0 A
| Energie heute: 0.2 kWh
| Energie total: 2.4 kWh
|
   TYPE       MQTT2_DEVICE
   JSONMAP:
     Channel_0  0
     Channel_1  0
     Channel_2  0
     Channel_3  0
     Channel_4  0
     Color      0
     Dimmer     0
     HSBColor   0
     POWER1     0
     POWER2     0
     POWER3     0
     POWER4     0
   READINGS:
     2021-02-27 14:41:36   ENERGY_ApparentPower 0.00
     2021-02-27 14:41:36   ENERGY_Current  0.000
     2021-02-27 14:41:36   ENERGY_Factor   0.00
     2021-02-27 14:41:36   ENERGY_Period   0.01
     2021-02-27 14:41:36   ENERGY_Power    0.00
     2021-02-27 14:41:36   ENERGY_ReactivePower 0.00
     2021-02-27 14:41:36   ENERGY_Today    0.214
     2021-02-27 14:41:36   ENERGY_Total    2.402
     2021-02-27 14:41:36   ENERGY_TotalStartTime 2021-02-22T17:59:00
     2021-02-27 14:41:36   ENERGY_Voltage  231
     2021-02-27 14:41:36   ENERGY_Yesterday 1.340
     2021-02-27 14:41:36   Heap            27
     2021-02-26 22:24:45   LWT             Online
     2021-02-27 14:41:36   LoadAvg         19
     2021-02-27 14:41:36   MqttCount       3
     2021-02-26 19:10:06   SaveData        on
     2021-02-26 19:10:06   SetOption26     on
     2021-02-27 14:41:36   Sleep           50
     2021-02-27 14:41:36   SleepMode       Dynamic
     2021-02-26 19:10:05   StateText1      off
     2021-02-26 19:10:05   StateText2      on
     2021-02-26 19:10:05   StateText3      toggle
     2021-02-26 19:10:05   StateText4      hold
     2021-02-27 14:41:36   Time            2021-02-27T14:41:36
     2021-02-27 14:41:36   Uptime          0T19:35:12
     2021-02-27 14:41:36   UptimeSec       70512
     2021-02-27 14:41:36   Verbrauch       0
     2021-02-27 14:41:36   Wifi_AP         1
     2021-02-27 14:41:36   Wifi_BSSId      B4:FB:E4:DA:7E:1F
     2021-02-27 14:41:36   Wifi_Channel    1
     2021-02-27 14:41:36   Wifi_Downtime   0T00:02:19
     2021-02-27 14:41:36   Wifi_LinkCount  2
     2021-02-27 14:41:36   Wifi_RSSI       62
     2021-02-27 14:41:36   Wifi_SSId       wifi24
     2021-02-27 14:41:36   Wifi_Signal     -69
     2021-02-26 19:10:05   attrTemplateVersion 20200522 or prior
     2021-02-27 14:41:36   state           
     2021-02-26 20:47:49   subscriptions   cmnd/DVES_09DE70_fb/# cmnd/tasmota_09DE70/# cmnd/tasmotas/#
     2021-02-27 13:36:38   washState       0
Attributes:
   DbLogExclude .*
   IODev      MQTT2_Server
   autocreate 0
   comment    NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10; 'cmnd/cmnd/tasmota_09DE70/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
   devStateIcon on:rc_GREEN:off off:rc_RED:on offline:rc_BLUE:off
   event-on-change-reading .*
   genericDeviceType switch
   icon       message_socket
   jsonMap    POWER1:0 POWER2:0 POWER3:0 POWER4:0 Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 HSBColor:0 Color:0
   model      tasmota_basic_state_power1
   readingList tele/tasmota_09DE70/LWT:.* LWT
  tele/tasmota_09DE70/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/tasmota_09DE70/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/tasmota_09DE70/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/tasmota_09DE70/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }
  stat/tasmota_09DE70/POWER1:.* state
  stat/tasmota_09DE70/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
   room       7.6_MQTT2
   setList    on cmnd/wk.waschmaschine/POWER on
off cmnd/wk.waschmaschine/POWER off
   setStateList on off toggle
   stateFormat [$name:state]
[wk.waschmaschine_DOIF:state:r1]
| Strom: [$name:ENERGY_Current:r1] A
| Energie heute: [$name:ENERGY_Today:r1] kWh
| Energie total: [$name:ENERGY_Total:r1] kWh
|
   userReadings state {ReadingsVal($name,"POWER","")}, Verbrauch difference {1000*ReadingsVal($name,"ENERGY_Total",0);;}
   webCmd     on:off


Und das DOIF
Internals:
   DEF        ([wk.waschmaschine:Verbrauch]>1)
(setreading wk.waschmaschine washState 1)
DOELSEIF ([wk.waschmaschine:ENERGY_Current]>0.025
and [wk.waschmaschine:ENERGY_Current]<0.042
and [wk.waschmaschine:washState] eq "1")
(setreading wk.waschmaschine washState 0)
DOELSEIF ([wk.waschmaschine:ENERGY_Current]>0.025
and [wk.waschmaschine:ENERGY_Current]<0.042
and [wk.waschmaschine:washState] eq "0")
(set telegrambot send @Testuser Fäddisch!)

   FUUID      60394449-f33f-f310-16a0-9b4f930b18b0087f
   MODEL      FHEM
   NAME       wk.waschmaschine_DOIF
   NOTIFYDEV  global,wk.waschmaschine
   NR         327
   NTFY_ORDER 50-wk.waschmaschine_DOIF
   STATE      fertig
   TYPE       DOIF
   VERSION    23790 2021-02-20 19:55:33
   READINGS:
     2021-02-27 14:36:59   Device          wk.waschmaschine
     2021-02-27 13:40:05   cmd             3
     2021-02-27 13:40:05   cmd_event       wk.waschmaschine
     2021-02-27 13:40:05   cmd_nr          3
     2021-02-27 14:36:59   e_wk.waschmaschine_ENERGY_Current 0.000
     2021-02-27 14:36:36   e_wk.waschmaschine_Verbrauch 0
     2021-02-27 13:40:05   error           set telegrambot_maggi send ....
     2021-02-26 19:59:08   mode            enabled
     2021-02-27 13:40:05   state           fertig
     2021-02-27 13:50:22   wait_timer      no timer
   Regex:
     accu:
     cond:
       wk.waschmaschine:
         0:
           Verbrauch  ^wk.waschmaschine$:^Verbrauch:
         1:
           ENERGY_Current ^wk.waschmaschine$:^ENERGY_Current:
           washState  ^wk.waschmaschine$:^washState:
         2:
           ENERGY_Current ^wk.waschmaschine$:^ENERGY_Current:
           washState  ^wk.waschmaschine$:^washState:
   attr:
     cmdState:
       0:
         arbeitet
       1:
         pausiert
       2:
         fertig
     wait:
       0:
         300
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'wk.waschmaschine','Verbrauch')>1
     1          ::ReadingValDoIf($hash,'wk.waschmaschine','ENERGY_Current')>0.025  and ::ReadingValDoIf($hash,'wk.waschmaschine','ENERGY_Current')<0.042  and ::ReadingValDoIf($hash,'wk.waschmaschine','washState') eq "1"
     2          ::ReadingValDoIf($hash,'wk.waschmaschine','ENERGY_Current')>0.025  and ::ReadingValDoIf($hash,'wk.waschmaschine','ENERGY_Current')<0.042  and ::ReadingValDoIf($hash,'wk.waschmaschine','washState') eq "0"
   do:
     0:
       0          setreading wk.waschmaschine washState 1
     1:
       0          setreading wk.waschmaschine washState 0
     2:
       0          set telegrambot_maggi send @Maggi Fäddisch!
     3:
   helper:
     DEVFILTER  ^global$|^wk.waschmaschine$
     NOTIFYDEV  global|wk.waschmaschine
     event      ENERGY_Power: 0.00,ENERGY_Voltage: 233,ENERGY_Factor: 0.00,ENERGY_ApparentPower: 0.00,Time: 2021-02-27T14:36:59,ENERGY_Current: 0.000,ENERGY_ReactivePower: 0.00
     globalinit 1
     last_timer 0
     sleepdevice wk.waschmaschine
     sleepsubtimer 0
     sleeptimer -1
     timerdev   wk.waschmaschine
     timerevent ENERGY_Current: 0.034,ENERGY_Period: 0.12,ENERGY_ReactivePower: 7.90,ENERGY_Voltage: 235,ENERGY_Factor: 0.19,ENERGY_ApparentPower: 8.00
     triggerDev wk.waschmaschine
     timerevents:
       ENERGY_Current: 0.034
       ENERGY_Period: 0.12
       ENERGY_ReactivePower: 7.90
       ENERGY_Voltage: 235
       ENERGY_Factor: 0.19
       ENERGY_ApparentPower: 8.00
     timereventsState:
       ENERGY_Current: 0.034
       ENERGY_Period: 0.12
       ENERGY_ReactivePower: 7.90
       ENERGY_Voltage: 235
       ENERGY_Factor: 0.19
       ENERGY_ApparentPower: 8.00
     triggerEvents:
       ENERGY_Power: 0.00
       ENERGY_Voltage: 233
       ENERGY_Factor: 0.00
       ENERGY_ApparentPower: 0.00
       Time: 2021-02-27T14:36:59
       ENERGY_Current: 0.000
       ENERGY_ReactivePower: 0.00
     triggerEventsState:
       ENERGY_Power: 0.00
       ENERGY_Voltage: 233
       ENERGY_Factor: 0.00
       ENERGY_ApparentPower: 0.00
       Time: 2021-02-27T14:36:59
       ENERGY_Current: 0.000
       ENERGY_ReactivePower: 0.00
   internals:
   perlblock:
   readings:
     all         wk.waschmaschine:Verbrauch wk.waschmaschine:ENERGY_Current wk.waschmaschine:washState
   trigger:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   cmdState   arbeitet|pausiert|fertig
   room       7.6_MQTT2
   wait       300


Problem dabei, der Verbrauch steht oft auf 0, mir scheint da irgendwie die Berechnung nicht zu funktionieren.
Ich verstehe aber auch die Berechnung des Verbrauchs nicht vollständig.

Verbrauch difference {1000*ReadingsVal($name,"ENERGY_Total",0);;}
Ich verstehe soviel, daß da die Differenz zwischen dem aktuellen und dem vorherigen ENERGY_Total Wert des wk.waschmaschine-Device berechnet wird, aber was bedeutet die 0 und die Semikolons am Ende des Ausdrucks?

Hier mal ein pastebin eines Waschmaschinen-Durchlaufs
https://pastebin.com/rweDvzv1

Wenn ich das richtig sehe, bleibt der Verbrauch bei 0 obwohl sich der ENERGY_Total Wert sporadisch ändert.

Wo ist mein Fehler?

gm
FHEM auf Debian 12 Bookworm Server, Supermicro Core2Duo Board, 2 TB HD RAID 1, 8GB RAM, 2 x nanoCUL868, 1 x nanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1,WLED

Otto123

Hi,

eigentlich steht doch die momentane Leistung in ENERGY_Power - ich würde einfach die auswerten.
Allerdings schwanken die Werte bei dieser Art "Meßdosen" teilweise sehr stark!
Zitataber was bedeutet die 0 und die Semikolons am Ende des Ausdrucks?
Das ; steht "aus Angst" dort und ist unnütz. Es trennt Perlbefehle, aber es kommt kein Weiterer und durch die } Klammer ist der Perl Block eh zu Ende.
Die 0 ist der Defaultwert wenn ReadingsVal() nichts lesen könnte, Details findest Du in der Doku: https://fhem.de/commandref_DE.html#perl

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

grossmaggul

#2
Hallo,

Zitateigentlich steht doch die momentane Leistung in ENERGY_Power - ich würde einfach die auswerten.
Das habe ich schon probiert, aber wie Du schon schriebst, die schwanken heftigst, deshalb wird da wohl auch ENERGY_Total ausgewertet, verstehe bloß nicht warum der Verbrauch dann immer 0 ist.

ZitatDetails findest Du in der Doku
Das hatte ich gesucht, aber vergessen wo das zu finden war. :o :-\
FHEM auf Debian 12 Bookworm Server, Supermicro Core2Duo Board, 2 TB HD RAID 1, 8GB RAM, 2 x nanoCUL868, 1 x nanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1,WLED

Otto123

aber die difference bei Total ergibt doch auch wieder schwankende Werte?
Da musst Du mit event-aggregator https://fhem.de/commandref_DE.html#attributes was machen?
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

Wernieman

Das die Werte schwanken ist doch logisch, schließlich Verbraucht eine Waschmaschine schwankend. Am heftigsten ist dieses beim Schleudern, da der Verbrauch beim Hochdrehen sehr hoch ist, beim "stoppen" aber sehr nidrig (oder gliech 0). Analog beim heizen und und und ...

Haben wir hier in diversen Threads doch auch schon ausdiskutiert ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Otto123

bei den billigen "ESP Dosen" schwankt die Leistungmessung ohne Änderung der Leistung. Wobei das nur bei geringen Leistungen relevant sein sollte.
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

Wernieman

Das kommt dann noch dazu ....   ;)
Sind schließlich keine "geeichten Messgeräte" sondern, wie mal ein Prof sagte, "Schätzeisen"
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

grossmaggul

Heißt also im Klartext, das kann nicht funktionieren?
FHEM auf Debian 12 Bookworm Server, Supermicro Core2Duo Board, 2 TB HD RAID 1, 8GB RAM, 2 x nanoCUL868, 1 x nanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1,WLED

Otto123

Hast Du denn mal einen Waschgang mitgeloggt? Ich denke schon das es funktioniert. Zeig doch mal einen Plot von ENERGY_Power
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

grossmaggul

Einen Durchlauf habe ich im ersten Post schon verlinkt.

Plot müsste ich noch machen.
FHEM auf Debian 12 Bookworm Server, Supermicro Core2Duo Board, 2 TB HD RAID 1, 8GB RAM, 2 x nanoCUL868, 1 x nanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1,WLED

Otto123

Zitat von: grossmaggul am 28 Februar 2021, 01:33:11
Einen Durchlauf habe ich im ersten Post schon verlinkt.
Ziemlich räudig ... warum nicht einfach als Datei am Post angehangen. Warum auf so einem blöden Werbeportal? Sorry das tu ich mir nicht an ...
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

grossmaggul

Seit wann ist pastebin ein Werbeportal? Ich dachte das wäre Standard um lange Logauszüge zu posten.

Ich hab's nochmal hier angehängt.
FHEM auf Debian 12 Bookworm Server, Supermicro Core2Duo Board, 2 TB HD RAID 1, 8GB RAM, 2 x nanoCUL868, 1 x nanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1,WLED

Otto123

Also ich kann auf der Seite vor Werbung kaum was erkennen, ein download hab ich mir nicht getraut, in der Ansicht konnte man nicht suchen.

Egal,
Ich sehe in deinem Log nur am Ende einen Wert von 0.00 von ENERGY_Power
Scheinbar ist die Schwelle für fertig so bei 10 Watt? So holprig sieht doch der Werte Verlauf nicht aus?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

grossmaggul

ZitatAlso ich kann auf der Seite vor Werbung kaum was erkennen
O.K., ich sehe davon wahrscheinlich nix, weil ich sowohl einen Adblocker im Browser als auch ein piHole laufen habe.

Ich werde nochmal was mit ENERGY_Power basteln, mal sehen ob das klappt, danke erstmal bis hierher.
FHEM auf Debian 12 Bookworm Server, Supermicro Core2Duo Board, 2 TB HD RAID 1, 8GB RAM, 2 x nanoCUL868, 1 x nanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1,WLED

grossmaggul

Ich habe jetzt nochmal einen Probelauf gemacht und dabei ENERGY_Power ausgewertet, das hat eigentlich ganz gut funktioniert, nur scheint bei dem DOIF noch irgendwas nicht zu stimmen, denn obwohl ENERGY_Power jetzt seit einiger Zeit auf 0 steht, wird immer noch "arbeitet" angezeigt.
Ich komme aber nicht dahinter was da faul ist, vielleicht mag ja mal jemand drüber sehen.

([wk.waschmaschine:ENERGY_Power]>0)
(setreading wk.waschmaschine washState 1)
DOELSEIF ([wk.waschmaschine:ENERGY_Current]>0.025
and [wk.waschmaschine:ENERGY_Current]<0.042
and [wk.waschmaschine:washState] eq "1")
(setreading wk.waschmaschine washState 0)
DOELSEIF ([wk.waschmaschine:ENERGY_Current]>0.025
and [wk.waschmaschine:ENERGY_Current]<0.042
and [wk.waschmaschine:washState] eq "0")
(set telegrambot_maggi send @XXXXi Fäddisch!)


Im Anhang noch ein Plot von einem Waschgang
FHEM auf Debian 12 Bookworm Server, Supermicro Core2Duo Board, 2 TB HD RAID 1, 8GB RAM, 2 x nanoCUL868, 1 x nanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1,WLED