FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: pula am 21 Januar 2016, 10:52:40

Titel: Wanted: fhem-Befehle per Kalender
Beitrag von: pula am 21 Januar 2016, 10:52:40
Hallo,

ich bilde mir ein, irgendwo mal was gelesen zu haben, daß jemand über einen Kalender direkt fhem-Befehle abgesetzt hat. Zb. weil wir morgen länger schlafen wollen ein "disable notify xy" um 4 Uhr (verhindert zb das Einschalten der Zirkulationspumpe um 5:00) und dann ebenfalls per Kalender um 10:00 ein "set zirkulationspumpe on".
Also direkt fhem-Befehle als Teil eines Kalender-Eintrags, die dann von fhem automatisch zu dem im Kalender definierten Zeitpunkt ausgeführt werden.
Kann sich jemand an so etwas erinnern bzw. hat so etwas vielleicht im Einsatz? Habe die Suche bemüht, bin aber nicht wirklich fündig geworden...

Danke im voraus und cheers,

Pula
Titel: Antw:Wanted: fhem-Befehle per Kalender
Beitrag von: betateilchen am 21 Januar 2016, 12:22:41
Zitat von: pula am 21 Januar 2016, 10:52:40
ich bilde mir ein, irgendwo mal was gelesen zu haben, daß jemand über einen Kalender direkt fhem-Befehle abgesetzt hat.
...Kann sich jemand an so etwas erinnern bzw. hat so etwas vielleicht im Einsatz?

Ja, das war ich :)
Titel: Antw:Wanted: fhem-Befehle per Kalender
Beitrag von: pula am 21 Januar 2016, 12:51:04
Hurra :-)
Kannst Du mir hier evtl. weiterführende Infos geben bitte?
Würde das dann natürlich auch ins wiki malen...
Titel: Antw:Wanted: fhem-Befehle per Kalender
Beitrag von: betateilchen am 22 Januar 2016, 13:21:54
Ja, kann ich, aber erst morgen oder übermorgen, ich bin zur Zeit noch unterwegs.

Und ich bin kein Freund des WIKIs ;)
Titel: Antw:Wanted: fhem-Befehle per Kalender
Beitrag von: pula am 22 Januar 2016, 19:54:54
Ja, das wäre toll - so eilig is es eh nicht  ;)

Würde es trotzdem dann ins WIKI malen, kann ja mal irgendwem was bringen oder so...
Titel: Antw:Wanted: fhem-Befehle per Kalender
Beitrag von: betateilchen am 22 Januar 2016, 20:41:57
Das Problem am wiki ist - es wird nicht nachgepflegt, und der Unsinn, der da mal drinsteht, lässt sich nie wieder ausbügeln. Hätte seinerzeit jemand einen Wiki-Eintrag zu der von Dir gestellten Frage geschrieben, würde das dort beschriebene Verfahren heute nicht mehr funktionieren.


Zu 1:

Der Kalender im Beispiel heißt cal_Command

Zu 2:

define n_cal_Command notify cal_Command.*start.* {cal_command($NAME,$EVENT)}

Zu 3:


sub cal_command($$) {
   my ($name,$event) = @_;
   my (undef,$uid) = split(/ /,$event);
   return unless $uid;

   my $befehl = CommandGet(undef,"$name summary $uid 1");
   fhem $befehl if(defined($befehl));
   return;
}
Titel: Antw:Wanted: fhem-Befehle per Kalender
Beitrag von: Wolle02 am 23 Januar 2016, 10:09:08
Wow. Das funktioniert ganz toll. Vielen Dank für den Tip. Das eröffnet ganz neue Möglichkeiten.  :D
Titel: Antw:Wanted: fhem-Befehle per Kalender
Beitrag von: pula am 23 Januar 2016, 14:12:59
Hallo,

super, vielen herzlichen Dank!
Funktioniert einwandfrei!!!!
Ja, die Infos im WIKI sind eher statisch, da hast Du wohl recht...

Titel: Antw:Wanted: fhem-Befehle per Kalender
Beitrag von: betateilchen am 23 Januar 2016, 15:44:41
Achtung: Der Lösungsvorschlag ist nur dazu gedacht, das Prinzip des Vorgehens zu erklären. Das Ganze funktioniert im angegebenen Beispiel nur für EINEN Termin zu EINEM Zeitpunkt. Wenn jemand beispielsweise für 09:00 Uhr drei Einträge macht um drei Geräte zu schalten, funktioniert das erstmal nicht. Man muss dann die Funktion in der 99_myUtils etwas weiter ausbauen.
Titel: Antw:Wanted: fhem-Befehle per Kalender
Beitrag von: pula am 23 Januar 2016, 16:34:18
Hi,

ja, ist klar, vielen Dank!
Auf jeden Fall ist das toll, weil es zumindest ein Anhaltspunkt ist, wie man vorgehen kann. Danke noch mal!
Titel: Antw:Wanted: fhem-Befehle per Kalender
Beitrag von: pula am 23 Januar 2016, 21:30:49
Eine Frage habe ich aber noch dazu...
Was genau macht CommandGet? Ich habe mir das in fhem.pl angesehen, werde aber nicht wirklich schlau daraus...
Titel: Antw:Wanted: fhem-Befehle per Kalender
Beitrag von: betateilchen am 23 Januar 2016, 21:57:00
Einfach nicht drüber nachdenken...


CommandGet(undef,"$name summary $uid 1");


bewirkt das gleiche wie


fhem("get $name summary $uid 1");


Die Variante mit fhem() ist eigentlich die empfohlene Variante, aber als Entwickler rutscht mir manchmal Variante 1 durch, sorry :)
Titel: Antw:Wanted: fhem-Befehle per Kalender
Beitrag von: pula am 23 Januar 2016, 23:12:58
Ah, OK, danke!
Da ich das für mich ein wenig anpassen möchte, würde ich das auch gerne verstehen  ;)