Ankündigung

Einklappen
Keine Ankündigung bisher.

iCal

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

    #91
    Hallo Jürgen,
    ja das würde ich mir wünschen ;-)

    Danke für die Hilfe. Dann sollte es heute Abend ja hoffentlich funktionieren.

    Gruß
    Patrick

    Kommentar


      #92
      Hallo,

      Zitat von powell Beitrag anzeigen
      Bei mir kommt hier allerdings auch nachdem ich den Code von "3. Logikfile anlegen
      Auf der Konsole:" eingegeben habe leider auch ein Fehler.
      so kann ich Dir leider nicht helfen.

      Was machst Du genau? Code
      Welcher Fehler kommt? Log

      Bis bald

      Marcus

      Kommentar


        #93
        Abend,
        super mit der Hilfe von MarcusW und Jürgen hat es geklappt!
        Jetzt bekomme ich wenigstens mal die Termine im Kalender angezeigt. Danke!

        Jetzt würde ich nur gerne wissen wie Ihr das mit verschiedenen Kalendern umgesetzt habt.

        Habt Ihr einen Kalender für heute, morgen und dann hier jeweils die ganzen .ics Kalender integriert? Also z.B. bei dem Kalender für "Heute" dann den Müllkalender und die Privaten Kalender integrieren und das gleiche dann für den Kalender "Morgen"?

        Kommentar


          #94
          Nabend zusammen,

          wie und wo kann man das Datums-, Zeitformat in der Ausgabe umformatieren, so dass das Datum und die Zeit angezeigt werden?


          Danke!!


          Ciao,
          HeyFisch

          Kommentar


            #95
            Hi,

            das Widget ist derzeit wohl eher dazu gedacht, die Einträge für einen Tag anzuzeigen. Aber Du kannst natürlich ein neues machen. Dazu würde ich das calendar-Widget kopieren und dann im widget.js schauen, da gibt es
            Code:
                    if ('Start' in entry) {
                        var start = new Date(entry.Start).format('HH:MM');
                        string += start;
            
                    }
                    if ('End' in entry) {
                        var end = new Date(entry.End).format('HH:MM');
                        string += '<br/>' + end;
                    }
            Gruß, Waldemar
            OpenKNX www.openknx.de

            Kommentar


              #96
              Mahlzeit,

              klasse, werde ich heute Abend gleich mal versuchen.


              Danke Waldemar!


              Ciao,
              HeyFisch

              Kommentar


                #97
                habe jetzt nur die ersten 2 seiten gelesen und bin bis hierher fassungslos.
                ich muss mir eine logik schreiben um einen ics-link einzubinden, ernsthaft?
                kann irgendwer ohne exzessive logik-erfahrung die ical-plugin-dokumentation irgendwie... verstehen & anwenden?

                nur damit du meine erwartungshaltung verstehst:
                - fuege ical plugin hinzu
                - binde plugin an item, im item irgendwie ical-url hinterlegen und ical durchkonfigurieren
                - binde kalender-widget an item und integriere in visu
                - profit

                das kann man natuerlich noch weiter vereinfachen. und dass man logiken benutzen kann, ist ja schoen.
                aber wie soll das ein "produkt" sein/werden mit der maximal kompliziertesten kalender-einbindung ueberhaupt?
                und das scheint sich durch das ganze projekt zu ziehen.

                und ja, das UI ist schoen. und dydns/letsencrypt ist hervorragend geloest. aber bis zum 20eur/monat produkt ist echt noch ein WEITER weg.

                und warum werden die eigentlich hilfreichen tips ab https://knx-user-forum.de/forum/supp...996#post961996 nicht in die doku/wiki ueberfuehrt? die dokuuuu ist sooooo nutzlos und scheint es auch langfristig zu bleiben.
                ich wuerde das gerne einfach basic einrichten ohne mir hier alles zusammensuchen zu muessen.
                ich mein, wir reden hier von 150 eur plus monatlich ne? ist nicht so als waere das hier der geschenkte gaul....
                Zuletzt geändert von hotzen; 22.10.2016, 12:15.

                Kommentar


                  #98
                  Funktioniert!!! Genauso wie ich das mir vorgestellt hatte - allerdings musste ich das Widget doch stärker verbiegen, als zunächst gedacht.

                  Anmerkung zum letzen Post: ja, die iCal-einbindung ist nicht ganz trivial und hat mich auch auch ein paar Stunden gekostet - wie wahrscheinlich alle. Mir ist es das Wert, da ich mit Callidomus überall dran kann und (fast) alles so gestalten kann, wie ich möchte. Und fehlt etwas, so besteht die Möglichkeit neue Plugins oder Widgets zu bauen - vorausgesetzt Python und man kommt der darunter liegenden Struktur klar. Nebenbei gibt's ne extrem schöne, Ressourcen-schonende GUI mit sehr robuster KNX-Anbindung. Für mich die beste Visu, die aktuell verfügbar ist.


                  Ciao,
                  HeyFisch
                  You do not have permission to view this gallery.
                  This gallery has 1 photos.

                  Kommentar


                    #99
                    Hi,
                    kannst du mal posten was du gemacht hast damit das so erscheint?
                    VG
                    Jürgen

                    Kommentar


                      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
                      Zuletzt geändert von HeyFisch; 23.10.2016, 18:34.

                      Kommentar


                        Aufbauend auf Mump #49 (Danke!!) könnte ich folgende etwas allgemeinere Logik anbieten:
                        Code:
                        #!/usr/bin/env python
                        
                        today = cd.now().date()
                        
                        item = cd.return_item( logic.item )
                        cal = cd.ical( logic.url )
                        
                        item(cal.get(today), [])
                        das kann dann als parametrisierbare logik eingebunden werden, als attribute dann noch item und url angeben, z.b. wie angehaengt.

                        langsam nervt mich das richtig, dass sowas nicht im wiki landet als getting-started 201610299_231053-CapturFiles.jpg

                        Kommentar


                          Hi,

                          ist das was neues das man logic.item schreiben kann? In der Doku steht das man an die Werte mit "logic.get_value(NAME, [DEFAULT]): liest den Wert der Variablen mit dem NAMEN von dem Logik Objekt." bekommt.

                          VG
                          Jürgen

                          Kommentar


                            ka, habs benutzt, weils in der inline Doku so beschrieben ist und funktioniert auch

                            Kommentar


                              @Marcus: Die inlinehilfe ist recht unübersichtlich kannst du das nicht auch in der Richtigen Hilfe --> https://docs.callidomus.com/de/Logiken/
                              nachtragen? Das es diese Feature gibt.



                              Kommentar


                                Hallo Jürgen,

                                Zitat von heckmannju Beitrag anzeigen
                                nachtragen? Das es diese Feature gibt.
                                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

                                Kommentar

                                Lädt...
                                X