Gosund SP 1 und Waschmaschine Auswertung funktioniert nicht

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

Vorheriges Thema - Nächstes Thema

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 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

#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 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

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 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

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 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

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 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

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 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