Ankündigung

Einklappen
Keine Ankündigung bisher.

Müllkalender in RGB LED

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

  • Haiphong
    antwortet
    Hallo Andy, bin mir bewußt ..... bin in der Bringschlud ( sorry )

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Ich hab hier ein neues Update hochgeladen, das auf Tester wartet.. https://github.com/onkelandy/plugins/tree/ical/ical

    Bei mir kommt trotz 10 Sekunden Timeout beim erneuten Abrufen eines Onlinekalenders extrem oft ein Downloadfehler. Beim ersten Start funktioniert es hingegen immer. Keine Ahnung, ob es an mir liegt, zumal ich wohl generelle Netzprobleme zu haben scheine.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    reminder
    Haiphong

    Einen Kommentar schreiben:


  • Haiphong
    antwortet
    Hallo Andy, werde es am WE noch mal testen. ( hab es bisher noch nicht zum laufen gebracht )

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Wie sieht es aus? Funzt alles? Hat sonst niemand Probleme mit https?

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Bitte nochmals neue Version ziehen, da war tatsächlich ein Fehler. Jetzt müsste es klappen
    Zuletzt geändert von Onkelandy; 05.02.2019, 06:25. Grund: bug fixed

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Kannst du es mal mit einem lokalen Kalender, also ohne https probieren? Du bräuchtest übrigens prio=1, da du ja die ersten Einträge nutzen willst.
    Ich teste es dann mal mit deinem Kalender, wobei ich das eigentlich mit einem oben geposteten Eintrag schon gemacht hatte. Allerdings nur lokal.

    Einen Kommentar schreiben:


  • Haiphong
    antwortet
    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.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    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.

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    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?

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    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.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    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.

    Einen Kommentar schreiben:


  • Haiphong
    antwortet
    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!

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    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

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    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. ;-)

    Einen Kommentar schreiben:

Lädt...
X