Casa inteligente sem controles remotos, mas com um cubo

Problema



Durante o reparo de um apartamento novo, voltei ao apartamento em que não morava há 10 anos e decidi praticar a disciplina “Casa Inteligente” para equipar um apartamento novo com o conhecimento do assunto. O equipamento deste apartamento também não é o mais inteligente nem o mais novo, porque foi produzido ~ há 10 anos. Acima de tudo, no apartamento, fiquei incomodada com a abundância de controles remotos infravermelhos, eles foram perdidos e carregaram o cérebro com a seleção do caminho certo. Até recentemente, foi decidido criar um grande número de botões não utilizados nos controles remotos. E os consoles não são estéticos nem higiênicos, alguns são angulares, outros com bordas arredondadas, os botões ficam amarelos e os restos da vida dos habitantes se acumulam neles, formando uma “biocenose de sub-botões”. Como resultado, uma dúzia de controles remotos estão espalhados pela casa com um monte de botões desnecessários. Para operações simples, eu tive que procurar duas ou três peças, a aparência delas arranha meus olhos,Eu queria um confortável controle de voz tátil e elegante.



, . . 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 , . , ...


O problema da China não vem sozinho, exceto pelo fato de os freios terem se tornado a incapacidade de parafusar um cubo inteligente no controle do som.


O cubo é controlado por gestos:

  • Sacudir
  • Mover-se em um avião
  • Gire 90/180 graus em torno do eixo horizontal
  • Girar em torno de um eixo vertical
  • E etc ...



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


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


O próprio Assistente Doméstico precisa ser lançado em algum lugar, o Synology DS718 + veio sob essa tarefa, que foi usada como um centro de mídia DLNA e um download de torrent. Este dispositivo pode executar contêineres do Docker, e um contêiner com o Assistente Doméstico é facilmente enrolado nele. O Home Assistant é legal, mas, diferentemente do Mi Home, você precisa escrever toda a inteligência de uma casa com canetas no yaml. Tendo dominado o DSL, entendendo o Home Assistant e cuspindo em outra ferramenta de programação que não requer conhecimento do PL, consegui preparar uma muleta da forma desejada.



Código de automação:
- id: volume_up
  alias: Aumentar o volume
  desencadear:
  - event_data:
      action_type: rotate
      entity_id: binary_sensor.cube_0000000103ec74
    event_type: xiaomi_aqara.cube_action
    plataforma: evento
  doença:
    condição: modelo
    value_template: "{{trigger.event.data.action_value> 0}}"
  açao:
  - service_template: "script.bbk_vol_up _ {{(trigger.event.data.action_value / 3) | int}}"

Essa automação captura o evento de rotação no sentido horário e chama um script em cujo nome o número de sinais de aumento de som que o emissor infravermelho deve enviar é substituído. Como você provavelmente adivinhou, cada canto da rotação requer seu próprio script, o copy-paste foi chamado para criá-los e me deu 20 scripts como estes:


bbk_vol_up_10:
  seqüência:
  - dados:
      comando:
      - bbk_vol_up
      delay_secs: 0.04
      num_repeats: 10
    entity_id: remote.xiaomi_miio_192_168_2_62
    serviço: remote.send_command

A configuração do emissor com sinais interceptados do painel do alto-falante é assim:
controlo remoto:
  - plataforma: xiaomi_miio
    host: 192.168.2.62
    token: 392cbed325e862ffff983c4575b7a6f2
    comandos:
      bbk_power:
        comando: bruto: nE5m0wlk0msxmEsmszmEsm0wAHKaABkAoQAcAL1MZtOQEFmM3ARMCHwCymM2m4ENgXEAioHlgy + AwoL3gvYAh4L0gGGEBYLCAL0BR4CHhU4A + wQ8TC
      bbk_vol_up:
        comando: bruto: nMwmUwlk0mk1mEsms3ADKbABlM5hLJtMAD2ALKazkAdgAymM3AYMBApjNgKTmgGLABuBD4IaAEKA1YJrgyuBDwJvgZeEx4C / geHMZsA4YCDJx
      bbk_vol_down:
        comando: bruto: nE5m0wlk0msxmEsmszmEsm0wAHKaABkAoQAcAL1MZtOQEFmM3ARMCHwIfAdQBFZuAQYFfAfuBCoHngveEx4C / gL + Cj4R2ANfLJqAYQUChU3MAA



Viva! O som controla a rotação do cubo em torno do eixo vertical, e a TV e os alto-falantes são ativados girando o cubo 90 graus em torno do eixo 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'

Em seguida, conecte o emissor infravermelho com o sensor ao comutador da seguinte maneira:
interruptor:
  - plataforma: modelo
    comuta:
      toshiba_tv:
        value_template: "{{is_state ('binary_sensor.toshiba_tv', 'on')}}" "
        Ligar:
          serviço: script.toshiba_power
        desligar:
          serviço: script.toshiba_power

E essa mudança começou a ser exibida na Página inicial do Google e controlada por voz.

PS Exercício com uma casa inteligente foi bem sucedida, fui comprar novos dispositivos!
PPS Um hub ZigBee agora, por algum motivo, ilumina o corredor ...

isso foi




Se tornou



All Articles