
Rastreando a localização de nossa casa com o Home Assistant
Neste post vamos ver algo muito interessante, E nada mais é do que a capacidade de rastrear ou rastrear certos dispositivos Bluetooth (Pulseiras inteligentes, Telemóveis…) Por casa, com o objetivo de localizar a posição em todos os momentos para realizar automações.
O que eu disse, Todos nós temos um telefone celular que nos segue em todos os lugares, ou usamos uma pulseira inteligente ou smartband, Todos esses dispositivos têm Bluetooth, e podemos usar o endereço MAC de cada dispositivo para localizá-lo dentro de nossa casa. Para quê? Bem, primeiro pelas estatísticas, Podemos visualizar quanto tempo gastamos e onde, É muito curioso. Obviamente, podemos fazer isso para colocar automações, Por exemplo, Se for noite e você estiver no quarto e a porta da frente da casa não estiver trancada, Bem, deixe-o fechar. Quando você chega à cozinha de manhã, eu digo bom dia, Eu coloquei a notícia em você… Ou o que eu sei, para nos pintar diretamente no Planta baixa o Planta animada da nossa casa, Sentado no sofá, Comer, Dormir… 😉 Olho, que também podemos localizar nossos animais, Se colocarmos um rastreador desses bluetooths, e que se o gato/cachorro entrar em uma sala, não deve, Deixe os alto-falantes em casa nos dizerem.
Como fazemos isso? Temos que pensar que certos dispositivos devem ser colocados em cada cômodo da casa, em cada quarto, banho… onde queremos nos localizar. E a solução obviamente tem que falar entre cada dispositivo, para saber de qual estamos mais próximos.
A melhor solução pessoalmente se você não tiver esses dispositivos é confiar em ESP32-mqtt-room, que por meio de placas baseadas no chip ESP32 e acima de tudo muito baratas você pode facilmente distribuir e se esconder pela casa. Devo dizer que usei essa solução por cerca de um ano, No final migrei para a solução que veremos hoje neste post, já que tenho vários Raspberry Pi espalhados pela casa, Não me custou nada adicionar essa funcionalidade. Um dia, se eu ficar entediado, faço um post para o ESP32-mqtt-room, o que também é muito legal.
O que eu disse, Hoje vamos ver assistente de quarto, Uma ótima solução também, e que podemos instalar e executar em nosso amado Raspberry Pi, e, claro, como a opção anterior, totalmente integrável em nosso Home Assistant, portanto, fique atento!
Instalação no Raspbery Pi,
Começou! Seguiremos estas etapas em cada Raspberry Pi que temos e queremos instalar o assistente de sala, Primeiras coisas primeiro, instalar o NodeJS:
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - sudo apt-get install -y nodejs
Instalamos todas as dependências de que precisaremos:
Atualização do sudo apt-get && sudo apt-get install -y build-essential libavahi-compat-libdnssd-dev bluetooth libbluetooth-dev libudev-dev libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
Instalamos assistente de quarto, transformador de classe e validador de classe:
sudo npm i --global --unsafe-perm room-assistant sudo npm install i --global class-transformer sudo npm install i --global class-validator
Adicionamos as seguintes permissões:
SUDO SETCAP cap_net_raw+EIP $(eval readlink -f 'qual nó') SUDO SETCAP cap_net_raw+EIP $(eval readlink -f 'qual hcitool') Setcap SUDO cap_net_admin+EIP $(eval readlink -f 'qual hciconfig')
Sinceramente, não me lembro muito bem por que fiz o seguinte, Mas eu tenho isso documentado 🙂
sudo nano /etc/avahi/avahi-daemon.conf enable-dbus=yes
Criamos o diretório e o arquivo de configuração para room-assistant (Tenha cuidado, em seguida, preenchemos o arquivo de configuração, Só para você saber onde está):
mkdir -p ~/room-assistant/config touch ~/room-assistant/config/local.yml
Antes de começar com o arquivo de configuração, Vamos criar o serviço para boot room-assistant:
sudo nano /etc/systemd/system/room-assistant.service
E introduzimos a seguinte configuração no serviço:
[Unidade] Descrição=serviço de assistente de quarto [Serviço] ExecStart=/usr/bin/room-assistant WorkingDirectory=/home/pi/room-assistant Restart=sempre RestartSec=10 User=pi [Instalar] WantedBy=multi-user.target
Nós habilitamos o serviço, Nós começamos (Bem, antes de iniciá-lo, você deve ter o arquivo de configuração do seu assistente de sala que veremos a seguir) e verificamos que foi arrancado:
sudo systemctl enable room-assistant.service sudo systemctl start room-assistant.service sudo systemctl status room-assistant
Arquivo de configuração do assistente de sala, de Exemplo individual, Isto é, um Raspberry Pi trabalhando individualmente, sem falar com o resto das framboesas, que daremos um nome em 'instanceName', adicionaremos os endereços MAC dos dispositivos bluetooth a serem rastreados ou rastreados em 'endereços', e importante, indicaremos nosso servidor corretor MQTT, para lhe enviar os dados:
global: instanceName: Integrações de garagem: - homeAssistente - bluetoothClassic homeAssistente: mqttUrl: MQTT://DIRECCIÓN_IP_BROKER_MQTT:1883 Opções mqtt: nome de usuário: Senha de nome de usuário: bluetoothClassic SENHA: minRssi: -20 Endereços: - 'FD:72:03:6B:A.C:XX' - 'EA:4B:B2:2Para:56:XX' - '7C:2F:80:CE:61:XX' - 'B4:C4:FC:64:19:XX'
E aqui está um Exemplo no modo cluster do arquivo de configuração do assistente de sala, que será o que usaremos quando tivermos mais de um Raspberry Pi com assistente de sala. Ao contrário do anterior, neste, teremos que adicionar o endereço IP de cada Raspberry Pi em peerAddresses:
global: Cluster: Descoberta automática: Porta falsa: 6425 peerAddresses: - DIRECCION_RASPBERRY_PI_1:6425 - DIRECCION_RASPBERRY_PI_2:6425 - DIRECCION_RASPBERRY_PI_3:6425 - DIRECCION_RASPBERRY_PI_4:6425 - DIRECCION_RASPBERRY_PI_5:6425 instanceName: Integrações de cozinha: - homeAssistente - bluetoothClassic homeAssistente: mqttUrl: MQTT://DIRECCIÓN_IP_BROKER_MQTT:1883 Opções mqtt: nome de usuário: Senha de nome de usuário: bluetoothClassic SENHA: minRssi: -20 hciDeviceId: 0 Endereços: - 'FD:72:03:6B:A.C:XX' - 'EA:4B:B2:2Para:56:XX' - '7C:2F:80:CE:61:XX' - 'B4:C4:FC:64:19:XX'
Poço, Agora sim, depois de gravar e ter seu arquivo de configuração, Lembre-se de reiniciar o serviço (Ou demônio) por assistente de quarto.
Configurações do Home Assistant,
Poço, nós já temos isso! Agora só falta acrescentar a nossa querida. amei e desejamos Home Assistant, os dispositivos que queremos visualizar, Isso é, Telemóveis, Pulseiras… então vamos para o arquivo de configuração do Home Assistant, configuration.yaml e na seção 'Sensor'’ Adicionamos o seguinte bloco, indicando o MAC e a descrição do dispositivo:
sensor: ... - Plataforma: mqtt_room device_id: "b4c4fc6419XX" Nome: 'Teléfono móvil de Héctor' state_topic: 'room_presence' timeout: 5 away_timeout: 0 ...
E como sempre, salve o arquivo e reinicie o Home Assistant para carregar a configuração. Poderemos adicionar cada Entidade que registramos facilmente com o mouse filtrando por dispositivos do tipo 'room_presence'.
E nada, Deixe a mágica correr, veremos como dependendo de onde estamos, veremos neste histórico o estado da Entidade e seu posicionamento.
Se você for longe demais e tiver um Grafana por aí, Você pode visualizar, por exemplo, com uma visão do queijo de uma forma muito simples os tempos, E, claro,, Isso tem uma história… Para as fofocas, Eu tirei o tempo que passo no banheiro, hehe, E com esse tipo de consulta teríamos:
Estado SELECT como métrica, TIMESTAMPDIFF(SEGUNDO, Min(last_updated), Max(last_updated)) como valor, last_changed como time_sec DE estados ONDE $ __timeFilter(Criado) and state = 'Cocina' and entity_id = 'sensor.maixu_dordoka_room_presence' GROUP BY last_changed ORDER BY created DESC ;
Oh, bem, É hora de olhar para um exemplo de automação, Nas imagens você verá fácil, neste caso, é, À noite, Quando minha txabala ou eu estamos na cama, se a porta não tiver sido trancada, Bem, feche-o, Também o notifiquei através dos alto-falantes em casa, Envie um telegrama, Blá, Blá…
Como sempre um prazer, Espero que gostem, Um abraço e muito obrigado por essas curtidas nas redes sociais que não custam nada!! 🙂