Ankündigung

Einklappen
Keine Ankündigung bisher.

iCal

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

    Ich glaube wir haben unterschiedliche Vorstellungen wie man ein basic-setup hinbekommen wollen wuerde und deine einstellung "Damit kann man einen Kalender einfach einbinden. " macht mir echt Sorgen. Wie definierst du eigentlich die Zielgruppe für CD - nur Informatiker?

    Sollte ich 10-20 EUR pro Monat für ein Produkt hinlegen duerfen, wuerde ich erwarten, dass solche billo 3-zeilen-logiken auch genauso gut und schoener ueber ein item oder sonstwie "normal" über die UI parametrisiert werden koennten.

    Kommentar


      Hallo,

      die Zielgruppe ist prinzipiell jeder. Die grundsätzliche Einrichtung sollte von jedem machbar sein, der auch eine Fritzbox einrichten kann.
      Wer mehr machen möchte, muss auch mehr können bzw. eine kleine Transferleistung bringen.

      Woher kommen eigentlich die 10-20 Euro? Es sind 12€/Monat für neue Features, Anpassungen und zusätzliche Dienste wie z.B. DynDns.

      Bitte alles weitere in einem Rant-Thread. Hier geht es eigentlich um iCal.

      Bis bald

      Marcus

      Kommentar


        Zitat von callidomus Beitrag anzeigen
        Hallo Jürgen,



        welches Feature? logic.get_value steht doch drin.

        Bezüglich der Kommentare wegen der "komplexen" Logik. Mein Post #8 wurde schon gelesen?
        Damit kann man einen Kalender einfach einbinden. Wenn man allerdings etwas umfangreicher mit dem Kalender arbeiten möchte (Icons einbinden, Farben ändern, Kalender zusammenführen) dann kommt man leider nicht ein einer komplexen Logik vorbei.

        Bis bald

        Marcus
        Es ging darum das man auf attibute mit Logik.Name in der Logiken arbeiten kann....das steht nicht in der Doku. Nur in der online Doku und da leider auch nicht bei den Attributen sondern irgentwie drüber.

        VG Jürgen

        Kommentar


          Hi HeyFisch,

          kansst du mir bitte sagen wo ich die Dateien widget.js und widget.css finden kann ?

          Danke & Beste Grüße,

          Bull

          Zitat von HeyFisch Beitrag anzeigen
          Aber klar doch...

          In einer kurzen Zusammenfassung: im CSS eine Definition für das Datum erstellt, im Javascript-Widget das Datum einfügt und Zeit verändert (wenn 00:00, dann keine Anzeige), dazu die passende Kalender-Logik.

          widget.js
          Code:
          if ('Icon' in entry) {
          string += '<icon />';
          }
          string += '<span class="calDate">';
          if ('Start' in entry) {
          var startDate = new Date(entry.Start).format('dd.mm.yyyy');
          string += startDate + '<br/>';
          }
          string += '</span><span class="calTime">';
          if ('Start' in entry) {
          var start = new Date(entry.Start).format('HH:MM');
          if (start !== '00:00') {
          string += start;
          }
          }
          if ('End' in entry) {
          var end = new Date(entry.End).format('HH:MM');
          if (start !== '00:00') {
          string += '<br/>' + end;
          }
          }
          widget.css
          Code:
          .calDate
          float left
          margin 8px
          font-size 120%
          calendar.py
          Code:
          import re
          
          offset = 14
          cntr = 0
          yet = cd.now().date()
          
          docpattern = r'(a|A)rzt|(d|D)oktor|(k|K)linik'
          shoppattern = r'(k|K)aufen|(s|h)opping'
          phonepattern = r'(t|T)elefon|(a|A)nruf'
          mopedpattern = r'(m|M)oped|(t|T)our'
          
          trashbins = cd.ical('http://geheim/finning.ics',offset)
          personal = cd.ical('http://geheim/personal.ics',offset)
          
          caldatatrash = []
          caldatapersonal = []
          
          def creaatetrash(caldate):
          for event in trashbins[caldate]:
          event['Icon'] = 'cd/trash'
          if 'Biomüll' in event['Summary']:
          event['IconStyle'] = 'stroke:chocolate'
          event['Class'] = 'trashbrown'
          if 'Papiertonne' in event['Summary']:
          event['IconStyle'] = 'stroke:blue'
          event['Class'] = 'trashblue'
          if 'Gelbe Tonne' in event['Summary']:
          event['IconStyle'] = 'stroke:yellow'
          event['Class'] = 'trashyellow'
          if 'Hausmüll' in event['Summary']:
          event['IconStyle'] = 'stroke:white'
          event['Class'] = 'trashwhite'
          caldatatrash.extend(trashbins[caldate])
          cd.calendar.trash(caldatatrash)
          
          def createpersonal(caldate):
          for event in personal[caldate]:
          event['Icon'] = 'cd/family'
          if re.search (docpattern, event['Summary']):
          event['Icon'] = 'user/doctor'
          event['IconStyle'] = 'stroke:red'
          if re.search (shoppattern, event['Summary']):
          event['Icon'] = 'cd/star'
          event['IconStyle'] = 'stroke:blue'
          if re.search (phonepattern, event['Summary']):
          event['Icon'] = 'cd/phone'
          caldatapersonal.extend(personal[caldate])
          cd.calendar.dates(caldatapersonal)
          
          while cntr <= 7:
          eventday = yet + datetime.timedelta(days=cntr)
          creaatetrash(eventday)
          cntr += 1
          cntr = 0
          
          while cntr <= 7:
          eventday = yet + datetime.timedelta(days=cntr)
          createpersonal(eventday)
          cntr += 1

          Ich hoffe das ist so plausibel.


          Ciao,
          HeyFisch


          P.S. Credits to Mumpf, von ihm kam der entscheidende Hinweis

          Kommentar


            Hi Bull,

            das Original-Widget steht unter /mfs/core/visu/widgets/calendar. Kopier das ganze Verzeichnis nach /data/callidomus/local/visu/widgets, dann kannst Du die Dateien entsprechend anpassen.

            Gruß, Waldemar
            OpenKNX www.openknx.de

            Kommentar


              Super, danke Waldemar für die schnelle Hilfe


              Zitat von mumpf Beitrag anzeigen
              Hi Bull,

              das Original-Widget steht unter /mfs/core/visu/widgets/calendar. Kopier das ganze Verzeichnis nach /data/callidomus/local/visu/widgets, dann kannst Du die Dateien entsprechend anpassen.

              Gruß, Waldemar

              Kommentar


                Ich habe da noch eine Frage, wiso ist mein Kalender nach paar Minuten wider leer.

                Wenn ich die Visu Aktualisiere werden die Termine im Kalender angezeigt aber nach ein paar Minuten is das Kalenderfesnter wieder leer.

                Habe ich da was übersehen ?

                Danke & Gruß,

                Bull

                Kommentar


                  Hallo "Bull",

                  tritt das Problem mit dem unveränderten Widget auf? Damit habe ich dieses Verhalten noch nie beobachtet.
                  Wenn nein, liegt es an den Änderungen.

                  Bis bald

                  Marcus

                  Kommentar


                    Hallo Marcus,

                    ich hab das Widget nach HeyFisch Beispiel angepasst.

                    VG,

                    Bull

                    Kommentar


                      Hallo Bull,

                      also tritt das Problem nicht mit dem unveränderten Widget auf?

                      Wenn Du die Visu mit
                      Code:
                      /debug.html
                      aufrufst. Was kommt in der Javascript-Konsole?
                      Also, poste bitte die komplette Ausgabe bis zum Problem.

                      Bis bald

                      Marcus

                      Kommentar


                        Hallo Marcus,

                        anbei die Ausgabe der Console:

                        Document was loaded from Application Cache with manifest http://callidomus.local/cache.manifest
                        debug.html:1 Application Cache Checking event
                        debug.html:1 Application Cache NoUpdate event
                        callidomus.js:5 Platform: Win32, Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
                        callidomus.js:6 Width: 1920, Heigth: 1080
                        callidomus.js:722 sending data: {"cmd":"proto","ver":1}
                        callidomus.js:722 sending data: {"cmd":"items","items":["location.time","location.today","demo.modus", "dem o.schalter","services.weather.temperatur","service s.weather","services.weather.windrichtung","servic es.weather.windgeschwindigkeit","services.weather. regen","services.calendar","services.weather.heute ","demo.dwd","location.tomorrow","demo.dwd.mor gen" ,"demo.verbrauch.strom","demo.verbrauch.wasser"]}
                        callidomus.js:536 receiving data: {"cmd":"proto","time":"2016-11-09T22:17:13.163822+01:00","ver":1}
                        callidomus.js:536 receiving data: {"cmd":"item","items":[["location.time","2016-11-09T22:17:00.403195+01:00"],["location.today","2016-11-09"],["demo.modus",1.0],["demo.schalter",true],["services.weather.temperatur",0.9],["services.weather","[['0', 'bew\u00f6lkt', ''], ['4', 'bew\u00f6lkt', '']]"],["services.weather.windrichtung","O"],["services.weather.windgeschwindigkeit",13.0],["services.weather.regen","0.0"],["services.calendar",[{"Class":"trashwhite","Start":"2016-11-10T00:00:00+01:00","End":"2016-11-11T00:00:00+01:00","IconStyle":"stroke:white","Loc ation":"","Summary":"Restm\u00fcll","Icon":"cd/trash","Description":"Tonne rausstellen"},{"Start":"2016-11-12T00:00:00+01:00","End":"2016-11-13T00:00:00+01:00","IconStyle":"stroke:red","Locat ion":"","Summary":"Arzt","Icon":"cd/family","Description":""}]],["services.weather.heute",[["","",""],["","",""],["2","bew\u00f6lkt",""],["1","bedeckt",""]]],["demo.dwd",[["4","Nebel",""],["8","heiter",""],["10","heiter",""],["6","bew\u00f6lkt",""]]],["location.tomorrow","2016-11-10"],["demo.dwd.morgen",[["4","heiter",""],["12","gering bew\u00f6lkt",""]]],["demo.verbrauch.strom",0.24451317081951773],["demo.verbrauch.wasser",10.702059050111297]]}
                        callidomus.js:536 receiving data: {"cmd":"item","items":[["location.time","2016-11-09T22:18:00.037694+01:00"]]}
                        callidomus.js:536 receiving data: {"cmd":"item","items":[["location.time","2016-11-09T22:19:00.170227+01:00"]]}
                        callidomus.js:536 receiving data: {"cmd":"item","items":[["location.time","2016-11-09T22:20:00.324440+01:00"]]}
                        callidomus.js:536 receiving data: {"cmd":"item","items":[["location.time","2016-11-09T22:21:00.327848+01:00"]]}
                        callidomus.js:536 receiving data: {"cmd":"item","items":[["services.calendar",[]]]}
                        callidomus.js:536 receiving data: {"cmd":"item","items":[["location.time","2016-11-09T22:22:00.249442+01:00"]]}
                        callidomus.js:536 receiving data: {"cmd":"item","items":[["location.time","2016-11-09T22:23:00.391419+01:00"]]}

                        Danke & Viele Grüße,

                        Bull

                        Zitat von callidomus Beitrag anzeigen
                        Hallo Bull,

                        also tritt das Problem nicht mit dem unveränderten Widget auf?

                        Wenn Du die Visu mit
                        Code:
                        /debug.html
                        aufrufst. Was kommt in der Javascript-Konsole?
                        Also, poste bitte die komplette Ausgabe bis zum Problem.

                        Bis bald

                        Marcus

                        Kommentar


                          Nabend,

                          kurzes Statement von meiner Seite: also der Kalender funkt bei mir, wie er soll und leer sich nicht automatisch.


                          Ciao,
                          HeyFisch

                          Kommentar


                            Hallo Bull,

                            ok. es ist kein Problem mit dem Widget. Es wird vom Backend "services.calendar" geleert.
                            Was steht denn im callidomus.log (/var/callidomus/log/core)?
                            Gibt es Probleme mit der Logik?
                            Gibt es evtl. eine zweite Logik die services.calendar beschreibt? Oder gibt es eine Codeblock bei dem Item?

                            Bis bald

                            Marcus

                            Kommentar


                              Hallo Marcus,

                              Der Log:
                              ################################################## ############################
                              2016-11-10 09:50:24 INFO Main Start callidomus 1.0
                              2016-11-10 09:50:24 INFO Main Branch: stable, Revision: f2ab08a, Timestamp: 201611072055
                              2016-11-10 09:50:24 INFO Main Init Plugins
                              2016-11-10 09:50:24 INFO Scheduler Start Logics
                              2016-11-10 09:50:25 INFO Main Init Items
                              2016-11-10 09:50:25 INFO Main Items: 114
                              2016-11-10 09:50:25 INFO Main Init Logics
                              2016-11-10 09:50:25 INFO Main Start Plugins
                              2016-11-10 09:50:25 INFO Main Start Network
                              Mit der Logik gibt es keine Probleme, er läd den Kalender ja wenn ich die Visu öffne oder die Startseite aktualisiere. Nur wenn ich die Visu einige Zeit offen habe, Verschwinden die Kalendereinträge.

                              Ich habe nur 2 Logiken gebaut einmal für Kalender und eine für Wetter. Weitere logiken habe ich nicht.

                              Codeblocks benutze ich momentan nicht.


                              So sieht meine logik aus:

                              HTML-Code:
                              import re
                              
                              offset = 14
                              cntr = 0
                              yet = cd.now().date()
                              
                              docpattern = r'(a|A)rzt|(d|D)oktor|(k|K)linik'
                              shoppattern = r'(k|K)aufen|(s|h)opping'
                              phonepattern = r'(t|T)elefon|(a|A)nruf'
                              
                              trashbins = cd.ical('https://calendar.google.com/calendar/ical/xxxxxxxxxxxxxxxxxxxxgroup.calendar.google.com/public/basic.ics',offset)
                              
                              caldatatrash = []
                              
                              def creaatetrash(caldate):
                                  for event in trashbins[caldate]:
                                      event['Icon'] = 'cd/trash'
                                      if 'Biomüll' in event['Summary']:
                                          event['IconStyle'] = 'stroke:chocolate'
                                          event['Class'] = 'trashbrown'
                                      if 'Papiertonne' in  event['Summary']:
                                          event['IconStyle'] = 'stroke:blue'
                                          event['Class'] = 'trashblue'
                                      if 'Gelbe Tonne' in  event['Summary']:
                                          event['IconStyle'] = 'stroke:yellow'
                                          event['Class'] = 'trashyellow'
                                      if 'Hausmüll' in  event['Summary']:
                                          event['IconStyle'] = 'stroke:white'
                                          event['Class'] = 'trashwhite'
                                  caldatatrash.extend(trashbins[caldate])
                                  cd.services.calendar(caldatatrash)
                              
                              while cntr <= 7:
                                  eventday = yet + datetime.timedelta(days=cntr)
                                  creaatetrash(eventday)
                                  cntr += 1

                              Danke & Beste Grüße,

                              Bull

                              Kommentar


                                So jetzt sind Meldungen im LOG aufgetaucht:

                                HTML-Code:
                                2016-11-10 09:50:24 INFO     Main         Start callidomus 1.0
                                2016-11-10 09:50:24 INFO     Main         Branch: stable, Revision: f2ab08a, Timestamp: 201611072055
                                2016-11-10 09:50:24 INFO     Main         Init Plugins
                                2016-11-10 09:50:24 INFO     Scheduler    Start Logics
                                2016-11-10 09:50:25 INFO     Main         Init Items
                                2016-11-10 09:50:25 INFO     Main         Items: 114
                                2016-11-10 09:50:25 INFO     Main         Init Logics
                                2016-11-10 09:50:25 INFO     Main         Start Plugins
                                2016-11-10 09:50:25 INFO     Main         Start Network
                                2016-11-10 10:20:40 INFO     weather      problem fetching gds/specials/forecasts/tables/germany/Daten_Deutschland_uebermorgen_spaet_HTML: timed out
                                2016-11-10 10:25:43 INFO     weather      problem fetching gds/specials/forecasts/tables/germany/Daten_Deutschland_Tag4_spaet_HTML: timed out
                                2016-11-10 10:35:38 INFO     weather      problem fetching gds/specials/forecasts/tables/germany/Daten_Deutschland_heute_frueh_HTML: timed out
                                2016-11-10 10:45:42 INFO     weather      problem fetching gds/specials/forecasts/tables/germany/Daten_Deutschland_heute_nacht_HTML: timed out
                                2016-11-10 11:55:45 INFO     weather      problem fetching gds/specials/forecasts/tables/germany/Daten_Deutschland_Tag4_spaet_HTML: timed out
                                2016-11-10 12:00:40 INFO     weather      problem fetching gds/specials/forecasts/tables/germany/Daten_Deutschland_heute_frueh_HTML: cannot read from timed out object
                                2016-11-10 12:35:44 INFO     weather      problem fetching gds/specials/forecasts/tables/germany/Daten_Deutschland_Tag4_frueh_HTML: timed out
                                2016-11-10 13:05:43 WARNING  Calendar     Problem fetching https://calendar.google.com/calendar/ical/xxxxxxxxxxxxxxxxxxxxgroup.calendar.google.com/public/basic.ics: The read operation timed out
                                2016-11-10 13:05:43 ERROR    Calendar     Logic: Calendar, File: /data/callidomus/local/logics/calendar.py, Line: 42, Method: creaatetrash, Exception: datetime.date(2016, 11, 10)
                                Traceback (most recent call last):
                                  File "/mfs/core/lib/scheduler.py", line 442, in _task
                                    exec(obj.bytecode, _globals)
                                  File "/data/callidomus/local/logics/calendar.py", line 61, in <module>
                                    creaatetrash(eventday)
                                  File "/data/callidomus/local/logics/calendar.py", line 42, in creaatetrash
                                    for event in trashbins[caldate]:
                                KeyError: datetime.date(2016, 11, 10)
                                2016-11-10 13:10:41 INFO     weather      problem fetching gds/specials/forecasts/tables/germany/Daten_Deutschland_heute_mittag_HTML: timed out
                                2016-11-10 13:15:42 WARNING  Calendar     Problem fetching https://calendar.google.com/calendar/ical/xxxxxxxxxxxxxxxxgroup.calendar.google.com/public/basic.ics: The read operation timed out
                                2016-11-10 13:15:42 ERROR    Calendar     Logic: Calendar, File: /data/callidomus/local/logics/calendar.py, Line: 42, Method: creaatetrash, Exception: datetime.date(2016, 11, 10)
                                Traceback (most recent call last):
                                  File "/mfs/core/lib/scheduler.py", line 442, in _task
                                    exec(obj.bytecode, _globals)
                                  File "/data/callidomus/local/logics/calendar.py", line 61, in <module>
                                    creaatetrash(eventday)
                                  File "/data/callidomus/local/logics/calendar.py", line 42, in creaatetrash
                                    for event in trashbins[caldate]:
                                KeyError: datetime.date(2016, 11, 10)
                                2016-11-10 14:05:42 INFO     weather      problem fetching gds/specials/forecasts/tables/germany/Daten_Deutschland_heute_mittag_HTML: timed out
                                2016-11-10 14:25:42 WARNING  Calendar     Problem fetching https://calendar.google.com/calendar/ical/xxxxxxxxxxxxxxxxxxxxxgroup.calendar.google.com/public/basic.ics: _ssl.c:629: The handshake operation timed out
                                2016-11-10 14:25:45 ERROR    Calendar     Logic: Calendar, File: /data/callidomus/local/logics/calendar.py, Line: 42, Method: creaatetrash, Exception: datetime.date(2016, 11, 10)
                                Traceback (most recent call last):
                                  File "/mfs/core/lib/scheduler.py", line 442, in _task
                                    exec(obj.bytecode, _globals)
                                  File "/data/callidomus/local/logics/calendar.py", line 61, in <module>
                                    creaatetrash(eventday)
                                  File "/data/callidomus/local/logics/calendar.py", line 42, in creaatetrash
                                    for event in trashbins[caldate]:
                                KeyError: datetime.date(2016, 11, 10)
                                
                                Danke & Beste Grüße,

                                Bull

                                Kommentar

                                Lädt...
                                X