Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin: Pushbullet

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

  • Mischl
    antwortet
    Hattest natürlich recht. Blöder Anfänger-Fehler. Jetzt klappt es. Vielen Dank.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Sieht so aus, als sei da kein Git Checkout gemacht worden sondern einfach Copy and Paste aus dem Browser ohne in das RAW Format zu gehen.. Da ist HTML im File...

    PS: die delete Methode sehe ich im aktuellen GIT Code (1.2er Branch) enthalten
    Zuletzt geändert von psilo; 13.07.2016, 06:18.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Mischl Das sieht jetzt aber irgendwie so aus, als wäre das Python File nicht richtig gespeichert worden...
    Andere Frage, was ist denn grad die aktuellste Version? Ist die per Git zum runterziehen und der Anhang auf Seite 5?

    Einen Kommentar schreiben:


  • Mischl
    antwortet
    Bin einen Schritt weiter, aber auch ncht wirklich schlauer, liegt wahrscheinlich hieran:

    Code:
    2016-07-11 22:56:53,732 DEBUG    Main         Plugin: pushbullet -- plugin.py:__init__:43
    2016-07-11 22:56:53,737 ERROR    Main         Plugin pushbullet exception: invalid syntax (__init__.py, line 5) -- 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 5
        <!DOCTYPE html>
        ^
    SyntaxError: invalid syntax

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Mischl sieht für mich so aus, als wäre das plugin nicht erkannt worden. hast du alle pakete installiert? insbesondere magic hat bei mir mega gezickt bis es wollte.

    Einen Kommentar schreiben:


  • Mischl
    antwortet
    Hallo, habe auch versucht das Plugin zu implementieren. Beim Test in Smarthome kommt folgende Fehlermeldung:

    Code:
    Python 3.2.3 (default, Mar  1 2013, 11:53:50)
    [GCC 4.6.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    (InteractiveConsole)
    >>> Unhandled exception in thread started by <bound method Thread._bootstrap of <Thread(zeit, stopped -1269828496)>>
    sh.pushbullet.note("Note to myself.", "Call my mother.")
    Traceback (most recent call last):
      File "<console>", line 1, in <module>
    AttributeError: 'SmartHome' object has no attribute 'pushbullet'
    Hat jemand eine Idee?

    Mfg Micha

    Einen Kommentar schreiben:


  • Sandman60
    antwortet
    Hi,
    habe das hier drinnen bei def_init:
    Code:
        def __init__(self, smarthome, apikey=None, deviceid=None, debug=False):
            logging.getLogger("requests").setLevel(logging.WARNING)
    Cheers,
    Oliver

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Shai inwieweit SH wirklich multithreaded ist ist mir auch noch nicht so ganz klar.. es spannt ja 7 threads auf, aber ob ich dann bspw in einer logik problemlos ein wait machen kann und wie sich pushbullet dann später beim löschen verhält (wird es vom handy dann auch wieder gelöscht?) ist spannend. lasse die nachrichten jetzt erstmal drin, top secret ist da eh nichts und PB macht sicher auch vorratsdatenspeicherung.. sicher nur ein delete flag auf deren seite dran. kein echtes delete..

    Einen Kommentar schreiben:


  • Shai
    antwortet
    Hey,

    schön zu hören das es auf anhieb lief.

    @Oliver
    Wo hast Du die Zeile ""logging.getLogger("requests").setLevel(loggi ng.W A RNING)")" genau eingebaut - dann würde ich das noch übernehmen und anschließend mal einen neuen Pull-Request stellen, bzw. die Readme noch erweitern.


    psilo
    Das die Nachricht sofort gelöscht wird ist bei deinem Code tatsächlich erst einmal logisch, da das ganze ja einfach sequenziell abgearbeitet wird also im Millisekundenbereich. Vermutlich würde es helfen vorm Löschen das ganze etwas warten zu lassen z.B. mit "time.sleep(xxx)"
    Ich weiß allerdings gerade nicht ob dabei das ganze Smarthome.py kurz angehalten werden würde (Single-Thread).

    Alternativ evtl. mit "autotimer" oder so, nach x Sekunden das Feld zurücksetzen und in die Logik einbauen wenn das Item geleert wird das Delete auszuführen.

    Code:
    import time;
    
    if sh.communication_items.pushbullet_note():
        response = sh.pushbullet.note("Neue Nachricht", sh.communication_items.pushbullet_note())
        ​iden = response['iden']
    [COLOR=#FF0000]   sh.communication_items.pushbullet_note("")
       [/COLOR] time.sleep(1000)
        sh.pushbullet.delete(iden)
    Zuletzt geändert von Shai; 10.11.2015, 13:46.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Hmm ich pers. finde nen Sendebutton nervig. Muss aber mal schauen, wie es mit Touch ohne den Button funktioniert.. Umgebaut ist das mit JS ja schnell.
    Update: geht mit Touch super.. Man muss ja nur bestätigen. Wenn ich separat auf nen Button gehen muss, dauert das zu lange und keiner nutzt es, finde ich.
    PS: der Loop leuchtet mir gerade nicht ein, weil ich ja mit watch_item auf dem Ding horche.. Ich dachte die Logik zieht dann nur bei Veränderung des Items und nur einmalig. Muss mal nen Debugoutput reinhauen anstatt dem Versenden.. Vielleicht hatte ich anfangs noch nen anderen Fehler
    Code:
    [CommunicationLogic]
        filename = communication.py
        watch_item = communication_items.pushbullet_note
    PPS: ein Clearen des Feldes macht so oder so aber Sinn, a) Feedback dass es geklappt hat b) für neue Nachrichten..
    Zuletzt geändert von psilo; 08.11.2015, 16:53.

    Einen Kommentar schreiben:


  • Sandman60
    antwortet
    THX! Schau ich mir gleich mal an. Das Textinput-Widget hatte ich schon gar nicht mehr auf'n Schirm..
    Das mit der letzten Zeile erscheint mir logisch, schaue ich mir aber auch mal an. Macht es evtl. Sinn hier mit einem Sendenbutton zu arbeiten? Wird grad aber offtopic, melde mich da nochmal.

    Cheers,
    Oliver

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Habs auf der Basis gemacht: https://github.com/herrmannj/smartvi...ster/textinput
    Die Files aus dem Repo bei mir im Projekt unter dem Folder "widgets" abgelegt..

    In der SmartVisu eingebettet mit
    Code:
    <script src="pages/<projektname>/widgets/widget_textinput.js"></script>
    {% import "widgets/widget_textinput.html" as textinput %}
    {{ textinput.textinput("note", "communication_items.pushbullet_note", "Nachricht:") }}
    SH Item:
    Code:
    [communication_items]
        [[pushbullet_note]]
        type = str
        visu_acl = rw  
        enforce_updates = true #weiss nicht ob man das braucht ;-)
    SH Logik:
    Code:
    if sh.communication_items.pushbullet_note():
        response = sh.pushbullet.note("Neue Nachricht", sh.communication_items.pushbullet_note())
        #iden = response['iden']
        #sh.pushbullet.delete(iden)
       [COLOR=#FF0000] sh.communication_items.pushbullet_note("")[/COLOR]
    Wichtig die rote Zeile, sonst greift bei mir - warum auch immer - die Logik in nem Endlos-Loop. Und Du spammst PushBullet zu..
    Wenns Probleme gibt einfach melden.
    Zuletzt geändert von psilo; 08.11.2015, 16:40.

    Einen Kommentar schreiben:


  • Sandman60
    antwortet
    Ist bei mir auch so beim exzessiven Testen aufgetreten, soll aber m.E. nach so sein... Bei mir wird allerdings nur der N-1 gelöscht, nicht die aktuelle Nachricht.
    Datenschutz ja, naja, das sind so Pillepalle-Meldungen, da wird keiner mit glücklich. Weiter bleibt m.E. die Nachricht auch bei einer Löschung im Log ersichtlich, daher bringt das Löschen da m.E. nix bzgl. Datenschutz.

    Das mit dem Eingabefeld würde mich auch interessieren, finde ich ne klasse Idee das aus der Visu raus zu machen, soweit war ich noch gar nicht...
    Magst den Code teilen, ggf. in einem eigenen Thread im SV (mit Kreuzverweis)? ***ich weiß, unverschämt***

    Einen Kommentar schreiben:


  • psilo
    antwortet
    So nachdem ich wegen meinem Synology System die libmagic.so jetzt neu gebaut habe geht es bei mir auch :-) Super Plugin. Mit dem Löschen habe ich das Symptom, dass er wohl so schnell löscht, dass die Meldung nicht mehr ans Handy ausgeliefert wird. In der Webapp von PushBullet sehe ich kurz die Nachricht, bevor sie dann wieder weg ist. Habt ihr das auch? Ich fände nachträgliches Löschen aus Sicht des Datenschutzes nicht schlecht (sofern das wirklich "echtes" Löschen dort ist..)

    Hab mir in der Smartvisu noch nen Input-Feld gebaut mit dem meine Frau mir schnell Nachrichten schicken kann. Eigentlich ganz praktisch.

    Einen Kommentar schreiben:


  • Sandman60
    antwortet
    Hey Lars,

    das sieht verdammt gut aus. Erste Tests mit Zwischenspeicherung der ID und anschließender Löschung haben 1A geklappt. Habe nun meine Logik testweise angepasst und werde nun Zug um Zug die nächsten Scripts umstellen. Werde berichten....
    Danke nochmal, klasse!

    Cheers,
    Oliver
    P.S.: Sollten die folgende Zeile noch am Anfang beim Init einbauen (zur Unterdrückung der API-Meldung beim Versenden "logging.getLogger("requests").setLevel(logging.WA RNING)")
    Zuletzt geändert von Sandman60; 08.11.2015, 00:55. Grund: P.S.: Hinzugefügt

    Einen Kommentar schreiben:

Lädt...
X