Amazon Dash Button

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

Vorheriges Thema - Nächstes Thema

helmut

Ich habe vor einigen Tagen mit den Buttons angefangen und halte das Lauschen auf DHCP-Requests fuer die beste Vorgehensweise. Vielen Dank an justme1968 fuer das Modul dash_dhcp, es funktioniert einwandfrei. Allerdings bin ich erst anschliessend auf diesen Thread gestossen und musste mir daher die richtige Schreibweise der MAC-Adressen selbst erarbeiten.

Um, und nun komme ich zum eigentlichen Grund meines Beitrages, die Batterie des Buttons zu schonen, habe ich mit dhcping gearbeitet. Den habe ich von einem Linux Rechner als root im fhem-Netz abgesetzt:

dhcping -c <beliebige_IP-Adresse> -s <IP-Adresse_des_fhem_servers> -h <zu_pruefende_MAC-Adresse>
Beispiel:
bath45:~ # dhcping -t .1 -c 192.168.45.22 -s 192.168.45.23 -h 18:74:2e:78:e3:4a
no answer
Das "no answer" kommt immer, weil der DHCP-Server die Antwort bei Uebereinstimmung an den zustaendigen Klienten schickt und das kann ja nicht uebereinstimmen.

Als Anregungen haette ich noch, die beiden Schreibweisen der MAC-Adressen in die Commandref aufzunehmen und die Gross-Kleinschreibung fuer Werte des Attributs "devAliases" ebenfalls zu ignorieren.

Gruss Helmut
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

mark79

#451
Vielleicht kann mir jemand helfen, bei mir wird die Aktion nicht ausgelöst, wenn ich den Dash Button drücke.
Ich habe den Dash Button mit der dhcp Methode eingerichtet und im Event Monitor wird er auch angezeigt, wenn ich den Button drücke:
2017-09-24 16:33:11 dash_dhcp DashButton 18-74-2e-6b-0c-xx: short

Aber die Aktion: "set WZ_Lichtschalter on" funktioniert nicht. Gebe ich den Befehl oben in die Commando Zeile von Fhem ein, geht das Licht an. Also richtig eingerichtet ist es.
Das Gerät ist ein Sonoff Touch, umgeflasht auf ESPeasy und angebunden per MQTT.

Hier noch meine Dash Button Config:

define DashButton dash_dhcp
attr DashButton allowed 18:74:2E:6B:0C:xx
attr DashButton port 6767
attr DashButton room dashbutton
define n_DashButton1 notify DashButton:18-74-2e-6b-0c-xx..short IF ([WZ_Lichtschalter] eq "on") (set WZ_Lichtschalter off) ELSE (set WZ_Lichtschalter on)


Und hier noch der Lichtschalter:
define myBroker MQTT 127.0.0.1:1883
defmod WZ_Lichtschalter MQTT_DEVICE
attr WZ_Lichtschalter IODev myBroker
attr WZ_Lichtschalter autoSubscribeReadings /WZ_Lichtschalter/sysinfo/+
attr WZ_Lichtschalter event-on-change-reading .*
attr WZ_Lichtschalter eventMap 1:on 0:off
attr WZ_Lichtschalter publishSet 1 0 /WZ_Lichtschalter/gpio/12
attr WZ_Lichtschalter room MQTT
attr WZ_Lichtschalter stateFormat relay
attr WZ_Lichtschalter subscribeReading_LOAD /WZ_Lichtschalter/sysinfo/LOAD
attr WZ_Lichtschalter subscribeReading_RAM /WZ_Lichtschalter/sysinfo/RAM
attr WZ_Lichtschalter subscribeReading_RSSI /WZ_Lichtschalter/sysinfo/RSSI
attr WZ_Lichtschalter subscribeReading_UPTIME /WZ_Lichtschalter/sysinfo/UPTIME
attr WZ_Lichtschalter subscribeReading_button /WZ_Lichtschalter/switch/switch
attr WZ_Lichtschalter subscribeReading_relay /WZ_Lichtschalter/relay/relay
attr WZ_Lichtschalter webCmd on:off
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

mark79

Ich habe den Fehler gefunden, es ich die MAC Adresse in Großschrift drin hatte...

Was aber noch nicht klappt ist das toggle. Einschalten klappt, aber wenn ich noch mal auf den Button drücke geht die Lampe nicht auf off. Hat jemand ein Tipp für mich?

Toggle:
define n_DashButton1 notify DashButton:18-74-2e-6b-0c-32..short IF ([WZ_Lichtschalter] eq "1") (set WZ_Lichtschalter off) ELSE (set WZ_Lichtschalter on)

Event Log:
2017-09-24 18:02:50 MQTT_DEVICE WZ_Lichtschalter on
2017-09-24 18:02:50 dash_dhcp DashButton 18-74-2e-6b-0c-32: short

2017-09-24 18:03:05 dash_dhcp DashButton 18-74-2e-6b-0c-32: short
2017-09-24 18:03:18 dash_dhcp DashButton 18-74-2e-6b-0c-32: short
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

MadMax-FHEM

Bist du sicher, dass wenn du:

set WZ_Lichtschalter on

absetzt dann auch "1" drin steht?

Also dass

IF ([WZ_Lichtschalter] eq "1")

überhaupt true werden kann?

Vorher hattest du eq "on" drin?!

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

mark79

#454
Nein, sicher bin ich mir nicht.. :D Ich bin ziemlich neu dabei und lerne fhem gerade durch learning by doing kennen. ???

Dieses "eq" sagt mir nicht wirklich was.. und als state habe ich "on" "off" und "1" "0" probiert, aber überall habe ich kein toggle.
Sondern kann entweder das Licht anschalten oder ausschalten.

Ich habe zwei Screenshoots erstellt, einmal mit WZ_Lichtschalter on und einmal mit off.
on: https://drive.google.com/file/d/0B7J7LuZOLY7nREtDWURfRklmSHc/view?usp=drivesdk
off: https://drive.google.com/file/d/0B7J7LuZOLY7nVTdnaVBabExxTzg/view?usp=drivesdk

Dash Button Screenshot:
https://drive.google.com/file/d/0B7J7LuZOLY7nTG1zZ0xuclFCV1U/view?usp=drivesdk
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

MadMax-FHEM

#455
eq = equal

Und ist ein "Stringvergleich"...

Ich muss leider sagen, dass ich wenig mit fhem IF etc. mache (und auch DOIF [noch] nicht nutze)...

Wenn ich ein notify anlege dann rufe ich (fast) immer eine Sub in myUtils auf, da ich dort dann einfach perl nutzen kann...
...geht auch im notify selbst mittels {PERLCODE}...
...finde ich aber (ab einer gewissen "funktionalität" unübersichtlich)...

Mit eventMap bin ich nicht sicher wann was gemacht/ausgewertet wird...
Brauchst du die aus einem bestimmten Grund?

EDIT: allerdings hat das aktuelle Problem nichts mehr mit dem dashButton zu tun... Daher vielleicht neuen Thread aufmachen um den hier nicht aufzublähen mit Themen/Problemen die nicht direkt hierher gehören...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

mark79

Zitat von: MadMax-FHEM am 24 September 2017, 19:01:53
eq = equal

Und ist ein "Stringvergleich"...

Ich muss leider sagen, dass ich wenig mit fhem IF etc. mache (und auch DOIF [noch] nicht nutze)...

Wenn ich ein notify anlege dann rufe ich (fast) immer eine Sub in myUtils auf, da ich dort dann einfach perl nutzen kann...
...geht auch im notify selbst mittels {PERLCODE}...
...finde ich aber (ab einer gewissen "funktionalität" unübersichtlich)...

Mit eventMap bin ich nicht sicher wann was gemacht/ausgewertet wird...
Brauchst du die aus einem bestimmten Grund?

EDIT: allerdings hat das aktuelle Problem nichts mehr mit dem dashButton zu tun... Daher vielleicht neuen Thread aufmachen um den hier nicht aufzublähen mit Themen/Problemen die nicht direkt hierher gehören...

Gruß, Joachim
Alles klar, danke für die Info :)

Im Grunde will ich nur ein Toggle hinbekommen, um das Gerät ein und auch danach wieder ausschalten zu können.
Aber das funktioniert nicht mit dem String und mit Perl was zu programmieren, damit kenne ich mich leider noch weniger mit aus. :(

Das eventMap ist meiner Meinung dafür da um das Fhem gerecht umzuschreiben, auf on oder off.
Der Sonoff Touch mit der ESPEasy Firmware kennt nur 0 oder 1 um das Relay für den Lichtschalter per GPIO Port zu schalten.
0 ist aus und 1 ist an. Der http Befehl für den Sonoff Touch Lichtschalter sieht so aus: http://192.168.2.48/control?cmd=GPIO,12,1 (Relay anschalten)

Ich habe das Eventmap mal gelöscht und danach konnte ich den Lichtschalter nicht mehr per Fhem schalten.

Und da es vom Thema abweicht, ich habe ein eigenen Thread erstellt... :) https://forum.fhem.de/index.php/topic,77093.0.html


Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

mark79

Falls noch jemand ein Problem mit dem Toggle haben sollte, hier ein String der bei mir funktioniert: https://forum.fhem.de/index.php?action=post;quote=690218;topic=77093.0;last_msg=690251

Noch mal vielen Dank an MadMax-FHEM! :)
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Jackie

Hallo,

ich möchte mit dem Dash Button meine Fritz DECT 200 Steckdose schalten, so dass sie drei Minuten angeht. Mein Event im Filter kommt:

2017-11-12 19:36:27 dash_dhcp DashButton01 b4-7c-xx-xx-xx-xx: short

Aber: das Notify wird nicht ausgeführt, dieses habe ich so definiert, könnt ihr mal bitte schauen, wo mein Fehler liegen könnte?

DEF   
DashButton01:b4-7c-xx-xx-xx-xx set DECT200 on-for-timer 180

Wobei DECT200 mein FBDECT device ist.
Raspi 3 mit FHEM, LWZ 304 Trend, Fronius Symo 10.0-3-M, Conbee II Stick, Optokoppler (USB, FTDI), diverse Ikea Tradfri Komponenten,...

Wzut

Tipp :
1. Event Monitor starten und danach den Dash Knopf drücken.
2. die Zeile mit dem short Event komplett markieren und den Create/Modify Device Knopf drücken
3. Das damit erstellte notify macht dann was es soll :)
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

derchrome

Guten Morgen zusammen,
ich habe mir auch mal 2 Buttons zugelegt. Die gibt's heute für 1,99€ bei Amazon. Auf einer der ersten Seiten steht man darf die Konfiguration nicht abschließen bzw. ein Produkt kaufen. Ist das immer noch so? Weil wenn ich dem Button den Internetzugang sperre kann er ja nix bestellen?!

kumue

Ich habe vor gut einem Monat ein Button eingerichtet und vor der Produktauswahl abgebrochen und ihn auf der Fritzbox gesperrt.
Er macht nun täglich seinen Job..
Bestellen soll er natürlich nichts, macht er zum Glück auch nicht.
Deiner soll wohl bestellen?










derchrome

Ich wollte ihn einmalig bestellen lassen und da kam bei mir die Frage auf, ob es dann trotzdem noch mit FHEM funktioniert.

mark79

Ja das geht auf jedenfall.. Der Dashbutton muss per dhcp eine IP vom Router holen und das wird durch fhem bzw. das Script erkannt.

Ich habe bei meinen Dashbuttons auch immer eine Bestellung getätigt, die aber direkt storniert und dadurch habe ich einen Gutschein erhalten, womit ich den nächsten Dashbutton Gratis bestellen konnte. :)
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Andy89

ich habe mit allen meinen Dashbuttons echte Bestellungen durchgeführt ohne Stornierung. Danach habe ich die Buttons auf der Fritzbox gesperrt und sie funktionieren bestens  ;D
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD