Ankündigung

Einklappen
Keine Ankündigung bisher.

Mülltermine und Geburtstage aus ical LBS filtern

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

    Mülltermine und Geburtstage aus ical LBS filtern

    Ich hab folgendes Problemchen und hoffe mir kann da jemand Helfen .
    Ich zeige auf meiner Visu im Flur die Termine folgendermaßen an:

    Unbenannt.JPG

    Bei den Müllterminen, hier z.B. beim Altglas zeige ich noch so ein kleines Bildchen mit an.
    Das ganze mach ich momentan über dass dynamische Design im Visuelement.

    Also für jede Müllart hab ich ein eigenes dynamisches Design angelegt. Das ganze funktioniert so auch wunderbar.
    Meine bessere Hälfte wünschte sich jetzt aber noch, dass bei den Geburtstagen auch ein kleines Geschenk als Symbol angezeigt wird.
    Über dass dynamische Design funktioniert dass aber nicht, außer ich leg eins für jeden Namen an, was nicht so elegant wäre .

    Also muss dass ganze im Logikeditor gelöst werden.
    Ich denke dass man das vielleicht mit preg_match lösen könnte, aber ich weiß nicht wie der reguläre Ausdruck aussehen müsste damit dies klappt.

    An den Ausgängen des calDAV LBS kommen ja folgende Varianten vor:

    Code:
    <font color="red">Fr 07.02 00:00|Max Mustermann (*1987)</font>
    Code:
    Fr 07.02 00:00|Max Mustermann (*1987)
    Code:
    Di 11.02 01:00|Altglassammlung
    Code:
    <font color="red">Di 11.02 01:00|Altglassammlung</font>

    Die Geburtstage könnte man ja mit dem Datum, bzw. mit den ersten 4 Stellen rausfiltern, also z.B. "(*19" bzw. "(*20".
    Und die Mülltermine mit ihren Namen, diese bleiben ja immer gleich.
    Weiß hier vielleicht jemand Rat wie ich das anstellen kann?

    Und wäre es auch möglich dass Datum in dem String durch dass aktuelle Alter zu ersetzen?
    Liest sich einfach angenehmer, ohne immer gleich rechnen zu müssen wie alt jemand wird .
    Gruß Ben

    #2
    Für das Alter fällt mir spontan außer einem LBS nichts ein. Der könnte das Alter oder nichts liefern, dann könnte man die Ausgabe direkt anhängen.

    Vielleicht habe ich gerade einen Denkfehler, aber warum funktioniert das nicht per dynamischem Design?
    Das "Alphabet" der Tonnen sollte ja sehr genau definiert sein.
    Einfach für jede Möglichkeit das Symbol und die Farbe setzen.
    Wenn keines der Designs greift, ist es ein Geburtstag.

    Kommentar


      #3
      Zitat von MKHR Beitrag anzeigen
      Für das Alter fällt mir spontan außer einem LBS nichts ein. Der könnte das Alter oder nichts liefern, dann könnte man die Ausgabe direkt anhängen.
      Schade, hab gehofft es geht iwie mit nem vorhandenen LBS. Bin leider nicht so der LBS-Schreiber . Naja gut, dann wird dass mal zurück gesteckt, vielleicht ergibt sich ja mal Iwan etwas .

      Zitat von MKHR Beitrag anzeigen
      Vielleicht habe ich gerade einen Denkfehler, aber warum funktioniert das nicht per dynamischem Design?
      Das "Alphabet" der Tonnen sollte ja sehr genau definiert sein.
      Einfach für jede Möglichkeit das Symbol und die Farbe setzen.
      Wenn keines der Designs greift, ist es ein Geburtstag.
      Das mit den Tonnen bzw. Müllterminen funktioniert so auch wunderbar, hab ich ja wie erwähnt auch so umgesetzt. Aber ich zeig mir über den Kalender die nächsten 5 Termine an, siehe Bild oben.

      Und da sind halt auch Feiertage und ganz normale Termine dabei. Also einfach zu sagen alles außer Müll = Geburtstage geht nicht. Deswegen auch nach der Frage Geburtstage speziell auszufiltern.

      Und soweit ich weiß kann man bei dynamischen Design auch keine Formeln nutzen, sonst könnt man hier ja auch einfach die (*19 bzw. (*20 ausfiltern.

      Kann man nicht iwie mit einem vorhandenen LBS nach einer speziellen Zeichenkette suchen und dann beim Finden eine bestimmte Zahl ausgeben?

      Also z.b.:
      Altglassammlung = 1
      Restabfall = 2
      (*19 = 3
      (*20 = 3


      Dann könnte man diese Zahlen ganz easy in dynamischen Designs verwenden.
      Gruß Ben

      Kommentar


        #4
        Ohne LBS wird es wesentlich aufwändiger.
        Ich bin davon ausgegangen, dass in deinem Kalender nur Mülltonnen und Geburtstage vermischt sind. Das waren ja auch die eingangs gegebenen Parameter
        Eventuell solltest du mal darüber nachdenken, die Quelldaten separiert vor zu halten statt es nachträglich zu separieren.


        Grobe Skizze des Vorgehens:

        Eingangswert Termin -> Kategorisieren in Mülltonne, Geburtstag, anderes. Ein internes KO setzen wenn die "Kategorie" anliegt (wie du schon gedacht hast). Parallel dann Eintrag weiter verarbeiten. Am Ende der Verarbeitungskette solltest du dann "Kategorie" und Alter parallel ausgewertet haben.

        Für die Detektion auf Mülltonne sollte der integrierte Vergleicher genügen.

        Für die Detektion auf Geburtstag kannst du bspw. Strings zerteilen (18000003) nehmen.
        Zuerst zerteilen mit '*'. Wenn etwas an A2 raus kommt ist es ein Geburtstag. Dann noch mal zerteilen mit ')'. An A1 sollte dann lediglich das Geburtsjahr anliegen. Da könnte man dann bspw. eine Subtraktion mit der aktuellen Jahreszahl machen, dann hast du die Lebensjahre. Zwischendrin an passender Stelle (bspw. nach dem ersten Zerteilen) noch einen check auf "nicht leer" und das Symbol setzen.

        Weitere Detektion verbleibt dann für dich.

        Kommentar


          #5
          Zitat von MKHR Beitrag anzeigen
          Eventuell solltest du mal darüber nachdenken, die Quelldaten separiert vor zu halten statt es nachträglich zu separieren.
          Ich vermute auch, dass dies der sinnvollste Weg ist.

          Zitat von stonie2oo4 Beitrag anzeigen
          Kann man nicht iwie mit einem vorhandenen LBS nach einer speziellen Zeichenkette suchen und dann beim Finden eine bestimmte Zahl ausgeben?
          Ich arbeite mit 9 Kalendern parallel:
          8 Kalender werden in einem LBS aufgerufen und "gemischt",
          der 9. Kalender ist der Müllkalender, dieser wird mit einem separaten LBS abgerufen und über STRPOS-LBS verglichen (um zu Deiner Frage zu kommen !)
          und dann einem Symbol zugewiesen (wie bei Dir !)

          bei mir so (von A2):

          2020_02_09_18_30_38_EDOMI_Administration_Opera.png

          Die 1-Byte-Werte sind dann in einem Visuelement der entsprechenden Grafik (Restmüll, Papier, Wertstoffe) zugeordnet !

          ... ist zwar wahrscheinlich nicht der einfachste Weg, funktioniert aber !
          Zuletzt geändert von ak68; 09.02.2020, 18:39.

          Kommentar


            #6
            Mal so am Rande, für jede Tonne einen id raus parsen funktioniert zwar, das hier funktioniert aber auch wunderbar:

            tonnen.PNG
            Angehängte Dateien

            Kommentar


              #7
              Zitat von ak68 Beitrag anzeigen
              Zitat von MKHR Beitrag anzeigen
              Eventuell solltest du mal darüber nachdenken, die Quelldaten separiert vor zu halten statt es nachträglich zu separieren.



              Ich vermute auch, dass dies der sinnvollste Weg ist.
              Wäre das wirklich vorteilhaft?
              Dann müsste man sich später wieder Gedanken machen wie man die Ausgabe in die richtige Reihenfolge bekommt, was ja momentan der caldDAV LBS wunderbar mit den 10 Ausgängen next1, next2, usw. bereits erledigt.



              Zitat von ak68 Beitrag anzeigen
              der 9. Kalender ist der Müllkalender, dieser wird mit einem separaten LBS abgerufen und über STRPOS-LBS verglichen (um zu Deiner Frage zu kommen !)
              Als ich es dass erste mal gelesen hab, dachte ich dass mit dem extra Müllkalender würde es vereinfachen, aber im Endeffekt musst du ja auch jeden Ausgang des calDAV LBS für jeden Mülltyp abfragen, also könnte man doch die Kalender auch alle zusammen lassen. Ich seh grad den Vorteil nicht.


              Also man müsste dass hier an jeden next-Ausgang hängen, oder überseh ich was?

              Unbenannt.JPG

              Das wären dann aber für alle Ausgänge insgesamt 100 extra LBS nur um so ein doofes Bildchen anzuzeigen. Steht iwie nicht im Verhältnis,oder?
              Ja, aber gehen sollte es, bloß hab ich mir es iwie eleganter gewünscht .

              So ein wenn-dann Vergleich wäre iwie cool, dachte erst es könnte mit diesem hier gehen:
              http://service.knx-user-forum.de/?co...ad&id=19001480

              Aber dieser vergleicht "exakt" mit den Vergleichswerten, aber in meinem Fall wäre es optimal wenn er den Eingangsstring nach einer bestimmten (Teil-)Zeichenkette durchsucht und bei finden dieser einen vordefinierten Wert ausgibt.

              E1 - Also rein kommt z.B: Di 11.02 01:00|Altglassammlung

              E2 - Gesucht wird nach: Altglas
              E3 - Bei finden wird eine 1 ausgegeben an A1

              E4 - Gesucht wird nach: Bio
              E5 - Bei finden wird eine 2 ausgegeben an A1

              E6 - Gesucht wird nach: (*19
              E7 - Bei finden wird eine 3 ausgegeben an A1


              Und den dann an jeden Ausgang des calDAV LBS und der Kittel wär geflickt. Aber woher nehmen...


              Zitat von MKHR Beitrag anzeigen
              Mal so am Rande, für jede Tonne einen id raus parsen funktioniert zwar, das hier funktioniert aber auch wunderbar:
              So mach ich es ja momentan für die Mülltermine, was ja auch wunderbar klappt. Nur die Geburtstage bekomm ich so nicht raus.

              Unbenannt2.JPG


              Danke euch beiden für den Input, aber so ganz Gefallen tun mir die Lösungen leider bisher noch nicht.
              Habs mir iwie einfacher vorgestellt so ein doofes Bildchen anzuzeigen .

              Ich schlaf nochmal drüber, vielleicht fällt mir ja noch was ein...
              Gruß Ben

              Kommentar


                #8
                Zitat von stonie2oo4 Beitrag anzeigen
                Wäre das wirklich vorteilhaft?
                Dann müsste man sich später wieder Gedanken machen wie man die Ausgabe in die richtige Reihenfolge bekommt, was ja momentan der caldDAV LBS wunderbar mit den 10 Ausgängen next1, next2, usw. bereits erledigt.
                Ja, ich denke schon. Der LBS unterstützt m.W.n. die parallele Abfrage mehrerer Kalender.
                Wenn du jeden Typ in einem separaten Kalender hättest, könntest du einfach die Kalender gleichzeitig abfragen, die für dich relevant sind.

                Was ist denn mit dem von mir vorgeschlagenen Lösungsweg?

                Kommentar


                  #9
                  stonie2oo4 kannst du mal schauen, ob in deinen Kalenderdaten so etwas wie der Kalender "calname" mit angegeben wird (bis vor Kurzem war dies bei iCloud Kalendern noch so, nun leider nicht mehr). Dann könntest du den String zerteilen und und anschließen den %calname% auswerten lassen und dann den LBS verwenden.

                  So hatte ich bisher die Kalendereinträge einzelner Personen farblich unterschieden.

                  Alternativ kannst du bei den Geburtstagseinträgen im Kalender auch eine Notiz (damit ist nicht die Terminbeschreibung -> %summary% gemeint) schreiben (z.B. „Geburtstag“) und dies dann per %description% von dem LBS auswerten lassen
                  Zuletzt geändert von shortyle; 12.02.2020, 23:08.

                  Kommentar


                    #10
                    Zitat von MKHR Beitrag anzeigen
                    Was ist denn mit dem von mir vorgeschlagenen Lösungsweg?
                    Ich nehme an du beziehst dich auf diesen Lösungsweg?
                    Zitat von MKHR Beitrag anzeigen
                    Grobe Skizze des Vorgehens:

                    Eingangswert Termin -> Kategorisieren in Mülltonne, Geburtstag, anderes. Ein internes KO setzen wenn die "Kategorie" anliegt (wie du schon gedacht hast). Parallel dann Eintrag weiter verarbeiten. Am Ende der Verarbeitungskette solltest du dann "Kategorie" und Alter parallel ausgewertet haben
                    Genau hier liegt/lag ja mein Problem, wie erkenne ich welche Kategorie anliegt?
                    Aber shortyle hat ja jetzt eine Möglichkeit aufgezeigt. Vielen Dank übrigens.

                    Mit %calname% hat es einwandfrei funktioniert, als ich endlich mal die Anleitung gelesen hab , und gemerkt hab, dass man es bei E11 und E16 eintragen muss.
                    Er benutzt dann bei mir die Kalendernamen aus E8. Versteh ich zwar nicht ganz, weil ich dachte er fragt das aus dem *ics ab, wo der Kalendername bei mir auch drin stehen würde.
                    Aber hey, Hauptsache es geht .


                    Jetzt mal schauen wie ich weiter mache. Halt euch auf dem laufenden, wenns funktioniert oder auch nicht.


                    Gruß Ben

                    Kommentar


                      #11
                      Also das mit den Symbolen hab ich jetzt glaub ich einigermaßen gut gelöst.
                      Dank shortyle hab ich ja nun folgende Ausgabe vom Kalender-LBS an den next1-10 Ausgängen:

                      z.B.
                      Code:
                      Do 20.02 01:00|Biotonne|Abfallkalender|
                      bzw.
                      Code:
                      Sa 22.02 00:00|Max Mustermann (*1939)|Geburtstage|

                      Da mir nichts einfaches mit den Standard LBS eingefallen ist, hab ich mir kurzerhand nen eigenen zusammen gefrickelt, aus dem Wenn-Dann Vergleich und dem strpos LBS.
                      Sieht jetzt folgendermaßen aus:

                      Unbenannt.JPG


                      Eigentlich wollt ich mir nur einen LBS mit 10 Ausgängen und 10 Eingänge für die next1-10 erstellen, aber bin dann anhand meiner nicht vorhandenen Programmierkenntnissen kläglich gescheitert .
                      Egal, mit dem Ergebnis kann ich jetzt leben, immerhin besser wie 100 einzelne LBS.

                      Das mit dem Datum umwandeln, hab ich jetzt mal weiter nach hinten geschoben auf meiner todo Liste, weil mir kein einfacher Weg einfällt. Als geübter Programmierer wäre das vermutlich ein 3-Zeiler.

                      Falls Interesse an dem LBS bestehen sollte, einfach bei mir melden, werde ihn dann gerne freigeben.
                      Gruß Ben

                      Kommentar


                        #12
                        Du hättest auch einfach den String teilen LBS nehmen können und dann dort den letzten Stringwert in eine Ausgangsbox leiten können
                        aber schön wenn es nun klappt.

                        Kommentar


                          #13
                          Dann hätt ich aber nur Müll und Geburtstage.
                          Aber keine Unterscheidung welche Art von Müll.
                          Gruß Ben

                          Kommentar


                            #14
                            Das habe ich dann mit dynamischen Designs gemacht und dort nach den Abfallstoffen unterschieden.

                            Kommentar

                            Lädt...
                            X