Giter Club home page Giter Club logo

Comments (29)

Haileid avatar Haileid commented on May 27, 2024

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.

Apollon77 avatar Apollon77 commented on May 27, 2024

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.

Baenker avatar Baenker commented on May 27, 2024

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.

Apollon77 avatar Apollon77 commented on May 27, 2024

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.

Haileid avatar Haileid commented on May 27, 2024

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.

Baenker avatar Baenker commented on May 27, 2024

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.

Haileid avatar Haileid commented on May 27, 2024

Muss ich das dafür "veröffentlichen"? Ohen Veröffentlichung wollte dieser Weg bei mir nicht klappen.

from iobroker.ical.

Apollon77 avatar Apollon77 commented on May 27, 2024

Dein lokaler Code muss nach github gepusht sein. Kann sein das in deinem Tool veröffentlichen heißt ;-)

from iobroker.ical.

Haileid avatar Haileid commented on May 27, 2024

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.

Apollon77 avatar Apollon77 commented on May 27, 2024

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.

Haileid avatar Haileid commented on May 27, 2024

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.

Chaot1 avatar Chaot1 commented on May 27, 2024

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.

Parodontitis avatar Parodontitis commented on May 27, 2024

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.

Baenker avatar Baenker commented on May 27, 2024

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.

twonky4 avatar twonky4 commented on May 27, 2024

Ich habe das Feature eingebaut. Könntet ihr die aktuelle Version 1.7.0 hier aus dem repo testen?

from iobroker.ical.

Baenker avatar Baenker commented on May 27, 2024

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.

twonky4 avatar twonky4 commented on May 27, 2024

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.

Baenker avatar Baenker commented on May 27, 2024

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.

Baenker avatar Baenker commented on May 27, 2024

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.

Baenker avatar Baenker commented on May 27, 2024

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.

twonky4 avatar twonky4 commented on May 27, 2024

Habe einen fix gemacht. Kannst du ncohmal gucken?

from iobroker.ical.

Baenker avatar Baenker commented on May 27, 2024

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.

Baenker avatar Baenker commented on May 27, 2024

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.

ArneDoe avatar ArneDoe commented on May 27, 2024

Ein solches Verhalten (die events.0.* sind zuerst da, fehlen dann aber im Objektbaum) habe ich auch.

  1. 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.

  2. Funktionen die per on ({id: idRegnervorne, change: "ne"},... 1x bei Terminbeginn und 1x bei Terminende aufgerufen wurden, werden jetzt jede Stunde 2x aufgerufen. Einmal mit obj.state.val=undefined und unmittelbar davor/danach mit obj.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.

ArneDoe avatar ArneDoe commented on May 27, 2024

Ahhh, wait!
Zu (2): Ich muss vermutlich ical.0.events.0.now.[IOB]regner-vorne nehmen?

from iobroker.ical.

Apollon77 avatar Apollon77 commented on May 27, 2024

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.

Baenker avatar Baenker commented on May 27, 2024

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.

twonky4 avatar twonky4 commented on May 27, 2024

Bitte nochmal mit der aktuellen Version testen.

from iobroker.ical.

Baenker avatar Baenker commented on May 27, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.