Waschmaschine fertig

Begonnen von moes, 07 Februar 2016, 09:19:27

Vorheriges Thema - Nächstes Thema

moes

Hallo @all

Ich versuche nun schon ein paar Tage diese Anleitung umzusetzen.
http://www.meintechblog.de/2014/01/homematic-funk-steckdose-mit-leistungsmessung-deine-waschmaschine-ist-fertig/

Der aktuelle Wert wird in den dummy Leistungsmesser_02_Watt geschrieben. Soweit gut. Allerdings finde ich nicht den Fehler warum sich der dummy WaschmaschineHoherVerbrauch ändert. Da der dummy nicht gesetzt wird kann ich auch noch nicht sagen ob die weiteren Schritt funktionieren. Über einen Tip wäre ich sehr dankbar.

Hier der Auszug aus meiner Fhem Config

define Leistungsmesser_02_Watt dummy
attr Leistungsmesser_02_Watt room Bad
define Leistungsmesser_02_WattSet notify Leistungsmesser_02_Pwr {my $power =ReadingsVal("Leistungsmesser_02_Pwr","power","");; fhem ("set Leistungsmesser_02_Watt $power")}
attr Leistungsmesser_02_WattSet room Bad


#Dummy WaschmaschineBetrieb einschalten bei Verbrauch größer 30 Watt
define WaschmaschineBetriebAn notify Waschmaschine_Pwr:power.* {fhem ("set WaschmaschineBetriebAn on;; setstate WaschmaschineAutoOff defined") if (ReadingsVal("Waschmaschine_Pwr","power","") >= 30 && Value("WaschmaschineBetriebAn") eq "on")}
attr WaschmaschineBetriebAn room Bad
#Dummy WaschmaschineHoherVerbrauch definieren
define WaschmaschineHoherVerbrauch dummy
attr WaschmaschineHoherVerbrauch event-on-change-reading state
attr WaschmaschineHoherVerbrauch room Bad

#Dummy WaschmaschineHoherVerbrauch einschalten bei Verbrauch größer 5 Watt bei laufendem Betrieb
define WaschmaschineHoherVerbrauchAn notify Waschmaschine_Pwr:power.* {fhem ("set WaschmaschineHoherVerbrauch on;; setstate WaschmaschineAutoStandby defined") if (ReadingsVal("Waschmaschine_Pwr","power","") > 5 && Value("WaschmaschineBetriebAn") eq "on")}
attr WaschmaschineHoherVerbrauchAn room Bad
#Dummy WaschmaschineHoherVerbrauch ausschalten bei Verbrauch kleiner gleich 5 Watt bei laufendem Betrieb
define WaschmaschineHoherVerbrauchAus notify Waschmaschine_Pwr:power.* {fhem ("set WaschmaschineHoherVerbrauch off") if (ReadingsVal("Waschmaschine_Pwr","power","") <= 5 && Value("WaschmaschineBetriebAn") eq "on")}
attr WaschmaschineHoherVerbrauchAus room Bad

#Wenn der Verbrauchswert für mindestens 5 Minuten bei laufendem Betrieb unter obigem Schwellwert (5 Watt) verbleibt, wird angenommen, dass der Waschvorgang tatsächlich abgeschlossen ist
define WaschmaschineAutoStandby watchdog WaschmaschineHoherVerbrauch:off 00:05 WaschmaschineHoherVerbrauch:on set WaschmaschineBetriebAn standby
attr WaschmaschineAutoStandby regexp1WontReactivate 1
attr WaschmaschineAutoStandby room Bad

Ellert

Ich habe es mit einem DOIF gelöst:

Ergänzter Auszug aus dem DEF-Editor:
Waschmasch_di DOIF ([Waschmaschine_Pwr:power] > 0.1 and [?Waschmasch_di] =~ "cmd_4|initialized")
      (({Log 3, "Waschmaschine: Ein"}))## Schalter ein
DOELSEIF ([Waschmaschine_Pwr:power] > 20 and [?Waschmasch_di] eq "cmd_1")
     (({Log 3, "Waschmaschine: Programmstart"}))
DOELSEIF ([Waschmaschine_Pwr:power] > 20 and [?Waschmasch_di] eq "cmd_2") ## Ende (wenn länger als 5 min < 20)
     (({Log 3, "Waschmaschine: Programmende"}))
DOELSEIF ([Waschmaschine_Pwr:power] < 0.1 or [Waschmaschine_Pwr:power] > 20 and [?Waschmasch_di] eq "cmd_3")
     (({Log 3, "Waschmaschine: Aus"}))## Schalter aus oder Neustart ohne aus


und die Attribute

do resetwait
repeatcmd 0:0:300:0
wait 0:0:300:0


Das DOIF startet, wenn die Waschmaschine aus ist (cmd_4) oder das DOIF initialisiert ist und power > 0.1 ist.
Wenn power > 20 nach cmd_1 wird der Programmstart angezeigt.
Wenn power länger als 5 Minuten unter 20 liegt nach cmd_2, dann ist die Maschine fertig.
Nach cmd_3 und bei power < 0.1 ist die Maschine ausgeschaltet oder falls eine weitere Maschine gewaschen wird, ohne auszuschalten, geht die Maschine über "Aus" (cmd_4) in den "Ein" Zustand.

siehe http://fhem.de/commandref_DE.html#DOIF

Yil

#2
Coole Sache. Ich hab den DOIF-Ausdruck mal bei mir übernommen und auf einen Fibaro-Stecker angewandt mit dem Ergebnis, dass dieser bei:

ZWAVE_Schalter_6:power

z.B. einen  Wert von "20.4 W" ausgibt.

Frage hierzu: wie filtert man das Leerzeichen und das "W" weg, so dass sich ein korrekter numerischer Ausdruck ergibt?

(Ich weiß, Anfängerfrage ...)

VG Yil
HM CCU2 mit ca. 35 HM-Komponenten inkl. Bausätzen
fhem auf RPi mit Sonos, EnOcean-CUL, ZWAVE-CUL und Bluetooth
Osram Lightify

CoolTux

Gib mal Deinen ganzen Code bitte.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Bennemannc

Hallo,

commandref lesen - readingsnum finden - umsetzen als userReading und das nehmen.

Gruß Christoph

PS. Das habe ich auch gerade erst nachgeschaut ;-)
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Damian

Zitat von: Yil am 14 Februar 2016, 21:57:42
Colle Sache. Ich hab den DOIF-Ausdruck mal bei mir übernommen und auf einen Fibaro-Stecker angewandt mit dem Ergebnis, dass dieser bei:

ZWAVE_Schalter_6:power

z.B. einen  Wert von "20.4 W" ausgibt.

Frage hierzu: wie filtert man das Leerzeichen und das "W" weg, so dass sich ein korrekter numerischer Ausdruck ergibt?

(Ich weiß, Anfängerfrage ...)

VG Yil
[ZWAVE_Schalter_6:power:d]

http://fhem.de/commandref_DE.html#DOIF_Filtern_nach_Zahlen

Gruß

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

Yil

Das DOIF-Modul ist schon der Hammer!  8) Danke!

Zur Vollständigkeit der ganze (nun aktualisierte Code):

define Waschmasch_di DOIF ([ZWAVE_Schalter_6:power:d] > 0.1 and [?Waschmasch_di] =~ "cmd_4|initialized") \
      (({Log 3, "Waschmaschine: Ein"}))  \
DOELSEIF ([ZWAVE_Schalter_6:power:d] > 20 and [?Waschmasch_di] eq "cmd_1") \
     (({Log 3, "Waschmaschine: Programmstart"})) \
DOELSEIF ([ZWAVE_Schalter_6:power:d] > 20 and [?Waschmasch_di] eq "cmd_2") \
     (({Log 3, "Waschmaschine: Programmende"})) \
DOELSEIF ([ZWAVE_Schalter_6:power:d] < 0.1 or [ZWAVE_Schalter_6:power:d] > 20 and [?Waschmasch_di] eq "cmd_3") \
     (({Log 3, "Waschmaschine: Aus"}))
HM CCU2 mit ca. 35 HM-Komponenten inkl. Bausätzen
fhem auf RPi mit Sonos, EnOcean-CUL, ZWAVE-CUL und Bluetooth
Osram Lightify

kvo1

RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

willib

Die Aus Meldung kommt, so wie ich das sehe, nur wenn alle Schleifen durchlaufen sind. Wie bekomme ich den Status der Maschine sauber dargestellt wenn ich die Maschine zwischendurch abschalte? z.B. Weil ich sie versehentlich eingeschaltet habe?
Müsste hier nicht ein < stehen?DOELSEIF ([ZWAVE_Schalter_6:power:d] > 20 and [?Waschmasch_di] eq "cmd_2") \
     (({Log 3, "Waschmaschine: Programmende"})) \


FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD

Ellert

Wie bekomme ich den Status der Maschine sauber dargestellt wenn ich die Maschine zwischendurch abschalte? z.B. Weil ich sie versehentlich eingeschaltet habe?
ZitatDOELSEIF ([ZWAVE_Schalter_6:power:d] < 0.1 or ...

Einfach mal ausprobieren ;)

willib

#10
Ich bekomme mit dem Code von Yil einen Error in den readings.
condition c02: Unrecognized character \xC2; marked by <-- HERE after ','d') > 4<-- HERE near column 56, line 1.
Was muss ich tun um den los zu werden?
Danke
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD

Ellert

#11
Ersetze das nicht erkannte Zeichen durch eines, das Perl kennt oder lösche es.

willib

Danke für den Hinweis. Leider verstehe ich nicht welches das nicht erkannte Zeichen ist. Ich habe den code eins zu eins von Yil übernommen.
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD

Ellert

Zitat von: willib am 14 Januar 2018, 10:32:28
Danke für den Hinweis. Leider verstehe ich nicht welches das nicht erkannte Zeichen ist. Ich habe den code eins zu eins von Yil übernommen.
Es ist das Zeichen mit Hex-Format \xC2, wie hier gemeldet: Unrecognized character \xC2.

willib

Ich habe mal die Leerzeichen hinter 4 gelöscht und neu geschrieben. Hier war anscheinend das \xC2 unsichtbar drin. Jetzt geht es. Danke.
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD