Wanted: fhem-Befehle per Kalender

Begonnen von pula, 21 Januar 2016, 10:52:40

Vorheriges Thema - Nächstes Thema

pula

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
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

betateilchen

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 :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

pula

Hurra :-)
Kannst Du mir hier evtl. weiterführende Infos geben bitte?
Würde das dann natürlich auch ins wiki malen...
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

betateilchen

Ja, kann ich, aber erst morgen oder übermorgen, ich bin zur Zeit noch unterwegs.

Und ich bin kein Freund des WIKIs ;)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

pula

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...
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

betateilchen

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.


  • Du brauchst einen Kalender - logisch. Im Betreff des Ereignisses muss ein gültiger fhem Befehl stehen, z.B. set Lampe on
  • Du brauchst ein notify, das auf den Startzeitpunkt des Ereignisses triggert. Die Ende-Zeit des Ereignisses kannst Du beliebig wählen
  • Du brauchst eine Funktion in Deiner 99_myUtils.pm, die vom notify gerufen wird.

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;
}
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Wolle02

Wow. Das funktioniert ganz toll. Vielen Dank für den Tip. Das eröffnet ganz neue Möglichkeiten.  :D

pula

#7
Hallo,

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

fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

pula

#9
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!
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

pula

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...
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

betateilchen

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 :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

pula

Ah, OK, danke!
Da ich das für mich ein wenig anpassen möchte, würde ich das auch gerne verstehen  ;)
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram