Hallo zusammen,
ich habe es nun hinbekommen das diverse Events wie Mülltonnen und Co. mit dem Calendar Modul aus dem Google Kalender abgerufen und die entsprechenden Dummys aktualisiert werden.
Nun möchte ich das wenn ein Dummy auf ja steht ich eine Mitteilung aufs Handy per Pushover bekomme.
Ich weiss das es etliche Beispiele zum Thema Pushover gibt doch habe ich nichts gefunden mit dem ich als Anfänger etwas anfangen kann.
Ich habe aktuell die Dummys: BlaueTonne, GelberSack, GrueneTonne, GraueTonne und Urlaub. Bei den ersten vier wäre es super wenn ich bei einem ja im Dummy eine Nachricht am Tag des Events um 7:00 bekomme.
Würde mir jemand zeigen wie ich das realisieren kann?
Danke für eure Mühe
Mirco
Wie sehen denn deine Dummys aus?
Hallo dieda,
Z.B Blauetonne_dummy oder Gelbersack_dummy oder was meinst Du?
Die 99_myutils sieht so aus:
sub
Kalenderstart ($)
{
my ($Ereignis) = @_;
my @Ereignisarray = split(/.*:\s/,$Ereignis);
my $Ereignisteil1 = $Ereignisarray[1];
my @uids=split(/;/,$Ereignisteil1);
foreach my $uid (@uids) {
my $Kalendertext = fhem("get Kalender_Mirco summary $uid");
if ($Kalendertext =~ /Urlaub/) {
fhem("set Urlaub_dummy ja");
};
if ($Kalendertext =~ /Kids/) {
fhem("set Kids_dummy ja");
};
if ($Kalendertext =~ /Grauetonne/) {
fhem("set Graueonne_dummy ja");
};
if ($Kalendertext =~ /Grünetonne/) {
fhem("set Gruenetonne_dummy ja");
};
if ($Kalendertext =~ /Grauetonne/) {
fhem("set Grauetonne_dummy ja");
};
if ($Kalendertext =~ /Gelber Sack/) {
fhem("set Gelbersack_dummy ja");
};
};
}
sub Kalenderende ($) {
my ($Ereignis) = @_;
my @Ereignisarray = split(/.*:\s/,$Ereignis);
my $Ereignisteil1 = $Ereignisarray[1];
my @uids=split(/;/,$Ereignisteil1);
foreach my $uid (@uids) {
my $Kalendertext = fhem("get Kalender_Mirco summary $uid");
if ($Kalendertext =~ /Urlaub/) {
fhem("set Urlaub_dummy nein");
};
if ($Kalendertext =~ /Kids/) {
fhem("set Kids_dummy nein");
};
if ($Kalendertext =~ /Grauetonne/) {
fhem("set Graueonne_dummy nein");
};
if ($Kalendertext =~ /Grünetonne/) {
fhem("set Gruenetonne_dummy nein");
};
if ($Kalendertext =~ /Grauetonne/) {
fhem("set Grauetonne_dummy nein");
};
if ($Kalendertext =~ /Gelber Sack/) {
fhem("set Gelbersack_dummy nein");
};
};
}
@coolice
Hi, wie machst du den Aufruf in der fhem.cfg um nach den Kalenderereignissen zu filtern? Ich probiere seit heute ebenfalls mit dem Google Kalender und hab mir zum testen mal deine 99_myUtils kopiert und an meine Ereignisse angepasst.
Mir ist nur nicht ganz klar wie der Aufruf aus der Konfig. aussehen muss um die dummys zu setzen.
VG
Frank
Guten Morgen Frank,
sieht bei mir so aus
define Urlaub_dummy dummy
attr Urlaub_dummy alias Urlaub
attr Urlaub_dummy fm_type state
attr Urlaub_dummy room Kalender
define Kids_dummy dummy
attr Kids_dummy alias Kids
attr Kids_dummy fm_type state
attr Kids_dummy room Kalender
define Gruenetonne_dummy dummy
attr Gruenetonne_dummy room Kalender
define Blauetonne_dummy dummy
attr Blauetonne_dummy alias Blaue Tonne
attr Blauetonne_dummy room Kalender
define Gelbersack_dummy dummy
attr Gelbersack_dummy alias Gelber Sack
attr Gelbersack_dummy room Kalender
define Grauetonne_dummy dummy
attr Grauetonne_dummy room Kalender
define Kalender_Mirco_Start notify Kalender_Mirco:modeStart.*googlecom.* {\
Kalenderstart("$EVENT");;\
}
attr Kalender_Mirco_Start room Kalender
define Kalender_Mirco_Ende notify Kalender_Mirco:modeEnd.*googlecom.* {\
Kalenderende("$EVENT");;\
}
attr Kalender_Mirco_Ende room Kalender
Danke dir, so ähnlich hatte ich das auch. Suche z.Zt. warum nicht getriggert wird. Du triggerst auf "modeStart" leider scheint das bei mir nicht zu funktionieren. Termine zur Abfuhr trage ich ganztägig ein, somit wird um 00:00 Uhr "modeAlarm" ausgelöst aber auch wenn ich notify auf "modeAlarm" oder "modeAlarmOrStart" ändere, wird der dummy nicht gesetzt. Werde das ganze die nächsten Tage mal versuchen in den Griff zu bekommen.
Meine cfg.:
Zitat#
define Urlaub_dummy dummy
attr Urlaub_dummy alias Urlaub
attr Urlaub_dummy fm_type state
attr Urlaub_dummy room Kalender
define Kids_dummy dummy
attr Kids_dummy alias Kids
attr Kids_dummy fm_type state
attr Kids_dummy room Kalender
define Gruenetonne_dummy dummy
attr Gruenetonne_dummy alias Grüne Tonne
attr Gruenetonne_dummy room Kalender
define Blauetonne_dummy dummy
attr Blauetonne_dummy alias Blaue Tonne
attr Blauetonne_dummy room Kalender
define Gelbersack_dummy dummy
attr Gelbersack_dummy alias Gelber Sack
attr Gelbersack_dummy room Kalender
define Abfall_dummy dummy
attr Abfall_dummy alias Abfall
attr Abfall_dummy room Kalender
#
#
define Kalender_Frank_Start notify Kalender_Frank:modeStart.*googlecom.* {\
Kalenderstart("$EVENT");;\
}
attr Kalender_Frank_Start room Kalender
define Kalender_Frank_Ende notify Kalender_Frank:modeEnd.*googlecom.* {\
Kalenderende("$EVENT");;\
}
Und die 99_myicalUtils
package main;
use strict;
use warnings;
use POSIX;
sub
myicalUtils_Initialize($$)
{
my ($hash) = @_;
}
sub
Kalenderstart ($)
{
my ($Ereignis) = @_;
my @Ereignisarray = split(/.*:\s/,$Ereignis);
my $Ereignisteil1 = $Ereignisarray[1];
my @uids=split(/;/,$Ereignisteil1);
foreach my $uid (@uids) {
my $Kalendertext = fhem("get Kalender_Frank summary $uid");
if ($Kalendertext =~ /Urlaub/) {
fhem("set Urlaub_dummy ja");
};
if ($Kalendertext =~ /Kids/) {
fhem("set Kids_dummy ja");
};
if ($Kalendertext =~ /Abfall/) {
fhem("set Abfall_dummy ja");
};
if ($Kalendertext =~ /Grünetonne/) {
fhem("set Gruenetonne_dummy ja");
};
if ($Kalendertext =~ /Blauetonne/) {
fhem("set Blauetonne_dummy ja");
};
if ($Kalendertext =~ /Gelbersack/) {
fhem("set Gelbersack_dummy ja");
};
};
}
sub Kalenderende ($) {
my ($Ereignis) = @_;
my @Ereignisarray = split(/.*:\s/,$Ereignis);
my $Ereignisteil1 = $Ereignisarray[1];
my @uids=split(/;/,$Ereignisteil1);
foreach my $uid (@uids) {
my $Kalendertext = fhem("get Kalender_Frank summary $uid");
if ($Kalendertext =~ /Urlaub/) {
fhem("set Urlaub_dummy nein");
};
if ($Kalendertext =~ /Kids/) {
fhem("set Kids_dummy nein");
};
if ($Kalendertext =~ /Abfall/) {
fhem("set Abfall_dummy nein");
};
if ($Kalendertext =~ /Grünetonne/) {
fhem("set Gruenetonne_dummy nein");
};
if ($Kalendertext =~ /Blauetonne/) {
fhem("set Blauetonne_dummy nein");
};
if ($Kalendertext =~ /Gelbersack/) {
fhem("set Gelbersack_dummy nein");
};
};
}
1;
P.S. Scheint jetzt zu funktionieren, hatte um testen mal einen Termin auf 11:00Uhr gesetzt.
VG
Frank
Hat einer zu meiner Frage eine Antwort?
Hallo,
was hast du den schon versucht mit Pushover?
Post mal etwas Code und die Fehlermeldung dazu bitte.
Das würe das ganze etwas vereinfachen ;)
Grüße
Das ist es ja. Ich hab keine Ahnung wie es aussehen muss. Ich würde gerne eine Nachricht auf Handy mittels Pushover bekommen wenn ich die Tonnen an die Straße stellen muss.
Gesendet von meinem iPhone mit Tapatalk
Coolice, ich schreibe dir morgen einen Wikiartikel fuer den pushover Dienst, ok?
Hallo,
naja, ist ja nicht so das es keine Beiträge zum Thenma "Pushover" gibt.
Eine dieser Zeilen schnappen und bei dir einbauen und an deine Daten anpassen - ist das schon zu schwer?
Ich weiß ja nicht ob dann ein Wikiartikel helfen wird.
Grüße
Naja es ist aber immer eine ziemliche Sucherei und wenn man das alles kombiniert in einem Artikel schreibt wird es fuer Anfaenger einfacher.
Hier mal der erste Wurf (sorry habe gerade keine Zeit mehr, meine Frau nervt :-))
http://www.fhemwiki.de/wiki/Pushover
Zitat von: coolice am 21 März 2014, 21:35:09
Das ist es ja. Ich hab keine Ahnung wie es aussehen muss. Ich würde gerne eine Nachricht auf Handy mittels Pushover bekommen wenn ich die Tonnen an die Straße stellen muss.
Gesendet von meinem iPhone mit Tapatalk
So Coolice teste mal ob du es mit dem Wiki Eintrag hinbekommst.
http://www.fhemwiki.de/wiki/Pushover#Erinnerungsfunktion_mit_Hilfe_des_Kalendar_Moduls
Hallo,
ZitatMit dem "Edit files" Knopf die fhem.cfg editieren
Könntest du das abändern auf ein einfügen des Codes über die Befehlszeile?
Die fhem.cfg direkt editieren wird mit ziemlicher Sicherheit zu weiteren Beiträgen im Anfängerbereich führen.
Danke.
Wenn du Hilfe brauchst kann ich dir die Beiträge dazu mal raussuchen.
Grüße
Edith: So einfach geht das nicht 8)
Vielen Dank natürlich auch für deine Bemühungen das Wiki zu füllen.
Mache ich gerne Puschel, allerdings wusste ich gerade nicht wie man einen At Job via Kommandozeile in fhem hinbekommt :-/ Sorry bin auch erst seit 3 Wochen dabei und lerne jeden Tag spannende Sachen!
define CheckEventToday at *20:15:00 {my $Eventname;;my $EventHeute;;$EventHeute=fhem("get events today");;print $EventHeute;;if ($EventHeute ne "none"){ $Eventname="Ereignis: $EventHeute";;fhem("set pushmsg msg 'fhem' 'Erinnerung an: $Eventname' '' 0 ''");;}}
So der Copy&Paste Einzeiler ist nun drin!
Erst einmal danke für die Anleitung.
Nu kommen aber auch schon meine Fragen:
Ich würde gerne den Google Kalender dafür benutzen. Viele Städte bieten ihren Müllkalender zum Download an. Das Dingen also fix in den Google-Kalender importiert, den privaten Link rausgesucht (beim "https" das "s" entfernt) und den Kalender definiert.
Nu stehen bei mir die Abfalltermine so drin: Abfalltermin: Bioabfall, Abfalltermin: Restabfall, Abfalltermin: Gelber Sack etc... Sogar Problemmüll ;-)
Natürlich habe ich noch andere Termine im Kalender... Dummys habe ich definiert. Die brauche ich ja eigentlich nur, wenn ich in FHEM eine Anzeige haben möchte...
Wie weiter? Ich will ja den bevorstehenden Event erst einmal ausgegeben bekommen, damit ich weiter basteln kann...
Meine Event-Liste bekomme ich ja mit diesem Befehl angezeigt
get MyCalendar full all
Hier mit filtert er mir alle Biotonnentermine
get MyCalendar find .*Abfalltermin.*
So, dann muss ich ein Notify mit if und oder erstellen, was dann abends zuvor prüft ... und da hängt es, da ich nicht weiß, wie ich den Eventnamen auslesen muss bzw. wie ich daraus eine Nachricht (eMail oder Pushover) bastel.
Poste mal deine komplette Calendar Definition.
Ansonsten hier noch ein weiterer Wiki Artikel zum Thema: http://www.fhemwiki.de/wiki/Wochenende,_Feiertage_und_Schulferien
ZitatAnsonsten hier noch ein weiterer Wiki Artikel zum Thema: http://www.fhemwiki.de/wiki/Wochenende,_Feiertage_und_Schulferien
Das hier bringt mir nichts, da es ja den Wert an einen Dummy übergibt. Das brauche ich ja nicht. Ich will ja den Termintitel an die Email oder Pushmail weitergeben.
define Kalender_Raspberry Calendar ical url http://www.google.com/calendar/ical/xxxxxx/basic.ics 14400
Doch du kannst den Dummywert doch via Push oder Email senden!
Mal als Beispiel:
set pushmsg msg 'fhem' 'Erinnerung an: $Value(DummyWert)' 0 "
Guten Morgen,
eine Pushmitteilung kommt zwar aber wie kann ich jetzt die Events einbinden? Gibt es eine Möglichkeit nur einige Events, in diesem Fall nur was mit Müllentsorgung zu tun hat zu senden?
So was wie die Kinder kommen dieses WE oder Urlaub bräuchte ich nicht als Pushmitteilung.
Mirco
Schau mal in der Commandref nach unter: http://fhem.de/commandref_DE.html#Calendar
Hab ich schon. Nichts was bei dem Problem helfen würde.
Naja einfachste Möglichkeit ist wahrscheinlich einfach für jeden Erinnerungstyp einen eigenen Kalender zu definieren. Dann solltest du mit der Abfrage "get events today" eigentlich zum Ziel kommen. Alternativ sollte der find Befehl gefolgt von einer Regex (also zum Beispiel: .*Schwarze Tonne.*) dich zum Ziel bringen.
Danke, werde mich da mal durchwursteln. Habe gerade meine Sprachbefehle für die Thermometer eingebaut.