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 Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

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 Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

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 Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

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 Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

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 Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

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 Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

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 Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

Otto123

Hi,

ich habe nicht verstanden, warum Du Power und Current getrennt auswerten willst. Ich meine: relevant wäre Power, Current liefert die nahezu gleiche Info.

Ich würde nicht bei > 0 einsteigen.
Ich habe so ein Waschmaschine Dingens nicht, ich dachte das war hier schon hundertfach gelöst :)

Mal gestern probiert - sozusagen als Trockentest - ohne Waschmaschine:
Bei überschreiten von 20 wird das DOIF aktiv, bei unterschreiten von 2 für 5 sec meldet er fertig.
defmod di_wm DOIF ([$SELF:"^running:.0$"]) (set alias=Arbeitszimmer sayText fertig) DOELSEIF\
([d_Power:power] > 20 )(setreading $SELF running 1) DOELSEIF \
([d_Power:power] < 2 and [$SELF:running] eq '1')(sleep 1;;setreading $SELF running 0)\

attr di_wm cmdState speak|on|off
attr di_wm do resetwait
attr di_wm room TestPower
attr di_wm wait 0:0:5

defmod d_Power dummy
attr d_Power readingList power
attr d_Power room TestPower,Test
attr d_Power setList power:slider,0,1,100
attr d_Power stateFormat power
attr d_Power webCmd power


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

#16
Zitatich habe nicht verstanden, warum Du Power und Current getrennt auswerten willst.
Die Waschmaschine hat eine Antiknitterstufe, d.h. nach dem Waschgang dreht sich alle paar Minuten mal kurz die Trommel.

Ich versuche mal Dein Konstrukt zu durchblicken.
FHEM auf Debian Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

Otto123

#17
dafür habe ich die Zeitverzögerung (wait) angedacht, muss man aber ev. anders machen.

Aber nochmal: Power (Momentanleistung) und Current verhalten sich synchron, egal ob es knittert. Wenn mehr Strom dann mehr Power ;)

Der Trockentest ist reine Spielerei, die verwendeten Werte haben nichts mit der Waschmaschine und deren Leistung zu tun.
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

Wzut

Zitat von: Otto123 am 02 März 2021, 13:46:22
ich dachte das war hier schon hundertfach gelöst :)
das frage ich mich auch schon die ganze Zeit, warum muß ständig das Rad neu mit Ecken erfunden werden statt eines der vorhanden kreisrunden zu nehmen ?
https://forum.fhem.de/index.php/topic,48877.msg405802.html#msg405802 , Strom und Wartezeiten auf den eigenen Typ anpassen , fertig
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

grossmaggul

Ich habe ja schon einiges gesucht und auch gefunden, aber gerade das nicht. :-\
Wahrscheinlich falsche Suchbegriffe. ::)
Ich werde das mal testen, danke!
FHEM auf Debian Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

grossmaggul

Dank Eurer Hilfe und der Hilfe diverser Quellen habe ich jetzt ein fast funktionierendes DOIF.

Allerdings gibt es noch ein Problem mit dem Attribut cmdState, ich fummele da jetzt schon den ganzen Nachmittag dran rum, aber ich komme nicht dahinter warum das nicht so will wie ich.

Das DOIF:
([d_Power:power:d] > 0.1 and [?$SELF] =~ "cmd_5|initialized|initialize")
  (({Log 3, "Waschmaschine eingeschaltet"}))
DOELSEIF ([d_Power:power:d] > 20 and [?$SELF] eq "cmd_1")
  (({Log 3, "Waschmaschine Programm gestartet"}))
DOELSEIF ([d_Power:power:d] > 20 and [?$SELF]  =~ "cmd_2|cmd_3")
  (({Log 3, "Waschmaschine Programm laeuft"}))
DOELSEIF ([d_Power:power:d] < 5 and [?$SELF]  =~ "cmd_2|cmd_3")
  (({Log 3, "Waschmaschine Programm beendet"}))
DOELSEIF ([d_Power:power:d] < 0.1 or [d_Power:power:d] > 20 and [?$SELF] eq "cmd_4")
  (({Log 3, "Waschmaschine ausgeschaltet"}))


Und die Attribute dazu
Attributes:
   DbLogExclude .*
   do         resetwait
   room       Geräte->Systeme->Gosund,System->Logik,Zimmer->Waschküche
   wait       0:0:0:300:0


Damit ich nicht dauernd die Waschmaschine laufen lassen muss, habe ich Ottos Slider aus seinem Posting vom 02.03. benutzt.
Das funktioniert, wenn ich aber beispielsweise folgendes Attribut angebe:
cmdState An|Start|Arbeitet|Ende|Aus

Dann funktioniert es nicht mehr, erhöhe ich "power", wird nur "An" angezeigt, danach funktioniert das ganze DOIF nicht mehr und ich muss es neu initialisieren.

Was fehlt mir da noch bzw. was mache ich falsch, ich komme nicht dahinter?  :-\

gm
FHEM auf Debian Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

Wzut

#21
ich habe ja wenig Ahnung von DOIF , aber warum hast du es nicht so wie in dem von mir verlinkten Beitrag ?
Jetzt 5 statt 4 Schritte  und  läuft und Ende hast auch geändert, vorallem bei Ellert wird nur am Ende auf kleiner abgefragt, alle anderen Schritte arbeiten immer mit größer !

Edit : repeatcmd ist auch verschwunden ....
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

grossmaggul

Zitataber warum hast du es nicht so wie in dem von mir verlinkten Beitrag ? Jetzt 5 statt 4 Schritte
Weil das nicht funktioniert hat, die Maschine hat hin und wieder Powerwerte unter 2 und dann kam halt die Meldung, das Programm wäre fertig, war es aber nicht, dieses Verhalten fangen die 5 Schritte jetzt ab, weil diese Variante über wait einige Zeit wartet ob die Powerwerte ansteigen und erst wenn das nicht der Fall ist, wir die Programmendemeldung ausgegeben. Das funktionierte bei der 4 Schrittvariante nicht.
Die 5er Variante ist von ahlermi und da wundert er sich halt auch, daß die 4er Variante überhaupt funktioniert. Das kommt wahrscheinlich auch auf die Waschmaschine an.
Davon ab funktionierte cmdState mit der 4 Schritt Variante auch nicht.

Zitatrepeatcmd ist auch verschwunden ....
Ja, weil es nix gebracht hat, ich nutze das jetzt nur, daß mir bei Programmende alle 5 Minuten eine Message geschickt wird.
FHEM auf Debian Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

Wzut

also bei mir läuft die 4er Version seit Jahren sowohl für den Trockner als auch die Waschmaschine.
IMHO ist es keine Frage des Typs sondern wie gut/genau der aktuelle Stomverbrauch gesendet wird.
So hatte ich zuerst eine AVM DECT (lief gut) dann eine Revolt (ganz schlecht), daher wurde es halt wieder zwei mal die AVM.
Was ich am Anfang gemacht habe : Maschine laufen lassen und für jeden Programm Typ ein Log der Messwerte erstellt.
Heizung, Pumpe & Motor sind kein Problem da sie i.d.R. wirklich Strom verbrauchen. Problem sind die Ruhephasen, da hier nur minimal Strom verbraucht wird. Aber wie gesagt, ich habe keine Ahnung von DOIF und nutze es normalerweise gar nicht. 
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

grossmaggul

ZitatProblem sind die Ruhephasen
Eben, da legt meine Maschine einige von ein, warum auch immer.

ZitatWas ich am Anfang gemacht habe : Maschine laufen lassen und für jeden Programm Typ ein Log der Messwerte erstellt.
Das habe ich ja auch gemacht und da kann man eben sehen, daß der Energieverbrauch hin und wieder fast auf Null geht und diese Phasen erkennt das DOIF mit den fünf Schritten.

Zitatich habe keine Ahnung von DOIF und nutze es normalerweise gar nicht.
Wie machst Du das denn?

Es funktioniert ja jetzt wie es soll, eben bis auf den cmdState.
FHEM auf Debian Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

Damian

ZitatDas funktioniert, wenn ich aber beispielsweise folgendes Attribut angebe:
Code: [Auswählen]
cmdState An|Start|Arbeitet|Ende|Aus

Dann funktioniert es nicht mehr, erhöhe ich "power", wird nur "An" angezeigt, danach funktioniert das ganze DOIF nicht mehr und ich muss es neu initialisieren.

Was fehlt mir da noch bzw. was mache ich falsch, ich komme nicht dahinter?  :-\

Das ist auch kein Wunder, dass es nicht funktioniert.

Du hast mit cmdState den Status deines Moduls geändert, fragst ihn aber nach cmd_1, cmd_2 usw. ab.

Du kannst genauso Readings des DOIFs cmd oder cmd_nr oder die Variable $cmd statt den Status abfragen.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Wzut

Zitat von: grossmaggul am 06 März 2021, 09:25:28
daß der Energieverbrauch hin und wieder fast auf Null geht und diese Phasen erkennt das DOIF mit den fünf Schritten.
die Ruhepausen sind angeblich der Knitterschutz, ich nenne sie simple Einweichzeiten. Die sind halt verschieden je nach Programm. Das DOIF mit den vier Schritten geht wenn die Wartezeit zu der längsten vorkommenden Ruhepause passt. Der "Nachteil" ist aber auf jeden Fall das das Ende auch um diese Zeit verzögert wird, allerdings können bei mir die Nutzer damit gut leben.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

grossmaggul

#27
ZitatDu hast mit cmdState den Status deines Moduls geändert, fragst ihn aber nach cmd_1, cmd_2 usw. ab.
Danke Damian, ich dachte mir fast sowas, ich muss gestehen, daß ich DOIF noch nicht wirklich verstanden habe. :-\
Ist aber auch ein verdammt komplexes Teil.

ZitatDu kannst genauso Readings des DOIFs cmd oder cmd_nr oder die Variable $cmd statt den Status abfragen.
Auch wenn ich mich jetzt als Vollhonk oute, das habe ich nicht verstanden.

Zitat von: Wzutallerdings können bei mir die Nutzer damit gut leben.
Bei uns bin ich der Nutzer und der kann damit nicht leben. ;)
Was stört Dich denn daran, daß es bei mir fünf Schritte sind, frisst doch kein Brot.

Zitatdie Ruhepausen sind angeblich der Knitterschutz
Meine Maschine hat am Ende tatsächlich einen Knitterschutz, der dauert ca. eine halbe Stunde in der alle paar Minuten die Trommel bewegt wird und den gilt es halt enbenfalls irgendwie zu erkennen.
FHEM auf Debian Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1