Amazon Dash Button

Begonnen von gloob, 31 August 2016, 08:20:07

Vorheriges Thema - Nächstes Thema

Wzut

Zitat von: fh168 am 08 September 2016, 15:00:14
ich bin hier am verzweifeln :-)
mit meiner Version oder der von Andre ?
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

fh168

#106
ne, nicht von André, nur der Button, der mit Andres logik funktionieren soll.
Bei mir macht der einmal eine Verbindung (dash listening), danach passiert nach einem Tastendruck nix mehr.
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

betateilchen

Bei mir läuft die lan-ping Variante mit presence inzwischen völlig streßfrei und zuverlässig.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

fh168

@Betateilchen: Ich habe die Lan-Ping methode gerade mal ausprobiert, lief auf Anhieb :-)
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

peterk_de

Hmmmm ... lan-ping hatte ich auch relativ früh ausprobiert, klappte aber sowohl auf der Shell als auch in FHEM nicht wirklich stabil mit verschiedenen timeouts und intervallen. Manchmal sind Tastendrücke entwischt (schätzungsweise 1/4 der versuche).

... habt ihr eure ins Internet geblockt? Meine sind es komplett, vielleicht geben die buttons daher schneller auf und flutschen durch das ping-raster ...
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

prawn

#110
Hallo zusammen,

ich (ohne großartige Programmierkenntnisse) habe mir ein Python-Script mit ARP-Request-Abfrage und Telnet zusammengebastelt. Vielleicht hilft es ja dem einen oder anderen weiter oder ihr habt vielleicht Tipps für mich, ob daran noch etwas zu verbessern ist oder warum andere Alternativen vielleicht sinnvoller sind. Bisher funktioniert es zuverlässig und ich bin zufrieden. Signale kommen zuverlässig an und werden mit 2-3 Sekunden Verzögerung ausgeführt (hier Schalten von Funk-Aktor).

from scapy.all import *
import os
import logging
import telnetlib
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

send_cmd = '{if(Value("Funke_A_neu") eq "off") { fhem("set Funke_A_neu on") } else { fhem("set Funke_A_neu off")}}'
fhemhost = '192.168.178.23'
fhemport = 7072

def arp_display(pkt):
  if pkt[ARP].op == 1: #who-has (request)
    if pkt[ARP].psrc == '192.168.178.43': # ARP Probe
      if pkt[ARP].hwsrc == '0c:47:c9:b4:53:e0': # Persil
        print "Persil"
try:
tn = telnetlib.Telnet(fhemhost, int(fhemport))
        tn.write(send_cmd + "\n")
        tn.write("quit\n")
        tn.close()
except:
print "telnet exception"
print (sniff(prn=arp_display, filter="arp", store=0))


Das Ganze ist natürlich noch etwas rudimentär. Ich muss es dann noch als Cron-Job in mein Raspberry bekommen.

fh168

@nesges:
Ich bekomme bei meinem dash folgende Fehlermeldungen, habe ich was vergessen?

last_present
Error evaluating DASH_COTTONELLE userReading last_present: Undefined subroutine &main::presence_last_present called at (eval 9536) line 1.
2016-09-08 22:07:04
last_present_h
Error evaluating DASH_COTTONELLE userReading last_present_h: Undefined subroutine &main::seconds_humanreadable called at (eval 9538) line 1.
2016-09-08 22:07:04
last_present_s
Error evaluating DASH_COTTONELLE userReading last_present_s: Undefined subroutine &main::presence_absent_since called at (eval 9537) line 1.
2016-09-08 22:07:04
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

cyablo

Moin,

sehe ich das jetzt richtig das die Variante von Andre mit dem Modul nur funktioniert wenn FHEM auf der selben Maschine läuft die auch DHCP-Server ist?

justme1968

nein. die dhcp broadcasts sind im ganzen netz (der gleichen broadcast domain) zu sehen.

eher umgekehrt. wenn es der gleiche rechner ist  fhem  nicht als root läuft muss man die iptables regel noch erweitern damit sowohl der dhcp server als auch fhem die nachrichten bekommen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Wzut

Zitat von: betateilchen am 08 September 2016, 18:43:53
Bei mir läuft die lan-ping Variante mit presence inzwischen völlig streßfrei und zuverlässig.
Welchen Wert benutzt du bei den beiden Intervallen ?
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

betateilchen

Zitat von: Wzut am 09 September 2016, 09:56:20
Welchen Wert benutzt du bei den beiden Intervallen ?

2

Es hat aber auch mit 3 noch gut funktioniert.


Zitat von: justme1968 am 09 September 2016, 09:02:08
eher umgekehrt. wenn es der gleiche rechner ist,  fhem  nicht als root läuft, muss man die iptables regel noch erweitern

was allerdings voraussetzt, dass es auf diesem Rechner iptables überhaupt gibt...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

was beim anlegen schon voraussetzung gewesen wäre.

wenn man sie garnicht erst anlegen konnte braucht man sie natürlich auch nicht zu erweitern :)
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

es wäre schon schön, wenn man setcap oder authbind auch mit fhem bzw. perl einsetzen könnte...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

cyablo

Zitat von: justme1968 am 09 September 2016, 09:02:08
nein. die dhcp broadcasts sind im ganzen netz (der gleichen broadcast domain) zu sehen.

eher umgekehrt. wenn es der gleiche rechner ist  fhem  nicht als root läuft muss man die iptables regel noch erweitern damit sowohl der dhcp server als auch fhem die nachrichten bekommen.

Ah, du triggerst auf die DHCP Anfragen, nicht die Antworten. Dann hätte es gehen müssen, oh... jetzt dämmert mir was... DHCP Filter auf der Switch ist ja an!

justme1968

ja. ich vermute aber das es dann perl global ist und nicht fhem spezifisch.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968