Autor Thema: Hilfe bei Calender  (Gelesen 341 mal)

Offline Gasmast3r

  • Full Member
  • ***
  • Beiträge: 386
Hilfe bei Calender
« am: 11 Juli 2018, 23:53:02 »
Hallo Leute Bitte nicht schlagen, aber ich bin wohl zu doof mein Calender auf den aktuellen stand zu bringen.

wie viele habe ich den log Eintrag
get Kalender_Sven text is deprecated and will be removed soon. Use get Kalender_Sven events instead.

ich habe die im WIKI beschriebene
Google-Kalender zur Steuerung von Dummies

nun weis ich das ich
get Kalender summary uid=$uid 1
ändern muss, aber da ist mein problem ich steig nicht durch wie

habe erst gedacht
events format:custom="$S" filter:uid=="'.$uid.'" limit:count=1',1
aber das scheint es nicht zu sein.

hoffe hier kann sich einer erbarmen und mir das mal erklären aber so das ein nicht studierter das auch versteht.

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 9642
    • Otto's Technik Blog
Antw:Hilfe bei Calender
« Antwort #1 am: 12 Juli 2018, 20:19:21 »
Hi,

löst die Anleitung im Wiki nicht fast das gleiche Problem wie die aktuelle Anleitung von betateilchen?
https://forum.fhem.de/index.php/topic,87895.0.html#new

Die funktioniert bei mir.

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline Gasmast3r

  • Full Member
  • ***
  • Beiträge: 386
Antw:Hilfe bei Calender
« Antwort #2 am: 12 Juli 2018, 20:36:21 »
Habe gedacht könnte das passend ändern aber falsch gedacht.

Hatte den alten get Befehl in FHEM eingegeben um zu schauen was der mir ausgiebt, um dann ein vergleichbaren zu stricken aber das geht ja leider nicht oder das übersteigt meine Fähigkeiten.

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 9642
    • Otto's Technik Blog
Antw:Hilfe bei Calender
« Antwort #3 am: 12 Juli 2018, 21:01:12 »
Hi,

der Originalaufruf ist so
fhem("get Kalender_Christian summary uid=$uid 1");der in den verlinkten Artikel
fhem('get TestKalender events format:custom="$S" filter:uid=="'.$uid.'" limit:count=1',1);
Du musst schon etwas mehr Infos liefern nicht nur Bruchstücke, Wie genau hast Du die Befehle umgesetzt? Was für Fehler kommen?

Es wird wohl ein Problem der " und ' sein. Du kannst nicht einfach Teile in der Mitte per copy & paste tauschen.

Mal ein Beispiel wie der Aufruf im Endeffekt im Klartext aussehen muss.
Alt
get TestKalender summary uid=1ak67ipt9jaev9cg0hp6m40k2tgooglecom 1
Neu
get TestKalender events format:custom="$S" filter:uid=="1ak67ipt9jaev9cg0hp6m40k2tgooglecom" limit:count=1

Zu beachten die uid im alten Format war ein String, die uid im neuen Format muss im Syntax des Strings übergeben werden, es müssen also "" um Text herum :)
Siehe Doku -> https://commandref.fhem.de/#Calendar

Gruß Otto
« Letzte Änderung: 12 Juli 2018, 21:47:55 von Otto123 »
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline Gasmast3r

  • Full Member
  • ***
  • Beiträge: 386
Antw:Hilfe bei Calender
« Antwort #4 am: 12 Juli 2018, 23:06:10 »
Hy also das ist der eintrag in my_utility

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_Sven summary uid=$uid 1");
if ($Kalendertext =~ /Urlaub/) {
fhem("set Urlaub_dummy ja");
}
if ($Kalendertext =~ /Früh/) {
fhem("set Frueh_dummy ja");
}
if ($Kalendertext =~ /Spät/) {
fhem("set Spaet_dummy ja");
}
if ($Kalendertext =~ /Nacht/) {
fhem("set Nacht_dummy ja");
}
}
}

und so dachte ich würde es gehen
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_Sven events format:custom="$S" filter:uid=="'.$uid.'" limit:count=1',1");
if ($Kalendertext =~ /Urlaub/) {
fhem("set Urlaub_dummy ja");
}
if ($Kalendertext =~ /Früh/) {
fhem("set Frueh_dummy ja");
}
if ($Kalendertext =~ /Spät/) {
fhem("set Spaet_dummy ja");
}
if ($Kalendertext =~ /Nacht/) {
fhem("set Nacht_dummy ja");
}
}
}

Gelesen habe ich das nur verstehen tut ich das irgendwie nicht, aber so wie du das sagt, muss ich für jeden genutzten Eintrag die uid hinterlegen.

beispiel
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_Sven events format:custom="$S" filter:uid=="'.$uid.'" limit:count=1',1");
if ($Kalendertext =~ /28bghn962cojcub27m66oaave7googlecom/) {
fhem("set Urlaub_dummy ja");
}
if ($Kalendertext =~ /5i6bc9f73alud1efut6g0rq5mlgooglecom/) {
fhem("set Frueh_dummy ja");
}
if ($Kalendertext =~ /473hq6j0t6rtoocn5srk3djec8googlecom/) {
fhem("set Spaet_dummy ja");
}
if ($Kalendertext =~ /60g75pqadojrfpalhmicik1ja0googlecom/) {
fhem("set Nacht_dummy ja");
}
}
}

oder bin ich wieder auf dem falschen weg

oder könnte es auch das sein?
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_Sven events format:custom="$S" filter:uid=="'.$uid.'" limit:count=1',1");
if ($filter:field(summary)=~"Urlaub"/) {
fhem("set Urlaub_dummy ja");
}
if ($filter:field(summary)=~"Früh"/) {
fhem("set Frueh_dummy ja");
}
if ($filter:field(summary)=~"Späht"/) {
fhem("set Spaet_dummy ja");
}
if ($filter:field(summary)=~"Nacht"/) {
fhem("set Nacht_dummy ja");
}
}
}
« Letzte Änderung: 12 Juli 2018, 23:15:33 von Gasmast3r »

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 9642
    • Otto's Technik Blog
Antw:Hilfe bei Calender
« Antwort #5 am: 13 Juli 2018, 13:43:49 »
Hi,

du hast meinen Einwand nicht richtig verstanden: :o
fhem("get Kalender_Christian summary uid=$uid 1");
fhem('get TestKalender events format:custom="$S" filter:uid=="'.$uid.'" limit:count=1',1);

Damit kommt die Abfolge der von dir kopierten Innereien, welche zahlreiche und exat so gesetzten, wichtigen " und ' enthalten völlig durcheinander.

Eventuell brauchst Du einfach nur die ersten (" und letzten 1',1") gegen (' ... 1',1) austauschen. Aber probiert habe ich das jetzt noch nicht!

Edit:
Da ich es auch nicht wusste, eine kurze Erklärung zu der ,1 -  fhem('Befehl',1) - am Ende des Aufrufes. Die Perl Funktion fhem() akzeptiert zwei Aufrufparameter -> ($param, $silent)
- der erste bis zum Komma ist der FHEM Befehl
- der zweite ist die Steuerung ob etwas ins Log geschrieben werden kann oder nicht. 1 (wahr) bedeutet silent -> schreibe keinen Fehler ins Log.

Man kann es gut austesten, indem man einen Fehlerhaften Befehl verwendet und mit und ohne ,1 probiert.

Ich hoffe ich habe es richtig interpretiert  :D

Der Befehl muss als String übergeben werden, also entweder in ' ' oder in " ", der silent Parameter ist ein logischer Ausdruck!
Deswegen fhem('Befehl') oder fhem('Befehl',1) aber nicht fhem('Befehl,1') !

Gruß Otto
« Letzte Änderung: 13 Juli 2018, 15:12:07 von Otto123 »
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline Gasmast3r

  • Full Member
  • ***
  • Beiträge: 386
Antw:Hilfe bei Calender
« Antwort #6 am: 13 Juli 2018, 18:29:43 »
Ok werde es die tage mal testen habe erstmal alles gelöscht

Offline Gasmast3r

  • Full Member
  • ***
  • Beiträge: 386
Antw:Hilfe bei Calender
« Antwort #7 am: Heute um 11:49:49 »
Hy so habe mich nochmal ranprobiert aber es klappt nicht.

Problem ist halt auch das mir das passende wissen fehlt um den Skript anzupassen.

ich werde mich mal weiter umschauen und hoffen das es doch irgendwie möglich ist, oder ich habe das glück das der WIKI Ersteller sein Eintrag mal anpasst.

ich bedanke mich aber dennoch schon mal für die bisherige und zukünftige Hilfe.

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 9642
    • Otto's Technik Blog
Antw:Hilfe bei Calender
« Antwort #8 am: Heute um 17:22:15 »
Hi,

"es klappt nicht" ist eine ziemlich bescheuerte und dürftige Beschreibung  ;), wie soll ich da helfen?  ::)
Wo kommt welcher Fehler?
Hast Du mal die get Zeile alleine in der Kommandozeile probiert?
Hast Du  mal eine Log Zeile in den Code eingebaut?
Wie hast Du Deinen Code verändert?

Hier habe ich mal etwas zum debugging beschrieben, vielleicht hilft das.
https://wiki.fhem.de/wiki/Notify#Mein_notify_geht_nicht_-_wie_kann_ich_mir_selbst_helfen:_Debugging

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline Gasmast3r

  • Full Member
  • ***
  • Beiträge: 386
Antw:Hilfe bei Calender
« Antwort #9 am: Heute um 17:33:12 »
Hy fehler könnte ich keine feststellen notify klappte meiner meining nach auch nur war bei dem dummys nix.
Da ich derzeit das auch nur zum laufen haben wollte(ohne derzeitigem nutzen) war ich da zu gange.
Ich werde die tage aber weiter testen
Den code gebe ich gleich mal ein bin mir nicht mehr sicher was nach eingabe war.

das
get Kalender_Sven events format:custom="$S" filter:uid=="'.$uid.'" limit:count=1'
oder
get Kalender_Sven events format:custom="$S" filter:uid=="'.$uid.'" limit:count=1',1
ergiebt das
Kalender_Sven: Parameter parse error: opening quote ' without matching closing quote

ich denke mal nur der befehl ist es nicht
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_Sven events uid=$uid 1");
if ($Kalendertext =~ /Urlaub/) {
fhem("set Urlaub_dummy ja");
}
if ($Kalendertext =~ /Früh/) {
fhem("set Fr_dummy ja");
}
if ($Kalendertext =~ /Spät/) {
fhem("set Sp_dummy ja");
}
if ($Kalendertext =~ /Nacht/) {
fhem("set Nacht_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_Sven events uid=$uid 1");
if ($Kalendertext =~ /Urlaub/) {
fhem("set Urlaub_dummy nein");
}
if ($Kalendertext =~ /Früh/) {
fhem("set Fr_dummy nein");
}
if ($Kalendertext =~ /Spät/) {
fhem("set Sp_dummy nein");
}
if ($Kalendertext =~ /Nacht/) {
fhem("set Nacht_dummy nein");
}
}
}


das ist meine vermutung

da ich auch nicht weis was er mit
get Kalender_Sven summary uid=$uid 1

ausgegeben bekommt ist es für mich ja noch schwerer irgendeine richtung zu finden
« Letzte Änderung: Heute um 17:49:53 von Gasmast3r »

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 9642
    • Otto's Technik Blog
Antw:Hilfe bei Calender
« Antwort #10 am: Heute um 18:03:01 »
Diese Zeile my $Kalendertext = fhem("get Kalender_Sven events uid=$uid 1");würde ich mal durch diese ersetzen
my $Kalendertext = fhem('get Kalender_Sven events format:custom="$S" filter:uid=="'.$uid.'" limit:count=1');
Wenn Du die Zeile in der Kommandozeile testen willst müsstest Du $uid durch einen richtigen Wert ersetzen. So in der Art
get Kalender_Sven events format:custom="$S" filter:uid=="12345" limit:count=1)
12345 ist nicht die richtige ID!!!

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline Gasmast3r

  • Full Member
  • ***
  • Beiträge: 386
Antw:Hilfe bei Calender
« Antwort #11 am: Heute um 18:15:23 »
hy wenn ich

get Kalender_Sven events format:custom="$S" filter:uid=="473hq6j0t6rtoocn5srk3djec8googlecom" limit:count=1)

bekomme ich Spät angezeigt was auch passen müsste

ich teste das grade mit eine Eintrag in meinen Kalender (habe extra geprüft ob FHEM den auch drin hat) ob es geht

das ist der bis jetzt aufgetretene Fehler

2018.07.15 18:17:00 1: PERL WARNING: Use of uninitialized value $Kalendertext in pattern match (m//) at ./FHEM/99_myUtils.pm line 43.
2018.07.15 18:17:00 1: PERL WARNING: Use of uninitialized value $Kalendertext in pattern match (m//) at ./FHEM/99_myUtils.pm line 46.
2018.07.15 18:17:00 1: PERL WARNING: Use of uninitialized value $Kalendertext in pattern match (m//) at ./FHEM/99_myUtils.pm line 49.
2018.07.15 18:17:00 1: PERL WARNING: Use of uninitialized value $Kalendertext in pattern match (m//) at ./FHEM/99_myUtils.pm line 52.
2018.07.15 18:17:10 1: PERL WARNING: Subroutine Kalenderende redefined at ./FHEM/99_myUtils.pm line 61.
2018.07.15 18:20:00 1: PERL WARNING: Use of uninitialized value $Kalendertext in pattern match (m//) at ./FHEM/99_myUtils.pm line 55.


Notify reagiert Dummy wird nicht geschaltet


MyUtility

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_Sven events format:custom="$S" filter:uid=="'.$uid.'" limit:count=1');
if ($Kalendertext =~ /Urlaub/) {
fhem("set Urlaub_dummy ja");
}
if ($Kalendertext =~ /Früh/) {
fhem("set Fr_dummy ja");
}
if ($Kalendertext =~ /Spät/) {
fhem("set Sp_dummy ja");
}
if ($Kalendertext =~ /Nacht/) {
fhem("set Nacht_dummy ja");
}
if ($Kalendertext =~ /Frei/) {
fhem("set Frei_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_Sven events format:custom="$S" filter:uid=="'.$uid.'" limit:count=1');
if ($Kalendertext =~ /Urlaub/) {
fhem("set Urlaub_dummy nein");
}
if ($Kalendertext =~ /Früh/) {
fhem("set Fr_dummy nein");
}
if ($Kalendertext =~ /Spät/) {
fhem("set Sp_dummy nein");
}
if ($Kalendertext =~ /Nacht/) {
fhem("set Nacht_dummy nein");
}
if ($Kalendertext =~ /Frei/) {
fhem("set Frei_dummy nein");
}
}
}
« Letzte Änderung: Heute um 18:28:18 von Gasmast3r »

 

decade-submarginal