Page 1 sur 9

Beta Testers Wanted (LINUX ONLY)

Publié : 21 nov. 2016, 22:59
par deennoo
Mise a Jour le 22/03/2017 : version full auto

Madame, Messisuers,

Y en a marre de debrancher votre RFLink a chaque mise a jour !
--vieux
Je viens de crée un script shell qui automatise la chose :

- Il crée un repertoire RFLink dans TMP
- Telecharge la derniere version du FW stable dispo (et efface la presente si il y en a une) dans /tmp/RFLink/
- Verifie si vous avez avrdude et jq installé sur votre serveur, si non : l'install
- check automatiquement les infos necessaires (idx, serial port, nom, version)
- Fait la mise a jour du FW
- Donne des logs dans log de Domoticz (pour peu que vous ayez conserver 8080 comme port)
-- vieux

edit en fait depuis cette idée Roondar a fait un script python qui fonctionne mieux. le voici
Capture.PNG
Capture.PNG (15.8 Kio) Consulté 11631 fois

Code : Tout sélectionner

git clone https://github.com/roondar/RFLink-update.git /home/VOTRENOMDUTILISATEUR/rflink
Comment il ce la pete lui !

et l'ouvrir pour rajouter votre api pushbullet a la ligne 15

Puis installer la lib pushbullet

Code : Tout sélectionner

pip install pushbullet.py
et lui donner les droits necessaire (777 ?) l'executer en root

Code : Tout sélectionner

sudo python update_RFLink.py

J'attend vos retours

PS : les message du genre : comment on le copie dans la SD ou comment on donne les Droits seront ignorés, merci de votre compréhension, pour le moment c'est un test avant integration complete a Domoticz.

PS BIS : pour les retours : precisez votre type d'installatin (rpi ou autre) version de linux (uname -a) version de Domoticz svp

Re: Beta Testers Wanted (LINUX ONLY)

Publié : 21 nov. 2016, 23:21
par lestatcrog
Chapeau Bas deennoo !!!

Juste génial et ça marche nickel du premier coup !!!

Merci

Re: Beta Testers Wanted (LINUX ONLY)

Publié : 22 nov. 2016, 07:23
par brogen67
Bonjour Deennoo,

Je n'ai pas encore testé, car j'ai déjà la dernière version mais le travail me plait, car je m'étais déjà dis que c'était "relou" de devoir débrancher le RFLINK à chaque montée de version ^^

Je me pose la question de savoir pourquoi ton script ne désactive/réactive pas le port USB ? Est-ce qu'il y a une raison fonctionnelle ?
Sinon, peut-être qu'il serait judicieux de lister la liste des ports USB à l'utilisateur, et lui demander de choisir pour enregistrer la variable $usbgateway

Ça fait plaisir de voir que ça avance du côté du RFLINK ^^

Re: RE: Re: Beta Testers Wanted (LINUX ONLY)

Publié : 22 nov. 2016, 09:03
par deennoo
brogen67 a écrit : Je me pose la question de savoir pourquoi ton script ne désactive/réactive pas le port USB ? Est-ce qu'il y a une raison fonctionnelle ?
J'aurais bien aimer aussi mais je n'ai pas trouver comment le faire via l'api Domoticz...
brogen67 a écrit : Sinon, peut-être qu'il serait judicieux de lister la liste des ports USB à l'utilisateur, et lui demander de choisir pour enregistrer la variable $usbgateway
Pas bete je n'y avais pas penser...un grep /dev/ttyUSB par exemple ?

Re: RE: Re: Beta Testers Wanted (LINUX ONLY)

Publié : 22 nov. 2016, 09:34
par brogen67
deennoo a écrit :J'aurais bien aimer aussi mais je n'ai pas trouver comment le faire via l'api Domoticz...
Je voulais dire si tu désactive le port USB du raspberry, donc depuis une commande linux, sans pour autant passer par Domoticz, est-ce que ça risque de poser un problème ? Parce que, je pense que ton script pourrait plutôt éteindre le port USB physique.

deennoo a écrit : Pas bete je n'y avais pas penser...un grep /dev/ttyUSB par exemple ?
Ça devrait ressembler à quelque chose comme ça, oui, mais n'ayant pas accès à mon raspberry depuis le boulot (ouais, mon Client SSH WEB "GateOne" sur mon serveur dédié ne comprend pas quand je lui donne une adresseip:unport

Je vais essayer de trouver une solution pour me connecter en SSH à mon RaspPi depuis mon boulot pour faire quelques tests

Re: Beta Testers Wanted (LINUX ONLY)

Publié : 22 nov. 2016, 10:08
par Neutrino
Bonjour Deennoo,

J'avais la même problématique et du coup, je flashais avec avrdude.
OK sur un Rpi 2 sous wheezy.
Pour désactiver le matériel, la page Hardware envoie ça

Code : Tout sélectionner

http://192.168.15.21:8080/json.htm?type=command&param=updatehardware&htype=46&port=%2Fdev%2FttyUSB21&extra=&name=RFLink&enabled=false&idx=15&datatimeout=0&Mode1=0&Mode2=0&Mode3=0&Mode4=0&Mode5=0&Mode6=0
%2Fdev%2FttyUSB21 -> /dev/ttyUSB21 : c'est le port de mon RFLink
idx=15 -> numero de l'idx dans la page hardware
enabled=false -> passer à true réactive le périphérique

Je viens de tester dans ton script et ça fonctionne.

Pour trouver cette commande, je fais F12 puis l'onglet Network sous chrome et on peut voir passer toutes les requêtes JSON.

Re: Beta Testers Wanted (LINUX ONLY)

Publié : 22 nov. 2016, 10:19
par Neutrino

Code : Tout sélectionner

http://IP:PORT/json.htm?type=hardware
ça renvoie tous les hardwares avec IDX et ports série
On doit pouvoir jouer avec jq.

Re: Beta Testers Wanted (LINUX ONLY)

Publié : 22 nov. 2016, 10:50
par deennoo
Pas Bete !!

l'autre solution aurais été d'avoir un persitente USB commun a tous mais plus compliqué

Re: Beta Testers Wanted (LINUX ONLY)

Publié : 22 nov. 2016, 11:06
par deennoo
Neutrino a écrit :

Code : Tout sélectionner

http://IP:PORT/json.htm?type=hardware
ça renvoie tous les hardwares avec IDX et ports série
On doit pouvoir jouer avec jq.
Effectivement

RFlink a toujours un Type : 46

Donc il faut demande a jq de chercher un Type : 46 et le SerialPort qui va avec. Beaucoup de lecture en vu...

Re: Beta Testers Wanted (LINUX ONLY)

Publié : 22 nov. 2016, 11:16
par Neutrino
Un truc comme ça ?

Code : Tout sélectionner

curl -s http://IP:PORT/json.htm?type=hardware | jq '.result[] | select(.Type == 46)'| jq '.SerialPort?'
et

Code : Tout sélectionner

curl -s http://IP:PORT/json.htm?type=hardware | jq '.result[] | select(.Type == 46)'| jq '.idx?'
Il y a sans doute moyen de faire plus propre que de chaîner 2 jq...
ça renvoie les donnée entre guillemets, on doit pouvoir les faire sauter.
Par contre, je ne sais pas ce que cela donne avec plusieurs RFLink.