Broadlink service

Yes j’ai bien fait ça !

Ok cette fois je te crois :smiley:
Bien je vais vérifier ça :slight_smile:

EDIT : je pense avoir corrigé le bug, l’image est en cours de génération, elle sera disponible sur docker d’ici 10h (heure française)

1 « J'aime »

Hello !!

Je souhaiterais participer aux tests !! Et de ce que je vois produit très intéressant (je ne connaissais pas ^^). Je viens donc de commander le RM4 Pro sans penser à demander avant si il est bien compatible …^^ ??

Gamme RM donc ça devrait le faire

1 « J'aime »

Salut @AlexTrovato,

Alors j’ai reçu mon RM4 hier. Installation sur l’app Broadlink pour activer le Wi-Fi ok.
J’ai lancé ton image avant l’installation. Après l’installation sur l’app, pas de détection sur Gladys (peut-être normal ? RM4-Pro non reconnu ?).
Dans le doute j’ai désactivé le service car je n’avais aucun logs. Mais à la réactivation, il était en erreur. Dans les logs :

2022-05-07T08:54:16+0200 <info> index.js:16 (Object.start) starting Broadlink service
2022-05-07T08:54:16+0200 <warn> service.start.js:44 (Service.start) Unable to start service broadlink Error [ERR_SOCKET_DGRAM_NOT_RUNNING]: Not running
    at new NodeError (internal/errors.js:322:7)
    at healthCheck (dgram.js:909:11)
    at Socket.close (dgram.js:741:3)
    at /src/server/services/broadlink/node_modules/broadlink-js/src/broadlink.js:137:20
    at Array.forEach (<anonymous>)
    at Broadlink.discover (/src/server/services/broadlink/node_modules/broadlink-js/src/broadlink.js:136:22)
    at BroadlinkHandler.init (/src/server/services/broadlink/lib/commands/broadlink.init.js:14:18)
    at Object.start (/src/server/services/broadlink/index.js:17:22)
    at Service.start (/src/server/lib/service/service.start.js:33:21)
    at async start (/src/server/api/controllers/service.controller.js:22:21) {
  code: 'ERR_SOCKET_DGRAM_NOT_RUNNING'
}

J’ai stop le container et relancé. Au redémarrage :

2022-05-07T08:55:25+0200 <info> index.js:16 (Object.start) starting Broadlink service
2022-05-07T08:55:25+0200 <error> index.js:20 (process.<anonymous>) uncaughtException catched: uncaughtException
2022-05-07T08:55:25+0200 <error> index.js:21 (process.<anonymous>) TypeError: Cannot read property 'name' of undefined
    at Broadlink._onMessage (/src/server/services/broadlink/node_modules/broadlink-js/src/broadlink.js:255:24)
    at Socket.emit (events.js:400:28)
    at UDP.onMessage [as onmessage] (dgram.js:931:8)

Idem que précédemment lorsque je tente de redémarrer le service. Mais après 2 minutes, je le retrouve relancé sans action supplémentaire, mais toujours sans " Appareils Broadlink disponibles".

Dis moi si besoin de plus d’infos ^^

Je vois qu’il y’a de l’udp, tu l’as lancé comment ton conteneur ?
Network host ?

C’est vrai que ça fait plus d’1 an que je lance tous les conteneurs comme ça … J’aurais pas dû ?

docker run -d \
--log-opt max-size=10m \
--restart=always \
--privileged \
--network=host \
--name gladys-atrovato-broadlink \
-e NODE_ENV=production \
-e SERVER_PORT=84 \
-e TZ=Europe/Paris \
-e SQLITE_FILE_PATH=/var/lib/gladysassistant/gladys-production-Broadlink.db \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/gladysassistant:/var/lib/gladysassistant \
-v /dev:/dev \
atrovato/gladys:broadlink

Edit : Pour info (je ne sais pas si important), mon pi est sur le lan 10.5.0.x, le Broadlink est sur le 10.1.0.x, sur mes images Pro et Netatmo qui sont sur le même PI, les Ponts Philips Hue étaient avant trouvés (il y a longtemps), or je vois que plus maintenant :


mais il sont toujours fonctionnels:

Mais sur l’image Broadlink ils ne sont pas vue (nouvelle DB) Un lien peut-être ? Pourtant j’ai toujours utilisé la même commande pour lancer les images.

Parenthèses

Je n’ai pas encore essayer le service Broadlink, mais pour ma part, cela fait un moment que je ne trouve plus le pont hue moi aussi. Depuis la 4.8.0 ou 4.8.1.

J’ai l’impression que le RM4 n’est pris en charge.
Je suis sur le coup pour ajouter la compatibilité.
Je vous dirais dès qu’une nouvelle image est disponible.

EDIT: nouvelle image disponible :slight_smile:

1 « J'aime »

Salut @AlexTrovato, et merci d’avoir regardé.

Désolé je n’avais pas vu l’édition de ton message (pas de notif). Je viens de tester : je ne sais pas si tu peux afficher des logs ou peut-être veux-tu que je passe par ta PR Github pour regarder les infos intéressantes ?
Erreur lorsque je passe sur la page « Appareils disponibles » :

2022-05-08T20:20:30+0200 <error> broadlink.addPeripheral.js:18 (BroadlinkHandler.addPeripheral) Broadlink fails to connect to RM4 pro (83da3dae0bec) device

Alors, ce que je comprends, c’est que la méthode « auth » part en erreur sur un RM4.
Tu as la possibilité de modifier à chaud ? Et supprimer ou commenter le return; ligne 19 du fichier server/services/broadlink/lib/commands/broadlink.addPeripheral.js.

@Terdious

EDIT: une nouvelle image sera dispo dans 1h30 :slight_smile:

Thx @AlexTrovato,

Je dois pouvoir retrouver comment on fait oui, j’avais pris des notes là-dessus pour modifier dans un container ^^

Pour info j’ai tenter de récup ton github atrovato/Gladys branche broadlink mais sur la page, j’ai aucun logs. Pas sûr que je le vois via WSL … donc je vais rester sur l’image docker pour test au besoin !!

Non en effet, via WSL ça ne fonctionne pas, le réseau n’est pas le même.
Tu dois faire un truc du style docker exec -it sh pour te connecter sur le container… mais l’image arrive.

Bon il me dit que l’image est déjà prête… j’ai un peu de mal à y croire…

Tu doute de mon cache ? :smirk:

1 « J'aime »

Bah euh… non plus maintenant :smiley:

1 « J'aime »

C est excellent !! Quel travail !! De vous 2 ^^

1 « J'aime »

Ah !! Quoique … server démarré mais pas de front !!

Edit : je refais un test pour être sûr !!
Commandes passée :

pi@gladysProWiFi:~ $ docker stop gladys-atrovato-broadlink
^[[Agladys-atrovato-broadlink
pi@gladysProWiFi:~ $ docker rm gladys-atrovato-broadlink
gladys-atrovato-broadlink
pi@gladysProWiFi:~ $ docker pull atrovato/gladys:broadlink
broadlink: Pulling from atrovato/gladys
57fb4b5f1a47: Already exists
2869060963db: Already exists
17cdedf2bad6: Already exists
1c2460bc2098: Already exists
3bf6be24a7d0: Already exists
5a00f0ed812d: Already exists
052ef630634f: Already exists
69fa31e628c3: Already exists
48be44b15657: Already exists
4f4fb700ef54: Already exists
a8cf63bf6330: Already exists
1a4f845f38a6: Already exists
0de229cfd802: Pull complete
Digest: sha256:180d9776fb7d8332ab4131c0bb079e230dd54c65555c4046f6660c48ca7357ec
Status: Downloaded newer image for atrovato/gladys:broadlink
docker.io/atrovato/gladys:broadlink
pi@gladysProWiFi:~ $ docker run -d --log-opt max-size=10m --restart=always --privileged --name gladys-atrovato-broadlink -e NODE_ENV=production -e SERVER_PORT=84 -e TZ=Europe/Paris -e SQLITE_FILE_PATH=/var/lib/gladysassistant/gladys-production-Broadlink.db -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/gladysassistant:/var/lib/gladysassistant -v /dev:/dev atrovato/gladys:broadlink
76e43d1cb4f34d6336a1323a7eaf5897c891b27e4331930f7a3ea9e279012b02
pi@gladysProWiFi:~ $ docker ps
CONTAINER ID        IMAGE                                 COMMAND                  CREATED             STATUS                 PORTS               NAMES
76e43d1cb4f3        atrovato/gladys:broadlink             "docker-entrypoint.s…"   37 seconds ago      Up 35 seconds          80/tcp              gladys-atrovato-broadlink
ead633c82a7a        terdious/gladys:netatmo-prod-030522   "docker-entrypoint.s…"   4 days ago          Up 4 days                                  gladys-netatmo
0f3e9b06b69e        nodered/node-red                      "npm --no-update-not…"   6 weeks ago         Up 3 weeks (healthy)                       node_red
3ec601776fe1        containrrr/watchtower:armhf-latest    "/watchtower --clean…"   3 months ago        Up 3 weeks             8080/tcp            watchtower
86f4cbb2416c        terdious/gladys:Pro-v4.2.3            "docker-entrypoint.s…"   12 months ago       Up 3 weeks                                 gladys-pro
pi@gladysProWiFi:~ $ docker logs gladys-atrovato-broadlink --follow

Tu n’as pas récupérer la dernière image, il manque docker rmi atrovato/gladys:broadlink apres le rm.

1 « J'aime »

Ca marche ^^


Premiers retour, il y a plusieurs erreurs (peut-être normales ?) :

2022-05-08T21:36:19+0200 <info> broadlink.addPeripheral.js:27 (BroadlinkHandler.addPeripheral) Broadlink discovers new peripheral: 83da3dae0bec
2022-05-08T21:36:31+0200 <warn> broadlink.addPeripheral.js:18 (BroadlinkHandler.addPeripheral) Broadlink fails to connect to RM4 pro (83da3dae0bec) device Error: 65535
    at Socket.<anonymous> (/src/server/services/broadlink/node_modules/node-broadlink/dist/device.js:118:28)
    at Object.onceWrapper (events.js:520:26)
    at Socket.emit (events.js:400:28)
    at UDP.onMessage [as onmessage] (dgram.js:931:8)
2022-05-08T21:36:31+0200 <info> broadlink.addPeripheral.js:27 (BroadlinkHandler.addPeripheral) Broadlink discovers new peripheral: 83da3dae0bec
2022-05-08T21:36:54+0200 <error> device.poll.js:23 (DeviceManager.poll) There was an error while polling device broadlink-83da3dae0bec
2022-05-08T21:36:54+0200 <error> device.poll.js:24 (DeviceManager.poll) Error: 65529
    at Socket.<anonymous> (/src/server/services/broadlink/node_modules/node-broadlink/dist/device.js:118:28)
    at Object.onceWrapper (events.js:520:26)
    at Socket.emit (events.js:400:28)
    at UDP.onMessage [as onmessage] (dgram.js:931:8)

==> Pas de récupération des données Temp et Humid du coup.
Après avoir ajouté le périphérique, le bouton passe bien à « Déjà créé » mais après rafraichissement il demande à nouveau de l’enregistrer malgré qu’il apparaisse bien dans la page des appareils :


Le bouton « Enregistrer » fonctionne bien sur changement de pièce.
Le bouton édité provoque un blocage de la page (obligation de refresh) et l’erreur front suivante :

RemoteCreation.jsx:402 Uncaught (in promise) TypeError: Cannot convert undefined or null to object
    at Function.keys (<anonymous>)
    at l.render (RemoteCreation.jsx:402:31)
    at E (index.js:181:12)
    at f (children.js:137:3)
    at E (index.js:198:4)
    at f (children.js:137:3)
    at E (index.js:198:4)
    at f (children.js:137:3)
    at O (index.js:404:4)
    at E (index.js:232:20)

Je te fais des retours au plus vite sur la création de télécommande (pas de lumière/prise ou sirène)

1 « J'aime »