Autor Thema: Waschmaschine fertig  (Gelesen 13730 mal)

Offline hoppel118

  • Sr. Member
  • ****
  • Beiträge: 797
Antw:Waschmaschine fertig
« Antwort #45 am: 02 Juni 2019, 21:59:55 »
Bei Dir müsstest Du dem Threshold nur sagen das der maximale Wert größer als die 350 und den Whatchdog auf die Zeit anpassen. Dann könntest Du auch das Knitterprogramm eingeschaltet lassen.

Die DOIFs sind für mich einfacher zu verstehen. So wie es jetzt bei mir gelöst ist, kann ich das Knitterprogramm auch einschalten. Das Knitterprogramm kommt niemals über 400 Watt. Trockenprogramme kommen immer über 400 Watt. Das ist nun einer der Anhaltspunkte für das DOIF.

Aber Danke für das Posten deiner Lösung. Mir hilft das jetzt zwar nicht, aber da wird sich schon wer finden. ;)

Viele Grüße Hoppel
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic: VCCU 2xHMUSB, 1xWLGW | HomeConnect | Philips Hue | Sonos: Beam, Sub, One, Symfonisk | Unifi: USG, USW, AC-AP-Pro | Xiaomi: S50, Smart Fan | vbus: Vitosolic 200SD4

Offline Heimweh

  • Full Member
  • ***
  • Beiträge: 282
Antw:Waschmaschine fertig
« Antwort #46 am: 10 Juni 2019, 20:23:51 »
Ich versuche das gerade für mich umzuschreiben, aber woher kommt das MqttDevice06?
Dein MqttDevice236 - das ist der SONOFF, aber der 06er? Kannst Du mir auf die Sprünge helfen?

Ich habe es bei mir in drei Devices verpackt. Das Gerät selbst,
defmod MqttDevice236 MQTT2_DEVICE MqttDevice236
attr MqttDevice236 DbLogInclude ENERGY_Power
attr MqttDevice236 IODev MQTT2_SERVER
attr MqttDevice236 alias Trockner
attr MqttDevice236 autocreate 1
attr MqttDevice236 devStateIcon on:rc_GREEN:off off:rc_RED:on
attr MqttDevice236 icon hue_filled_outlet
attr MqttDevice236 model A_01c_tasmota_POW
attr MqttDevice236 readingList tele/MqttDevice06/LWT:.* LWT\
  tele/MqttDevice06/STATE:.* { json2nameValue($EVENT) }\
  tele/MqttDevice06/SENSOR:.* { json2nameValue($EVENT) }\
  tele/MqttDevice06/INFO.:.* { json2nameValue($EVENT) }\
  stat/MqttDevice06/RESULT:.* { json2nameValue($EVENT) }\
MqttDevice236:stat/MqttDevice06/POWER1:.* POWER1\
MqttDevice236:tele/MqttDevice06/UPTIME:.* { json2nameValue($EVENT) }\
MqttDevice236:cmnd/MqttDevice06/POWER:.* POWER\
MqttDevice236:stat/MqttDevice06/STATUS:.* { json2nameValue($EVENT) }\
MqttDevice236:stat/MqttDevice06/STATUS1:.* { json2nameValue($EVENT) }\
MqttDevice236:stat/MqttDevice06/STATUS2:.* { json2nameValue($EVENT) }\
MqttDevice236:stat/MqttDevice06/STATUS3:.* { json2nameValue($EVENT) }\
MqttDevice236:stat/MqttDevice06/STATUS4:.* { json2nameValue($EVENT) }\
MqttDevice236:stat/MqttDevice06/STATUS5:.* { json2nameValue($EVENT) }\
MqttDevice236:stat/MqttDevice06/STATUS6:.* { json2nameValue($EVENT) }\
MqttDevice236:stat/MqttDevice06/STATUS7:.* { json2nameValue($EVENT) }\
MqttDevice236:stat/MqttDevice06/STATUS9:.* { json2nameValue($EVENT) }\
MqttDevice236:stat/MqttDevice06/STATUS10:.* { json2nameValue($EVENT) }\
MqttDevice236:stat/MqttDevice06/STATUS11:.* { json2nameValue($EVENT) }
attr MqttDevice236 room 1.18_Hauswirtschaft,9.6_Homekit,9.8_MQTT
attr MqttDevice236 setList off:noArg    cmnd/MqttDevice06/POWER1 0\
  on:noArg     cmnd/MqttDevice06/POWER1 1
attr MqttDevice236 setStateList on off
attr MqttDevice236 stateFormat POWER1
attr MqttDevice236 webCmd on:off
ein Threshold um eine Leistung richtig zu interpretieren
defmod TH_Trockner THRESHOLD MqttDevice236:ENERGY_Power:0.5:1.5||||active:done|_sc
attr TH_Trockner room 1.18_Hauswirtschaft
attr TH_Trockner state_cmd1_gt active
attr TH_Trockner state_cmd2_lt done
attr TH_Trockner state_format _sc
und einen Watchdog um das eindeutig zu erkennen.
defmod WD_Trockner watchdog TH_Trockner:done.* 00:05:00 TH_Trockner:active.* {\
fhem("set telegram message Der Trockner ist fertig.");;\
fhem("set MqttDevice236 off");;\
}
attr WD_Trockner autoRestart 1
attr WD_Trockner room 9.3_Watchdog
Das läuft problemlos und ist immer auf andere Geräte abbildbar. Nur so als Anregung. Ist natürlich halt old School.  ;) Bei Dir müsstest Du dem Threshold nur sagen das der maximale Wert größer als die 350 und den Whatchdog auf die Zeit anpassen. Dann könntest Du auch das Knitterprogramm eingeschaltet lassen.
RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

Offline majorshark

  • Full Member
  • ***
  • Beiträge: 494
    • Frank's Technik Blog
Antw:Waschmaschine fertig
« Antwort #47 am: 11 Juni 2019, 18:23:42 »
Das ist ein Überbleibsel nach dem Umbenennen. Das Device heißt in FHEM Device236 sendet aber selbst unter dem MQTT topic Device06. Das ist mir gar nicht aufgefallen. Das muss ich mal noch gerade ziehen.

Lass doch das Mqtt Device einfach vom MQTT2 Server automatisch anlegen. Letztendlich brauchst Du doch nur die aktuelle Leistung des Gerätes.
Grüße aus Dewitz

VM auf Synology DS718+ mit FHEM 5.9 auf Debian 9.5/32-Bit (stretch)
Nächster Leipziger Stammtisch:

Offline Heimweh

  • Full Member
  • ***
  • Beiträge: 282
Antw:Waschmaschine fertig
« Antwort #48 am: 12 Juni 2019, 08:46:12 »
Das ist ein Überbleibsel nach dem Umbenennen. Das Device heißt in FHEM Device236 sendet aber selbst unter dem MQTT topic Device06. Das ist mir gar nicht aufgefallen. Das muss ich mal noch gerade ziehen.

Lass doch das Mqtt Device einfach vom MQTT2 Server automatisch anlegen. Letztendlich brauchst Du doch nur die aktuelle Leistung des Gerätes.

Ja stimmt, da hast Du Recht! Ich danke Dir...
RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

Offline hoppel118

  • Sr. Member
  • ****
  • Beiträge: 797
Antw:Waschmaschine fertig
« Antwort #49 am: 03 Dezember 2019, 10:42:26 »
Hallo Leute,

ich beschäftige mich gerade etwas intensiver mit DOIF und versuche das alles mehr zu verstehen. Für meine Waschmaschine verwende ich das hier im Thread besprochene DOIF:

([EG_HWR_Strom_Waschmaschine_Pwr:power:d] > 0.1 and [?di_Waschmaschine] =~ "cmd_4|initialized")
  (({Log 3, "Waschmaschine: an"}))
DOELSEIF ([EG_HWR_Strom_Waschmaschine_Pwr:power:d] > 20 and [?di_Waschmaschine] eq "cmd_1")
  (({Log 3, "Waschmaschine: Programmstart"}),(set Unser_WhatsApp send Waschmaschine: Programmstart))
DOELSEIF ([EG_HWR_Strom_Waschmaschine_Pwr:power:d] < 2.5 and [?di_Waschmaschine]  eq "cmd_2")
  (({Log 3, "Waschmaschine: Programmende"}),(set Unser_WhatsApp send Waschmaschine: Programmende -> Denk dran: Wasser entleeren!!!))
DOELSEIF ([EG_HWR_Strom_Waschmaschine_Pwr:power:d] < 0.1 or [EG_HWR_Strom_Waschmaschine_Pwr:power:d] > 20 and [?di_Waschmaschine] eq "cmd_3")
  (({Log 3, "Waschmaschine: aus"}))


Wofür stehen die folgenden Ergänzungen in dem vorangegangenen DOIF:

and [?di_Waschmaschine] =~ "cmd_4|initialized
and [?di_Waschmaschine] eq "cmd_1"
and [?di_Waschmaschine]  eq "cmd_2"
and [?di_Waschmaschine] eq "cmd_3"

Braucht man das wirklich? Im Wiki finde ich dazu nichts oder ich suche an der falschen stelle im Wiki.

Danke und Gruß Hoppel
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic: VCCU 2xHMUSB, 1xWLGW | HomeConnect | Philips Hue | Sonos: Beam, Sub, One, Symfonisk | Unifi: USG, USW, AC-AP-Pro | Xiaomi: S50, Smart Fan | vbus: Vitosolic 200SD4

Offline Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6868
Antw:Waschmaschine fertig
« Antwort #50 am: 03 Dezember 2019, 10:52:33 »
Damit wird abgefragt in welchem Zustand sich das Modul zuletzt befunden hat, damit eine bestimmte Abfolge eingehalten werden kann. So funktioniert ein "Zustandsautomat".
Programmierte FHEM-Module: DOIF mit uiTable, DOIF-Perl, THRESHOLD, FHEM-Befehl: IF

Offline willib

  • Full Member
  • ***
  • Beiträge: 335
Antw:Waschmaschine fertig
« Antwort #51 am: 03 Dezember 2019, 10:55:47 »
Ja, das ist der Trick an der Sache. Damit wird das DOIF zur Zustandsmaschine. Es wird damit der interne Zustand des DOIF geprüft. Damit wird sichergestellt, dass du zb den Status "Programmende" nur erreichen kannst wenn du aus dem Status "Programmstart" kommst.
https://de.wikipedia.org/wiki/Endlicher_Automat
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD

Offline hoppel118

  • Sr. Member
  • ****
  • Beiträge: 797
Antw:Waschmaschine fertig
« Antwort #52 am: 03 Dezember 2019, 15:12:29 »
OK, ich glaube ich verstehe es nun. Wenn ich diese Zustände in ein DOIF einfüge, wird es sequenziell abgearbeitet.

Im Umkehrschluss heißt das also, dass wenn ich ein DOIF mit mehreren DOELSEIF habe und auf diese Zustände verzichten würde, dass das DOIF nicht sequenziell abgearbeitet wird, sondern das DOELSEIF, welches den richtigen Zustand trifft, kommt zum Tragen. Anschließend geht es dann wieder von vorn (erste Zeile des DOIFs) los.

Habe ich das so richtig verstanden? :)

Danke euch und Gruß Hoppel
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic: VCCU 2xHMUSB, 1xWLGW | HomeConnect | Philips Hue | Sonos: Beam, Sub, One, Symfonisk | Unifi: USG, USW, AC-AP-Pro | Xiaomi: S50, Smart Fan | vbus: Vitosolic 200SD4

Offline Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6868
Antw:Waschmaschine fertig
« Antwort #53 am: 03 Dezember 2019, 17:07:50 »
OK, ich glaube ich verstehe es nun. Wenn ich diese Zustände in ein DOIF einfüge, wird es sequenziell abgearbeitet.

Im Umkehrschluss heißt das also, dass wenn ich ein DOIF mit mehreren DOELSEIF habe und auf diese Zustände verzichten würde, dass das DOIF nicht sequenziell abgearbeitet wird, sondern das DOELSEIF, welches den richtigen Zustand trifft, kommt zum Tragen. Anschließend geht es dann wieder von vorn (erste Zeile des DOIFs) los.

Habe ich das so richtig verstanden? :)

Danke euch und Gruß Hoppel

So ist es.
Programmierte FHEM-Module: DOIF mit uiTable, DOIF-Perl, THRESHOLD, FHEM-Befehl: IF

Offline hoppel118

  • Sr. Member
  • ****
  • Beiträge: 797
Antw:Waschmaschine fertig
« Antwort #54 am: 03 Dezember 2019, 17:30:45 »
Danke dir
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic: VCCU 2xHMUSB, 1xWLGW | HomeConnect | Philips Hue | Sonos: Beam, Sub, One, Symfonisk | Unifi: USG, USW, AC-AP-Pro | Xiaomi: S50, Smart Fan | vbus: Vitosolic 200SD4