Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - iCal-Plugin: UID mit auslesen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    - √ - iCal-Plugin: UID mit auslesen?

    Ich möchte für meine Logik-Engine die UID mit auslesen. In meinem Fall ist es ein google-Kalender und die UID brauche ich für eine eindeutige Zuordnung, ob ich dieses Event schon berücksichtigt habe oder nicht.

    Ein Zugriff über event[] schlägt leider mit u.a. Fehlermeldung fehl. Ich habe einfach event['UID'] eingefügt - und auch in der __init__.py hab ich unter PROPERTIES die UID mit eingefügt. Immer derselbe Fehler.

    Kann ich da irgendwie ran?

    Eckdaten:
    • RPI-Image 2013-11-16.img
    • aktuelles iCal-Plugin vom develop


    google-ICS
    Code:
    BEGIN:VEVENT
    DTSTART;VALUE=DATE:20150105
    DTEND;VALUE=DATE:20150106
    DTSTAMP:20141222T110727Z
    [COLOR=Red]UID:d12ade38c6cd5ea73d5fd75de2a7dd27[/COLOR]
    CREATED:20140101T090000Z
    DESCRIPTION:Restmülltonne (wöchentlich, 80 / 120 l) nicht vergessen!
    LAST-MODIFIED:20140101T090000Z
    LOCATION:zuhause
    SEQUENCE:0
    STATUS:CONFIRMED
    SUMMARY:Restmülltonne (wöchentlich, 80 / 120 l)
    TRANSP:TRANSPARENT
    END:VEVENT
    smarthome.log
    Code:
    2014-12-22 14:04:40,023 ERROR    abfall       Logic: abfall, File: /usr/smarthome/logics/google-abfallkalender.py, Line: 43, Method: <module>, Exception: 'UID' -- scheduler.py:_task:334
    Traceback (most recent call last):
      File "/usr/smarthome/lib/scheduler.py", line 327, in _task
        exec(obj.bytecode)
      File "/usr/smarthome/logics/google-abfallkalender.py", line 43, in <module>
        logger.info(event['UID'])
    [COLOR=Red]KeyError: 'UID'[/COLOR]
    plugins/ical/__init__.py
    Code:
    class iCal():
        DAYS = ("MO", "TU", "WE", "TH", "FR", "SA", "SU")
        FREQ = ("YEARLY", "MONTHLY", "WEEKLY", "DAILY", "HOURLY", "MINUTELY", "SECONDLY")
        PROPERTIES = ("SUMMARY", "DESCRIPTION", "LOCATION", "CATEGORIES"[COLOR=Red], "UID"[/COLOR])

    #2
    Hi,

    das mit dem UID in PROPERTIES sieht vernünftig aus. Ich sehe auch keinen Fehler der das verhindern sollte.

    Aber kommt das Plugin überhaupt mit der neuen Google-API klar?

    Bis bald

    Marcus

    Kommentar


      #3
      Zitat von mknx Beitrag anzeigen
      Hi,

      das mit dem UID in PROPERTIES sieht vernünftig aus. Ich sehe auch keinen Fehler der das verhindern sollte.

      Aber kommt das Plugin überhaupt mit der neuen Google-API klar?

      Bis bald

      Marcus
      hmm.. ok, danke trotzdem. dann werd ich mal etwas tiefer reingreifen müssen wg. der UID.

      Was genau meinst Du mit "neuer Google-API"? Soweit ich das verstehe, wertet das iCal-Plugin ja "nur" die gesamte *.ics Datei aus. Die ist von der Google-API ja nicht betroffen, oder seh ich was falsch?

      Kommentar


        #4
        Hallo,

        kann sein, das man die ganze ics bekommt. Ich habe kein Google-Konto.

        Mach doch mal in Zeile 68 (vor oder nach "now = ...") ein print(ical) rein.

        Wir dort Dein ICS korrekt angezeigt?

        Bis bald

        Marcus

        Kommentar


          #5
          Zitat von mknx Beitrag anzeigen
          Mach doch mal in Zeile 68 (vor oder nach "now = ...") ein print(ical) rein.
          Wir dort Dein ICS korrekt angezeigt?
          ja, das iCal wird hier in voller Pracht und identisch zum "normalen" Abrufen angezeigt. einziger Unterschied ist der Timestamp der Erzeugung

          Kommentar


            #6
            Hi,

            ich habe mir gerade noch mal den Code angesehen.

            Du bekommst von dem Plugin ein Dict zurück, der key ist die UID.

            => {'d12ade38c6cd5ea73d5fd75de2a7dd27': {'SUMMARY': "Restmülltonne", ....}}

            Bis bald

            Marcus

            Kommentar


              #7
              Zitat von mknx Beitrag anzeigen
              Hi,
              ich habe mir gerade noch mal den Code angesehen.
              Du bekommst von dem Plugin ein Dict zurück, der key ist die UID.
              => {'d12ade38c6cd5ea73d5fd75de2a7dd27': {'SUMMARY': "Restmülltonne", ....}}
              nicht nur das. Ich musste nur "UID" in "Uid" umstellen und alles ist gut:
              Code:
              [B][FONT=Courier New]event['Uid'][/FONT][/B] wird dann genauso wie [FONT=Courier New][B]event['Summary'][/B], ...[/FONT] möglich.
              Hinweis für die Mitlesenden:
              Der Eintrag von "UID" in der __init__.py vom iCal-Plugin ist aber weiterhin nötig.

              Danke für Deine Hilfe!

              Kommentar

              Lädt...
              X