FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Kalendermodule => Thema gestartet von: cornelius fillmore am 31 Oktober 2023, 07:00:47

Titel: [Gelöst] subject/title im event eines importierten Kalenders umbennen
Beitrag von: cornelius fillmore am 31 Oktober 2023, 07:00:47
Guten Morgen Forum,
ich habe folgende Herausforderung:
Aktuell steuere ich über einen Google Kalender, die Ressource (Heizung) mit Start und Endtermin.
Die Daten gebe ich manuell in den Kalender ein.
Der Name (subject/title) des Kalendereintrages steuert das an und auschalten des Aktors
Wie in der FHEM reference unter Calendar /Switch actors on and off beschrieben
Alles funktioniert soweit

Dieser Google Kalender soll nun auf einen anderen, externen Kalender umgestellt werden.
Diesen bekomme ich via aboniertem ical ins FHEM eingelesen
Leider ist es jetzt so, dass dieser externe Kalender nun so benannt ist wie der Aktor und das eigentliche subject/title frei wählbar ist.

Meine Überlegung um mit dem neuen externe Kalender zu arbeiten ist, dass ich das event wie gewohnt auslese.
Wenn dort ein Eintrag ist überschreibe ich das vorhandene subject/title mit dem Namen des Aktors wobei ich die Zeiten bestehen lasse.
Ist dies vorstellbar?
Kann mich dabei jemand Unterstützen?

Vielen Dank für euren input
Titel: Aw: subject/title im event eines importierten Kalenders umbennen
Beitrag von: Dr. Boris Neubert am 31 Oktober 2023, 07:57:57
Hallo,

ich habe das Problem nicht verstanden. Wenn Du nur einen Aktor hast und alle Termine im Kalender die An-Zeiten des Aktors beschreiben, dann brauchst Du doch die Prüfung auf den Namen des Aktors im Titel des Termins gar nicht. Kannst Du die Aufgabenstellung bitte mit einem kleinen Beispiel unterfüttern?

Viele Grüße
Boris
Titel: Aw: subject/title im event eines importierten Kalenders umbennen
Beitrag von: cornelius fillmore am 31 Oktober 2023, 09:08:16
Anbei ein Beispiel
Grün ist mein bisheriger manuell geführter Google Kalender
Der Titel des events ist gleich dem Name des Aktors (hier: Saal) bei FHEM
Ein Termin löst mit event start das einschalten und mit event off das ausschalten des actors (Saal) im FHEM aus

Rot ist ein importierten Kalender
Dieser hat jetzt halt leider den Namen des Raumes wo etwas stattfindet (hier: Saal)
Was dort stattfidet gibt dieser mit, dies interessiert mich und den Aktor aber nicht
Der rote Kalender ist ein "Abfallprodukt" einer Termimbuchung wo unterschiedliche Nutzer eine Ressource (hier den Raum Saal) mitbuchen.

Meine Idee war halt dann einfach:
Schaue in den roten Kalender,
wenn dort etwas drinn steht
tausche den titel gegen den Namen des Aktors aus
behalte Anfangs und Endzeit bei

Verständlich?
Titel: Aw: subject/title im event eines importierten Kalenders umbennen
Beitrag von: Dr. Boris Neubert am 31 Oktober 2023, 09:13:17
Gut, das macht es mir verständlich.

Benutze für den Kalender namens Saal die Funktion, Termine mit onCreateEvent zu verändern. Du findest ein Beispiel in der CommandRef zu Calender unter Plug-Ins.

In etwa so könnte es gehen:

attr SaalCalendar onCreateEvent { $e->{summary}= "Saal";; }
Titel: Aw: subject/title im event eines importierten Kalenders umbennen
Beitrag von: betateilchen am 31 Oktober 2023, 09:15:07
Aber wenn es doch immer um "Saal" geht, braucht man das doch gar nicht. Dann kann man das doch einfach in dem notify fix vorgeben, das man zur Auswertung des events verwendet.
Titel: Aw: subject/title im event eines importierten Kalenders umbennen
Beitrag von: cornelius fillmore am 31 Oktober 2023, 09:28:23
Zitat von: betateilchen am 31 Oktober 2023, 09:15:07Aber wenn es doch immer um "Saal" geht, braucht man das doch gar nicht. Dann kann man das doch einfach in dem notify fix vorgeben, das man zur Auswertung des events verwendet.
OK
wie mache ich dies?
Derzeit frage ich mit
MyCalendar:end:.* {my $reading="$EVTPART0"; my $uid= "$EVTPART1"; my $actor= fhem("get MyCalendar summary $uid"); if(defined $actor) { fhem("set $actor off") }}das Ganze ab
Titel: Aw: subject/title im event eines importierten Kalenders umbennen
Beitrag von: Dr. Boris Neubert am 31 Oktober 2023, 09:39:34
MyCalendar:end:.* { fhem("set NameDesAktors off") }
Titel: Aw: subject/title im event eines importierten Kalenders umbennen
Beitrag von: betateilchen am 31 Oktober 2023, 09:56:21
Zitat von: cornelius fillmore am 31 Oktober 2023, 09:08:16Rot ist ein importierten Kalender
Dieser hat jetzt halt leider den Namen des Raumes wo etwas stattfindet (hier: Saal)

Falls man das gleiche notify für mehrere Calendar-devices verwenden möchte, kann man auch das reading calname mit einbinden:

MyCalendar:end:.* { my $actor = ReadingsVal($name,"calname",$name); fhem("set $actor off") }
Titel: Aw: subject/title im event eines importierten Kalenders umbennen
Beitrag von: cornelius fillmore am 31 Oktober 2023, 10:44:56
Vielen Dank
Ich teste es mal und melde mich
Titel: Aw: subject/title im event eines importierten Kalenders umbennen
Beitrag von: cornelius fillmore am 31 Oktober 2023, 10:56:26
Zitat von: betateilchen am 31 Oktober 2023, 09:56:21
Zitat von: cornelius fillmore am 31 Oktober 2023, 09:08:16Rot ist ein importierten Kalender
Dieser hat jetzt halt leider den Namen des Raumes wo etwas stattfindet (hier: Saal)

Falls man das gleiche notify für mehrere Calendar-devices verwenden möchte, kann man auch das reading calname mit einbinden:

MyCalendar:end:.* { my $actor = ReadingsVal($name,"calname",$name); fhem("set $actor off") }
Irgendwas geht hier nicht kannst du mir noch mal die ganze Zeile für den Start nennen:
Hier der Istzustand
ZitatMyCalendar:start:.* {my $reading="$EVTPART0"; my $uid= "$EVTPART1"; my $actor= fhem("get MyCalendar summary $uid"); if(defined $actor) { fhem("set $actor on") }}
Titel: Aw: subject/title im event eines importierten Kalenders umbennen
Beitrag von: Dr. Boris Neubert am 31 Oktober 2023, 11:13:59
Zitat von: cornelius fillmore am 31 Oktober 2023, 10:56:26Irgendwas geht hier nicht

Wie macht sich das bemerkbar? Log-Auszug dazu bitte posten. Dann können wir helfen.
Titel: Aw: subject/title im event eines importierten Kalenders umbennen
Beitrag von: betateilchen am 31 Oktober 2023, 11:52:07
Zitat von: cornelius fillmore am 31 Oktober 2023, 10:56:26kannst du mir noch mal die ganze Zeile für den Start nennen:

Naja, genau das gleiche wie für das Ende. Nur "start" anstatt "end" und "set .. on" anstatt "set .. off"

Sinnloses copy & paste macht selten Sinn. Du solltest verstehen, was Du da tust, und warum etwas funktioniert (oder auch warum nicht).
Titel: Aw: subject/title im event eines importierten Kalenders umbennen
Beitrag von: betateilchen am 31 Oktober 2023, 12:01:28
Zitat von: cornelius fillmore am 31 Oktober 2023, 10:56:26Irgendwas geht hier nicht

Nimm mal $NAME anstatt $name

(Offtopic - weil es nix mit Calendar zu tun hat, mich aber trotzdem gerade ärgert:
warum kann man die evalSpecials nicht vereinheitlichen?
Mal muss man $name verwenden, an anderer Stelle $NAME und manchmal auch $SELF.
Je nachdem, an welcher Stelle man auf den Namen zugreifen möchte.)
Titel: Aw: [Gelöst] subject/title im event eines importierten Kalenders umbennen
Beitrag von: cornelius fillmore am 01 November 2023, 20:56:52
Danke noch mal an euch beide zur Problemlösung