Hallo!
Ich habe eine abfallkalender.holiday-Datei in der ich für verschiedene Müllarten die Abholtermine stehen habe. Z.B:
1 04-03 Restabfall
1 04-16 Restabfall
1 04-04 Leichtverpackungen
1 04-30 Leichtverpackungen
1 04-23 Papier
1 04-20 Papier
Mit folgenden Befehlen kann ich nun abfragen ob heute (oder morgen, oder in 3 Tagen ein Datum mit dem zugehörigen Abfalltyp drin steht:
{fhem("get abfallkalender today")}
{fhem("get abfallkalender tomorrow")}
{fhem("get abfallkalender days 3")}
Als Ergebnis bekomme ich dann also den Abfalltyp (z.B. Papier) oder none (wenn zum abgefragten Datum nichts drin steht).
Damit ich nun aber gezielt abfragen könnte, wann denn z.B. das Papier fällig ist, müsste ich erst 7 mal anfragen (heute, morgen, in 3 Tagen ... in 7 Tagen, weiter im Voraus wäre unnötig) und prüfen, ob in einer der Rückmeldungen das Papier auftaucht und das dann irgendwie in einer Variablen speichern.
Hat jemand eine elegante Idee, wie ich das umsetzten könnte? ::)
Hintergrund: Ich will die datenschutzfreundliche Sprachsteuerung Snips (https://snips.ai) dazu bringen, mir mittels in diesem Thread (https://forum.fhem.de/index.php/topic,89548.msg821634.html#msg821634) beschriebener (dann angepasster) Sub-Funktion die Frage nach der Abholung von Papier zu beantworten.
Zitat von: der_da am 09 April 2019, 15:21:00
Hat jemand eine elegante Idee, wie ich das umsetzten könnte? ::)
Nimm einen richtigen Kalender (z.B. Google oder ownCloud) und benutze das Kalender-Modul aus FHEM.
Zitat von: betateilchen am 09 April 2019, 15:33:21
Nimm einen richtigen Kalender (z.B. Google oder ownCloud) und benutze das Kalender-Modul aus FHEM.
Danke für den Tipp. Mein SmartHome ist nicht ohne Grund cloudfrei. Da fällt Google als Kalenderanbieter schon mal klar aus. Eine selbstgehostete Nextcloud wäre eine Lösung, wäre aber mit einigem Aufwand verbunden.
Ich möchte eigentlich ungern auf das Kalendermodul umsteigen. Schließlich läuft es mit der holiday-Datei sehr gut und es gibt hier sowieso keine von der Müllabfuhr bereitgestellte Kalenderdatei, die ich dafür benutzen könnte (sonst wäre das sicherlich ein Argument, das umzustellen).
Hat jemand bessere Vorschläge?
Schleife nehmen?
So etwa in der Richtung:
my $Treffer = "none";
my $result;
for (my $i=0; $i <= 7; $i++) {
$result = CommandGet(undef,"deinKalendername $i");
if ($result eq "Papier") {
$Treffer = $i;
last;
}
}
Gibt doch extra ein Abfallmodul. Macht das sowas nicht?
Zitat von: der_da am 09 April 2019, 15:50:57
Danke für den Tipp. Mein SmartHome ist nicht ohne Grund cloudfrei. Da fällt Google als Kalenderanbieter schon mal klar aus. Eine selbstgehostete Nextcloud wäre eine Lösung, wäre aber mit einigem Aufwand verbunden.
Hi,
Du brauchst ja wegen 4 Serientermine nicht unbedingt einen in der Cloud gehosteten Kalender. Eine lokale ics Datei tut es ja auch.
Erstelle also mit irgendeinem Programm Deiner Wahl eine ics Datei, binde diese lokal mit dem Calendar Modul ein und dort kannst Du abfragen wann Papier dran ist.
Gruß Otto