Maison intelligente sans télécommandes, mais avec un cube

Problème



Lors de la réparation d'un nouvel appartement, je suis rentré dans l'appartement dans lequel je n'avais pas vécu depuis 10 ans et j'ai décidé de pratiquer la discipline «Smart Home» afin d'équiper un nouvel appartement en connaissance de cause. L'équipement de cet appartement n'est pas non plus le plus intelligent et le plus récent, car il a été produit il y a environ 10 ans. Surtout dans l'appartement, j'ai été gêné par l'abondance de télécommandes infrarouges, elles ont été perdues et ont chargé le cerveau de la sélection de la bonne. Jusqu'à récemment, il a été décidé de créer un grand nombre de boutons inutilisés sur les télécommandes. Et les consoles ne sont ni esthétiques ni hygiéniques, certaines sont anguleuses, d'autres aux bords arrondis, les boutons jaunissent et les vestiges de la vie des habitants sur lesquels se forme une «biocénose sous-bouton» s'y accumulent. En conséquence, une douzaine de télécommandes sont dispersées dans la maison avec un tas de boutons inutiles, pour des opérations simples j'ai dû chercher deux ou trois pièces, leur look me gratte les yeux,Je voulais une commande vocale tactile confortable et à la mode.



, . . xiaomi Xiaomi universal IR remotecontroller Xiaomi Mi Smart Home Magic Cube, Xiaomi smart home gateway 2





, , IR , — ZigBee . , , .


, , xiaomi, , Mi Home “”. , , . , . , , ( ) Mi Home 10 5 , 30 10 , , , 1 , . , ...


Le problème de la Chine ne vient pas seul, sauf que les freins à frotter sont devenus l'incapacité de visser un cube intelligent au contrôle du son.


Le cube est contrôlé par des gestes:

  • Secouer
  • Se déplacer dans un avion
  • Rotation de 90/180 degrés autour de l'axe horizontal
  • Rotation autour d'un axe vertical
  • Et etc...



— , , , , , 90 — 10 , 45 — 5 . , — ZigBee, - , 3 .


Home Assistant, , , Xiaomi , ZigBee . Security token IR , Mi Home . xiaomi gateway , UART RX/TX Home Assistant.


Le Home Assistant lui-même doit être lancé quelque part, le Synology DS718 + est venu dans le cadre de cette tâche, qui a été utilisée comme centre multimédia DLNA et téléchargement de torrent. Cet appareil est capable d'exécuter des conteneurs Docker, et un conteneur avec Home Assistant y est facilement enroulé. Home Assistant est cool, mais contrairement à Mi Home, vous devez y écrire toute l'intelligence d'une maison avec des stylos en yaml. Ayant maîtrisé le DSL, compris Home Assistant et recraché d'un autre outil de programmation qui ne nécessite pas de connaissance du PL, j'ai réussi à concocter une béquille de la forme souhaitée.



Code d'automatisation:
- id: volume_up
  alias: augmentation du volume
  déclencheur:
  - event_data:
      type_action: rotation
      entity_id: binary_sensor.cube_0000000103ec74
    event_type: xiaomi_aqara.cube_action
    plateforme: événement
  état:
    condition: modèle
    value_template: "{{trigger.event.data.action_value> 0}}"
  action:
  - service_template: "script.bbk_vol_up _ {{(trigger.event.data.action_value / 3) | int}}"

Cette automatisation intercepte l'événement de rotation dans le sens horaire et appelle un script au nom duquel le nombre de signaux d'augmentation du son que l'émetteur infrarouge doit envoyer est substitué. Comme vous l'avez probablement deviné, chaque coin de la rotation nécessite son propre script, le copier-coller a été appelé pour les créer, et il m'a donné 20 scripts comme ceux-ci:


bbk_vol_up_10:
  séquence:
  - Les données:
      commander:
      - bbk_vol_up
      delay_secs: 0,04
      num_repeats: 10
    entity_id: remote.xiaomi_miio_192_168_2_62
    service: remote.send_command

La configuration de l'émetteur avec les signaux interceptés du panneau des haut-parleurs ressemble à ceci:
éloigné:
  - plate-forme: xiaomi_miio
    hôte: 192.168.2.62
    jeton: 392cbed325e862ffff983c4575b7a6f2
    commandes:
      bbk_power:
        commande: raw: nE5m0wlk0msxmEsmszmEsm0wAHKaABkAoQAcAL1MZtOQEFmM3ARMCHwCymM2m4ENgXEAioHlgy + AwoL3gvYAh4L0gGGEBYLCAL0BR4CHhU4A + wQ8
      bbk_vol_up:
        commande: raw: nMwmUwlk0mk1mEsms3ADKbABlM5hLJtMAD2ALKazkAdgAymM3AYMBApjNgKTmgGLABuBD4IaAEKA1YJrgyuBDwJvgZeEx4C / geHMZsA4YCDJxox
      bbk_vol_down:
        commande: raw: nE5m0wlk0msxmEsmszmEsm0wAHKaABkAoQAcAL1MZtOQEFmM3ARMCHwIfAdQBFZuAQYFfAfuBCoHngveEx4C / gL + Cj4R2ANfLJqAYQUChU3MAA



Hourra! Le son contrôle la rotation du cube autour de l'axe vertical, et le téléviseur et les haut-parleurs sont allumés en tournant le cube de 90 degrés autour de l'axe horizontal.

Home Assistant , , Google Assistant Home Assistant, . GA , . , . Ethernet , , IP , IP — , . custom_component Home Assistant:


import logging
from homeassistant.helpers.entity import Entity
from pythonping import ping

logger = logging.getLogger(__name__)

def setup_platform(hass, config, add_entities, discovery_info=None):
    entities = []
    for name, ip in config['hosts'].items():
        entities.append(IPSensor(name, ip))

    add_entities(entities)

class IPSensor(Entity):
    def __init__(self, name, ip):
        self._name = name
        self._ip = ip
        self._state = None
        self._is_on = None

    @property
    def name(self):
        return self._name

    @property
    def state(self):
        return self._state

    @property
    def state_attributes(self):
        return {'ip_address': self._ip}

    @property
    def device_class(self):
        return 'connectivity'

    @property
    def is_on(self):
        return self._is_on

    def update(self):
        result = ping(self._ip, count=1, timeout=0.1)
        self._is_on = result.success()
        self._state = 'on' if result.success() else ‘off'

Connectez ensuite l'émetteur infrarouge avec le capteur au commutateur comme ceci:
commutateur:
  - plateforme: modèle
    commutateurs:
      toshiba_tv:
        value_template: "{{is_state ('binary_sensor.toshiba_tv', 'on')}}"
        allumer:
          service: script.toshiba_power
        éteindre:
          service: script.toshiba_power

Et un tel commutateur a commencé à être affiché dans Google Home et contrôlé par la voix.

L'exercice PS avec une maison intelligente a réussi, est allé acheter de nouveaux appareils!
PPS Un hub ZigBee illumine maintenant le couloir pour une raison quelconque ...

C'était




Est devenu



All Articles