DOIF für Wlan TPLink model HS110 (am Trockner)

Begonnen von Micky, 06 Oktober 2020, 16:29:55

Vorheriges Thema - Nächstes Thema

Micky

Hallo zusammen,

mein Trockner hat ein Problem das er nach dem der Trockenvorgang abgeschlossen ist der Trockner noch weiterhin alle 2-3 min. kurz anläuft für 5sekunden und wieder aufhört das geht dann solange so bis man den Trockner Manuel ausschaltet am Trockner oder die klappe öffnet, oder per Wlan Schalter kurz Strom aus und wieder anschlaten somit ist die LED des Trockners an aber er läuft nicht mehr.

meine Idee ist es mittels DOIF den Zustand (on/off) auszulesen + wenn power > 0,65 dann ist der Vorgang gestartet somit sleep oder wait ca. 2 std. anschliessend lese wieder
Zustand = on + Power < 0,65 dann schalte wlan Strom aus 5 Sekunden warten und wieder wlan Strom einschalten.

den zustand lasse ich mir schon anzeigen als Reading hier mal ein List vom Wlan TPLink HS110 , heisst bei mir Trockner

Internals:
   DEF        192.168.1.72
   FUUID      5c574502-f33f-6e03-c2ed-69fca5292a6132d8
   HOST       192.168.1.72
   INTERVAL   300
   NAME       Trockner
   NEXTUPDATE Tue Oct  6 16:29:50 2020
   NR         119
   STATE      on
   TIMEOUT    1
   TYPE       TPLinkHS110
   .attraggr:
   .attrminint:
   .userReadings:
     HASH(0x30debc8)
   READINGS:
     2020-10-06 16:24:50   Zustand         off
     2020-10-06 16:24:50   active_mode     none
     2020-10-06 16:24:50   alias           Trockner Strom
     2020-10-06 16:24:50   current         0.026
     2020-10-06 16:24:50   daily_average   1874
     2020-10-06 16:24:50   daily_total     0.038
     2020-10-06 16:24:50   decode_json     ok
     2020-10-06 16:24:50   dev_name        Smart Wi-Fi Plug With Energy Monitoring
     2020-10-06 16:24:50   deviceId        80067B33EDC5791FB61BF1CA899D3AA81AFB1A10
     2020-10-06 16:24:50   err_code        0
     2020-10-06 16:24:50   feature         TIM:ENE
     2020-10-06 16:24:50   fwId            00000000000000000000000000000000
     2020-10-06 16:24:50   hwId            044A516EE63C875F9458DA25C2CCC5A0
     2020-10-06 16:24:50   hw_ver          2.0
     2020-10-06 16:24:50   icon_hash       
     2020-10-06 16:24:50   latitude        50.1384
     2020-10-06 16:24:50   led_off         0
     2020-10-06 16:24:50   longitude       8.6844
     2020-10-06 16:24:50   mac             D8:0D:17:3E:75:A0
     2020-10-06 16:24:50   model           HS110(EU)
     2020-10-06 16:24:50   monthly_total   11.244
     2020-10-06 16:24:50   next_action     HASH(0x4910f48)
     2020-10-06 16:24:50   oemId           1998A14DAA86E4E001FD7CAF42868B5E
     2020-10-06 16:24:50   on_time         10800
     2020-10-06 16:24:50   power           0
     2020-10-06 16:24:50   relay_state     1
     2020-10-06 16:24:50   rssi            -69
     2020-10-06 16:24:50   state           on
     2020-10-06 16:24:50   sw_ver          1.5.6 Build 191125 Rel.083657
     2020-10-06 16:24:50   total           11.245
     2020-10-06 16:24:50   type            IOT.SMARTPLUGSWITCH
     2020-10-06 16:24:50   updating        0
     2020-10-06 16:24:50   voltage         235.682
Attributes:
   alexaName  Trockner
   alexaRoom  Keller
   alias      Trockner
   devStateIcon on:black_Steckdose.on off:black_Steckdose.off
   disable    0
   room       Homekit,Wohnung,alexa
   userReadings Zustand {ReadingsNum($name,"power",0) > 0.65?"on":"off"}



DOIF:

DOELSEIF
([Trockner:Zustand] eq "on" and [Trockner:power] > 0.65)
(sleep 7200)

DOELSEIF
([Trockner:Zustand] eq "on" and [Trockner:power] < 0.65)
(set Trockner off; sleep 5; set Trockner on)


DOELSE

Otto123

#1
Hi,

ich sehe jetzt zwar keine Frage - aber das hier ist falsch:
DOELSEIF ohne DOIF ? geht nicht!?
Warum soll ein Zweig nur 7200 Sekunden schlafen? Was macht das für Sinn? Das blockiert Dir einfach FHEM für 7200 Sekunden, siehe help sleep! Falls DOIF hier nicht zaubert?
(set Trockner off; sleep 5; set Trockner on)Bei DOIF sind die Kommandotrenner Kommas und keine Strichpunkte ;)

Ich würde es eher so machen:
(set Trockner off)(set Trockner on)
und attr wait setzen 0,5

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

Micky

#2
Hi Otto,

sorry meinte damit eigentlich 2 Std. den Wlan Schalter nicht mehr prüft da der Trockenvorgang läuft...
also in Sekunden ca. 3600 *2

Da ich mir vorstellen kann das der Trockner pausen macht wo Power unter 0,65 fällt und dann würde doif abschalten...

Otto123

Du willst eine Abfrage starten nachdem eine Abfrage wahr ergeben und 2 h vergangen sind. Wie man das mit DOIF macht weiß ich nicht. Fakt ist, dein DOIF Ansatz ist weitestgehend Unsinn.

Eventuell eine Kombination aus DOIF und IF oder notify und IF oder besser in 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

Micky

Abend Otto,

ich versuche das mal vorerst mit deinem Wait tipp. Anderfalls muss ich mal genau schauen was bei einem Trockenvorgang mit dem reading power passiert.

Evtl bleibt er immer über 0,65 sodass sollte er drunter sein ich den trockner durch den wlan adapter kurz vom strom nehmen kann und wieder anschalten kann

amenomade

#5
Ich würde im Handbuch zuerst gucken, ob man das "Schonen plus" Programm oder wie auch immer es heisst deaktivieren kann...

DOIF:
Zitat von: CommandRefZwangspause für das Ausführen eines Kommandos seit der letzten Zustandsänderung   back

Mit dem Attribut cmdpause <Sekunden für cmd_1>:<Sekunden für cmd_2>:... wird die Zeitspanne in Sekunden angegeben für eine Zwangspause seit der letzten Zustandsänderung. In der angegebenen Zeitspanne wird ein Kommando nicht ausgeführt, auch wenn die dazugehörige Bedingung wahr wird.

Anwendungsbeispiel: Meldung über Frostgefahr alle 60 Minuten

define di_frost DOIF ([outdoor:temperature] < 0) (set pushmsg "danger of frost")
attr di_frost cmdpause 3600
attr di_frost do always

Aber das braucht man evtl nur wenn mitte des Trockenvorgangs power unter 0.65 kommt, was idR nicht der Fall ist. Sonst reicht:
([Trockner:power] >= 0.65)
     ()
DOELSEIF
([Trockner:power] < 0.65)
    (set Trockner off)(set Trockner on)
attr <Name> wait 0:0,5

oder wenn ab und zu tatsächlich mitte des Trockenvorgangs power unter 0.65 kommt,
attr <Name> wait 0:60,5 Somit wartet er 60 Sekunden bevor er entscheidet, dass der Vorgang abgeschlossen ist.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Otto123

#6
Du solltest bei solchen Sequenzen sicherstellen, das die Abläufe stimmen.
Was Du versuchen kannst ist auch sowas, deinen Ansatz umgesetzt mit DOIF (Zustandstrigger) und die weitere Abfolge mit IF:
define di_Trockner DOIF ([Trockner:Zustand] eq "on" and [Trockner:power] > 0.65)(sleep 7200;;IF([Trockner:Zustand] eq "on" and [Trockner:power] < 0.65)(set Trockner off,sleep 5;;set Trockner on))

Das ist alles nicht fehlertolerant!
Edit: den Syntax mit sleep geändert.
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

amenomade

#7
(sleep 7200,IF...
Ne, das ist falsch. sleep ist die Ausnahme, man muss doch mit Semikolon schreiben.
Man kann sagen, dass "sleep 7200;etwas" ein Einziges Fhem Kommando mit zwei durch Semikolon getrennten Parametern (die Zeit und etwas) ist.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Otto123

Stimmt  :-[ ich hatte seit heute nachmittag gezögert diesen Gedanken niederzuschreiben. Ich habe sicher geahnt warum ...
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

CBSnake

Hi,

hier mal meine Variante, auch ein Trockner mit Nachlauf und an einem HS110 hängt er zufällig auch ;-) er meldet wenn er gestartet wurde. Wenn fertig ist meldet er solange bis einer am HS 110 oder per fhem die steckdose abschaltet



defmod doif_trocknen DOIF ([steckdose_07:state] eq "off")(setreading $SELF trocknen geleert) ##wenn geleert und bestätigt mit manueller abschaltung\
DOELSEIF\
\
([steckdose_07:pM_consumption] > 200 ## erstmalig über 200Watt\
and\
[?$SELF:trocknen] ne "ein") ## Verrieglung weiterer nachrichten\
(set telegrambot Der Trockner wurde gestartet, ## hier angepasst fürs veröffentlichen\
setreading $SELF trocknen ein) ## verriegelung\
\
DOELSEIF\
\
([steckdose_07:pM_consumption] < 10 ##verbrauch unter 10 W\
and [?$SELF:trocknen] ne "fertig"\
and [steckdose_07:state] ne "off"\
) \
(\
setreading $SELF trocknen fertig ##Verrieglung gegen weitere Nachrichten\
)\
DOELSEIF\
([$SELF:trocknen] eq "fertig")\
(set telegrambot Der Trockner ist fertig und noch nicht geleert.) ## wieder fürs veröffentlichen angepasst

attr doif_trocknen do always
attr doif_trocknen event-on-change-reading trocknen
attr doif_trocknen repeatcmd 0:0:0:900
attr doif_trocknen selftrigger all
attr doif_trocknen wait 0:0:310


FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

justcallmeal

Zitat von: CBSnake am 07 Oktober 2020, 09:11:38
.....hier mal meine Variante, auch ein Trockner mit Nachlauf und an einem HS110 hängt er zufällig auch.....

Hi zusammen,

Euer Thread hat mich inspiriert und so habe ich Eure Vorlage meinen Voraussetzungen und meiner Zielsetzung etwas abgewandelt.

Mein Trockner hängt an einem ShellyPlug-S und ich habe in dessen Logfile gemonitort, dass er in der "Knitterschutzphase" am Ende des eigentlichen Trocknungsvorganges immer zwischen 2 und 4 Watt schwankt.

Die gewünschte Ansage via Sonos-Lautsprecher in der Küche kommt bei mir mit folgendem Code zustande:

define Trockner_fertig DOIF ([shellyPlug_Trockner:power] >2 and ([shellyPlug_Trockner:power] <4)) (set Sonos_Kueche Speak 45 de Der Trockner ist fertig und kann ausgeräumt werden!)

mit einem ...

attr Trockner_fertig do always

... erreiche ich stetige Wiederholungen der Ansage, sobald der Power-Wert schwankt bis man ihn abschaltet (was in meinem Fall eigentlich jede Minute in dieser Endphase vorkommt).

VG,
al
HM-Sen-DB-PCB, HM-Sec-SCo, HM-MOD-Re-8, HM-SEC-SC-2, HM-Sen-MDIR-O, HM-LC-Sw1PBU-FM, HM-LC-RGBW-WM, HM-ES-PMSw1-SM, HM-LC-Sw1-DR, div. Shellies u.v.m.