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
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
... bin unterwegs und kann nicht editieren. Funktion heißt longpulse...
Gesendet von meinem SM-G925F mit Tapatalk
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 :
Bevor du alles mögliche konfigurierst... funktioniert longpulse wenn du es per Set im Device selber aufrufst?
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
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.
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 :)
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
So viel rumprobiert auch mit deinem Template bekomme ich es nicht hin :(
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 ...
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
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
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?