Abfallkalender frustfrei auswerten

Begonnen von Dr. Boris Neubert, 19 April 2015, 17:55:18

Vorheriges Thema - Nächstes Thema

Dr. Boris Neubert

Hallo,

alle Nase lang zeugen hier neue Threads von Frust mit selbstgebauten 99_MyUtils.pm, die mit komplexem Code irgendwelche Aufgaben in Zusammenhang mit Abfallkalendern lösen sollen. Als Entwickler des Calendar-Moduls biete ich an, das Calendar-Device um sinnvolle Attribute und Get-/Set-Funktionen zu erweitern. Ich bräuchte aber dazu bitte eine Beschreibung, was mit den selbstgeschrieben Perl-Kode in 99_MyUtils.pm erreicht werden soll, was das Calendar-Device nicht kann.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Franz Tenbrock

ich oute mich mal...

FHEM bietet so viele Möglichkeiten das es sicher viele ( wie mich auch ) mit weniger fundierten Perl Linux Kenntnissen einfach überfordert. Auf der anderen Seite ist es einfach genial was man dann trotzdem hinbekommen kann und man will dann einfach mehr. Da man dann auch nicht jeden Tag was programmiert (oder zusammenklaut) ist man dann eben auch nicht codesicher.

Die Abfuhrzeiten der Mülltonnen ist was was ich seit Monaten nicht mehr missen möchte.
In der Praxis baue ich gerade ein FHEM Netz auf, auch hier brauche ich dringend ein Abfallmodul, gerade erst den 1000 L Papiercontainer 100 Meter geschleppt weil wir es letzte Woche verbummelt haben den raus zu stellen.
Kurzum.
Wenn das Calendar Modul eine Möglichkeit bieten würde die Datei beim Versorger runterzuladen und sie dann dort hin zu legen wo sie dann von FHEM benötigt wird, dann Kreuzchen setzen was angezeigt werden soll, dann wäre das die ultimative Lösung.
Den user an die Hand nehmen.
Was willst du machen?
Abfallkalender Ferienkalender etc
Dann Frage welches Format
ical PDF oder was sonst so geht
dann Frage nach dem Link
also lokale Datei oder eben www.xy......
dann Standard Icons per update

so was in der Art, ob das geht ???

Kurze Beschreibung im Wiki - fertig.

Ich denke Standardmodule sollten generell so aufgebaut sein das User die FHEM ans laufen bekommen haben, dann schnell zurechtkommen. Ich könnte mir vorstellen das es weniger Zeitaufwand bedeutet diese Zwischenschritte einzubauen als ständig dumme Fragen von usern zu beantworten.

cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Wuppi68

Hallo Boris,

eine coole und sicherlich auch stark vereinfachende Funktion wäre es, wenn Du quasi einen Routienenmapper in Dein Modul einbauen würdest ...

also zum Beispiel so:

Termin hat folgenden Textinhalt:
<Schlagwort> <weiterer Text>

Startzeit für Termin ist erreicht und es es wird eine Funktion <Schlagwort>(<weiterer Text>) aufgerufen

die <Schlagwörter> sollten dann per Attribut gepflegt werden können


in der 99_CalendarUtils.pm muss dann entsprechend die Funktion <Schlagwort> definiert sein

Liebe Grüße

Ralf
FHEM unter Proxmox als VM

Dr. Boris Neubert

Hallo Ralf (Wuppi68),

in der gerade im Alpha-Test befindlichen Version gibt es jetzt die Möglichkeit, Termine über Plug-Ins automatisch zu verändern. Man kann z.B. einen Alarm einen Tag vor Leerung der Mülltonne ergänzen.

Wenn Du das testen möchtest, dann lies bitte hier:

http://forum.fhem.de/index.php/topic,46608.0.html

Du solltest dann noch über das Forum die Mitgliedschaft in der Gruppe Tester beantragen.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

betateilchen

Als Entwickler braucht Wuppi doch keinen Tester-Status
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dr. Boris Neubert

Ups, hatte ich übersehen. Nein, braucht er natürlich nicht.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dr. Boris Neubert

Frust mit Abfallkalendern?

Vielleicht hilft es ja schon, einen Alarm einen Tag vorher einzubauen und mit einem Notify darauf zu reagieren. Die aktuelle beta-Version kann das. Mit folgendem Plugin bekommen alle Termine, deren Titel den String "Tonne" enthält, einen Alarm 86.400 Sekunden (1 Tag) vor dem Abholtermin verpasst:

attr Abfallkalender onCreateEvent { $e->{alarm}= $e->{start}-86400 if($e->{summary} =~ /Tonne/);; }

Mit dem passenden Weblink lässt sich das dann in FHEMWEB anzeigen:

define Abfuhr weblink htmlCode { CalendarAsHtml("Abfallkalender","mode=alarmed") }

Wenn nichts gravierendes mehr auffällt, wird die Version am kommenden Wochenende offiziell verteilt.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

pula

#7
Hallo,

super Modul, vielen Dank dafür!

Ich bin gerade dabei, anzufangen, mich mit dem Thema Kalender in fhem zu beschäftigen.
Aber ich denke, daß folgende Funktion sicherlich vielen weiterhelfen könnte:

Wenn (zb) das Wort "Urlaub" (oder vielleicht ein per attr zu setzendes) im Betreff eines Termins vorkommt, setze eine (fix definierte oder per attr setzbare) Variable (zb $urlaub = 1). Wenn das Ende des Termins erreicht ist, setze die Variable auf 0.
Hintergrund ist natürlich, bei Urlaubs-Tagen in fhem anders agieren zu können als an Arbeitstagen.

Cheers,

Pula

PS: Sorry, habe in dem ersten Post das Stichwort "Abfallkalender" überlesen. Mein Posting hat mit Abfall nichts zu tun. Da es aber um eine mögliche zusätzliche Funktion des Calendar-Moduls geht, hoffe ich, daß das trotzdem grundsätzlich hier passt. Falls nicht - bitte ignorieren!
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

Dr. Boris Neubert

Hallo,

bau Dir bitte mal sowas (ungetestet, bei Fragen bitte separates Thema aufmachen).

define Urlaub dummy
define switchUrlaub notify MyCalendar:(start|end).* { my $mode="$EVTPART0";; my $uid= "$EVTPART1";; my $summary= fhem("get MyCalendar summary $uid");; my $on= $mode eq "start" ? 1 : 0;;  fhem("set Urlaub $on") if($summary =~ "Urlaub") }


Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

pula

Hallo,

super, VIELEN Dank für die Anregung. Leider werde ich wegen einer Dienstreise aber erst am Wochenende dazukommen.
Ist der Vorschlag für die alte oder die neue Version des Moduls - oder spielt das keine Rolle?

Beste Grüße,
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

Darkman

Hallo Boris,

danke das Du Dich dem Thema so intensiv annimmst. Gefuehlt ist das wirklich eine "Neverending Story" ;)

Ich hab selbst das Problem inzwischen so einen Kalender zu benoetigen (als Ex-Frankfurter mit "Full Service" fast schon schrecklich... ;)) und daher in letzter Zeit einiges an Code gesehen und drumrum gebaut.
Am Ende bin ich mit "relativ" wenig ausgekommen (nicht mal myutils), allerdings funktioniert das bei mir auch noch nicht zuverlaessig.

Generelles Setup:
- Definierter extra Kalender nur mit Muellterminen
- kein automatisches Update des Kalenders (wg. notify)
- ein CALVIEW der mir nur die aktuellsten 5 Termine gibt
- ReadingsGroup fuer die Anzeige des Abfallkalender + PushMSG
- AT Job zum Triggern

Der AT triggert einmal am Tag das Kalenderupdate zu einer fixen Zeit, denn im Abfallkalender aendert sich eigentlich nix ;)
Ein Notify auf lastUpdate um das CALVIEW update zu triggern. Ein Notify auf t von CALVIEW um meine ReadingsGroup zu aktualisieren. Und in dem Notify erstelle ich aus der Info fuer "tomorrow" Termine meine PushMSG am Vorabend (reines Anzeigen geht gelegendlich unter, wenn man aber um 18 Uhr noch ne Nachricht aufs Handy bekommt, ist die Chance hoch das man sich um den Muell direkt kuemmert. Funktioniert leider nur halbwegs gut da irgendwas das CALVIEW auch zu anderen Gelegenheiten triggert, obwohl der Interval >24h ist.

Wenn ich Dein neues Modul richig verstanden habe, koennte ich jetzt damit um 18 uhr jeden Tag einfach nur noch pruefen ob ein oder mehrere Eintraege "alarmed" sind und dementsprechend reagieren? Das waere dann naemlich ein Gewinn um mindestens 100% ;)

Schonmal vielen Dank fuer Deine Arbeit, das Modul, egal ob alt oder neu, ist eine grosse Hilfe. :)

Viele Gruesse,
Sven

Dr. Boris Neubert

Hallo Sven,

bei einem statischen Kalender brauchst Du nie ein update.

Du kannst Dir ein notify auf das Event alarm setzen. Voraussetzung, dass der Termin einen Alarm hat und der Alarm zu einer Dir genehmen Zeit liegt. Mit dem onCreateEvent-Plugin kannst Du Dir aber den Alarm hinbasteln, wie Du magst. Nach Setzen des Attributs brauchst Du ein set ... reload.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dr. Boris Neubert

Zitat von: pula am 27 Januar 2016, 12:14:44
Ist der Vorschlag für die alte oder die neue Version des Moduls - oder spielt das keine Rolle?

für die neue Version - bei der alten könnte es auch gehen, aber da habe ich die erzeugten FHEM-Events schon vergessen  ;)
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Darkman

Hallo Boris,
Zitat von: Dr. Boris Neubert am 28 Januar 2016, 19:58:54
bei einem statischen Kalender brauchst Du nie ein update.

Du kannst Dir ein notify auf das Event alarm setzen. Voraussetzung, dass der Termin einen Alarm hat und der Alarm zu einer Dir genehmen Zeit liegt. Mit dem onCreateEvent-Plugin kannst Du Dir aber den Alarm hinbasteln, wie Du magst. Nach Setzen des Attributs brauchst Du ein set ... reload.
Ah-ha? Also statisch, ja, theoretisch schon, ich hab ihn als Google Kalender mit URL eingebunden und hab das Gefuehl gehabt, wenn er nicht reloaded wird (also kein set KALENDER update) und das Interval "gross" gesetzt ist, das dann kein upcoming oder so generiert wird, oder alte Termine verschwinden. Allerdings hab ich das nicht weiter verfolgt, dh. wenn ich da falsch liege, sorry.
Im Zweifel ist ab und an refreshen ja okay, koennte ja doch mal was geaendert worden sein (jetzt beim Abfall eher weniger, aber z.B. bei Geburtstagen oder so, manche Kalender sind ja eher fuer "langfristige" Planungen.
Der Kaleder hat uebrigens leider kein sinnvollen Alarm, wird zwar angeboten, geht aber irgendwo auf dem Weg verloren. Ist mir persoenlich aber auch erstmal "egal", denn fuer die FHEM Sachen sind bisher immer individuelle/andere Alarme besser als z.B. auf dem Handy (Handy bekommt man eher mit als z.B. ein Display an der Wand). Daher hab ich den Umweg ueber CALVIEW genommen, damit bekomme ich ein Reading fuer "morgen" und setze entsprechend einen Alarm am Vorabend. Nachdem ich das jetzt rein ins notify vom Kalenderupdate uebernommen hab, wirds auch nicht mehr falsch getriggert.

Das onCreateEvent gibt es aber erst mit der neuen Version des Calendar oder?

Und nochmal danke fuer Deine Zeit :)

Gruss,
Sven

Dr. Boris Neubert

Zitat von: Darkman am 29 Januar 2016, 10:45:07
Das onCreateEvent gibt es aber erst mit der neuen Version des Calendar oder?

ja, offiziell ab nächste Woche Sonntag per Update.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!