LoxBerry: CalDAV-4-Lox Plugin verfügbar.
Einklappen
X
-
PS: Das Google Caching habe ich eingebaut, weil der Google-Kalender-Download bei mir fast 1 MB ist, und das ständig runterzuladen ist zwar möglich, aber nicht sinnvoll. Ich verwende Sven's Programm noch nicht mal vom Miniserver aus! :-) Sondern triggere es am gleichen Raspberry für die Sprachausgabe. Es ist sehr sehr praktisch! Hat noch nie nicht funktioniert :-)
Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine -
der Wert "now" gibt mir ja eine zahl zurück.
ist das die Zeit Sekunden?
Bei uns wird nämlich der Gelbe Sack schon sehr früh (so gegen 5:00) abgeholt.
Würde jetzt gerne zwar das Datum lassen, aber die abholbenachrichtigung am Vorabend haben.
Jetzt wollte mit der Abholzeit laut Kalenderplugin spielen.
DankeKommentar
-
Hallo,
hier nochmals mein Anliegen, im richtigen Thread
Nach dem Setup des Caldav Plug-Ins wird mein Google - Kalender gut im Loxberry und mit dem Link im Browser angezeigt. Ich bekomme jedoch nichts in die Loxone-Config.
Hier mein Aufruf bzw. mein Virtueller Input in der Config:
Virtueller HTTP Eingang:
http://10.0.0.XX/plugins/caldav4lox/...=300&events=6-
Virtueller HTTP Eingang Befehl:
6-": {\i"Start"\i: \v
Variable für die Visu dann <v.u>
ich suche nach 6-. Und wenn ich den Link des Plugins im Browser eingebe wird folgendes angezeigt, in der Config bekomme ich aber nichts rein:
{ "6-": { "Start": 253756800, "End": 253843200, "Summary": "Hausmüll 6-wöchentlich", "Description": "Abholtermin für Hausmüll 6-wöchentlich. \n\nDieser Eintrag wurd", "fwDay": 14, "wkDay": 1 }, "now": 252603934 }
Danke für die Hilfe!
Kommentar
-
Nun, da die Daten richtig zurückkommen, worin ich zuerst eher das Problem sah, ist da wohl eher ein Problem in der Config oder in der Firmware des MiniServer.
Frage doch auch mal einfach "now": \v ab. Da müsste ja die aktuelle LoxberryZeit im MiniServerformat stehen. Kommt da auch nichts, gibt es wohl ein Problem in der Kommunikation des MiniServer mit dem Loxberry. Ich weiß ja nicht, was Du da in der Abfrage für einen Abfragezyklus und Timeout stehen hast. Teilweise musst Du einmal komplett die Zeit des Abfragezyklus abwarten. Timeout ist auch wichtig. Im Gegensatz zum Wunderground, wo die Daten nur vom Loxberry kommen, werden bei Dir die Daten immer direkt vom Googleserver geholt. Das dauert oft etwas länger. Ein zu kleiner Timeout liefert somit keine Daten. Du könntest aber auch noch cache=<größer Abfragezyklus/60> mit in der Abfrage angeben, dann wird die GoogleAbfrage zwischengespeichert und so sollten die Daten dann mindestens bei der 2. Abfrage zügig kommen. cache, wie es in der Doku schon steht, ist ein Minutenwert der Abfragezyklus ein Sekundenwert. Wenn Du also eine Abfragezyklus von 3600s angegeben hast, sollte cache mindestens 61 sein. Allerdings würde dann nur jede 2. Abfrage korrekt kommen. Ich gehe mal davon aus, dass es ein Timeoutproblem ist. Timeout in der Config erhöhen und schon wird es klappen.Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)Kommentar
-
ich weiß zwar nicht warum, aber nun funktioniert es perfekt. Die Daten kommen schon rein und werden auch schnell aktualisiert. Vielleicht hat es wirklich was mit dem einmal durchladen zu tun. So lange habe ich nie geschaut.
Danke für die Hilfe!
Nun noch eine Frage:
Ich bekomme das Abholdatum als Sekunden rein und kann sie in der Visu mit <v.u> darstellen. Im Statusbaustein funktioniert das aber nicht. Gibt es eine Möglichkeit wie ich das Datum als dd.mm.yyyy und Variable im Statusbaustein verwenden kann?
Kommentar
-
Hallo svethi !
Ich habe heute dein Programm aus dem Prä-LoxBerry-Zeitalter auf das Plugin gehoben. Ich mache den Abruf ja aus einem anderen PHP-Script für die Sprachausgabe von Kalendereinträgen. Außer die URL zu ändern alles problemfrei!
Hier für andere Nutzer mal die zwei Einsatzbeispiele mit zwei Google Kalendern, die nichts mit Mülltonnen zu tun haben :-)
1. Suche im Kalender nach *dienst*
Code:http://loxberry/plugins/caldav4lox/caldav.php?calURL=https%3A//www.google.com/calendar/ical/meine%40email.at/private-242424244566465325236252535552525235411/basic.ics&fwdays=2&delay=720&cache=600&events=dien st
2. Ausgabe des nächsten Termins im Hauskalender:
Code:http://loxberry/plugins/caldav4lox/caldav.php?calURL=https%3A//www.google.com/calendar/ical/domain.at_345356466252535%40group.calendar.google. com/private-3535562352352663463625235325/basic.ics&fwdays=7&events=
lg, Christian
PS: Die ID's sind nicht echt :-)Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraineKommentar
-
Hallo,
erst einmal vielen Dank für die tolle Funktion der Kalenderanbindung! Hat soweit alles gut geklappt.
Ich habe vor, über die Kalenderanbidung die Beheizung von mehreren Räumen in einem Vereinshaus zu steuern. Dazu trage ich neben dem Eventnamen noch die Räume in die Terminbeschreibung ein. Beispiel: Krabbelgruppe (Foyer, Küche, WC-Damen). Bei Veranstaltungen, bei denen sehr viele Räume erforderlich sind, bin ich darauf gestoßen, dass nur eine begrenzte Anzahl an Zeichen ausgelesen werden. Das Problem liegt darin, dass in der ics Datei nach 75 Zeichen eine neue Zeile begonnen wird. Alle Einträge ab der 2. Zeile werden nicht zurückgegeben. Ist das Problem bekannt? Hat jemand eine Idee wie man das lösen kann?
Und eine weitere Frage: Die Suche wird ja "case sensitiv" durchgeführt. Ist es möglich dies auf insensitiv zu ändern? Die Erweiterung des Regex bei der Suche um (?i) hat leider nichts gebracht.
Vielen Dank!Kommentar
-
Die Terminbeschreibung sollte komplett ausgegeben werden. Ich bin der Meinung die extra eingefügt zu haben. Ist alles schon länger her. Da alle Informationen eigentlich zeilenweise ausgegeben werden, ist eine Verarbeitung mehrzeiliger Informationen so ohne weiteres nicht möglich. Der Titel (Summary) ist halt für die Aufnahmen sämtlicher Informationen nicht geeignet.
Wie stelle ich mir denn eigentlich Deine Vorgehensweise vor? Legst Du jetzt für jeden Raum in Loxone eine Abfrage an in der Du den Raum suchst? Wenn es dumm läuft und jeder Raum gebraucht wird, bekommst für jeden Raum den identischen Kalendereinträge geliefert? Ist ja auch nicht gerade effektiv.
Oder wie machst Du das? Müsste man sich mal überlegen, wie das am besten umzusetzen geht. Das "i" wirkt irgendwie nicht, warum, kann ich auch noch nicht sagen. Tragen denn mehrere die Termine ein? Nun, die Schreibweise muss letztlich ja auch passen.Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)Kommentar
-
Vielen Dank für die schnelle Reaktion!
Richtig, in Loxone habe ich für jeden Raum eine separate Abfrage. Also ich lasse z.B. nach "Foyer" suchen und bekomme den nächsten Termin, bei dem dieser Raum benötigt wird. Dazu verarbeite ich entsprechend deinem Beispiel (auch dafür vielen Dank!) die Startzeit (Foyer": {\i"Start"\i: \v) und die Endzeit (Foyer": {\i"End"\i: \v) und aktiviere darüber einen Betriebsmodus (mit der entsprechenden Vorlaufzeit). Wenn mehrere Räume für einen Termin benötigt werden, dann wird der gleiche Kalendereintrag halt mehrfach gefunden, aber das soll er ja auch. Ich benötige ja nur die Zeiten in denen die jeweiligen Räume benötigt werden. Um den Titel (Summary) nicht zu überfrachten habe ich ein klein wenig getrixt. Dazu habe ich in der caldav.php Summary gegen Location ersetzt. Somit brauche ich die benötigten Räume nicht mehr in den Titel schreiben sondern kann das in das Feld für die Ortsangabe. Das klappt soweit prima. Problem ist nur die begrenzte Zeichenanzahl.
Die Termine werden von verschiedenen Personen eingetragen. Du hast absolut recht, die Schreibweise muss stimmen, sonst bleibt es kalt :-). Aber das wird wahrscheinlich jeder schnell lernen. Um das Fehlerpotential ein klein wenig einzuschränken, wollte ich zumindest die Groß- und Kleinschreibung ignorieren lassen.
Hast du einen alternativen / eleganteren Vorschlag für die Umsetzung meines Anliegens? Eigentlich finde die oben beschriebene Umsetzung ganz gut :-). So hatte ich mir das im Vorfeld gewünscht. Das einzige Problem bleibt die begrenzte Zeichenanzahl... Ich bin für Verbesserungsvorschläge offen und sehr dankbar!Kommentar
-
Was mich "stört" ist halt der nutzlose Traffic, der halt erzeugt wird, wenn bei einem Termin mehrere Räume genutzt werden. Eine brauchbare andere Lösung fällt mir jetzt auch nicht ein. Was heißt, fällt mir nicht ein, mir fällt schon was ein, doch das ist für Menschen schlechter umzusetzen ;-). Man kann über eine einzige Zahl genau die Zimmer darstellen, die es betrifft. Jeder Raum hätte seine Raumnummer und jeder Raum würde durch ein Bit in der Zahl repräsentiert.
Für einen Computer ist das Alltagsarbeit, für Menschen ohne Hilfstools eher aussichtslos. Und deshalb stehen wir noch auf dem gleichen Fleck ;-). Bist Du denn sicher, dass der Zeilenumbruch definitiv eingebaut wird? Oder kommt der doch vom Eingeben. Einfach mal weiterschreiben, nicht am Ende der Zeile auf Enter drücken. Multilinesuche würde die komplette Suchengine verändern und müsste daher komplett umgebaut werden. Könntest Du nicht die Räume tatsächlich nummerieren? Das würde die Raumliste auf alle Fälle verkürzen. Oder zumindest Kürzel vergeben, dann wäre auch die Gefahr der falschen Schreibweise minimiert.Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)Kommentar
Kommentar