Anzahl Tage aus Holiday-Datei auslesen, wenn bestimmter Eintrag

Begonnen von der_da, 09 April 2019, 15:21:00

Vorheriges Thema - Nächstes Thema

der_da

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 dazu bringen, mir mittels in diesem Thread beschriebener (dann angepasster) Sub-Funktion die Frage nach der Abholung von Papier zu beantworten.

betateilchen

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

der_da

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?

Beta-User

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;
   }
}
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

CoolTux

Gibt doch extra ein Abfallmodul. Macht das sowas nicht?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz