CalendarTask-Problem

android-micha

android-micha

Erfahrenes Mitglied
40
Hallo,
ich habe den folgenden Task definiert:

Code:
Aufgabe: Kollegen-Geb Benachrichtigungen
    
    A1: Get time in seconds [
         Konfiguration: Today
         Timeout (Sekunden): 10
         Structure Output (JSON, etc): An ]
    
    A2: Variable Setzen [
         Name: %startdate
         Zu: %cttime + 1
         Mathematisch: An
         Max Rounding Digits: 3
         Structure Output (JSON, etc): An ]
    
    A3: Get time in seconds [
         Konfiguration: Tomorrow
         Timeout (Sekunden): 10
         Structure Output (JSON, etc): An ]
    
    A4: Variable Setzen [
         Name: %enddate
         Zu: %cttime - 1
         Mathematisch: An
         Max Rounding Digits: 3
         Structure Output (JSON, etc): An ]
    
    A5: Get events [
         Konfiguration: W-Geburtstage from %startdate to %enddate
         Timeout (Sekunden): 30
         Structure Output (JSON, etc): An ]
    
    A6: Variable Setzen [
         Name: %counter
         Zu: 1
         Mathematisch: An
         Max Rounding Digits: 3
         Structure Output (JSON, etc): An ]
    
    A7: Stopp [ ]
        If  [ %ctevids(#) = 0 ]
    
    A8: Variable Setzen [
         Name: %starttime
         Zu: %ctstarts(%counter)
         Max Rounding Digits: 3
         Structure Output (JSON, etc): An ]
    
    A9: Variable Umrechnen [
         Name: %starttime
         Funktion: Sekunden zu Datum-Zeit (Mittel)
         Modus: Default ]
    
    A10: Benachrichtigung [
          Titel: Geb.: %cttitles(%counter)
          Icon: mw_social_cake
          Nummer: 0
          Priorität: 3
          LED Colour: Rot
          LED Rate: 0 Aktionen:(1) ]
    
    A11: Variable Addiere [
          Name: %counter
          Wert: 1
          Obergrenze: 0 ]
    
    A12: Goto Aktion [
          Typ: Aktion Nummer
          Nummer: 8 ]
        If  [ %counter < %ctevids(#) | %counter = %ctevids(#) ]

Der Task soll mich daran erinnern, wenn ein Kollege Geburtstag hat. Jetzt ist es aber so, dass, sobald das der Fall ist, der Task mit einer Fehlermeldung endet. Normalerweise bekomme ich eine Fehler-Benachrichtigung, jetzt im Testfall nur in Tasker selbst:

Code:
 17.52.13/Variables doreplresult: |%enddate| -> |1676156399|
17.52.13/ActionArgBundle Get events: com.balda.calendartask.extra.END: %enddate -> 1676156399
17.52.13/Variables doreplresult: |%startdate| -> |1676070001|
17.52.13/ActionArgBundle Get events: com.balda.calendartask.extra.START: %startdate -> 1676070001
17.52.13/E FIRE PLUGIN: Get events / com.twofortyfouram.locale.intent.action.FIRE_SETTING: 8 bundle keys
17.52.13/E Get events: plugin comp: com.balda.calendartask/com.balda.calendartask.receivers.FireReceiver
17.52.13/E add wait type Plugin1 time 30
17.52.13/E add wait type Plugin1 done
17.52.13/E add wait task
17.52.44/E Fehler: null

Der Fehler tritt in der Aktion Nr. 5 auf. Wenn ich dort in Tasker drauf tappe, dann auf den Stift für "Konfiguration" gehe und dann ohne jede Änderung den Haken bestätige, dann kann ich den Task fehlerfrei durchlaufen lassen. Nur am nächsten Tag, wenn wieder ein Geburtstag anliegt, passiert wieder dasselbe, ich erhalte wieder den Fehler.
Wie kann ich das ändern? Früher ging dieser Task problemlos. Ich glaube, das Problem habe ich, seit ich ein neues Handy habe. Muss ich evtl. CalendarTask besondere Rechte geben?

Während ich das schreibe stelle ich fest, dass für CalendarTask nicht eingestellt war, dass es dauerhaft im Hintergrund läuft. Es durfte vom System beendet werden. Ich werde das jetzt also mal testen, ob es besser läuft, wenn das automatische Beenden deaktiviert ist. Aber wenn das so ist: Warum geht A5 nicht, A1 benutzt doch auch schon CalendarTask-Funktionalität? Dann sollte doch A1 schon den Fehler bringen...? Und wenn ich die App CalendarTask ganz abschieße (beenden erzwingen), dann geht jetzt der Task dennoch problemlos.

Micha
 
android-micha schrieb:
Warum geht A5 nicht, A1 benutzt doch auch schon CalendarTask-Funktionalität
In A1 wird doch nur die Zeit geholt? Was Tasker ohne Plugin kann.
 
  • Danke
Reaktionen: android-micha
Mag sein, aber ich scheine eine CalendarTask-Funktion genutzt zu haben, jedenfalls wird mir dies Symbol auch bei A1 angezeigt. tasker.jpg
Micha
 
Zuletzt bearbeitet:
Bei meinem Geburtstagerinnere (fast gleicher Aufbau) habe ich bei Aktion Get event eine Notiz mal gemacht:
Achtung: alle Kalender müssen im Gerät-Eigenen-Kalender verbunden sein.
Bei mir ist das also der Samsung-Kalender.

Eventuelle hilft dir das.
 
  • Danke
Reaktionen: android-micha
Was heißt hier "verbunden sein" genau? Es ist ein Google-Kalender, ich habe ein Xiaomi-Handy. Die Tatsache, dass es ein Google-Kalender ist, lässt sich auch nicht ändern, er wird auch von vielen anderen benutzt.
Und vor allem: Das Ganze hatte schon mal funktioniert! Fast dasselbe Szenario, nur das Vorgängerhandy, Redmi Note 9 statt 10pro.

Und: Im Grunde klappt das ja auch. Ich muss es nur immer neu anstupsen, einmal auf Konfigurieren gehen, mit dem Haken bestätigen, ohne etwas geändert zu haben. Dann klappt es alles wunderbar bis zum nächsten Geburtstagstermin. Früher, also auf dem Vorgängerhandy, hat es ohne diesen Anstupser von alleine gut geklappt.

Gruß, Micha
 
Screenshot_20230215_061236_Calendar.jpg

So sieht das in meinem Samsung-Kalender aus, der auch der Standartkalender ist.

Hmm Tasker und alle Plugins sind aus der Android-Akku-spareinstellen rausgommen?
 
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von: hagex - Grund: Bildvorschau standardisiert. Gruß von hagex
  • Danke
Reaktionen: android-micha
Hm, einen Mi-Kalender habe ich gar nicht. Eine Installation aus dem Playstore schlägt fehl. Ich probiere es weiter.

Tasker und das Kalender-Plugin waren von den Akku-Spareinstellungen ausgenommen, ja. Nun sind es auch alle übrigen Tasker Erweiterungen, die aber eigentlich nichts damit zu tun haben sollten.

Micha
 
Ich verstehe das Problem nicht.
Tasker greift doch normalerweise auf den Kalenderspeicher zu. Welche App zur Anzeige im UI verwendet wird, ist doch völlig egal?

Ich hätte ohnehin einen anderen Ansatz gewählt:
1. Parse Format DateTime
Input: Now (Current Date and Time)
Output Offset Type: Wahlweise "Days" oder "Hours"
Output Offset: x Hours / Days

2. Test App
Type: Calendar Title
Data: %dt_seconds (Output aus 1.)
Store Result in: %cal_entry

3. If %cal_entry() ~R "Geburtstag"
Mache was immer Du willst...

Wenn es vorkommen kann, dass mehr als ein Geburtstag am Tag anliegt, müsste man ab Step 3 noch eine For-Loop einbauen.
 
  • Danke
Reaktionen: android-micha
Könnte mir da jemand daraus einen vollständigen Task fabrizieren? Ich möchte, dass die Titel aller (ganztägigen) Termine eines bestimmten Kalenders als einzelne Benachrichtigungen angezeigt werden. Und ja, natürlich kann es sein, dass mehrere Leute an einem Tag Geburtstag haben. Da der Kalender bisher nur ganztägige Termine hat, muss darauf nicht unbedingt Rücksicht genommen werden, es können gerne alle Termine angezeigt werden.
Alleine kriege ich das offenbar nicht hin.

Den obigen Code verstehe ich nicht. einige Kommentare dazu wären darum zusätzlich nett, damit ich weiß, was ich da tue.

Danke
Micha
 
Warum nicht ganz einfach, aber nur perfekt bei einem einzelnen ganztägigen Termin:

Profil -> Status -> Kalendereintrag
(dort dann deinen Google Geburtstagskalender auswählen.)

Als Task eine Benachrichtigung mit dem Titel der Variable %CALTITLE (diese enthält den Titel des aktuellen Kalendereintrags. Bei 2 Einträgen kommt leider nur einer in die Variable.

ich persönlich würde %CALTITLE nicht verwenden sondern nur "Es hat heute jemand Geburtstag" anzeigen lassen. In der Benachrichtigungen dann einen Knopf zum schnellen öffnen der Kalender App. Würde mir reichen.
 
  • Danke
Reaktionen: android-micha
Danke! Aber das reicht mir nicht. Ein Klick auf die Benachrichtigung öffnet das Mailprogramm, formuliert eine Mail vor. Ich kann die dann noch individualisieren und dann abschicken. Darum brauche ich auch individuelle Benachrichtigungen, auch mit dem Titel. Sonst könnte ich ja auch den Googlekalender direkt benachrichtigen lassen, ganz ohne Tasker.

Da fällt mir überhaupt ein: Warum mache ich das nicht jetzt schon? Ich könnte doch Google benachrichtigen lassen und dann diese Benachrichtigungen anklicken. Oder geht das nicht, dass Tasker auf angewählte Benachrichtigen anderer Programme reagiert? Ich weiß nicht mehr, was ich mir damals gedacht hatte...

Micha
 
  • Danke
Reaktionen: rtwl
mit einer Benachrichtigung vom Google Kalender kannst du diesen Titel auslesen verarbeiten. Ist vermutlich der einfachere weg.
Beiträge automatisch zusammengeführt:

du könntest dann mit tasker eben deinen Titel abholen. Dann die Google Benachrichtigung löschen lassen und deine eigene Tasker Benachrichtigung anzeigen lassen.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: android-micha
Liebe Android- und Tasker-Freunde,

seit einiger Zeit funktioniert mein ursprünglicher Task wieder einwandfrei. Vermutlich war es doch das Problem, dass Calendartask vom System beendet worden war. Das hatte ich dann ja unterbunden.
Ich werde darum in dieser Richtung keine Alternativen mehr probieren.

Vielen Dank für eure Unterstützung!
Micha
 

Ähnliche Themen

P
Antworten
0
Aufrufe
335
Patrick87
P
T
Antworten
2
Aufrufe
515
the-unknown
T
B
Antworten
17
Aufrufe
2.855
Bisoprolol2.5
B
Zurück
Oben Unten