Page 12 sur 15

Re: Amazon DASH bouton

Publié : 23 déc. 2016, 08:17
par Snorky
rapinou a écrit :

Code : Tout sélectionner

var dash_on = dash_button('50:f5:da:5a:b4:9f', null, 30000, 'all');
Salut,

Votre bouton fonctionne bien ?
Le mien marche une fois sur 2.

J'ai mis le même code que rapinou.

Re: Amazon DASH bouton

Publié : 23 déc. 2016, 11:16
par rapinou
Apparemment ça dépend de l'état du réseau local, j'ai dû essayer plusieurs réglages avant que ça fonctionne correctement.
Si tu laisses null/null/all, ça ne va pas ?
Pour le timeout, j'ai mis 30 secondes car j'ai bloqué l'accès internet via le contrôle parental de la freebox, tu lui as aussi bloqué internet ?

Re: Amazon DASH bouton

Publié : 23 déc. 2016, 15:05
par Snorky
Non je vais faire un test en bloquant.

Merci

Re: Amazon DASH bouton

Publié : 23 déc. 2016, 20:55
par damolc
rapinou a écrit :Oui, on est plusieurs à avoir été embêté avec ça au début. Moi ça s'est réglé en mettant à jour node.

Sinon, à essayer :

1/ Ajouter le chemin complet de node dans le crontab :

Code : Tout sélectionner

@reboot sudo /usr/local/bin/node /home/pi/domoticz/scripts/node/dash1.js
Pour vérifier le chemin de node sur ton install, tape dans la console :

Code : Tout sélectionner

which node
2/ Ou passer par /etc/rc.local à la place de crontab :

Code : Tout sélectionner

sudo nano /etc/rc.local
Et ajoute avant exit :

Code : Tout sélectionner

node /home/pi/domoticz/scripts/node/dash1.js
Peut-être qu'il faudra le chemin complet ici aussi, je ne sais pas.

Dis-nous quoi.
j ai fait tous les tests que tu m as signalé : rien ne fonctionne
j ai testé aussi la mise en jour de nodejs et ça c est une sacré galaire : homebridge, imperium ne fonctionne plus
as tu une methode pour mettre a jour node sans tout deregler?

Re: Amazon DASH bouton

Publié : 27 déc. 2016, 21:28
par fabd
Tres bon tuto de Patrice 8-)

Apres, comme les autres, ca marche une fois sur 3...4...

Re: Amazon DASH bouton

Publié : 28 déc. 2016, 17:08
par roondar
Voici un code python pour utiliser ces boutons

Code : Tout sélectionner

#!/usr/bin/python2
from scapy.all import sniff, ARP
import time
import urllib2
import urllib

buttons = []
domoticz_ip = "127.0.0.1"
domoticz_port = "8080"
url_schema = "http"
timeout = 6
url = "%s://%s:%s/json.htm?" % (url_schema, domoticz_ip, domoticz_port)

# get from http://www.adminsub.net/mac-address-finder/amazon
mac_address_amazon_vendor = ["F0D2F1", "F0272D",  "AC63BE", "A002DC", "94BA31", "8871E5", "8841C1", "84D6D0", "74C246",
                             "747548", "6854FD", "5CC9D3", "50F5DA", "50B363", "44650D", "34D270", "0C47C9", "001A90", ]


class Button:
    def __init__(self, mac, name, domoticz_idx, status="Toggle"):
        self.mac = mac
        self.name = name
        # Can be Toggle, On or Off
        self.status = status
        self.last_running = 0
        self.domoticz_idx = domoticz_idx

    def __str__(self):
        return self.name

    def setStatus(self):
        data = {'type': 'command',
                'param': 'switchlight',
                'idx': self.domoticz_idx,
                'switchcmd': self.status
                }
        urllib2.urlopen(url + urllib.urlencode(data))
        self.last_running = time.time()

buttons.append(Button("88:71:e5:xx:xx:xx", "ON", 2))
buttons.append(Button("34:d2:70:xx:xx:xx", "kleenex", 3)) 


def arp_display(pkt):
    if pkt[ARP].op == 1:
        dash_mac = pkt[ARP].hwsrc
        res = [x for x in buttons if x.mac == dash_mac]
        if res and time.time() - res[0].last_running > timeout:
            print "%s pushed" % res[0].name
            res[0].setStatus()
        elif ''.join(dash_mac.split(':')[0:3]).upper() in mac_address_amazon_vendor and not res:
            print "%s Unknown Amazon device" % pkt[ARP].hwsrc


print sniff(prn=arp_display, filter="arp", store=0)
Il faut avoir le paquet python-scapy d'installé.

On peut ajouter des boutons à la ligne 40:
buttons.append(Button("88:71:e5:xx:xx:xx", "ON", 2))

Le premier paramètre est l’adresse MAC du bouton, le second est son nom, et le dernier est le numéro idx de Domoticz.
Quand on appuie sur le bouton, le matériel IDX de domoticz changera de statut.

Pour le service, il faut créer le fichier /etc/systemd/system/dash_amazon.service:

Code : Tout sélectionner

[Unit]
Description=Dash Amazon

[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/python2 -u /opt/dash_amazon.py

[Install]
WantedBy=multi-user.target
On démare le service
systemctl enable /etc/systemd/system/dash_amazon.service
systemctl start dash_amazon

Re: Amazon DASH bouton

Publié : 28 déc. 2016, 22:45
par JRCondat
J'aimerai tant faire fonctionner mon bouton Dash, mais je n'ai jamais réussi à installer le node-dash-button quand je fais

Code : Tout sélectionner

npm install --save dash-button
que je fasse une sudo avant ou pas j'ai cte fichue erreur :

Code : Tout sélectionner

extract:dash-button: verb gentlyRm don't care about cont
Personne ne l'a jamais eu ? j'ai installé Node.js 6.5 tenté aussi avec la 7.3 et dans les deux cas ça foire :(

Re: Amazon DASH bouton

Publié : 29 déc. 2016, 18:07
par fabd
t'as fait un apt-get update et upgrade avant ?

moi aussi j'ai ces messages mais ca continue derriere

Re: Amazon DASH bouton

Publié : 02 janv. 2017, 10:24
par cha
Hello !
Merci pour ce sujet, j'ai aussi pu installer des boutons pour Domoticz ! L'astuce pour les boutons "gratuits" fonctionne t-elle encore chez vous ? Suite à la réception d'un troisième bouton et le début de procédure d'activation sans valider la dernière étape, la réduction ne s'applique plus automatiquement après la mise en panier d'un autre.

Re: RE: Re: Amazon DASH bouton

Publié : 02 janv. 2017, 21:46
par roondar
cha a écrit :Hello !
Merci pour ce sujet, j'ai aussi pu installer des boutons pour Domoticz ! L'astuce pour les boutons "gratuits" fonctionne t-elle encore chez vous ? Suite à la réception d'un troisième bouton et le début de procédure d'activation sans valider la dernière étape, la réduction ne s'applique plus automatiquement après la mise en panier d'un autre.
Testé et approuvé encore aujourd'hui.

Envoyé de mon FRD-L09 en utilisant Tapatalk