Ankündigung

Einklappen
Keine Ankündigung bisher.

Müllkalender in RGB LED

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

    #16
    Zitat von Simml Beitrag anzeigen
    Ja habe ich probiert, geht leider auch nicht. Eine Möglichkeit sehe ich noch darin, es auf dem eignen (bei mir am Raspbery) laufenden Webserver abzurufen. Hab das mal mit
    Ich will das die Tage auch mal testen ... denn es kann ja nicht sein, dass man nur dafür einen WebServer braucht ... ;-)

    Kommentar


      #17
      Ich habe auch festgestellt, dass es lokal im Filesystem nicht geht (obwohl Logging sagt, dass der Kalender gefunden und eingelesen wurde), remote geht es dann prima.
      Derzeit zwischen Kistenauspacken und Garten anlegen.
      Baublog im Profil.

      Kommentar


        #18
        Ich habe das auch auf verschiedenen Wegen lokal probiert. Es läuft einfach nicht. Es gibt keine Fehlermeldung, der Kalender wird aber lokal geladen - hat nur eben keine Werte. Irgendwas scheint da mit dem plugin nicht in Ordnung zu sein.

        Kommentar


          #19
          gibt es noch etwas "deutscheres" als die Mülltonnenfarbe per Status im Smarthome. Ich werde nich wieder
          just solutions

          Kommentar


            #20
            Zitat von Cannon Beitrag anzeigen
            Ich habe das auch auf verschiedenen Wegen lokal probiert. Es läuft einfach nicht. Es gibt keine Fehlermeldung, der Kalender wird aber lokal geladen - hat nur eben keine Werte. Irgendwas scheint da mit dem plugin nicht in Ordnung zu sein.
            Hm ok dann eben doch via Webserver. Danke fürs ausprobieren.

            Zitat von Allesreinwasgeht Beitrag anzeigen
            gibt es noch etwas "deutscheres" als die Mülltonnenfarbe per Status im Smarthome. Ich werde nich wieder
            Haha das hat der Menscheit schon lang gefehlt. Dieser Gestank wenn die Mülltonnen Monate lang nicht geleert werden weil die Besitzer wieder an einer smarthome Mülltonnen RGB Leiste sparen.
            Aber damit ist jetzt endlich Schluss.

            Kommentar


              #21
              Schluss mit Lachen! :-) Ich habe den Fehler gefunden. Anscheinend funktioniert jedes plugin, was ich nutzen will nicht richtig. Wo postet man denn Updates, damit die in folgende Versionen auch repariert werden. Das pluggit-Plugin ging nämlich auch nicht.

              Bitte in der init-Datei des plugins (__init__.py) folgendes ändern, dann werden auch lokale Kalender geladen. Bitte aber auch noch mal mit "http:"-Kalendern testen.

              Code:
                  def _parse_ical(self, ical, ics):
                      #skip = False
                      events = {}
                      tzinfo = self._sh.tzinfo()
                      #ical = ical.replace('\n', '')
                      for line in ical.splitlines():
              Das "ical = ical.replace('\n', '')" muss auskommentiert werden, weil sonst der gesamte Kalender in eine einzelne Zeile gepackt wird und dann funktioniert das nicht. Mir ist der Sinn auch nicht ganz klar, weil ja wie gesagt der Kalender danach in mehrere Zeilen gesplittet wird, die nach dem replace nicht mehr existieren. Ich vermute aber mal das hat was mit dem "\r" und "\n" zu tun. Hier werde ich noch mal genau testen und mein Kalender-File mit einem Hex-Editor anschauen. Fürs erste geht das aber jetzt mit lokalen Dateien.

              Kommentar


                #22
                Am besten du machst einen fork von https://github.com/smarthomeNG/plugins im develop branch. Klonst den dann auf deinen Rechner, machst die Änderung im pluggit Plugin, push der Änderung und Pull Request. Ich empfehle Github Desktop oder was Ähnliches, dann brauchst auch keine Befehle können.

                Das ical Plugin hab ich mir grad angesehen. Wozu die replace-Zeile gut ist/war, ist mir auch unklar. Funzt jedenfalls auch bei Online-Feed mit gelöschter Zeile. Ich habe noch ein paar kleine Updates gemacht und PR erstellt: https://github.com/smarthomeNG/plugins/pull/210

                Das obige Problem, dass bei delta=0 und offset=1 auch heute mitkommt, kann ich bei ersten Tests nicht bestätigen.

                Kommentar


                  #23
                  Zitat von Onkelandy Beitrag anzeigen
                  Das ical Plugin hab ich mir grad angesehen. Wozu die replace-Zeile gut ist/war, ist mir auch unklar.
                  Ich habe mir das auch noch mal genauer angesehen und auch meine ics-Datei (die enthält /n und /r). Die Zeile macht wirklich keinen Sinn. Evtl. könnte man da ein "\r" rein schreiben ... aber dann gehen möglicherweise MAC-Dateien nicht.

                  Gut, dass du das Update gemacht hast bei github, dann brauche ich nicht darüber nachdenken, wie ich das da hochlade. ;-)

                  Kommentar


                    #24
                    Man kann ja die Tage im Übrigen im Skript abfragen.

                    Ich habe das ein wenig anders gelöst. Deshalb gibt es hier mal mein Skript. Die Grundlage war sicherlich das Skript hier im Thread. Ich habe ein paar Änderungen vorgenommen. Folgendes habe ich angepasst:

                    - auch am Abholtag bis 8:00 Uhr wird die Farbe aktiviert
                    - da es sich um einen LED-Strip in meiner Diele ab Eingang handelt, leuchtet dieser nur, wenn die Tür geöffnet ist
                    - die vorherige Lichtfarbe wird zwischengespeichert und wieder hergestellt
                    - meine Items habe ich als Liste für RGB zusammengefasst

                    Hier die Logik, beide Varianten mit dem iCal funktionieren, also auch die auskommentierte. Bei der Variante ohne Pfad ist der Pfad in der plugin.yaml konfiguriert:

                    Code:
                    if sh.EG.Diele.Tuer.geschlossen:
                        if hasattr(logic, 'RGB_backup'):
                            sh.EG.Diele.DALI.Decke.RGB.Farbwert(logic.RGB_backup)
                        else:
                            sh.EG.Diele.DALI.Decke.RGB.Farbwert([0, 0, 0])
                    else:
                        logic.RGB_backup = [sh.EG.Diele.DALI.Decke.R.Dimmwert(), sh.EG.Diele.DALI.Decke.G.Dimmwert(), sh.EG.Diele.DALI.Decke.B.Dimmwert()]
                    
                        jetzt = sh.now()
                        heute = jetzt.date()
                        morgen = heute + datetime.timedelta(days=1)
                        zeit = jetzt.time()
                        zeitmax = zeit.replace(hour=8, minute=0, second=0, microsecond=0)
                    
                        #muellkalender = sh.ical('/usr/local/smarthome/muellkalender.ics', delta = 0, offset = 1)
                        muellkalender = sh.ical('muell', delta=1, offset=0)
                    
                        for day in muellkalender:
                            for event in muellkalender[day]:
                                summary = event['Summary']
                                if day == heute and zeit < zeitmax or day == morgen and zeit >= zeitmax:
                                    # Papier: blau
                                    if 'Moselstraße - Papier' in str(summary):
                                        sh.EG.Diele.DALI.Decke.RGB.Farbwert([0, 0, 255])
                                    # Restmüll: weiß
                                    if 'Moselstraße - Hausmüll' in str(summary):
                                        sh.EG.Diele.DALI.Decke.RGB.Farbwert([255, 255, 255])
                                    # Biomüll: braun
                                    if 'Moselstraße - Biomüll' in str(summary):
                                        sh.EG.Diele.DALI.Decke.RGB.Farbwert([87, 35, 0])
                                    # Gelber Sack: gelb
                                    if 'Moselstraße - Gelber Sack' in str(summary):
                                        sh.EG.Diele.DALI.Decke.RGB.Farbwert([255, 255, 0])
                    Hier das item mit relativen Einträgen:

                    Code:
                                        Farbwert:
                                            type: list
                                            visu_acl: rw
                                            on_change:
                                                - ...R.Dimmwert = value[0]
                                                - ...G.Dimmwert = value[1]
                                                - ...B.Dimmwert = value[2]
                                            trigger:
                                                type: list
                                                eval: list([sh.....R.Dimmwert(), sh.....G.Dimmwert(), sh.....B.Dimmwert()])
                                                eval_trigger:
                                                    - ....R.Dimmwert
                                                    - ....G.Dimmwert
                                                    - ....B.Dimmwert
                                                on_change: ..self = value
                    Zuletzt geändert von Cannon; 03.02.2019, 17:58. Grund: Code korrigiert

                    Kommentar


                      #25
                      Was sehr schade ist.....

                      das Plugin wertet offensichtlich nach 'summary': / 'description':

                      nur das erste Wort nach dem Doppelpunkt und bis zum ersten Leerzeichen aus.
                      Was bei mir immer 'abfallfraktion', / 'abfuhrtermin!', ergibt.

                      Beispiel:
                      Code:
                      tzinfo=tzfile('/usr/share/zoneinfo/europe/berlin')), 'categories': 'abfuhrtermine,'}], datetime.date(2019, 2, 25): [{'class': 'public', 'description': 'abfallfraktion', 'summary': 'abfuhrtermin!', 'location': 'glattbach', 'end': datetime.datetime(2019, 2, 25, 15, 0,
                      Im "iCal" Kalender steht folgendes:
                      Code:
                      DTSTART:20190225T050000Z
                      DTEND:20190225T150000Z
                      LOCATION;LANGUAGE=de:Glattbach
                      TRANSP:OPAQUE
                      SEQUENCE:0
                      UID:d6191b25babffd99b95d7abfb6440449
                      DTSTAMP:20190202T230700Z
                      CATEGORIES;LANGUAGE=de:Abfuhrtermine,
                      DESCRIPTION;LANGUAGE=de:[MARKIEREN]Abfuhrtermin [/MARKIEREN]Biomüllabfuhr in Glattbach am 25.02.2019
                      SUMMARY;LANGUAGE=de:[MARKIEREN]Abfuhrtermin[/MARKIEREN] Biomüllabfuhr am 25.02.2019
                      PRIORITY:5
                      CLASS:PUBLIC
                      URL:http://paw-kuhs.de/
                      STATUS:CONFIRMED
                      BEGIN:VALARM
                      ACTION:DISPLAY
                      TRIGGER:-PT1440M
                      DESCRIPTION:ABFALLFRAKTION
                      SUMMARY:ABFUHRTERMIN!
                      Gruß, JG

                      Kommentar


                        #26
                        Haiphong Kuck nochmals in dein File. Da sind die letzten zwei Zeilen:
                        Code:
                         
                         DESCRIPTION:ABFALLFRAKTION SUMMARY:ABFUHRTERMIN!
                        Woher auch immer die kommen. Jedenfalls wird vom Plugin nichts abgeschnitten. Das Einzige, was man machen könnte, wäre nur den ersten description-Eintrag heranzuziehen. Aber es könnte ja auch umgekehrt im ical drin stehen..? Oder vielleicht, dass der Eintrag mit "Language" Vorrang hat..? Besser wäre aber, das ical File zu korrigieren.

                        Kommentar


                          #27
                          Cannon Ich glaube zu wissen, wofür die eine Zeile mit dem Linebreak war. Eventuell gehen manche Einträge in der nächsten Zeile weiter, da sie sonst zu lang wären. Die werden aktuell ignoriert, ich schau mir das aber noch an.

                          Kommentar


                            #28
                            Zitat von Onkelandy Beitrag anzeigen
                            Ich glaube zu wissen, wofür die eine Zeile mit dem Linebreak war. Eventuell gehen manche Einträge in der nächsten Zeile weiter, da sie sonst zu lang wären. Die werden aktuell ignoriert, ich schau mir das aber noch an.
                            Verstehe. Aber alle Linebreaks deshalb zu löschen macht auch wenig Sinn. Dazu müsste man einen iCal haben, der solche Breaks einfügt. Allerdings, und ich kenne das iCal-Format nicht so gut, sieht es so aus, dass das Format Zeilenbasiert ist, weil jede Zeile mit einem Kommando beginnt. Würde das anders sein, würde das alles durcheinanderbringen, spätestens dann, wenn zufällig ein "Kommando" gleichzeitig z.B. als Termin verwendet wird.

                            Ich nutze im Übrigen auch dein Plugin jetzt. Die Installation ist allerdings etwas müßig. Geht das auch anders, also ohne Paste & Copy?

                            Kommentar


                              #29
                              Ich denke, copy paste ist das Einfachste.

                              Habe nochmals ein Update hochgeladen: https://github.com/onkelandy/plugins/tree/ical/ical
                              Für
                              Haiphong gibt es nun eine Lösung und zwar einen "prio" wert, der nach dem offset und delta angegeben werden kann. z.B. prio = 2, dann kommt die "schlechte" summary und description" Keine prio oder prio=1, dann bleibt der erste Eintrag erhalten.

                              Bezüglich des Linebreaks habe ich nun glaub auch eine gute Lösung, die sowohl auf Windows als auch Linux funktionieren sollte. Es ist bei manchen Einträgen bei mir tatsächlich so, dass eine Zeile mit "\n" anfängt. das wird nun glatt gebügelt. Falls es wo Probleme macht, schau ich nochmals drüber.

                              Wäre gut, ihr könntet die neue Version testen. Wenn alles klappt, kommt's in den offiziellen develop Zweig der Plugins.

                              Noch was anderes. Ich bekomme bei der Abfrage von https URLs folgenden Fehler: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1051). Der Server ist aber definitiv "sauber". Hat das Problem sonst noch jemand? Hätte schon eine Lösung parat.

                              Kommentar


                                #30
                                Hallo Andy,
                                danke für Deine Unterstützung.....

                                Hab das Plugin mit Deinen Änderungen geladen
                                Nach jeder Änderung mach ich einen Neustart --> " sudo systemctl restart smarthome.service"

                                Wenn ich's richtig verstanden habe dann sollte es so aussehen:
                                Code:
                                kalender_abfall = sh.ical('http://192.168.178.44/smartVISU2.9/Glattbach-2019.ics', delta=30, offset=0, [MARKIEREN]prio=2[/MARKIEREN])
                                str_kalender_abfall = str(kalender_abfall)
                                sh.kalender.abfall.text(str_kalender_abfall.lower())
                                Egal ob "prio=2" oder "prio=1" , der Kalender wird nicht gelesen.

                                Ohne "prio=x" wird der Kalender unverändert gelesen ( Problem: "Abfuhrtermin" und nix weiter )

                                Hab mal den Kalender angehängt ( *.ics umbenannt nach *.txt )
                                Angehängte Dateien
                                Zuletzt geändert von Haiphong; 04.02.2019, 00:54.
                                Gruß, JG

                                Kommentar

                                Lädt...
                                X