Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin -> Doorbird

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

    Neues Plugin -> Doorbird

    hier mein Plugin zur Kommunikation mit der Doorbird Sprechanlage. Vorerst noch in Meinem Github
    https://github.com/Bonze255/smarthom...aster/doorbird

    Vielleicht kann es ja jemand gebrauchen und ebenfalls testen.

    #2
    Hallo,

    Erstmal Danke dass du ein doorbird plugin zur Verfügung stellst.
    Hab es nun unter v1.7.2 versucht einzubinden (Python 3.8).
    Bekomme beim Starten von SHNG allerdings folgende Meldung:
    ERROR lib.plugin Plugin 'doorbird' exception during import of __init__.py: invalid syntax (__init__.py, line 271)
    > Traceback (most recent call last):
    > File "/usr/local/smarthome/lib/plugin.py", line 531, in __init__
    > exec("import {0}".format(classpath))
    > File "<string>", line 1, in <module>
    > File "/usr/local/smarthome/plugins/doorbird/__init__.py", line 271
    > else if decryped_event == 'doorbell':
    > ^
    > SyntaxError: invalid syntax

    Auch lassen sich keine Einstellungen im Plugin speichern.

    greets

    Kommentar


      #3
      Ich muss das aktualisierte plugin mal hochladen, bei mir läuft es ganz gut

      Kommentar


        #4
        welche einstellungen sollen sich denn eigentlich im Plugin speichern lassen? Die werte werden nur ausgelesen, ich weiss gar nicht ob Doorbird das ändern der Einstellungen von extern erlaubt.

        so, zieh dir nochmal die __init__.py,.. sollte jetzt keinen fehler mehr werfen. Dieser codeabschnitt wird nur bei einem Event ausgeführt, d.h. bei einer Bewegung oder einem Klingelversuch.
        Zuletzt geändert von Bonze; 15.08.2020, 19:08.

        Kommentar


          #5
          echte Anfängerfrage, wie bekomme ich denn das Plugin jetzt in meinen SmarthomeNG?
          never fummel a running system...

          Kommentar


            #6
            - im Verzeichnis ../plugins ein Unterverzeichnis mit dem Namen des Plugins anlegen (nur Kleinbuchstaben)
            - alle Dateien des Plugins in das angelegte Verzeichnis kopieren

            Anschließend kannst Du das Plugin konfigurieren und nutzen.
            Viele Grüße
            Martin

            There is no cloud. It's only someone else's computer.

            Kommentar


              #7
              tut mir leid, ich bin da wohl zu doof, aber ich bekomme die Werte der Konfiguration nicht reingespeichert.
              Kann mir einer aus der Plugin-Ymal den Abschnitt bitte mal posten?
              Danke Peter
              never fummel a running system...

              Kommentar


                #8
                Ja mach ich morgen

                Kommentar


                  #9
                  Code:
                  Doorbird:
                  class_name: Dbird
                  class_path: plugins.doorbird
                  ip: '192.168.178.x'
                  username: 'xxx'
                  password: 'xxxxx'
                  read_cycle: 30
                  max_files: 50
                  image_dir: '/var/www/html/smartVISU2.9/doorbirdimg/'
                  webserver_image_dir: 'http://192.168.178.91/smartVISU2.9/doorbirdimg/'
                  ich habe nen eigenen User in der Doorbird erstellt .
                  Das Plugin soll auch die Möglichkeit bieten Bilder lokal abzuspeichern, deshalb der Pfad un die max Files, kannste so lassen falls nicht benötigt,
                  Ich muss zugeben, dass ich mir das auch nochmal angucken müsste um sagen zu können ob das 100%ig funktioniert.
                  Naja der nächste Lockdown kommt ja

                  Kommentar


                    #10
                    Tolle Arbeit, vielen Dank!
                    habe das implementiert und hätte noch einen oder 2 Wünsche.....
                    1.) das Verzeichnis in Smartvisu / Doorbirdimg.... nutze ich auch für meine 3 Axiskameras für die Einfahrt und den Eingangsbereich.
                    Die werden dann mit Doorbird.bell angetriggert und machen jede 3 Snapshots in das Verzeichnis. Das ganze wird dann als Mail an mich auf dem Handy geschickt.
                    Liegt daran, dass ich in Besprechungen mein Handy immer lautlos habe und nicht immer sofort nachsehen kann.
                    Deshalb wäre ein Trigger / Schalter "cleanup" für das Verzeichnis im Plugin nicht schlecht.

                    Der code dafür:
                    Code:
                     TIME_OFFSET_IN_SECONDS = 5
                    for root, _, files in os.walk('/var/www/html/smartVISU/doorbirdimg'):
                    for filename in files:
                    full_path = os.path.join(root, filename)
                    #print(fullpath)
                    if time.time() - os.path.getmtime(full_path) > TIME_OFFSET_IN_SECONDS:
                    try:
                    os.remove(full_path)
                    logtxt = '{} gelöscht '.format(full_path)
                    except Exception as e:
                    logtxt = 'Datei "{}" konnte nicht geloscht werden. Fehlermeldung: {}'.format(full_path, e)
                    
                    logger.info('doorbird bell - > Picture AXIS speichern')
                    würde das "vereinfachen".

                    By the way, hat einer ein AXIS-Plugin um das Triggern dann auch "schöner" zu machen? Ich würde an der Stelle gerne die Motion-Detection als BWM missbrauchen.
                    Momentan triggere ich so:

                    Code:
                    sh.tools.fetch_url('http://192.168.178.48/axis-cgi/io/virtualinput.cgi?action=6:\\')
                    sh.tools.fetch_url('http://192.168.178.XX/axis-cgi/io/virtualinput.cgi?action=6:\\')
                    sh.tools.fetch_url('http://192.168.178.XX/axis-cgi/io/virtualinput.cgi?action=6:/')
                    sh.tools.fetch_url('http://192.168.178.XX/axis-cgi/io/virtualinput.cgi?action=6:/')
                    (Das sh.tools ist dem geschuldet, dass ich schlichtweg nicht weiss, wie ich unter Items... den fetch_url Befehl richtig einbaue....

                    Ausserdem noch ein weiterer Wunsch.
                    Die Hinterleuchtung der Siedle Anlage ist bei mir mit den Läden gekoppelt, diese richten sich nach Sunrise uns sunset mit Zeitlimitation.
                    Wäre denkbar das Buttonlicht im Doorbird auch entsprechend anzusteuern?

                    So long, und erstmal Danke!
                    gruß Peter
                    never fummel a running system...

                    Kommentar


                      #11
                      du kannst einmal die Doorbell oder auch die Bewegungsmelder Aktion.
                      zum Cleanup, momentan ist es als Ringspeicher programmiert, sodass es immer die max anzahl der letzten Bilder sind. ich weis jetzt gar nicht, wenn du noch andere Bilder reinspeicherst, ob diese mitgezählt werden.
                      Die Buttonbeleuchtung lässt sich glaube ich noch nicht mit der APi steuern, muss da mal nachsehen.

                      Kommentar


                        #12
                        Hallo Bonze,

                        ich habe das Plugin versucht zu installieren. Ich kann es über die Plugin Konfiguration hinzufügen. Wenn ich jedoch die Paramater über shng ändern möchte geht das nicht. Lasse ich die Boxen leer kann ich sichern anklicken und das Fenster verschwindet. Füge ich nur einen Buchstaben in eines der Felder hinzu, funktioniert "Sichern" nicht mehr.

                        Ich habe jetzt deinen Yaml Abschnitt mal reingepackt. Das Plugin startet ich bekomme aber folgende Meldungen:

                        Exception in thread Thread-22:
                        Traceback (most recent call last):
                        File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner
                        self.run()
                        File "/usr/lib/python3.7/threading.py", line 865, in run
                        self._target(*self._args, **self._kwargs)
                        File "/usr/local/smarthome/plugins/doorbird/__init__.py", line 285, in UDPServer
                        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # Create Datagram Socket (UDP)
                        NameError: name 'socket' is not defined

                        ^Csmarthome@smarthomeNG-smartVISU:/usr/local/smarthome/bin$ python3 smarthome.py -d
                        Exception in thread Thread-22:
                        Traceback (most recent call last):
                        File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner
                        self.run()
                        File "/usr/lib/python3.7/threading.py", line 865, in run
                        self._target(*self._args, **self._kwargs)
                        File "/usr/local/smarthome/plugins/doorbird/__init__.py", line 285, in UDPServer
                        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # Create Datagram Socket (UDP)
                        NameError: name 'socket' is not defined

                        Kommentar


                          #13
                          ok, welche smarthomeng version nutzt du ?
                          ich nutze V1.6

                          was passiert, wenn du die yaml vom hand editierst?


                          TRex Hab ne funktion cleanup eingebaut, welche das Verzeichnis leert.
                          hab das Github aktualisiert, in der plugin.yaml in den structs steht auch genau wie man das aufruft.
                          Zuletzt geändert von Bonze; 14.12.2020, 17:44.

                          Kommentar


                            #14
                            hi,


                            1.7.2.master (3828810e)

                            Wenn ich deinen YAML Abschnitt einfüge und auf meine Gegebenheiten anpasse funktioniert es soweit. Die Meldungen oben kommen dennoch im Debug Modus.

                            Kommentar


                              #15
                              was funktioniert soweit? das plugin?
                              oder ist die fehlermeldung anders?

                              Kommentar

                              Lädt...
                              X