FHEM Forum

FHEM => Automatisierung => Thema gestartet von: bugster_de am 26 Mai 2014, 12:44:06

Titel: at im at modifizieren
Beitrag von: bugster_de am 26 Mai 2014, 12:44:06
Hi,

ich habe im Prinzip folgenden MetaCode

define callme at +00:02:00 { thefunc( );;}

sub thefunc( ) {
if( noch_nicht_jetzt ) {
   fhem( "delete callme" );
   fhem( "define callme at +00:02:00 { thefunc( );;}" );
}
}


Sprich ich möchte in der Funktion, die vom at aufgerufen wurde den at modifizieren / neu anlegen. Das scheint aber nicht zu klappen. Kann das sein?

Warum will ich das?
ich habe an den Terrassentüren Griffsensoren. Wenn die Rolladensteuerung die Rolladen schließt, checkt sie erst mal, ob die Terrassentüre offen ist. Wenn geschlossen, dann Rolladen zu. Wenn Türe offen, dann Timer setzen. Wenn der Timer kommt, dann in der Funktion Türe checken und wenn Türe zu, dann Rolladen runter. Wenn Türe offen, dann Timer wieder neu starten.
Titel: Antw:at im at modifizieren
Beitrag von: betateilchen am 26 Mai 2014, 13:02:16
Zitat von: bugster_de am 26 Mai 2014, 12:44:06
Sprich ich möchte in der Funktion, die vom at aufgerufen wurde den at modifizieren / neu anlegen. Das scheint aber nicht zu klappen. Kann das sein?

Ja, das ist so. Und das wurde in letzter Zeit auch schon mehrfach hier im Forum durchdiskutiert.
Titel: Antw:at im at modifizieren
Beitrag von: rudolfkoenig am 26 Mai 2014, 13:41:26
at (einer der ersten FHEM-Module) ist nicht intuitiv realisiert: nach dem ausfuehren des Argumentes definiert es sich anhand der gemerkten Parameter neu -> ich weiss nicht, wie man diese Parameter aus dem ausgefuehrten Code-Stueck modifizieren kann.

Um das erwaehnte Problem zu loesen, wuerde ich eine wiederkehrende at Instanz (+*00:02) definieren, die sich loescht, falls sie nicht mehr gebraucht wird.
Titel: Antw:at im at modifizieren
Beitrag von: bugster_de am 26 Mai 2014, 14:33:27
Danke für die schnelle Antwort.
Das wiederkehrende Anlegen geht ja auch nicht, da ich im Codestück den Art ja nicht löschen kann.

Ich baue einfach eine Zähler ein, der bei jedem Aufruf sich selbst inkrmentiert und lege ein neues Art an, das den Zählerstand im Namen hat. Der aufrufend e Art ist ja dann automatisch gelöscht.

Viele Grüße
Titel: Antw:at im at modifizieren
Beitrag von: betateilchen am 26 Mai 2014, 14:46:02
und schalte bitte die Autokorrektur ab, das verstümmelt Deine Texte fast zur Unverständlichkeit ;)
Titel: Antw:at im at modifizieren
Beitrag von: rudolfkoenig am 26 Mai 2014, 14:51:14
ZitatDas wiederkehrende Anlegen geht ja auch nicht, da ich im Codestück den Art ja nicht löschen kann.

Das klingt zwar logisch, ist aber nicht korrekt.

at_Exec prueft, ob es man das at im Exec entfernt hat, und definiert dann keine neue Instanz.
Titel: Antw:at im at modifizieren
Beitrag von: bugster_de am 26 Mai 2014, 15:24:56
Danke. Und sorry wegen der blöden Autokorrektur.