Comments (29)
Prima Idee! Ich habe direkt mal versucht in einem eigenen Fork das zu implementieren. Der Erfolg ist leider noch mäßig, da es auch mein erstes Versuch ist in einem Adapter rumzufummeln.
from iobroker.ical.
Ja das könnte tricky werden. Die richtige Stelle ist meiner meinung nach die "checkForEvents" Funktion. In Zeile 486 wird darauf geprüft das es jetzt gerade ist. Da müsste man analog auf "morgen" prüfen und andere Flags setzen ...
Interessanter aber auch die Frage ob die Idee vollständig ist.
Aktuell werden Events gesetzt wenn das Event JETZT GERADE (=Laufzeit des ical adapters) auch läuft. Es müssen ja nicht alles ganztages-Events sein.
Also kann es an sich auch ein "später am heutigen tag" noch sein. Will man das auch wissen? "am morgigen Tag" ist dann die zweite Option.
from iobroker.ical.
Ein Problem ist dort natürlich die div. Konfigurationsmöglichkeiten was ical aus dem Kalendereintrag macht. Anzeige als Datum/mit ohne Jahr. Datum in Textform usw.
Im Forum hatte ich z. B. ein Script gefunden (für z. B. Müll) dort war aber das Problemmdas er zwar zukünftig einen Tag vor Urlaubsbeginn die Bariable richtig gefüllt hat aber bereits am zweiten Urlaubstag nicht mehr. Eben weil bei ical richtigerweise nicht mehr Morgen Urlaub stand sondern entweder noch x Stunden Urlaub oder Heute Urlaub oder noch x Tage Urlaub. Es ist also insgesamt eher tricky.
Ich verwende es nur für ganztägige Termine aber evtl kann es auch Konstelationen geben wo es interessant ist zu wissen das man Morgen einen Termin von x Stunden dauer. Auch dort wäre es ja vorstellbar das irgendein Smarthome Gerät darauf reagiert. Wobei mir dort spontan keinm Szenario einfällt.
from iobroker.ical.
Naja, neben der HTML-Tabelle gibt es noch die JSOn Version. Die kannst Du echt durchgehen ... und der Adapter nimmt eh die reinen Daten. Für die Events ist die Formatierung ja ganz egal
from iobroker.ical.
Mal eine blöde Frage eines Anfängers hinsichtlich ioBroker + GitHub: Wie teste ich am besten Änderungen die ich in meinem Fork durchgeführt habe?
Ich habe die Funktion implementiert, wie ich glaube, dass es funktionieren müsste, weiß aber nicht wie ich den modifizierten Adapter vernünftig installieren kann
from iobroker.ical.
im iobroker gibt es einen Button „aus url installieren“. Dort nimmst Du deine url aus github...
Bin auch kein Profi aber so konnte ich einige Testversionen installieren und testen
from iobroker.ical.
Muss ich das dafür "veröffentlichen"? Ohen Veröffentlichung wollte dieser Weg bei mir nicht klappen.
from iobroker.ical.
Dein lokaler Code muss nach github gepusht sein. Kann sein das in deinem Tool veröffentlichen heißt ;-)
from iobroker.ical.
Den Code nur in den Fork zu pushen hatte bei mir nicht geklappt. Konnte zwar die Installation in ioBroker von meinem Fork durchführen, aber der Adapter tauchte nicht auf. Ich musste erst ein "pre" Release machen damit er auftaucht. Hab aber scheinbar immernoch einen Bug drin, weil die Funktion noch nicht will. Mal schauen wie ich das am geschicktesten debugge. Bei jeder kleinen Änderung einmal den Adapter neu zu installieren macht ja auch keinen Spaß.
from iobroker.ical.
Was heisst "pre release"? Du kannst nicht pre releasen auf npm :-))
Nach install vom adapter vom Github musst du ggf manuell eine instanz anlegen! Passiert nicht automatisch. Dazu das "+" in der Zeile unter "Adapter"
from iobroker.ical.
Danke für eure Tipps. Ich schaue mir das ganze nächste Woche nochmal an. Hoffentlich bekomme ich es es soweit ans laufen :-)
from iobroker.ical.
Ich würde mich dem Wunsch gerne anschließen.
Was mir so einfällt sind eigentlich ganztägige Ereignisse.
- Geburtstag
- Müllabfuhr
- Urlaub
Ich könnte das zwar über VIS im Kalender auch anzeigen, aber so Sachen wie beispielsweise die Müllabfuhr wäre perfekt wenn die über einen Datenpunkt ein Bild sichtbar schaltet. Das wäre etwas eleganter finde ich.
Das ist zwar bisher auch schon möglich, aber nach meiner Meinung für einen Laien doch recht schwierig zu erarbeiten. Wenn der Datenpunkt aus dem Adapter käme wäre das doch einfacher.
from iobroker.ical.
Die Mercedes Lösung wäre aus meiner Sicht:
Bei jedem Event ist eine Zahl zwischen 0 und X auswählbar. Daraus werden Event-Datenpunkte erzeugt:
Geburtstag 0
Gelber Sack 1
Biotonne 1
Urlaub 3
ical.0.events.0 - Events von heute
ical.0.events.1 - Events von morgen
ical.0.events.X - Events in X Tagen
Damit hätte man Geburtstage von heute, Müllabfuhr ein Tag um Voraus und Urlaub 3 Tage davor.
from iobroker.ical.
Die Lösung fände ich auch sehr nett. Auch wenn ich mir keinen Grund vorstellen kann warum ich einen Trigger brauche mit x Tagen vorlauf. Denn die Info habe ich ja schon im vis stehen.
from iobroker.ical.
Ich habe das Feature eingebaut. Könntet ihr die aktuelle Version 1.7.0 hier aus dem repo testen?
from iobroker.ical.
Ich habe die Version installiert. Folgendes hat sich geändert:
Alte Struktur: ical.0.events.Urlaub (beide)"/Urlaub (beide)/
Neue Struktur: ical.0.events.0.today.Urlaub (beide)"/Urlaub (beide)/
Neben today gibt es noch "later" und "now"
Ich habe Testweise einen Eintrag für Morgen angelegt. Im Log finde ich zwei Zeilen:
info | instance system.adapter.ical.0 terminated with code 0 (OK)
--> Die Info kommt immer
info | Set events.1.Urlaub (Beide) to true
--> aus der Info schließe ich das ich neben
ical.0.events.
ein ical.1.events. geben müßte? Da ist bei mir leider nichts.
Nach der Installation war im Log aber auch nur der Hinweis:
info | Event "ical.0.events.0.nowUrlaub (Beide)" created
info | Event "ical.0.events.0.today.Urlaub (Beide)" created
info | Event "ical.0.events.0.later.Urlaub (Beide)" created
Nachtrag: Die Info dasss die Struktur sich ändert sollte in der Doku rot erscheinen, damit die User dran denken ggf. Ihre Scripte anzupassen die auf eine Änderung reagieren,,,
from iobroker.ical.
Nein, ical.1.events.
wäre ja eine andere Adapter Instanz. Neben ical.0.events.0.*
gibt es nun ein ical.0.events.1.*
für morgen, das kommt aber auf die Konfiguration vom Parameter Tagesvorschau
an.
Was die Doku angeht sollte sie eigentlich nur den aktuellen Stand darstellen. In den Release Notes steht es drin und die werden auch im admin angezeigt.
from iobroker.ical.
Nachtrag: Nachdem ich zweimal im Instanzen Tab den "Neu laden" Button gedrückt habe ist alles gut.
Beim erstenmal klicken hatte ich im Log die gleichen ausgaben wie nach der Installation also Beispielhaft:
info | Event "ical.0.events.0.nowUrlaub (Beide)" created
info | Event "ical.0.events.0.today.Urlaub (Beide)" created
info | Event "ical.0.events.0.later.Urlaub (Beide)" created
Im Objekte Tab waren leider danach keine Einträge mehr nur noch der Punkt events.
Nach einen erneuten Klick auf "Neu laden" stand im Log auch wie bei Issue #82:
info | Event "ical.0.events.7.Urlaub (Beide)" created
info | Event "ical.0.events.6.Urlaub (Beide)" created
info | Event "ical.0.events.5.Urlaub (Beide)" created
info | Event "ical.0.events.4.Urlaub (Beide)" created
info | Event "ical.0.events.3.Urlaub (Beide)" created
info | Event "ical.0.events.2.Urlaub (Beide)" created
info | Event "ical.0.events.1.Urlaub (Beide)" created
Danach war unter Objekte nun alles sichtbar und bei meinen Testtermin stand unter
"ical.0.events.1.Urlaub (Beide)" auch ein true.....
Super! Vielen Dank. Die 2-7 sind ein nettes Addon...
from iobroker.ical.
Irgend etwas passt hier noch nicht. Gerade lief der Adapter zum ersten mal periodisch. Ich lasse den Adapter 5 mal am Tag meinen Kalender auslesen. Im log finde ich wieder Hinweise:
info | Event "ical.0.events.0.now.Urlaub (Beide)" created
info | Event "ical.0.events.0.today.Urlaub (Beide)" created
info | Event "ical.0.events.0.later.Urlaub (Beide)" created
Obwohl die Objekte ja nun eigentlich da sind. Im Objekte Adapter sind die events0 Einträge alle verschwunden.
Die Einträge event.1-7 sind noch alle da (im log gab es dort aber auch keine Hinweise auf created.
from iobroker.ical.
Letzter Nachtrag. Nachdem mit der ersten Ausführung die Einträge unter events.0.xxxx gelöscht werden wird mit der nächsten periodischen Ausführung die Einträge wieder erstellt. Bei der nächsten Ausführung dann wieder gelöscht und danach wieder erstellt. Die Einträge unter events.1, events.2 usw werden nicht angefasst. Im Log erscheint bei jeder Ausführung Event "ical.0.events.0.now.Urlaub (Beide)" created.
Ich hoffe das es so verständlich ist
from iobroker.ical.
Habe einen fix gemacht. Kannst du ncohmal gucken?
from iobroker.ical.
Das scheint es nicht besser zu machen aber anders.
Vor der Installation und auch nach der Installation gab es im Objekte Reiter keine Einträge für events.0.
Das log blieb auch leer bis auf die Erfolgsmeldung "Instance system.adapter.ical.0 terminated with code 0 (OK)"
Die anderen Einträge events1. usw waren vorhanden. Ich habe danach mal die kompletten ical Einträge gelöscht incl. den Ordner ical selber. Nach Neustart vom Adapter wurde der Ordner ical wieder angelegt und auch die Einträge für events.1 und folgende. Die Einträge unter events.0 sind immer noch verschollen.
Obwohl im Log dort steht
ical.0 | 2018-11-22 12:40:33.186 | info | Event "ical.0.events.0.now.Urlaub (Beide)" created
Im Log stand auch das die Einträge für events.1 usw angelegt werden (was ja auch passiert ist).
Noch etwas: Vorher hatte ich unter ical noch einen Ordner "data" oder so ähnlich (Name habe ich mir leider nicht gemerkt. Der wurde auch nicht neu angelegt...
from iobroker.ical.
Nachtrag: Habe jetzt mal den kompletten Adapter deinstalliert und neu installiert. Er hat alle Einträge unter Adapter korrekt angelegt.
Danach habe ich mal neue Begriffe eingetragen. Diese wurden auch überall korrekt angelegt. Leider sind nun die Einträge die ich bei der Neuinstallation direkt eingegeben habe unter events.0.* (later,now,today) wieder verschwunden. Unter events.1-7 sind sie noch vorhanden.
Unter events.0 sind jetzt nur die nachträglich angelegten Begriffe vorhanden.
from iobroker.ical.
Ein solches Verhalten (die events.0.* sind zuerst da, fehlen dann aber im Objektbaum) habe ich auch.
-
ABER: Wenn ich die Objekte per Skript anspreche, erhalte ich keine Fehlermeldung sondern kann sie auslesen. Mein Beispiel, wie von @twonky4 vorgeschlagen:
ical.0.events.0.today.[IOB]urlaub
funktioniert. -
Funktionen die per
on ({id: idRegnervorne, change: "ne"},...
1x bei Terminbeginn und 1x bei Terminende aufgerufen wurden, werden jetzt jede Stunde 2x aufgerufen. Einmal mitobj.state.val=undefined
und unmittelbar davor/danach mitobj.state.val=<bool>
.
Das ist so für mich nicht mehr brauchbar, da die Funktion nicht erkennen kann, wann es der "echte" Kalendertermin und wann es der stündliche Beat ist.
from iobroker.ical.
Ahhh, wait!
Zu (2): Ich muss vermutlich ical.0.events.0.
now.[IOB]regner-vorne
nehmen?
from iobroker.ical.
Welche js-Controller Version?
Das liegt ggf an den eckigen Klammern!! Die sind in Object ids (ebenso wie ein paar andere Zeichen) nicht erlaubt ab Controller 1.5. auch wenn das vllt nicht der Grund ist das das Problem aktuell Auftritt wird es beim nächsten Controller problematisch werden.
Der Adapter sollte solche Zeichen rausfiltern.
from iobroker.ical.
Habe die neue Version getestet. Die Objekte bleiben nun anscheinend erhalten und wurden auch korrekt angelegt. Das Objekt unter Data "Counttomorrow" wird bei mir auch richtig befüllt im Test (ganztägiger Eintrage im Google Kalender).
Auch das Log sah fast gut aus:
Set events.1.Urlaub (xxx) to true
Set events.3.Urlaub (xxx) to true
Nur unter den Objekten stehen die Einträge weiter auf false. Ich vermute das Leerzeichen ist hier evtl das Problem?
Erzeugt wurden die Einträge ohne Leerzeichen:
info | Event "ical.0.events.3.Urlaub(xxx)" created
info | Event "ical.0.events.2.Urlaub(xxx)" created
info | Event "ical.0.events.1.Urlaub(xxx)" created
from iobroker.ical.
Bitte nochmal mit der aktuellen Version testen.
from iobroker.ical.
Mein Test war positiv. Derzeit passt alles. Ich werde die nächsten Tage noch etwas testen. Dieser Issue hier kann aber gescchlossen werden. Falls ich noch einen Fehler finde würde ich einfach ein neues Issue aufmachen...
Vielen Dank.
from iobroker.ical.
Related Issues (20)
- Appointments are only displayed in UTC HOT 1
- Google Kalender
- Warnung "admin.0 - ical has an invalid jsonConfig HOT 6
- iCloud Kalender HOT 5
- Kalenderdaten als einzelne DP HOT 5
- Falsche Uhrzeit im DP bzw. wann wird aktualisiert...? HOT 3
- RangeError: Invalid time zone specified HOT 1
- Stundenweiße Google Termine in der Vergangenheit fehlen HOT 3
- Termine fehlen - ab version 1.13.5 HOT 10
- get state error: Connection is closed HOT 5
- Kalender-Server gibt 403 zurück HOT 4
- Warning invalid jsonConfig HOT 6
- Serientermine werden nicht eingelesen HOT 9
- I would like the adapter to detect very short events to not clutter my calendar UI with multi-hour long events.
- Update stable version in repo from 1.13.3 to 1.14.0 HOT 1
- Authorization Failed HOT 1
- Update stable version in repo from 1.13.3 to 1.14.2 HOT 1
- Update stable version in repo from 1.13.3 to 1.14.3 HOT 2
- Error Cannot write file /UPLOAD_FILES_HERE.txt: ical.0 is not an object of type "meta" HOT 9
- Invalid attribute "subscribe" at io-package.json HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from iobroker.ical.