Sonoff S20 nach Zeit ausschalten

Begonnen von matzewob, 10 November 2017, 15:41:41

Vorheriges Thema - Nächstes Thema

matzewob

Moin zusammen,

ich habe jetzt grad mal mit einer Sonoff S20 mit ESPEasy gespielt.

define ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP ESPEasy 192.168.179.45 80 espBridge ESPEasy_sonoff_1_PUMP_PUMP
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP IODev espBridge
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP Interval 300
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP devStateIcon on:rc_GREEN:off off:rc_RED:on absent:rc_BLUE:off gpio:rc_YELLOW:off
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP eventMap /gpio 12 on:on/gpio 12 off:off/gpio 12 gpio:off/gpio 12 output:off/
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP group ESPEasy Device
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP icon hue_filled_outlet
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP presenceCheck 1
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP readingSwitchText 1
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP room ESPEasy
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP setState 0
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Relay","")}
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP webCmd :


Das funktioniert auch super mit ein und ausschalten, und die Steckdose meldet an FHEM auch brav wenn man diese am Gerät selbst ein oder ausschaltet.

Jetzt würde ich gerne das Gerät, wenn es mit Hand eingeschaltet wurde nach 15 Min wieder ausschalten lassen.

Das habe ich versucht mit:


define n_ESP_event notify ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP:status(onoff).* set ESPEasy_ESPEasy_sonoff
define n_ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP_aus notify if (ReadingsVal("STATE") eq "on") {\
          fhem("set ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP at +00:15:00 off");;\
     }


Da dies nicht funktioniert gehe ich davon aus das mein Ansatz falsch ist oder ich dort einen Fehler habe.
Hat jemand einen Tipp für mich?

Dankeschön

Matze

kadettilac89

Völlig anderer ansatz.easpeasy hat eine Funktion die longpull heißt. Suche das mal. Damit läuft der timer im ESP. Sprich du sagst  ... schalte für 15 min ein.

Gesendet von meinem SM-G925F mit Tapatalk


kadettilac89

... bin unterwegs und kann nicht editieren. Funktion heißt longpulse...

Gesendet von meinem SM-G925F mit Tapatalk


matzewob

Ok, hab es mal so probiert wie ich es beim suchen gefunden habe, allerdings tut sich da nix :(

attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP IODev espBridge
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP Interval 300
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP devStateIcon on:rc_GREEN:off off:rc_RED:on absent:rc_BLUE:off gpio:rc_YELLOW:off
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP eventMap /longpulse 15 on:on-for-timer/longpulse 15 off:off-for-timer /gpio 12 on:on/gpio 12 off:off/gpio 12 gpio:off/gpio 12 output:off/
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP group ESPEasy Device
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP icon hue_filled_outlet
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP presenceCheck 1
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP readingSwitchText 1
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP room ESPEasy
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP setState 0
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Relay","")}
attr ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP webCmd :

kadettilac89

Bevor du alles mögliche konfigurierst... funktioniert longpulse wenn du es per Set im Device selber aufrufst?

matzewob

Nicht wirklich.

Wenn ich

set ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP on-for-timer 1

eingebe, passiert nichts. Logeintrag lautet:

2017-11-10 18:26:55 ESPEasy ESPEasy_ESPEasy_sonoff_1_PUMP_PUMP on-for-timer 1

kadettilac89

dein eventmap verstehe ich nicht.

teste nur longpulse ohne on-for-timer oder so

Bei mir ist das dieser Befehl ...

set ESP_SW1 longpulse 12 1 10


wenn das geht schaun wir weiter.

matzewob

Zitat von: kadettilac89 am 10 November 2017, 19:08:33
dein eventmap verstehe ich nicht.

teste nur longpulse ohne on-for-timer oder so

Bei mir ist das dieser Befehl ...

set ESP_SW1 longpulse 12 1 10


wenn das geht schaun wir weiter.

\o/ das geht :)

kadettilac89

Zitat von: matzewob am 10 November 2017, 19:11:32
\o/ das geht :)

OK, bei mir sieht es so aus, ich denke das ist was du willst ... mit RAW-Definition kannst meine Def unten mal bei dir einspielen und dich anschaun ob das ist was du brauchst, natürlich IP anpassen ... wenn nicht --> weitersuchen ...


Internals:
   CHANGED
   DEF        192.168.0.201 80 espBridge ESP_SW1_SW1
   ESP_BUILD  147
   ESP_SLEEP  0
   ESP_UNIT   0
   ESP_VERSION 9
   HOST       192.168.0.201
   IDENT      ESP_SW1_SW1
   INTERVAL   300
   IODev      espBridge
   LASTInputDev espBridge
   MSGCNT     267
   NAME       ESP_SW1
   NOTIFYDEV  global
   NR         144
   NTFY_ORDER 50-ESP_SW1
   PORT       80
   STATE      off
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    1.33
   espBridge_MSGCNT 267
   espBridge_TIME 2017-11-10 19:15:50
   READINGS:
     2017-11-10 19:15:50   GPIO12          off
     2017-11-10 19:11:13   GPIO12_mode     output
     2017-01-04 16:54:25   Key             gpio
     2017-11-10 19:11:13   presence        present
     2017-11-10 19:15:50   state           GPI: off
   helper:
     fpc        1510260052.979
     pm:
       Encode     1
       JSON       1
     received:
       GPIO12     1510337750.1121
       GPIO12_mode 1510337473.48111
Attributes:
   DbLogExclude .*
   IODev      espBridge
   Interval   300
   alias      ESP_Strahler
   devStateIcon on:ios-on-blue:off off:ios-off:on absent:10px-kreis-rot:statusRequest .*:ios-NACK:check
   event-on-change-reading .
   eventMap   /gpio 12 on:on/gpio 12 off:off/status gpio 12:check/longpulse 12 1 10:timer/
   group      ESPEasy Device
   pollGPIOs  12
   presenceCheck 1
   readingSwitchText 1
   stateFormat {ReadingsVal($name,"GPIO12","")}
   webCmd     on:off:timer



defmod ESP_SW1 ESPEasy 192.168.0.201 80 espBridge ESP_SW1_SW1
attr ESP_SW1 DbLogExclude .*
attr ESP_SW1 IODev espBridge
attr ESP_SW1 Interval 300
attr ESP_SW1 alias ESP_Strahler
attr ESP_SW1 devStateIcon on:ios-on-blue:off off:ios-off:on absent:10px-kreis-rot:statusRequest .*:ios-NACK:check
attr ESP_SW1 event-on-change-reading .
attr ESP_SW1 eventMap /gpio 12 on:on/gpio 12 off:off/status gpio 12:check/longpulse 12 1 10:timer/
attr ESP_SW1 group ESPEasy Device
attr ESP_SW1 pollGPIOs 12
attr ESP_SW1 presenceCheck 1
attr ESP_SW1 readingSwitchText 1
attr ESP_SW1 stateFormat {ReadingsVal($name,"GPIO12","")}
attr ESP_SW1 webCmd on:off:timer

matzewob

So viel rumprobiert auch mit deinem Template bekomme ich es nicht hin :(

kadettilac89

Zitat von: matzewob am 11 November 2017, 08:57:15
So viel rumprobiert auch mit deinem Template bekomme ich es nicht hin :(

deine Informationen sind sehr spärlich. Was geht nicht, wo gibt es Probleme? Was genau hast du versucht ... Was seht im Log, welche Fehlermeldungen hast du ...

matzewob

Danke für die Hilfe, ich hab es jetzt mittels eines Notify´s hinbekommen.

Meine Lösung sieht jetzt so aus:

define Luefter ESPEasy 192.168.179.45 80 espBridge ESPEasy_sonoff_1_PUMP_PUMP
attr Luefter IODev espBridge
attr Luefter Interval 300
attr Luefter devStateIcon on:rc_GREEN:off off:rc_RED:on absent:rc_BLUE:off gpio:rc_YELLOW:off
attr Luefter event-on-change-reading .*
attr Luefter eventMap /gpio 12 on:on/gpio 12 off:off/gpio 12 gpio:off/gpio 12 output:off/
attr Luefter group ESPEasy Device
attr Luefter icon hue_filled_outlet
attr Luefter presenceCheck 1
attr Luefter readingSwitchText 1
attr Luefter room ESPEasy
attr Luefter setState 0
attr Luefter stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Relay","")}
attr Luefter webCmd :

### Luefter nach 10 Minuten ausschalten###
define n_Luefter_event notify Luefter.Relay.* {\
     if (ReadingsVal("Luefter","Relay","on") eq "on") {\
          fhem("set Telegram message Abluft eingeschaltet!");;\
         fhem("set Luefter longpulse 12 1 600");;\
}\
}
attr n_Luefter_event room ESPEasy


Geht bestimmt ein vielfaches eleganter, aber so tut es :)

Danke euch und ein schönes WE :)

Matze

matzewob

Moin,

ich habe nochmal eine Frage, eventuell hat jemand eine Idee.
Wenn es nach meiner Config oben geht, und er dann via
"set Luefter longpulse 12 1 600
das Gerät nach 10 Minuten ausschaltet, geht das Device Luefter also der SonoffS20 in einen "absent" state.
Ich kann also nicht mehr im Webinterface schalten, da der State absent ist.

An der Steckdose selbst oder per
set Luefter on
lässt er sich weiter ein und ausschalten. Allerdings nicht via Webinterface/klick

Weiß jemand rat wie ich das Problem umgehen kann?

Danke schonmal

Matthias

kadettilac89

absent-status ... wurde schon öfter durchgekaut ...
https://forum.fhem.de/index.php/topic,71418.msg629615.html#msg629615

Denke aber nicht dass dein nicht-schalten-können damit zu tun hat. Ehrlich gesagt verstehe ich deine Ausführung nicht ganz. Du kannst nicht über Webinterface schalten - wo genau, was möchtest du klicken oder welchen Befehl gibst du ein?

set Luefter on ... ist auch Webinterface oder wie setzt du das ab?