Domotize TV, décodeur, amplificateurs (synto) avec Broadlink e Home Assistant (V2)

9 minutes de lecture
BUTS DE PROJET:
  • Domotizzare un téléviseur et / ou un décodeur et / ou un amplificateur (ou d'autres éléments de cette nature)
  • Niveau de difficulté: Prix moyen
  • coût: réduit (<20 € en utilisant Broadlink RM Mini 3)
CONCEPTS FACE:
COMPOSANTS LOGICIELS UTILISÉS:
DISPOSITIFS PHYSIQUES UTILISÉS:
  • Un téléviseur et / ou un décodeur et / ou un amplificateur (synto) (ou d'autres éléments de cette nature)
  • Un Broadlink RM Mini 3 (o Broadlink équivalent avec émetteur infrarouge)
PROJET LE PLUS INDIQUÉ POUR:

Tous les environnements

Notes et avertissement
  • qualsiasi modifica all'impianto elettrico dev'essere effettuata da personale qualificato;
  • tout changement mis en œuvre dans proavant est un prola responsabilité personnelle, ainsi que propremier risque et danger (ce guide est à des fins éducatives uniquement);
  • tout changement mis en œuvre dans proavant qu'un appareil annule la garantie.
Revisione projet: 1.2
ATTENZIONE: cette projet est défini "v2"Comme il est basé sur nuova versione du composant logiciel nécessaire à la fonctionnamed'intégration Broadlink, ou "SmartIR“, Ce qui permet, entre autres, la définition dynamique en domotique de l'état opérationnel de l'unité soumise à l'intégration.
La version précédente de cette projet, si intéressé par l'obsolescence, est disponible ici.

récepteur

Abstrait

Parmi les nombreuses possibilités offert par la domotique basée sur HUB personnel (dans le cas de cette projet Home Assistant) il existe celui de dominer la commande de systèmes tels que la télévision, les décodeurs (par exemple SKY), les récepteurs / amplificateurs.

Mais qu'est-ce que cela signifie domotizzarli? Cela signifie pouvoir contrôler certaines fonctions "clés" (allumer et éteindre, régler le volume / muet, sélection de la source) via outils de gestion finaux tels que les smartphones, les tablettes, mais surtout pouvoir contrôler ces fonctions en termes de scénarios prédéfinis.

nous plaçons l'exemple de vouloir regarder SKY: allumer le téléviseur, sélectionnez leproavec l'entrée HDMI du téléviseur, nous allumons le décodeur SKY.

Bon: si la télévision et le décodeur SKY étaient de la domotique, je pourrais définir unentité qui exécute, en l’activant simplement, les actions énumérées ci-dessus dans l’ordre, peut-être en utilisant l’élément Smart Speaker connecté à la mienne HUB personnel.

Il existe des téléviseurs, décodeurs et amplificateurs intelligents (Sinto) qui offrent déjà la possibilité d’être nativement intégré moyens Home Assistant (par exemple, les téléviseurs Sony Bravia, via une plateforme spécifique, ou les récepteurs Denon, toujours via une plateforme spécifique).

Le présent prole jet est guéri de la domotisation des amplificateurs TV, Decoder et (Sinto) non domotisables de manière native: dans ce cas, nous utiliserons des signaux infrarouges ou radiofréquences via émetteur Broadlink à l'instar de ce qui a été fait, par exemple, avec climatiseurs.

Il commence

Logique de projet

Commençons par un ragionamesimple.
Étant donné que:

  • Home Assistant est notre "pont" pour le contrôle domotique (tu ne sais pas quoi? regarde, c'est comme ça);
  • Home Assistant, via un actionneur Broadlink (par exemple. RM Mini 3) et le composant "SmartIR Media Player", peut envoyer des signaux infrarouges / radiofréquences;
  • le téléviseur - décodeur - (sinto) amplificateur est / sont contrôlables via des signaux infrarouges ou radiofréquences (généralement par télécommande),

par conséquent, il est donc possible de contrôler l'appareil - quel qu'il soit - moyens Home Assistant puis l'intégrer au reste de la domotique, automation inclus.

Analyse

La fonctionnalité "Media Player"Offert par le composant"SmartIR Media Player"Sont ceux de:

  • Power on / off;
  • canal suivant / précédent;
  • augmentation / diminution / volume muet;
  • choix de la source.

Le composant offre un ensemble d’ensembles de codes préemballés; ce projet prend pour acquis que les codes de l'appareil à domotiser sont déjà disponibles des pièces jointes au composant. Pour vérifier cela, parcourez la liste des codes disponibles à cette adresse.

Si les codes ne sont pas disponibles (hautement recommandé) proprobable) il n'y a pas besoin de désespérer parce que, comme prévu, nous verrons plus loin comment définir de manière indépendante un propremier fichier de configuration.

Configuration de l'appareil Broadlink

Avant de configurer notre composant à Home Assistant il est nécessaire pour l'actionneur Broadlink (qui est le modèle) est déjà configuré et donc présent sur le nôtre Wi-Fi.

Faire l'émetteur infrarouge entrez (et restez) dans le vôtre Wi-Fi il suffit de télécharger leappReporting e-Control pour Android o pour iOS et suivez les instructions à l'écran. En cas de difficulté, il est disponible le manuel en italien.

La première configuration est terminée nécessaire que l'appareil Broadlink propre, dans la nôtre Wi-Fi, une adresse IP fixe. ici un guide est disponible pour comprendre comment le configurer.

Installation de SmartIR

Etant donné que "SmartIR"Est un composant supplémentaire et externe a Home Assistant, ça va installato.
Pour ce faire, vous pouvez le faire Manualmente o, plus facilement, à travers HACS.

MANUELLEMENT

Vous devez d’abord créer un dossier appelé "custom_components”(Si pas déjà présent) dans le répertoire d'installation principal de Home Assistant. Ceci fait, téléchargez le package .zip depuis la page GIT du composant et décompressez-le: il suffira alors de copier le dossier “smartir"Contenu dans le répertoire"custom_componentsCi-dessus.

Nb en cas d'installation dans l'environnement Linux (Framboise, Ubuntu ou autre) après la copie de ce dossier, il est nécessaire de corriger les droits d'accès au dossier à l'aide de la commande "chmod». Par exemple:

sudo chmod -R 0777 /home/homeassistant/.homeassistant/custom_components

où se trouve le chemin d'installation, appoint, "/home/homeassistant/.homeassistant».

VIA HACS

A partir de la version 1.6.x, le support des composants pour l'interface très pratique a été introduit HACS. Il est recommandé d'installer le composant à l'aide des explications illustrées. dans la carte qui illustre cette nouveauté.

composants Broadlink

Le composant "Broadlink»de Home Assistant il est utile de créer un commutateur qui, une fois configuré, n'aura pas (du moins dans ce cas procast) une fonction particulière, sauf que créer indirectement deux "services" système qui fonctionnera, respectivement, envoi et réception de codes infrarouges (et en radiofréquence, dans les modèles supportés).

Ces services prendre le nom de:

  • broadlink.learn
  • broadlink.send

Le premier service sera nécessaire pour 'appretour de codes, le second envoyer (utilisé par le entité que nous définirons dans la configuration.

Nous définissons donc à la configuration di Home Assistant ce premier interrupteur:

# Esempio di configurazione learner
switch:
  - platform: broadlink
    host: 192.168.1.2
    mac: '00:00:00:00:00:00'
    timeout: 30
    friendly_name: "Attuatore Broadlink"
    type: rm
    switches:
      learner:
        friendly_name: "Learner"
        command_on: ''
        command_off: ''

Nb Les champs "host"Et"mac”Indiqué ce ne sont que des exemples et sera donc évalué avec IP (fixe) et adresse MAC de notre actionneur Broadlink, ainsi que le terrain "type». Les champs "on"Et"offre"Sont intentionnellement laissés vides.

À ce stade, recommencer Home Assistant et, ayant terminé le redémarrage, dans la colonne de gauche de l’interface, sélectionnez, sous le menu "Outils de développement" la première icône à gauche, ou "Nos services». Dans la liste des services, ils devraient appfournir les deux services mentionnés ci-dessus.

Configuration de SmartIR

À ce stade, nous sommes pronti pour définirentité de type "Media Player"Ce rappsera renvoyé notre appareil à Home Assistant.
Pour ce faire, il suffit d'entrer dans la configuration un bloc de ce type:

smartir: 

media_player:
  - platform: smartir
    name: Hi-fi
    device_code: 1000
    controller_data: ip_del_broadlink
    power_sensor: binary_sensor.stato_accensione

Les variables sont expliquées comme suit:

platform(chaîne, demande) Nom de la plateforme. Doit obligatoirement être indiqué "smartir».
name(chaîne, facultatif) Le nom de l'entité "Media Player"Au Home Assistant.
device_code(entier, requis) Rappsents le fichier de configuration notation JSON (contenant les codes et les fonctionnalités) que le composant utilisera (recherche à l'intérieur de “smartir/codes/media_player") Pour" modéliser "l'entité. Vous pouvez le choisir en amont en recherchant le propremier appareil à cette liste.
En l'absence du proTout d’abord, nous essaierons de définir un modèle ad hoc à suivre pour projet.
controller_data(chaîne, demande) Rappprésente l'adresse IP du Broadlink à utiliser pour l'envoi des codes.
controller_command_topic(chaîne, facultatif) Rubrique de la commande MQTT connectée au mode de contrôle via le service "mqtt.publish». Il s'attend à ce que MQTT soit déjà correctement configuré et fonctionnel dans le réseau et à Home Assistant.
power_sensor(chaîne, facultatif) Rapprésiste à un éventuel capteur binaire (on / off) qui rappindiquant l'état de mise en marche de l'unité (expliqué ci-dessous).

Première effectuer cette configuration à Home AssistantIl est nécessaire être conscient de:

  • l'adresse IP de Broadlink à travers lequel envoyer les codes (champ controller_data);
  • Nom du fichier JSON qui rappréinitialise la configuration du propremier appareil (champ device_code).

En ce qui concerne le fichier de configuration, nous pouvons nous trouver face à différentes situations:

  • le fichier est déjà disponible avec le composant SmartIR (voir liste);
  • le fichier personnel est déjà disponible car propour le composant hérité “Broadlink IR Media Player« ;
  • pas de fichier.

Dans le premier cas, il est possible de configurer à partir de Home Assistant, recommencer et ainsi compléter l'intégration.
Dans le deuxième ou le troisième, il faut créer un nouveau dossier personnel ad hoc avant de terminer la configuration et de redémarrer Home Assistant.

Fichier de configuration personnel

Ce paragraphe est d'intérêt seulement si un fichier de configuration prêt à l'emploi n'est pas disponible (ou s'il en a un construit pour le composant hérité "Broadlink IR Media Player") Relatif à propremier modèle d'appareil.

Il faudra donc le construire un ad hoc.

codes

Les codes - s’ils ne sont pas disponibles parmi ceux préemballés - peuvent être recyclé depuis le fichier de configuration précédemment utilisé avec le composant "Broadlink IR Media Player« ; alternativement vous pouvez les récupérer manuellement et connectez-les manuellement dans un fichier nouvellement généré.

CAPTURE DE CODES

Nous avons consacré ce sujet épineux et crucial un guide ad hoc, qui a en partie déjà été mis en œuvre suite à la présente procasting (voir création du commutateur apprenant).

DÉFINITION DE FICHIER PERSONNEL

À ce stade, une fois les codes collectés, il suffira de créer un nouveau fichier JSON en leur attribuant un n'importe quel nom (numérique) dehors des noms déjà présents ensemble avec le composant "SmartIR"(Par exemple."7000.json").

Pour définir le fichier sera suffisant étirage tout existant, par exemple cette.

Dans le fichier de configuration JSON non seulement les codes sont entrés liées aux différents modes d’utilisation (bloc “commandes"), Mais aussi les différentes caractéristiques de l’appareil, telles que nom, modèle, type de codes utilisés, etc.

Le bloc initial appsont plus ou moins comme ça:

{
    "manufacturer": "Produttore",
    "supportedModels": [
      "Mio_modello"
    ],
    "supportedController": "Broadlink",
    "commandsEncoding": "Base64",

Les champs sont les suivants:

manufacturer(chaîne, obligatoire) Indique le profabricant de climatiseur.
supportedModels(chaîne, obligatoire) Indique le modèle.
supportedController(obligatoire, obligatoire) Indique le modèle de l'actionneur (généralement Broadlink).
commandsEncoding(chaîne, obligatoire) Indique l'encodage. Soutient: "Base64","Pronto"Et"HEX». Pour les codes collectés comme expliqué dans cette projet à travers Broadlink, habituellement cela indique "Base64».

La deuxième partie du fichier commence plus ou moins comme ceci:

    "commands": {
        "off": "codice.....",
        "on": "codice.....",
        "sources": {
            "EXT1": "codice.....",
            "EXT2": "codice.....",
            "VGA": "codice.....",
            "HDMI": "codice.....",
            "HDMI Side": "codice.....",
            "AV Side": "codice.....",
            "Channel 1": "codice.....",
            "Channel 11": [
                "codice 1.....",
                "codice 2....."
            ]

Ce bloc définit les deux commandes principales liées à l’activation et la désactivation ("on"/"offre") Et ensuite, suivre une liste de sources ("sources") Ce qui peut correspondre à l'envoi d'un code unique ou à l'envoi de plusieurs codes (par exemple."canal 11« ). Cette liste est entièrement personnalisable, à la fois dans les noms des sources et, bien sûr, dans les codes.


Une fois compilation du dossier terminée, avant de le nourrir à Home Assistant vérifier son exactitude via le web app JSONLint.

Une fois cela fait, il suffira de copier le fichier dans le dossier “/ Custom_components /smartir/ Codes / media_player", Configurez le champ correctement device_Code en configuration e recommencer Home Assistant pour terminer l'intégration.

Statut d'allumage

Quoi essentiel (et peut-être surtout entre l'héritage et la nouvelle version du composant), il est maintenant possible d'indiquer à l'entité "Media Player" où dériver le propremier état (on / off), ou à partir de cela d'une entité de type "Binary" Sensor" (capteur binaire, marche / arrêt).

Ce capteur binaire, à son tour, déterminera la propremier état on / off basé sur diverses techniques: le plus classique consiste à utiliser la mesure d'absorption électrique en amont de l'appareil pour déterminer son état (0 Watt d'absorption, de,> 0, accéder).

Cela semble banal, mais ce n’est pas: en effet c'est ça qui attendait depuis longtemps. Imaginez le scénario suivant:

  • Home Assistant qui a fédéré le proentités avec un haut-parleur intelligent;
  • Home Assistant avec entité "Media Player"Ce rapple dispositif contrôlé par infrarouge est présent.

Tant qu'il sera utilisé Home Assistant (via une interface frontale ou intelligente) pour contrôler l'appareil, tutto bene.
Mais qu'est-ce qui va arriver quand et si je vérifierai le lecteur aussi à travers provotre télécommande, ou autrement manuellement? Allumer l'appareil de cette façon Home Assistant évidemment ne sera pas au courant du changement d'état de l'unité, donc de l'état de l'entité qui rappprésente auHUB restera réglé sur “de", Et toute commande d'arrêt de Home Assistant et / ou du haut-parleur intelligent ne sera évidemment pas bien aller.

Si au contraire je vais indiquer à Home Assistant où déduire l'état de l'entité les choses vont changer, pourquoi pas appl’appareil sera allumé manuellement, l’absorption en watts (en augmentation rapide) détectée par le capteur en amont de l’appareil lui-même entraînera le capteur binaire (appropriénameconfiguré) associé tourner à "sur"et par conséquent aussi l'entité au Home Assistant. Vice versa pour éteindre.

Pour approfondire ce thème est disponible un grand projet dédié à la déduction d'état des appareils non domotiques à travers l'analyse de l'absorption électrique, ce qui nous explique, comment définir un capteur binaire en configuration être nourri àSmartIR"Pour le but appEna a expliqué.

utilisation

Maintenant si tout a été fait correctement, à l'interface de Home Assistant sarà appbrûlé une nouvelle entrée similaire à celle-ci:

Home Assistant  -  Media Player

Qui, si vous cliquez sur les trois points dans le coin inférieur droit, fournira les détails et la fonctionnalité comme suit:

Home Assistant  -  Media Player - détail de la télévision

automatisation

À ce stade, si vous le souhaitez, vous pourrez utiliser les services duentité de type "Media Player" pour contrôler automatiquement les entités de ce type.

Disons que nous avons un Raspberry Pi configuré en tant que récepteur AirPlay connecté l'entrée AUX d'un amplificateur domotique avec la technique décrite dans le présent document projet. Nous disons que nous voulons automatiser l'action consistant à allumer l'amplificateur et à préparer la source et le volume corrects.propriato.

Disons alors vouloir définir un commutateur (basé sur le composant "Booléen d'entrée“) Lequel, une fois activé:

  • allumer l'amplificateur;
  • attendre un temps technique "on" donné (par exemple secondes 5)
  • sélectionnez l'entrée AUX
  • augmenter le volume en simulant la pression (plusieurs fois) de la touche Volume +

Supposons que les entités en jeu sont appelées respectivement input_boolean.airplay (le commutateur) e media_player.amplificatore.

automation à définir sarà:

automation:
- alias: "AirPlay"
  hide_entity: true
  initial_state: 'on'
  trigger:
    - platform: state
      entity_id: input_boolean.airplay
      to: 'on'
  condition: []
  action:
    - service: media_player.turn_on
      entity_id: media_player.amplificatore
    - delay: 0:00:05
    - service: media_player.select_source
      data:
        entity_id: media_player.amplificatore
        source: 'AUX'
    - service: media_player.volume_up
      entity_id: media_player.amplificatore
    - service: media_player.volume_up
      entity_id: media_player.amplificatore


Home Assistant Logo officielATTENZIONE: rappelez-vous qu'il y a sur notre communauté FORUM une section ad hoc dédiée à Home Assistantpour tout doute, question, information sur le mérite spécifique de ces composants.


Veuillez commenter ci-dessous