Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin: Pushbullet

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

  • Sandman60
    antwortet
    Also bei mir läuft noch alles einwandfrei, eigentlich zu gut , denn ich schicke tw. tonnenweise Nachrichten die es dann irgendwann zu löschen gilt.
    @Lars: Hast Du Erfahrungswerte wie man eine Lifetime der Meldungen setzen kann oder wie man eine Nachricht auf "hinfällig" setzen kann? Soweit ich das mal kurz in der API überflogen habe geht das unter Referenzierung auf die alte ID. Die müßte dann aber abgegriffen werden.... Damit könnte ich einige Meldungen eliminieren sobald bspw. ein Alarm wieder aufgehoben ist.

    Cheers,
    Oliver

    Einen Kommentar schreiben:


  • fuxl66
    antwortet
    Ok nach dem neuen Update gehts auch wieder, jedoch gibt es scheinbar nur noch Notizen und keine Listen mehr. Ich verwende viele Mehrzeilige Pushnachrichten. :-(

    Einen Kommentar schreiben:


  • Shai
    antwortet
    Hey,

    ich hab das gerade mal ausprobiert und bei mir funktioniert das weiterhin ohne Probleme.
    Ich hab allerdings auch gerade das Update gemacht, da steht in den Release Notes "Fixed a notification bug when sending messages to yourself"

    Eventuell gab es einen Bug in der App.

    Einen Kommentar schreiben:


  • fuxl66
    antwortet
    Hi, Ich habe gestern meine Android App auf die Version 16.1.2 upgedated und seit dem bekomme ich keine pushnachrichten von sh.py geliefert. Hat noch jemand diese Probleme?

    Einen Kommentar schreiben:


  • Sandman60
    antwortet
    Schuß ins Blaue... Dein Plugin ist kein Text/Plugincode sondern die HMTL-Seite vom GIT, sprich schau mal die __init__ Datei mit einem Notepad oder ähnlichem an...

    Einen Kommentar schreiben:


  • Hahn
    antwortet
    Hi,

    erstmal vielen Dank für das Plugin!!!

    Ich habe magic ebenfalls nachinstalliert:
    Code:
     
     git clone git://github.com/ahupp/python-magic.git cd python-magic sudo python3 setup.py install
    jetzt bekomme ich allerdings folgende Fehlermeldung:
    Code:
     Plugin pushbullet exception: invalid syntax (__init__.py, line 4) -- plugin.py:__init__:57
    Traceback (most recent call last):
      File "/usr/local/smarthome/lib/plugin.py", line 53, in __init__
        plugin_thread = Plugin(smarthome, plugin, classname, classpath, args)
      File "/usr/local/smarthome/lib/plugin.py", line 79, in __init__
        exec("import {0}".format(classpath))
      File "<string>", line 1, in <module>
      File "/usr/local/smarthome/plugins/pushbullet/__init__.py", line 4
        <!DOCTYPE html>
        ^
    SyntaxError: invalid syntax
    Vielleicht kann mir jemand weiter helfen.

    Was mir auch nicht wirklich klar ist, welchen Wert ich bei "apikey" setzen muß.

    Vielen Dank für Eure Hilfe!

    Einen Kommentar schreiben:


  • Sandman60
    antwortet
    Hi Lars,

    perfekter Remotesupport! Hätte da ja auch mal bzgl. "Requests" googlen können

    "import logging" war schon vorhanden und wie Du geschrieben hast durch das Einfügen in Zeile 37 von
    Code:
    logging.getLogger("requests").setLevel(logging.WARNING)
    wird die Meldung nun sauber unterdrückt.

    Perfekt!

    Cheers,
    Oliver

    Einen Kommentar schreiben:


  • Shai
    antwortet
    Moin Oliver,

    Offenbar kommt die Logzeile aus dem Requests Modul, daher hilft vermutlich das weiter:

    python - How do I disable log messages from the Requests library? - Stack Overflow

    Ich hab es noch nicht ausprobiert, da ich gerade nur mobil im Forum unterwegs bin, würde aber folgendes versuchen:

    In der PB-Plugin "__init__.py", oben bei den Imports (Zeile 29) einfach:

    Code:
    import logging
    und in der "init" Funktion (Zeile 37) dann

    Code:
    logging.getLogger("requests").setLevel(logging.WARNING)


    Grüße,

    Lars

    Einen Kommentar schreiben:


  • Sandman60
    antwortet
    Hi Lars,

    danke für das schnelle Feedback. Yo, ich lass das dann mal so. Config hatte ich ja schon mal ein paar Posts vorher gepasted...

    Das läuft jetzt alles wie es sein soll, einfach Spitze und ich mache die Prüfung einfach in der Emaillogik direkt, ist flexibler und passt nun.

    Damit habe ich nun knapp 400 Items in der Email/PB-Überwachung.

    Eine Sache ist mir aber heute noch aufgefallen die ich gerne noch wegbringen würde.... Kann man den Logientrag: "Starting new HTTPS connection (1): api.pushbullet.com" noch irgendwie wegbekommen bzw. auf logger.debug bekommen? Im Plugin selbst habe ich dazu erst mal auf die Schnelle keinen Eintrag gefunden...

    Any idea?

    Cheers,
    Oliver

    Einen Kommentar schreiben:


  • Shai
    antwortet
    Hey Oliver,

    Wie sieht denn die Konfiguration das aus?
    Prinzipiell würde ich sagen das Python das richtig macht. Wenn man über einen String iteriert dann passiert das tatsächlich
    Zeichenweise.

    Ich vermute das Smarthome.py bei Einträgen ohne das Trennzeichen auch wirklich nur einen String liefert, bei welchen mit Trennzeichen entsprechend eine Liste.

    Deine Lösung mit der Typ Prüfung ist daher wohl notwendig. Eine Prüfung auf beide Fälle ist robuster, du könntest es vermutlich micro-optimieren wenn du z.B. Nur auf Liste prüfst und n else nimmst. Die Typ Prüfung ist vermutlich marginalst langsamer ;-)

    Grüße Lars

    Einen Kommentar schreiben:


  • Sandman60
    antwortet
    Läuft!

    So, kurze Rückmeldung...
    Habe heute mal einige Tests bzgl. der multiplen Versendung gemacht und nun auch eine Lösung gefunden, welche mir aber irgendwie nicht ganz logisch erscheint.
    Problemstellung: Es gibt Attribute mit Einzeleinträgen und welche mit Mehrfacheinträgen (mit | als Trennzeichen). Wenn ich nun die Einträge in eine Liste packe wird der Einzeleintrag zeichenweise abgearbeitet.

    Habe das nun durch eine Abfrage "if isinstance(PBEmpfaenger, str)" und "if isinstance(PBEmpfaenger, list)" umschifft. Ob man das Eleganter machen kann, i don't know...

    Code:
    if 'pushbulletrecipient' in EmailAlertItem.conf:
        PBEmpfaenger = EmailAlertItem.conf['pushbulletrecipient']
        if isinstance(PBEmpfaenger, str):
            sh.pushbullet.note(Betreff, Body, PBEmpfaenger)
            logger.debug("Pushbullet versendet an " + str(PBEmpfaenger))
        if isinstance(PBEmpfaenger, list):
            for entry in PBEmpfaenger:
                sh.pushbullet.note(Betreff, Body, str(entry))
                logger.debug("Pushbullet versendet an " + str(entry))
    Vielleicht hilft es ja jemanden oder aber irgendwer hat noch eine bessere Idee....

    Cheers,
    Oliver

    Einen Kommentar schreiben:


  • Sandman60
    antwortet
    Hi Waldemar,

    ok, gut zu wissen, das werde ich testen, denn dann wäre auch das Trennzeichen unabhängig von irgendwelchen Sonderzeichen (ok, die sind in Email eh nicht zugelassen) und klar, no Parsing.

    THX. Werde ich testen und berichten.

    Cheers,
    Oliver

    BTW: Das mit den 3K Items sollte kein protzen sein sondern etwas was mir so langsam Sorgen bereitet. Von den 2979 Items sind nur 1212 KNX-items, der Rest sind Hilfs- und Sonstige Items. Ich muß da dringend optimieren, daher auch der Punkt nicht noch ein List-Item zus. miteinzuführen, was dann wieder rund 400 Items für das Alerting nachziehen würde. Daher ist der Punkt mit dem List klasse.

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Hi Oliver,

    es gibt doch listartige Attribute, die Listeinträge werden mit '|' getrennt.
    Code:
                            emailrecipient = xxx@xxx.xx | yyy@yyy.yy
                            pushbulletrecipient = zzz@zzz.zz | fff@fff.ff
    Ich habe allerdings noch nicht in Logiken darauf reagiert, deswegen weiß ich nicht, ob die wirklich als Liste ankommen.
    Ich dachte allerdings, dass diese Notation vom .conf-Parser verstanden wird und aus dem Attribut dann eine Liste macht.

    So solltest Du um das Parsen rumkommen können...

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • Tom Bombadil
    antwortet
    Zitat von Sandman60 Beitrag anzeigen
    ... und ich bin jetzt schon bei knapp 3000 Items

    (nicht ironisch gemeint - sorry, couldn't resist)

    Einen Kommentar schreiben:


  • Sandman60
    antwortet
    Hmm, im Moment stehn die Empfänger in der Config eines Items, das sieht dann bspw. so aus für die Störungsüberwachung eines Rollos:
    Code:
                    [[[[[LeitungPruefen]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_cache = 0/0/0
                        cache = yes
                        [[[[[[Emailalert]]]]]]
                            visu_acl = rw
                            type = bool
                            cache = yes
                            emaildevice = (Rollo XXX Tuere Nord)
                            emailsubjecttext = Zuleitungsproblem
                            emaillongtext = Stromzuleitungsproblem. Empfehlung: Pruefen ob Sicherungsausfall
                            emailcategory = 2
                            emailstatuson = aktiv
                            emailstatusoff = aufgehoben
                            emailrecipient = xxx@xxx.xx, yyy@yyy.yy
                            pushbulletrecipient = zzz@zzz.zz, fff@fff.ff
    Wenn ich da nun noch jeweils ein Listitem einführe kommen wieder rund 400 Items dazu (... und ich bin jetzt schon bei knapp 3000 Items ).

    Ich muß mal schauen wie ich es mache. Eine Idee wäre auch einfach mehrere pushbullet-Zeilen einzufügen und dann numerisch pro Empfänger hochzuzählen also dann pushbulletrecipient1=, pushbulletrecipient2= usw. und dann einfach einen if exist auf die Config zu machen solange bis ein False kommt.

    Ich muß mal weiter grübeln, trotzdem schon mal Danke für die Anregungen.

    Cheers,
    Oliver

    Einen Kommentar schreiben:

Lädt...
X