Zitat von Simml
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
Müllkalender in RGB LED
Einklappen
X
-
Zitat von Cannon Beitrag anzeigenIch 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.
Zitat von Allesreinwasgeht Beitrag anzeigengibt es noch etwas "deutscheres" als die Mülltonnenfarbe per Status im Smarthome. Ich werde nich wieder
Aber damit ist jetzt endlich Schluss.
Kommentar
-
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():
Kommentar
-
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
-
Zitat von Onkelandy Beitrag anzeigenDas ical Plugin hab ich mir grad angesehen. Wozu die replace-Zeile gut ist/war, ist mir auch unklar.
Gut, dass du das Update gemacht hast bei github, dann brauche ich nicht darüber nachdenken, wie ich das da hochlade. ;-)
Kommentar
-
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])
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
Kommentar
-
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,
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
-
Haiphong Kuck nochmals in dein File. Da sind die letzten zwei Zeilen:
Code:DESCRIPTION:ABFALLFRAKTION SUMMARY:ABFUHRTERMIN!
Kommentar
-
Zitat von Onkelandy Beitrag anzeigenIch 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.
Ich nutze im Übrigen auch dein Plugin jetzt. Die Installation ist allerdings etwas müßig. Geht das auch anders, also ohne Paste & Copy?
Kommentar
-
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
-
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())
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 DateienZuletzt geändert von Haiphong; 04.02.2019, 00:54.Gruß, JG
Kommentar
Kommentar