IT Intertechio Set on timer

Begonnen von Vladi2010, 12 April 2013, 23:17:14

Vorheriges Thema - Nächstes Thema

Vladi2010

hallo ich versuche heute eine IT Steckdose dazu zu bewegen, auf Kommando sich für 5 Minuten einzuschalten und danach automatisch Abzuschalten.

Bei Google habe ich folgende Anleitung gefunden:

define IT_SCHALTEN notify MEIN_SCHALTER set IT_DOSE on-till {sprintf("%%02d:%%02d:%%02d",($hour+($min+5)/60)%%24,($min+5)%%60,$sec)}


IT_SCHALTEN ist der Name des notify

MEIN_SCHALTER ist ein Button meiner FS20 Fernbedienung, kann aber auch ein dummy-Device sein, dass ist jedenfalls das Device, auf das das notify reagieren soll.

IT_DOSE ist die Steckdose die geschaltet werden soll

und +5 sind die Minuten der Einschaltdauer.

meine Umsetzung:

define IT_SCHALTEN_test notify FS20_d78404:on {fhem("set Steckdose_M7 on-till {sprintf("% d:% d:% d",($hour+($min+5)/60)%$,($min+5)%`,$sec")}

kann mir jemand halfen was ich falsch mache ?

danke im voraus Andreas

broadway

Bin mir nicht sicher, ob IT einen Befehl on-till kennt. Alternative:

define IT_SCHALTEN notify FS20_abc:on set IT_DOSE on;define IT_OFF at +00:05 set IT_DOSE off
Linksys NSLU2 debian + CUL | FHT80B, FS20, Elro

Vladi2010

habe es jetzt so gemacht:

define IT_SCHALTEN notify FS20_d78404:on set Steckdose_M7 on;define IT_OFF at +00:01 set Steckdose_M7 off

Es Funktioniert ABER LEIDER NUR DAS ERSTE MAHL

danach wird in der config ;define IT_OFF at +00:01 set Steckdose_M7 off gelöscht


kann man das umgehen ?

broadway

Es wird ja bei jedem Tastendruck erneut definiert! Einmalige ats werden immer nach Ausführung aus der Konfig gelöscht.

Willst du wiederkehrende Aktionen programmieren, gib +*00:05 an (d.h. alle 5 min).
Linksys NSLU2 debian + CUL | FHT80B, FS20, Elro

Vladi2010

ich will eigentlich nur das sie Steckdose für 5 Minuten angeht und dann wider aus

ist dass was du meinst?

FS20_d78404:on set Steckdose_M7 on;define IT_OFF +*00:01 set Steckdose_M7 off  ...da geht die Steckdose an aber nicht aus

Grüße Andreas

Vladi2010

Jetzt habe ich so was versucht:

set Steckdose_M7 on-till {sprintf("%%02d:%%02d:%%02d",($hour+($min+5)/60)%%24,($min+5)%%60,$sec)}

bekomme aber diese Fehlermeldung:

the at function "sprintf("%%02d:%%02d:%%02d",($hour+($min+5)/60)%%24,($min+5)%%60,$sec)" must return a timespec and not Illegal modulus zero at (eval 542) line 1.
.

kann jemand helfen ?


broadway

Also der Befehl funktioniert einwandfrei. Gerade getestet.

define IT_SCHALTEN notify FS20_d78404:on set Steckdose_M7 on;define IT_OFF at +00:01 set Steckdose_M7 off

Gibst du ihn allerdings in die Kommandozeile ein, wird das at sofort angelegt und nur einmal ausgeführt. Am besten in die cfg oder erst das notify leer  anlegen und dann unter DEF vervollständigen.


(siehe Anhang / see attachement)
Linksys NSLU2 debian + CUL | FHT80B, FS20, Elro

Zrrronggg!

Versuch mal:

define IT_SCHALTEN notify FS20_d78404:on set Steckdose_M7 on ;; define IT_OFF at +00:05 set Steckdose_M7 off

ZWEI Semikolon.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Vladi2010


(siehe Anhang / see attachement)
:-)

Erst mal klappt es ( zumindest mit einer FS 20 Fernbedienung )  super  :)
ein AT Befehl wird automatisch angelegt.



jetzt habe ich aber die Fernbedienung durch ein FS-20 Piri-2 ausgetauscht, wird der AT befehl automatisch verlängert ( Übershrieben)  ???

das ganze soll zu Anwesenheit- Überwachung im Badezimmer dienen.
(Licht an wen jemand im Badezimmer ist)

Grüße Andreas




broadway

Zitat von: broadway schrieb am Sa, 13 April 2013 14:15Es wird ja bei jedem Tastendruck erneut definiert!

Egal ob das notify durch Fernbedienung oder piri ausgelöst wird.
Linksys NSLU2 debian + CUL | FHT80B, FS20, Elro

Vladi2010

dass ist mir schon klar,
mir ist nur nicht klar ob wenn der PIRI mehrmals auslöst sich auch der AT Befehl "verlängert" ?

Zrrronggg!

Wird nicht verlängert, kann man aber lösen:


define IT_SCHALTEN notify FS20_d78404:on set Steckdose_M7 on ;; delete IT_OFF ;; define IT_OFF at +00:05 set Steckdose_M7 off


Dann wird das alte "in 5 Minuten ausmachen" zuerst gelöscht und durch ein neues ersetzt, das wieder 5 Minuten läuft.
Beachte, dass das eine Fehlermeldungen nach dem ersten Auslösung gibt, weil es dann IT_OFF ja noch nicht gibt.
Etwa der Art:
"please define IT_OFF first"

Die kannst du ignorieren.

Es gibt Leute die machen das "sauber", in dem sie erst prüfen ob das zu Löschende define schon  existiert. Das ist aber ein rein kosmetisches Thema, ich mach mir die Mühe nicht und ignoriere einfach die Fehlermeldungen im Log. Funktionieren tut's ja trotzdem.

Bitte denke daran, bei Lichtsteuerung durch PIRI die Sendeabstände des PIRI/PIRA etc möglichst lang zu machen (maximum bei FS20 ist glaube ich 240 Sekunden) sonst läufst du ganz schnell in das 1% Problem

FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

jsb73

Hallo Andreas,

ich habe die Ansteuerung einer Lampe (InterTechno-Aktor) über einen PIRU so gelöst:

define n_fl_se_Melder_piru notify fl_se_Melder:on-old-for-timer.* { \
        my $timer = $EVTPART1;;                                     \
        Log 3, "fl_se_Melder:on-old-for-timer ".$timer;;            \
        if ( OldValue("fl_se_Melder") eq "Ein" ) {                  \
                Log 3, "fl_se_Melder permanent Ein";;               \
                fhem("set fl_se_Melder Ein");;                      \
        } else {                                                    \
                if ( Value("at_fl_se_Melder_off") ){                \
                        Log 3, "n_fl_se_Melder_piru: delete at_fl_se_Melder_off";; \
                        fhem ("delete at_fl_se_Melder_off");;       \
                }                                                   \
                if ( Value("fl_li_Lampe") ne "on" ) {               \
                        fhem ("set fl_li_Lampe on");;               \
                }                                                   \
                myCreateTimer($NAME,"off",$timer);;                 \
                fhem ("setstate fl_se_Melder on-for-timer $timer");;\
        }                                                           \
}


Der PIRU sendet on-old-for-timer, bei jedem Empfang wird das at zum Aussschalten gelöscht (falls vorhanden) und ein neues angelegt.
Wenn der Status des PIRU auf Ein (on) steht, wird on-old-for-timer ignoriert und wieder der Status Ein gesetzt. Damit ist ein dauerhaftes Einschalten möglich (z.B. wenn ich alle paar Minute durchlaufe, damit nicht immer on/off geschaltet wird).

myCreateTimer() ist so definiert:

myCreateTimer($$$)
{
        my ($dev,$state,$timer) = @_;

        Log 3,"create at for $dev state $state in $timer seconds";

        my $h = int($timer / 3600);
        my $m = int($timer / 60) % 60;
        my $s = int($timer % 60);

        my $def_cmd = sprintf (
                "define at_%s_%s at +%02d:%02d:%02d set %s %s",
                $dev, $state, $h, $m, $s, $dev, $state
        );
        fhem($def_cmd);
}


Das at löst einen off für den PIRU aus, der dann wieder einen off an den IT sendet. Somit stimmen die Status überein:

define n_fl_se_Melder_off notify fl_se_Melder:off {    \
        Log 3, "fl_se_Melder:off ";;                   \
        if ( Value("at_fl_se_Melder_off") ) {          \
                Log 3, "delete at_fl_se_Melder_off";;  \
                fhem ("delete at_fl_se_Melder_off");;  \
        }                                              \
        if ( Value("fl_li_Lampe") ne "off" ) {         \
                fhem ("set fl_li_Lampe off");;         \
        }                                              \
}



Den Ein-Event habe ich auf einen dimupdown eines FS20-Tasters gelegt (wieder per notify).


Jan

Zrrronggg!

Wow. Das ist ja rund 20x mal mehr Code!
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Vladi2010

Hallo jsb73 ,
habe deine Variante jetzt probiert, da bei der vorherigen Variante sich der AT Befehl nicht verlängert hat.

ich habe es mit OpenOffice Writer ersetzt:

define Anwesenheit_BAD notify FS20_5d5900:on { \
        my $timer = $EVTPART1;;                                     \
        Log 3, "FS20_5d5900:on-old-for-timer ".$timer;;            \
        if ( OldValue("FS20_5d5900") eq "Ein" ) {                  \
                Log 3, "FS20_5d5900 permanent Ein";;               \
                fhem("set FS20_5d5900 Ein");;                      \
        } else {                                                    \
                if ( Value("at_FS20_5d5900_off") ){                \
                        Log 3, "Anwesenheit_BAD: delete at_FS20_5d5900_off";; \
                        fhem ("delete at_FS20_5d5900_off");;       \
                }                                                   \
                if ( Value(" Steckdose_M7") ne "on" ) {               \
                        fhem ("set  Steckdose_M7 on");;               \
                }                                                   \
                myCreateTimer($NAME,"off",$timer);;                 \
                fhem ("setstate FS20_5d5900 on $timer");;\
        }                                                           \
}

myCreateTimer($$$)
{
        my ($dev,$state,$timer) = @_;

        Log 3,"create at for $dev state $state in $timer seconds";

        my $h = int($timer / 3600);
        my $m = int($timer / 60) % 60;
        my $s = int($timer % 60);

        my $def_cmd = sprintf (
                "define at_%s_%s at +%02d:%02d:%02d set %s %s",
                $dev, $state, $h, $m, $s, $dev, $state
        );
        fhem($def_cmd);
}

define n_FS20_5d5900_off notify FS20_5d5900:off {    \
        Log 3, "FS20_5d5900:off ";;                   \
        if ( Value("at_FS20_5d5900_off") ) {          \
                Log 3, "delete at_FS20_5d5900_off";;  \
                fhem ("delete at_FS20_5d5900_off");;  \
        }                                              \
        if ( Value(" Steckdose_M7") ne "off" ) {         \
                fhem ("set  Steckdose_M7 off");;         \
        }                                              \
}


beim Abspeichern bekomme ich aber folgende Fehlermeldung:

Unknown command myCreateTimer($$$), try help Unknown command {, try help Unknown command my, try help Unknown command Log, try help Unknown command my, try help Unknown command my, try help Unknown command my, try help Unknown command my, try help Unknown command "define, try help Unknown command $dev,, try help Unknown command ), try help Unknown command fhem($def_cmd), try help Unknown command }, try help

kannst du mir da helfen ?

danke im Voraus Andreas

Zrrronggg!

Mal meinen Code probiert?


Nichts gegen jsb73 Lösung die sicher elegant ist (Z.B. keine Fehlermeldungen im Log als Kollateraleffekt hat) und auch mehr Anwendungsfälle abdeckt. Sie ist nur auch wesentlich komplexer, hat 20x mehr Code und bietet für den Anfänger einiges an, Stellen wo was schief gehen kann (wie du jetzt weisst)

Aber für deinen Bedarf funktioniert vielleicht auch die russische "Lada-Methode"  (Lada Methode = Auto ist unelegant, hat wenig Features und klappert, fährt aber, ist günstig und lässt sich mit Zange und Hammer reparieren)

define IT_SCHALTEN notify FS20_d78404:on set Steckdose_M7 on ;; delete IT_OFF ;; define IT_OFF at +00:05 set Steckdose_M7 off
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Vladi2010

hallo Zrrronggg!

probiere gerade dein Vorschlag ;)

ich habe noch eine Frage zwischendurch, wenn ich mehrere Sensoren betreiben will die immer nur die eine Steckdose schalten also Sensor1 oder Sensor2 oder Sensor3,...   muss ich dass so schreiben ?

FS20_5d5900|FS20_481c0|0FS20_d78404:on set Steckdose_M7 on ; delete IT_OFF ; define IT_OFF at +00:05 set Steckdose_M7 off

Grüße Andreas

Zrrronggg!

ich glaube nicht dass das geht.

Ich würde das eher so machen:

define IT_SCHALTEN1 notify FS20_d78404:on set Steckdose_M7 on ;; delete IT_OFF ;; define IT_OFF at +00:05 set Steckdose_M7 off
define IT_SCHALTEN2 notify FS20_5d5900:on set Steckdose_M7 on ;; delete IT_OFF ;; define IT_OFF at +00:05 set Steckdose_M7 off
define IT_SCHALTEN3 notify FS20_481c0:on set Steckdose_M7 on ;; delete IT_OFF ;; define IT_OFF at +00:05 set Steckdose_M7 off



Und ich würde meinen Sendern andere Namen geben als "FS20_d78404"
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

jsb73

Hallo,

die myCreateTimer() muss in FHEM/99_myUtils.pm zuerst definiert und das Modul neu geladen sein. Hatte ich vergessen, dazu zu schreiben :-( Danach die Notifies definieren.

Jan

jsb73

Zitat von: Zrrronggg! schrieb am Di, 16 April 2013 16:55Aber für deinen Bedarf funktioniert vielleicht auch die russische "Lada-Methode"  (Lada Methode = Auto ist unelegant, hat wenig Features und klappert, fährt aber, ist günstig und lässt sich mit Zange und Hammer reparieren)

So ein Teil schaue ich nicht mal mehr mit dem Achtersteven an ;-) Gab mal Zeiten, da habe ich von dem Teil geträumt...

Zrrronggg!

Dann setze eben anstatt LADA die MIR ein.  :-)


Ich bin mir (als Westeler) nicht sicher, ob ich in Sibirien lieber einen Lada oder was akteuelles von sagen wir VW vollgestopft mit Elektronic hätte... wen mein Leben davon abhinge, dass das angeht und Teil fährt.

FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Vladi2010

also das hier funktioniert und ist für einen Anfänger wie mich auch leicht nachvollziehbar, danke Zrrronggg!  :)

define IT_SCHALTEN1 notify FS20_d78404:on set Steckdose_M7 on ;; delete IT_OFF ;; define IT_OFF at +00:05 set Steckdose_M7 off
define IT_SCHALTEN2 notify FS20_5d5900:on set Steckdose_M7 on ;; delete IT_OFF ;; define IT_OFF at +00:05 set Steckdose_M7 off
define IT_SCHALTEN3 notify FS20_481c0:on set Steckdose_M7 on ;; delete IT_OFF ;; define IT_OFF at +00:05 set Steckdose_M7 off

nich desto trotz will ich auch das von jsb73 verstehen wollen,
jsb73 wass meinst du mit "die myCreateTimer() muss in FHEM/99_myUtils.pm zuerst definiert und das Modul neu geladen sein. Hatte ich vergessen, dazu zu schreiben :-( Danach die Notifies definieren."  ??

kannst du das genauer erläutern ? ist der Skript von dir den ich auf mich umgeschrieben habe richtig ?

danke an alle die sich mit mir die Mühe machen
Andreas

jsb73

Hallo,

im Verzeichnis FHEM gibt es ein File 99_myUtils.pm, dort kannst Du eigene Perl-Funktionen definieren. Danach mit reload 99_myUtils das Modul laden oder fhem neu starten.

Dein Code ist:

define Anwesenheit_BAD notify FS20_5d5900:on { \
  my $timer = $EVTPART1;; \
  Log 3, "FS20_5d5900:on-old-for-timer ".$timer;; \
  if ( OldValue("FS20_5d5900") eq "Ein" ) { \
    Log 3, "FS20_5d5900 permanent Ein";; \
    fhem("set FS20_5d5900 Ein");; \
  } else { \
    if ( Value("at_FS20_5d5900_off") ){ \
      Log 3, "Anwesenheit_BAD: delete at_FS20_5d5900_off";; \
      fhem ("delete at_FS20_5d5900_off");; \
    } \
    if ( Value(" Steckdose_M7") ne "on" ) { \
      fhem ("set Steckdose_M7 on");; \
    } \
    myCreateTimer($NAME,"off",$timer);; \
    fhem ("setstate FS20_5d5900 on $timer");;\
    } \
  }



Damit würde ein on-Event für die Adresse 1111 eines FS20-Senders (5d59 ist der Housecode) verarbeitet. Ein on-Event hat aber keine Zeitangabe, daher ist $EVTPART1 nicht gesetzt. Der Sender müsste ein "on-for-timer xxx" senden und das Notify muss

define Anwesenheit_BAD notify FS20_5d5900:on-for-timer.* { \

definieren. Ein PIRU sendet z.B. "on-old-for-timer xxx", so ist mein Beispiel auch definiert.
Das erste if prüft, ob der alte Status Ein war (Du musst also "eventMap on:Ein" als Attribut des FS20 setzen). In dem Fall wird ein "set ... Ein" gesetzt, was den FS20 wieder auf Ein schaltet. Damit bleibt der alte Status bzw. wird wieder gesetzt. Das dient dazu, die on-for-timer zu übersteuern und den Aktor permanent auf Ein zu halten.

Im else-Zweig wird geprüft, ob ein at_FS20_5d5900_off existiert und wenn ja, dieses gelöscht. Das verhindert die Warnung im Log.
Das nächste if prüft, ob die Steckdose auf on steht. Hier ist in Value(" Steckdose_M7") ein Leerzeichen zu viel! Damit wird ein Funk-Befehl nicht gesendet, wenn er nicht nötig ist.
Der Aufruf von myCreateTimer legt ein at_FS20_5d5900_off an, dass nach xxx Sekunden ein off-Event auslöst. Für das off-Event benötigst Du ein weiteres notify, dass ein off an die Steckdose sendet. Somit sind FS20-Sender-Status und Steckdose synchronisiert und werden korrekt angezeigt.

Das setstate muss

fhem ("setstate FS20_5d5900 on-for-timer $timer");;

lauten. Das benötigst Du aber nur um ein on-old-for-timer in ein on-for-timer bei der Status-Anzeige zu wandeln. Ist also eher Kosmetik wegen der FS20-Icons.

Wenn ich richtig zähle (daher die Einrückung), fehlt ein "} \" vor der letzten Klammer.

Dein off-notify:

define n_FS20_5d5900_off notify FS20_5d5900:off { \
  Log 3, "FS20_5d5900:off ";; \
  if ( Value("at_FS20_5d5900_off") ) { \
   Log 3, "delete at_FS20_5d5900_off";; \
   fhem ("delete at_FS20_5d5900_off");; \
  } \
  if ( Value(" Steckdose_M7") ne "off" ) { \
    fhem ("set Steckdose_M7 off");; \
  } \
}

löscht ein evtl vorhandenes at_FS20_5d5900_off und sendet ein off an die Steckdose. Scheint OK.


Damit Du mit einem on-Event die Steckdose einschaltest, benötigst Du:

define n_FS20_5d5900_no notify FS20_5d5900:on { \
  Log 3, "FS20_5d5900:on";; \
  if ( Value("at_FS20_5d5900_off") ) { \
   Log 3, "delete at_FS20_5d5900_off";; \
   fhem ("delete at_FS20_5d5900_off");; \
  } \
  if ( Value(" Steckdose_M7") ne "on" ) { \
    fhem ("set Steckdose_M7 on");; \
  } \
}



Also 3 Events:
* on-for-timer (oder on-old-for-timer) kommt vom Bewegungsmelder und schaltet für xxx Sekunden ein
* on  kommt von der Web-Oberfläche oder einem Schalter im 2-Kanal-Mode
* off dito


Ein FS20-Taster sendet entweder linke Taste on und rechte Taste off für die selbe FS20-Adresse im 2-Kanal-Mode (bei einem 4-fach Taster) oder je Taste ein toggle für eine andere Adresse im 4-Kanal-Mode.
Ich habe einen Bewegungsmelder, der für die Adresse 1234 ein on-old-for-timer sendet und einen FS20-Taster, der on/off für die selbe Adresse sendet (bzw. toggle, dann wirds halt komplizierter).


Vermutlich habe ich Dich mit meinem Beispiel für den Bewegungsmelder ungewollt verwirrt. Wenn Du einen Taster mit on/off einsetzt, benötigst Du natürlich ein on-notifiy, dass xxx Sekunden einschaltet:

define Anwesenheit_BAD notify FS20_5d5900:on { \
  my $timer = 600;; \
  Log 3, "FS20_5d5900:on timer: ".$timer;; \
  if ( Value("at_FS20_5d5900_off") ){ \
    Log 3, "Anwesenheit_BAD: delete at_FS20_5d5900_off";; \
    fhem ("delete at_FS20_5d5900_off");; \
  } \
  if ( Value("Steckdose_M7") ne "on" ) { \
    fhem ("set Steckdose_M7 on");; \
  } \
  myCreateTimer($NAME,"off",$timer);; \
  fhem ("setstate FS20_5d5900 on-for-timer $timer");;\
}

Damit wird bei on vom Schalter die Steckdose 600s eingeschaltet und der Status des Schalters auf "on-for-timer 600" (also Icon Lampe gelb mit Uhr) gesetzt. Nach 600s wird ein off-Event für den Schalter erzeugt, was Schalter und Steckdose auf off setzen.
Der Status des Schalters wird auf on gesetzt, wenn der Funkbefehl "on" vom Schalter empfangen wird. Dann kannst Du aber ein dauer-on nicht von einem on-for-timer unterscheiden, weil Du ja nicht weisst, ob der Schalter oder die Web-Oberfläche ein on gesendet hat. Dafür kannst Du die Steckdose am Schalter ein- und ausschalten.

Wenn der Schalter im 4-Kanal-Mode läuft, sendet er ein toggle. In den Fall geht:

define Anwesenheit_BAD notify FS20_5d5900:toggle { \
  my $timer = 600;; \
  Log 3, "FS20_5d5900:toggle timer: ".$timer;; \
  if ( OldValue("FS20_5d5900") eq "Ein" ) { \
    Log 3, "FS20_5d5900 permanent Ein";; \
    fhem("set FS20_5d5900 Ein");; \
  } else { \
    if ( Value("at_FS20_5d5900_off") ){ \
      Log 3, "Anwesenheit_BAD: delete at_FS20_5d5900_off";; \
      fhem ("delete at_FS20_5d5900_off");; \
    } \
    if ( Value(" Steckdose_M7") ne "on" ) { \
      fhem ("set Steckdose_M7 on");; \
    } \
    myCreateTimer($NAME,"off",$timer);; \
    fhem ("setstate FS20_5d5900 on-for-timer $timer");;\
    } \
  } \
}

Dann wird bei einem kurzen Tastendruck immer eingeschaltet. Dauer-on geht dann über die Web-Oberfläche.

Ein langer (>1s) Tastendruck liefert übrigens ein dimupdown-Befehl, den Du gesondert verwenden kannst:

define n_FS20_5d5900_off notify FS20_5d5900:dimupdown { \
  Log 3, "FS20_5d5900:dimupdown";; \
  fhem ("set FS20_5d5900 off");; \
  } \
}



Wichtiger Unterschied: ein "set xxx on" schaltet auf on und verarbeitet das notify für on, ein "setstate xxx on" setzt nur den Status.


So dass war jetzt wohl der komplette Kurs, kannst Dir raussuchen, was Du machen willst ;-)

Jan

Vladi2010

Hallo jsb73

danke für die Anleitung,

ich werde es mir jetzt ausdrucken und versuche es zu " Verdauen"  ;-)

Grüße Andreas