Array von Readings?

Begonnen von Wölfin, 17 Juni 2014, 12:42:55

Vorheriges Thema - Nächstes Thema

Wölfin

Hallo zusammen!

ich versuche mich gerade an einem Modul, dass mich an verschiedene Termine erinnern soll. Besonderheit hierbei ist aber, dass die Termine nicht in einem Kalender stehen, sondern z.B. über eine Datei zur Verfügung gestellt werden oder aber per Webservice geholt werden.
FHEM soll dann die Datei / den Webserice z.B. 1x pro Woche abfragen und die Termine daraus holen. Soweit auch kein Problem.

Jetzt habe ich 1..n Datümer gelesen. Aber was mache ich jetzt damit? Ich kann ja nicht 100 Readings anlegen und hoffen, dass die reichen und jedes Reading ein eigenes Datum aufnimmt.
Auf der Oberfläche möchte ich dann informiert werden, wenn ein Termin am nächsten Tag ansteht.

Kann mir hier jemand einen Denkanstoß geben, wie ich so etwas realisieren kann?
Danke schon mal für eure Hilfe!

Liebe Grüße
Steffi

justme1968

schau dir doch mal das calview aus dem forum hier an. vielleicht hilft dir das ja mit einer idee weiter.

es gibt glaube ich auch wiki was dazu.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Elektrolurch

Hallo,

ich hatte die Frage auch schon mal gestellt, da ich eine Reihe von Listen habe und es ziemlich lästig ist, für die Definition z.B. einer readingsGroup die ganzen readings vorab schon anzulegen.
Da geht nur folgender Ausweg:
Statt händisch zu definieren, mach Dir ein Stückchen perl-Code, mit dem Du die Listen definierst.
Die Technik geht so ganz gut.
zB. grob so:

my $cmd = 'define myrg readingsGroup ';
For (my $i = 0; $i < 100; $i++)
{
$cmd .= "Anrufliste:Name-$i,Nummer-$i ";
}
fhem($cmd);

Und mit dem fhem-Befehl modify ganz Du dann auch Deine Darstellungen bequem umstellen. Bei mir gibt es da z.B. für die Heizungsanlage einen Modus "Fachmann" und einen "Normal". Über modify werden dann Zeilen in der rg ein- und ausgeblendet.

Gruß


Elektrolurch
configDB und Windows befreite Zone!

herrmannj

Hi Steffi,

ohne die konkrete Anwendung zu kennen sind Tips schwer aber Du hast die Möglichkeit ein "get" zu implementieren.

Dann kannst Du vielleicht ein Reading für den jeweils nächhsten (relevanten?) Termin nehmen und wenn Du eine (gefiltere?) Liste von Terminen brauchst kannst Du über "get" gehen.

Im Modul kannst Du über "internals" Deine Terminstruktur so speichern wie sie am angenehmsten ist, vermutlich ein hash mit entsprechenden Feldern. "Internals" werden im Detailscreen per default nicht angezeigt.

Wenn Du über einen webservice die Daten holst denk bitte dran ein non-blocking get zu verwenden, ist in httputils.pm bereits vorhanden.

vg
jörg

Wölfin

Hallo!

Vielen Dank für die Antworten!
Im Calview Modul habe ich etwas gefunden, was ich nutzen kann.

Die gelesenen Termine stehen jetzt schon mal in Readings und ich kann sie anzeigen.
Fehlt nur noch die "Erinnerung" an den jeweils nächsten Termin. Per at kann ich ja ein Reading befüllen, dass dann 1x am Tag den nächsten Termin ermitteln.
Das Reading könnte ich dann per notify prüfen, ob es am morgigen Tag oder heute ist und dann z.B. eine Mail schicken oder einen Signalgeber auslösen. Oder habe ich hier irgendwo einen Denkfehler?

Liebe Grüße
Steffi