Homematic Wired on-for-timer abbrechen

Begonnen von Jojo11, 06 August 2017, 12:15:05

Vorheriges Thema - Nächstes Thema

Jojo11

Hallo,

mir ist Folgendes aufgefallen:
Wenn ich eine mit HMW geschaltete Lampe per Bewegungsmelder für 5 Minuten einschalte (on-for-timer) und zwischendurch per Taster aus- und wieder einschalte (set xy off; set xy on), geht sie nach einer Weile aus. Es scheint so, als würde der ursprünglich gesetzte on-for-timer weiterlaufen. Soll das so sein? Bei mir ist es reproduzierbar:


set Lampe on-for-timer 60
set Lampe off
set Lampe on

Sofern ich die Lampe innerhalb der 60 Sekunden aus und wieder einschalte, geht sie nach ursprünglich 60 Sekunden aus.
Ich würde eigentlich erwarten, dass sie dann eingeschaltet bleibt. Was kann ich machen, um das gewünschte Verhalten zu erreichen?
Bei anderen Modulen scheint das auch hier und da mal vorgekommen zu sein. Zumindest in meinem Fall hilft aber z.B. ein "on-for-timer 0" auch nicht. Dadurch wird der ursprüngliche Timer nicht beeinflusst.

schöne Grüße
Jo

Jojo11

#1
Kleiner Nachtrag:

Ein
set Lampe1 on-for-timer 0
schaltet die Lampe zwar sofort aus, löscht aber nicht den ursprünglichen timer. Ein
set Lampe1 on-for-timer 1
hingegen löscht auch den ursprünglichen timer.
Einfacher wäre es allerdings in der Tat, wenn ein "off", gefolgt von einem "on" den Timer löschen würde (halt mit einem toggle-Taster, der direkt gepeert ist).

Scheint wohl bei mehreren Modulen so zu sein:
https://forum.fhem.de/index.php?topic=43093.0

schöne Grüße
Jo

Thorsten Pferdekaemper

Hi,
das Problem hier ist, dass die Geräte eigentlich gar kein on-for-timer können. D.h. das ganze ist im FHEM-Modul implementiert und im Prinzip nicht anders, als wenn Du das machen würdest:

set ... on; sleep 60; set ... off

Die Kommandos on und off hingegen können die Geräte direkt. Ich könnte schon den Timer löschen, wenn explizit ein on oder off kommt, aber spätestens bei direkten Peerings wird's blöd.
Ich werde mir das aber nochmal durch den Kopf gehen lassen...
Gruß,
   Thorsten
FUIP

Jojo11

Hallo,

das habe ich befürchtet. Dann muss ich mir irgendeinen workaround basteln. Konkret geht es um eine Lampe, die entweder per Bewegungsmelder (über fhem) für eine bestimmte Zeit oder per gepeertem Taster dauerhaft eingeschaltet werden soll. Mit homematic Funk ging das problemlos  ::)

Schöne Grüße
Jo

Thorsten Pferdekaemper

Hi,
aaaalso...
Ich habe schon auf meiner ToDo-Liste stehen, mal die SetExtensions einzubauen:
https://github.com/kc-GitHub/FHEM-HM485/issues/58
Es könnte sein, dass damit auch dieses Problem etwas einfacher zu lösen ist. Allerdings bin ich mir da nicht so sicher.

Was momentan schon gehen sollte ist folgendes: Konfiguriere Dein direktes Peering so, dass es bei einem langen Tastendruck nach 60s wieder ausgeht. Statt dem on-for-timer 60 machst Du dann ein

set <taster> press_long

Dann wird sozusagen der lange Tastendruck simuliert. Dadurch wird alles im Device selbst abgehandelt und es sollte so funktionieren, wie Du es Dir vorstellst.
Falls der lange Tastendruck schon eine andere Funktion hat, dann nimm einfach irgendeinen anderen freien Eingang und peere damit.
Gruß,
   Thorsten 
FUIP

justme1968

die SetExtensions lösen mit SetExtensionsCancel zumindest das stoppen der timer der on-for und off-for und ähnlicher kommandos bei normalem on und off.

du bekommst das schalten durch direkt gepeerte tastster ja mit. d.h. auch da kannst du den timer abbrechen. eventuell wäre aber ein attribut sinnvoll mit dem das verhalten ein und aus geschaltet werden kann. damit könnte man dann steuern ob fhem oder das peering vorrang hat.

wie schaut es aber mit einem timer aus der per peering gestartet wird und dann per fhem on abgebrochen wird.

könnte man das fhem on-for-timer auch virtuell mit dem internen timer simulieren?

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Jojo11

Hallo,

die Idee mit dem langen Tastendruck ist schon mal sehr gut. Den habe ich noch nicht anders belegt. Muss ich mir nur noch anschauen, welchem der vielen Parameter ich dann auf 60 setzen muss :)
Wenn ich das richtig verstanden habe, wäre SetExtensions sicher insofern gut, als dass man diesen timer abbrechen könnte. Wenn Du das einbauen würdest, teste ich es gerne.
Press_long teste ich morgen. Vielen Dank schon mal!

Schöne Grüße
Jo

Thorsten Pferdekaemper

Hi,
ich habe übrigens die SetExtensions inzwischen eingebaut.
...einfach mal update machen.
Gruß,
   Thorsten
FUIP

Jojo11

Vielen Dank. Werde ich hoffentlich bald testen können.

Schöne Grüße
Jo