Ankündigung

Einklappen
Keine Ankündigung bisher.

Plugin Amazon Dashbutton

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

    #16
    Hallo Stefan,

    das Plugin ist echt klasse! Die Beschreibung im GitHub ist super, so dass ca. 30 Minuten nach auspacken des DashButtons das erste Licht geschaltet werden konnte.

    Was man ggf. noch erweitern könnte wäre bei den Values durch verschiedene Werte durchzusteppen. So könnte man z.B. eine Szene an- und ausschalten oder durch mehrere Szenen durchiterieren bevor man wieder bei der ersten Szene ist. Die Items.conf könnte dann so aussehen:

    Code:
    [Room]
        [[Dining_Room]]
            name = "Light Dimm DiningRoom"
            type = num
            knx_dpt = 5
            knx_send = 1/2/1
            knx_listen = 1/2/1
            knx_init = 1/2/3
            dashbutton_mac = cc:66:de:dd:55:11
            dashbutton_mode = 'value'
            dashbutton_value = 30 | 14 | 0

    Kommentar


      #17
      Gute Idee. Werde ich einbauen, weil auch wenig Aufwand.
      Sonos

      Kommentar


        #18
        Hallo Miteinander,

        es scheint, ich bin mal wieder zu doof.

        Hab alles laut Anleitung installiert,

        plugin.conf angepasst,

        Item sieht so aus:
        [[[[Esstischknopf]]]]
        sp = rw
        type = bool
        visu_acl = rw
        knx_dpt = 1
        knx_send = 2/0/7
        knx_init = 4/0/8
        dashbutton_mac = ac:43:6e:7b:b6:2c
        dashbutton_mode = 'flip'


        aber ich bekomme beim Starten nur folgendes:

        Exception in thread Thread-6:
        Traceback (most recent call last):
        File "/usr/local/lib/python3.5/threading.py", line 914, in _bootstrap_inner
        self.run()
        File "/usr/local/lib/python3.5/threading.py", line 862, in run
        self._target(*self._args, **self._kwargs)
        File "/usr/local/smarthome/plugins/dashbutton/__init__.py", line 30, in listen
        sniff(prn=self.dispatch, store=0, count=0, filter="udp", lfilter=lambda d: d.src in self._dashbuttons.keys())
        File "/usr/local/lib/python3.5/site-packages/scapy/sendrecv.py", line 572, in sniff
        s = L2socket(type=ETH_P_ALL, *arg, **karg)
        File "/usr/local/lib/python3.5/site-packages/scapy/arch/linux.py", line 468, in __init__
        self.ins = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(type))
        File "/usr/local/lib/python3.5/socket.py", line 134, in __init__
        _socket.socket.__init__(self, family, type, proto, fileno)
        PermissionError: [Errno 1] Operation not permitted

        Evtl kann mir jemand sagen was er von mir will.

        Bin auf dem DEV Image von Onkelandy.

        Vielen Dank schon mal.

        Gruß Wolfi

        Kommentar


          #19
          Bei mir löst das Plugin der damit verwandte Tools aktuell einen "2016-11-04 10:30:44 WARNING Main No route found for IPv6 destination :: (no default route?). This affects only IPv6 aus. Ideen?

          Offenbar macht das scapy: http://stackoverflow.com/questions/1...ing-the-module

          Ein Eintrag im YAML File und weg ist es...
          Zuletzt geändert von psilo; 04.11.2016, 16:41.

          Kommentar


            #20
            Zitat von psilo Beitrag anzeigen
            Bei mir löst das Plugin der damit verwandte Tools aktuell einen "2016-11-04 10:30:44 WARNING Main No route found for IPv6 destination :: (no default route?). This affects only IPv6 aus. Ideen?

            Offenbar macht das scapy: http://stackoverflow.com/questions/1...ing-the-module
            Das kommt von Scapy und kann ignoriert werden.
            Sonos

            Kommentar


              #21
              Ja, oder halt so in die etc/logging.yaml:

              Code:
              loggers:
                  scapy.runtime:
                      level: ERROR

              Kommentar


                #22
                Zitat von OsLee540i Beitrag anzeigen
                File "/usr/local/lib/python3.5/socket.py", line 134, in __init__
                _socket.socket.__init__(self, family, type, proto, fileno)
                PermissionError: [Errno 1] Operation Not permitted
                Du benutzt python3.5. Wie in der Anleitung steht, musst du eventuell die Pfade anpassen.

                Code:
                setcap cap_net_raw=eip /usr/bin/python3.4
                nach

                Code:
                setcap cap_net_raw=eip /usr/bin/python3.5
                Eventuell ist deine Python-Executable noch in einem anderen Pfad, kenne dein Image nicht.

                Gruss,

                Stefan
                Zuletzt geändert von pfischi; 04.11.2016, 16:55.
                Sonos

                Kommentar


                  #23
                  Merci Pfischi,

                  hab nicht gedacht das da tatsächlich Python3.5 drauf ist.

                  Der richtige Befehl war bei mir:
                  Code:
                   
                   setcap cap_net_raw=eip /usr/local/bin/python3.5
                  für die anderen die auch das Image nutzen. Bei mir läufts jetzt auch. Dankeschön! Gruß Wolfi

                  Kommentar


                    #24
                    Zitat von OsLee540i Beitrag anzeigen
                    ...
                    Bei mir läufts jetzt auch. Dankeschön! Gruß Wolfi
                    Immer gerne und danke fürs Feedback.
                    Sonos

                    Kommentar


                      #25
                      Zitat von dafra Beitrag anzeigen
                      Hallo Stefan,

                      das Plugin ist echt klasse! Die Beschreibung im GitHub ist super, so dass ca. 30 Minuten nach auspacken des DashButtons das erste Licht geschaltet werden konnte.

                      Was man ggf. noch erweitern könnte wäre bei den Values durch verschiedene Werte durchzusteppen. So könnte man z.B. eine Szene an- und ausschalten oder durch mehrere Szenen durchiterieren bevor man wieder bei der ersten Szene ist. Die Items.conf könnte dann so aussehen:

                      Code:
                      [Room]
                      [[Dining_Room]]
                      name = "Light Dimm DiningRoom"
                      type = num
                      knx_dpt = 5
                      knx_send = 1/2/1
                      knx_listen = 1/2/1
                      knx_init = 1/2/3
                      dashbutton_mac = cc:66:de:dd:55:11
                      dashbutton_mode = 'value'
                      dashbutton_value = 30 | 14 | 0
                      Ich bin gerade dabei, das umzusetzen. Jetzt gibt es an einer Stelle aber zwei Möglichkeiten, die ich hier mal zur Diskussion stelle.

                      Folgendes Szenario: Ein Dashbutton ist wie oben mit den Werten 30 | 14 | 0 belegt. Von aussen triggert jetzt eine andere Aktion einen Item-Wert von angenommen 20.
                      Es gibt jetzt zwei Möglichkeiten. Entweder behalte ich den letzten Wert des Dashbuttons (angenommen14) und mache bei nächsten Druck weiter mit 0, oder ein von aussen getriggerter Wert setzt den Dashbutton zurück und es fängt wieder von vorne an (am Beispiel also 30).
                      Sollte von außerhalb ein Wert getriggert werden, der einem der konfigurierten Werte des Buttons entspricht, würde ich diesen einfach aufnehmen und bei nächsten in der Reihe weitermachen.

                      Was ist hier die intuitivste Variante?


                      Gruss,

                      Stefan
                      Sonos

                      Kommentar


                        #26
                        Ich hätte spontan gesagt die Variante den DashButton auf den ersten Wert zurücksetzen, wenn das Item einen Wert außer der Reihe hat, ist intuitiver. Sonst weiß man nicht, was einem beim nächsten Tastendruck erwartet. Ansonsten weiß ja eh keiner, welchen Wert der DashButton als letztes geschrieben hatte, da ist sonst immer durchprobieren angesagt.

                        Das hätte auch den Vorteil, dass man bei Szenen als erstes eine bestimmte Szene, z.B. die "off"-Szene, nehmen kann. Wenn dann von extern eine Szene außerhalb der DashButton-Reihe getriggert werden würde, könnte man mit einem Knopfdruck alles ausschalten (bzw. die Default-Szene setzen). Wenn man nur die Beleuchtung ändern will, müsste man sowieso durchtackern (mit zu vielen Items wird sich das sicherlich eh keiner antun).

                        Gruß, Daniel

                        Kommentar


                          #27
                          Eventuell macht es auch Sinn, das Verhalten über ein Atribut des Items zu steuern. Falls das Attriut nicht angegeben ist, wird die Variante mit dem Zurücksetzen genommen.

                          Code:
                          [Room]
                          [[Dining_Room]]
                          name = "Light Dimm DiningRoom"
                          type = num
                          knx_dpt = 5
                          knx_send = 1/2/1
                          knx_listen = 1/2/1
                          knx_init = 1/2/3
                          dashbutton_mac = cc:66:de:dd:55:11
                          dashbutton_mode = 'value'
                          dashbutton_value = 30 | 14 | 0
                          dashbutton_loop = true # default: false

                          Gruß, Daniel

                          Kommentar


                            #28
                            Bei mir hat es auch geklappt!
                            Nur die
                            setcap cap_net_raw=eip /usr/local/bin/python3.5
                            setcap cap_net_raw=eip /usr/sbin/tcpdump
                            musste ich auch mit sudo absetzen. Evtl. könnte man ja als Bemerkung noch in die Readme mit aufnehmen, dass der Pfad in dem fertigen Image
                            setcap cap_net_raw=eip /usr/local/bin/python3.5
                            ist. Ich denke das benutzen hier sehr viele.

                            Dann noch eine Frage zur Readme.md:

                            Mit "KNX_INIT" kann man sich "KNX_LISTEN" eigentlich sparen. Das ist in INIT eigentlich schon vorhanden. Oder ist das hier von anderer Bedeutung?

                            Grüße und Vielen Dank für diese schöne Erweiterung...
                            Marc






                            Kommentar


                              #29
                              Hallo zusammen,

                              wie bereits angeküdigt habe ich das Plugin noch etwas erweitert.

                              Dem Attribut
                              Code:
                              dashbutton_value
                              kann jetzt eine Liste mit Werten übergeben werden. Nach einem Tastdruck wird jeweils der nächst folgende Wert der Liste als Itemwert gesetzt. Sollte von "aussen" durch eine andere Aktion ein Wert gesetzt werden, der nicht in der Liste vorhanden ist, wird bei einem erneuten Tastendruck wieder der erste Wert genommen.

                              Hinzugekommen ist der (optionale) Wert
                              Code:
                              dashbutton_reset
                              Dieser ist nur gültig, wenn wie oben beschrieben eine Liste als Wert übergeben wurde. Dem Attribut kann ein Wert in Sekunden zugewiesen werden, der festlegt, nach welcher Zeit ohne Änderung am Wert des Items wieder mit dem ersten Eintrag in der Liste von
                              Code:
                              dashbutton_value
                              fortgefahren wird.

                              Beispiel:

                              Code:
                              [Room]    
                                  [[Kitchen]]
                                      name = "Light Dimm Kitchen"
                                      type = num
                                      knx_dpt = 5
                                      knx_send = 1/2/1
                                      knx_listen = 1/2/1
                                      dashbutton_mac = dd:11:12:55:55:22 | cc:66:de:dd:55:11
                                      dashbutton_mode = 'value'
                                      dashbutton_value = 30|10|20|0
                                      dashbutton_reset = 240
                              1. Tastendruck ---> Itemwert 30
                              2. Tastendruck ---> Itemwert 10
                              3. Keine weitere Wertänderung innerhalb von 240 Sekunden
                              4. Tastendruck ---> Itemwert 30


                              Die Dokumentation ist entsprechend angepasst.


                              Grüsse,

                              Stefan
                              Sonos

                              Kommentar


                                #30
                                Vielen Dank dafür!

                                Bei mir ein praktischer Anwendungsfall:
                                Im Auto liegt ein Dashbutton, wenn ich auf die Auffahrt fahre, lasse ich schon mal die Rolläden hoch ;-)

                                Grüße,
                                Marc

                                Kommentar

                                Lädt...
                                X