Broadlink service

Bonjour à tous,
j’ai développé le nouveau service Broadlink pour interagir en Infra-Rouge avec vos appareils.

Je ne vous dévoile pas tout dès maintenant, car je souhaiterai que la communauté puisse le tester “à l’aveugle” et me faire des retours, savoir si c’est assez intuitif, ou si les messages sont assez clairs.

En attendant la documentation, les appareils supportés sont les Broadlink des gammes SP / MP / RM.

Vous trouverez l’image docker ici : atrovato/gladys:broadlink (toute fraîche de ce matin, basée sur la v.3.8.4)

Il ne devrait pas y avoir de risque avec la DB, mais je préconise toujours de faire une sauvegarde, ou de repartir d’une instance vierge.

Afin de ne pas surcharger le service, seuls quelques devices peuvent être gérés (lumières et TV sont bien présentes). Les autres viendront au gré des demandes et des besoins.

En l’attente de vos retours !!!

A +, merci

6 « J'aime »

Je te fais un retour asap :slight_smile:

1 « J'aime »

Oh top, une intégration qui manquait depuis la v3, je teste ça dans la semaine aussi :grin:
Merci pour le développement !

C’est un de mes objectifs pour piloter la clim. Mais je sais que ça ne sera pas pour tout de suite.

Super :+1:
Est ce que ça gérera aussi la partie RF à l’avenir ? ça permettrait de s’affranchir de la RFLink
Merci pour le boulot :wink:

1 « J'aime »

:heart_eyes: :heart_eyes:

Beau boulot ! :clap:

J’ai eu plein de fois des demandes par rapport à ce service, ça va débloquer du monde !!

3 « J'aime »

Hello, premiers tests et premier retour :
Déjà l’interface de création d’une télécommande est top, l’association entre fonctionnalité et capture d’un signal est vraiment intuitive !

Je confirme pas de soucis, le mieux pour tester c’est d’arrêter son instance gladys, de faire une copie de la base de donnée et de relancer avec la nouvelle image.

J’ai testé ça sur une télévision, pas de soucis côté association, par contre j’ai juste testé le classique, boutton on/off, volume +/- et mute. Manque de peau il doit y avoir un problème avec le mute qui ne permet pas de sauvegarder une fois le signal capturé, les deux autres fonctionnalités pas de soucis :slight_smile:

Par contre sur le dashboard il faudra je pense créer une box télécommande, l’affichage en tant que périphérique dans une pièce ne permet pas un control fin du volume par exemple, j’ai juste réussi a diminuer de 1 ou de revenir au niveau ancien avec ce slider :
image

Sinon incroyable taff sur le design de paramétrage :slight_smile:

EDIT : suite à l’association du bouton muet, le bouton enregistrer ne génère pas d’erreur côté log de Gladys ou côté navigateur, par contre le bouton de test lui génère ces deux erreurs ci :

2022-04-06T20:39:54+0200 <error> index.js:15 (process.<anonymous>) unhandledRejection catched: Promise {
  <rejected> TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received undefined
      at new NodeError (internal/errors.js:322:7)
      at Function.from (buffer.js:334:9)
      at BroadlinkHandler.send (/src/server/services/broadlink/lib/learn/broadlink.send.js:24:31)
      at send (/src/server/services/broadlink/api/broadlink.controller.js:39:28)
      at Layer.handle [as handle_request] (/src/server/node_modules/express/lib/router/layer.js:95:5)
      at next (/src/server/node_modules/express/lib/router/route.js:137:13)
      at /src/server/api/middlewares/authMiddleware.js:28:7 {
    code: 'ERR_INVALID_ARG_TYPE'
  }
}
2022-04-06T20:39:54+0200 <error> index.js:16 (process.<anonymous>) TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received undefined
    at new NodeError (internal/errors.js:322:7)
    at Function.from (buffer.js:334:9)
    at BroadlinkHandler.send (/src/server/services/broadlink/lib/learn/broadlink.send.js:24:31)
    at send (/src/server/services/broadlink/api/broadlink.controller.js:39:28)
    at Layer.handle [as handle_request] (/src/server/node_modules/express/lib/router/layer.js:95:5)
    at next (/src/server/node_modules/express/lib/router/route.js:137:13)
    at /src/server/api/middlewares/authMiddleware.js:28:7 {
  code: 'ERR_INVALID_ARG_TYPE'
  }
}
3 « J'aime »

Merci pour ces 1er retours, ça fait un très long moment que je suis sur le sujet, qui n’a rien avoir avec la 1ère version que j’avais fournit en image de test il y a quelques années.

Je suis heureux de voir que la prise en main est facile, j’ai pris un très soin à mettre en place le mode “apprentissage” :wink:

Pour la partie dashboard, on fera un travail en dehors du service broadlink, pour ne pas tout mélanger (il faudra également ajouter la compatibilité avec Google Home :wink: ).

Je pense avoir corrigé le bug sur le bouton mute.
Pour info, ça concerne tous les buttons qui n’ont qu’une seule valeur (source, mute, gauche, droite, play, pause…)

Une nouvelle version de l’image docker est en cours de fabrication, il faut compter 2h avant qu’elle ne soit disponible.

Je fais une petite relance pour des retours sur ce service.
PING ! :wink:

2 « J'aime »

Jessaie de prendre le temps dans la journee promis

1 « J'aime »

l’image est pull et lancé sur mon mac.
Le service se démarre sans encombre :

En revanchen je ne trouve pas mon rm mini 3

Du coup impossible de tester plus loin ^^

EDIT:
Peut être que le container n’est pas sur le même réseau ?
aurais tu la commande exacte pour exécuter ton image stp :slight_smile: ?

Ca ne marchera pas sur Mac je pense, Docker for mac lance une VM Linux dans ton mac qui est isolée, et qui n’a pas accès au réseau du mac, mais à un réseau séparé.

Pour avoir le droit de scanner le réseau, il faut lancer le container sur une machine linux en network=host ! (le même docker run que sur le site de Gladys)

C’est peut-être possible de le faire dans une VM linux sur mac, mais bon ça va demander la bonne config réseau au niveau de la VM, je pense c’est plus simple de juste lancer le container sur un Linux :wink:

J’ai le même problème avec WSL… le réseau n’est pas le même… mais sous linux (raspberry) ou windows, je n’ai pas constaté le problème.

Ah tant pis, je ne pourrais tester ^^

RE PING !
Je passais par la, on a d’autres retours ?
@Albenss à part le bug que tu as mentionné (que j’ai normalement corrigé), tu as pu continuer à l’utiliser ?

Complètement oublié, je vais refaire un test de suite !

1 « J'aime »

Alors je viens de retester (après un pull de l’image atrovato/gladys:broadlink), j’ai toujours un problème avec les boutons simples (genre Mute, Volume +, Volume -) dans la console du navigateur de type :

RemoteCreation.jsx:104 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'min')
    at RemoteCreation.jsx:104:31
    at Array.forEach (<anonymous>)
    at Object.saveDevice [as clickfalse] (RemoteCreation.jsx:78:33)
    at HTMLButtonElement.w (props.js:153:20)

Sinon les autres actions semblent fonctionnelles ! (pas pu tout tester mais à part ce problème j’ai rien vu d’autre).

D’ailleurs au passage, le bouton On/Off ne devrait il pas être un bouton simple ?

Je surveillais justement les téléchargement sur docker, ton image ne semble pas être la dernière que j’ai généré car

Il faut que tu supprimes l’image (rmi atrovato/gladys) pour pouvoir la re-télécharger :smiley:

Alors le premier test de ce soir était en faisant juste un pull de l’image existante (donc mise à jour) qui avait ce code d’erreur ci dessus.

Le nouveau est après avoir testé la suppression puis le téléchargement d’une nouvelle image et toujours le même soucis.

Après capture du signal pour la fonctionnalité « Muet », j’essaye de sauvegarder et j’ai le même message d’erreur dans la console :

RemoteCreation.jsx:104 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'min')
    at RemoteCreation.jsx:104:31
    at Array.forEach (<anonymous>)
    at Object.saveDevice [as clickfalse] (RemoteCreation.jsx:78:33)
    at HTMLButtonElement.w (props.js:153:20)

Il faut pull, détruire le conteneur et le recréer. C’est ce que tu as fait ?