Estatísticas de instalações do Home-Assistant

Home-Assistance analytics
Home-Assistance analytics

O Home-Assistant disponibiliza agora um conjunto de dados estatísticos da sua utilização. Estes dados eram-me desconhecidos até agora.

Aquilo que retive deste site foi que existem neste momento registadas 11866 instalações de Home-assistant em todo o mundo e que 189 são em Portugal.

Já tínhamos falado no PouparMelhor sobre o Home-assistant. Continuo fã, mas não sei se foi boa ideia terem ligado as instalações todas a um servidor de estatística quando o Home-assistant sempre foi visto como uma forma de desligarmos as nossas casas da nuvem…

Coisas que uma empresa pode fazer a um cliente, mas que um cliente não consegue fazer de volta

Os balcões virtuais, sites, atendimentos eletrónicos e outras modernices tecnológicas trouxeram-nos todo um novo modo de relacionamento com quem temos contratos ou pretendemos adquirir produtos ou serviços.

A partir do momento em que nos relacionamos pelos meios eletrónicos, damos às empresas todo um novo manancial de ferramentas para nos facilitarem as interações, mas, infelizmente, também para nos destratarem.

Há todo um mundo novo do desequilíbrio entre o cidadão individual e as pessoas coletivas.

Acredito que o respeito deve ser baseado na reciprocidade. Se alguém não nos respeita, trata-nos de maneira distinta da que espera ser tratado. Isto desequilibra substancialmente as relações quando, para além do trato social, são também dados direitos sem que tal se justifique. Mas isto é conversa para aquele outro blog.

Decidi por isso fazer uma pequena lista destas formas de tratamento que as empresas passaram a deitar mão, mas que não estão facilmente acessíveis aos cidadãos individualmente:

  1. Enviar SMS ao qual não é possível responder de volta.
  2. Gravar as interações com os clientes e recusar serviço se não o autorizarmos, enviando-nos para “as vias alternativas”.
  3. Apenas aceitar resposta por carta, mesmo quando todos os contactos iniciados pela empresa nos chegam por todos os outros meios.
  4. Por um robô a atender-nos.
  5. Entrar na nossa rede doméstica através do router que lhes alugámos, alterar configuração e não deixar qualquer registo consultável desse acesso no equipamento ou noutro lado qualquer.
  6. Solicitar o nosso número de contribuinte ou outro tipo de identificação para iniciar um contacto telefónico.

Desculpas de programador

“You must have done something wrong”

Por causa de outras coisas, lá fui dar com um site com um conjunto de desculpas de programador.

O site é isso mesmo, uma coleção de desculpas, algumas das quais, que quem trabalha com sistemas de informação já ouviu. A cada nova visita, uma nova frase é mostrada. É só isto.

You must have done something wrong” é das que mais se ouvem. Na realidade, até acho que o site podia chamar-se “coisas que os programadores dizem” porque não lhes vejo más intenções quando o dizem, apenas dificuldades de tradução.

Outras pérolas registadas no site:

Refazer peças de plástico sem impressora 3D

Fiquei impressionado com a “engenhosidade” da técnica de recuperação de peças de plástico partidas apresentada neste vídeo por permitir recuperar coisas que tipicamente não tinham outra solução que não fosse usar assim ou comprar uma nova.

A solução apresentada no vídeo passa por juntar bicarbonato de sódio com super-cola para obter um cimento/cola. Esse cimento/cola solidifica muito rapidamente e pode depois ser limado e cortado à forma desejada.

A vantagem de utilizar a super-cola com o bicarbonato de sódio é que esta cria uma massa rígida que pode ser depois limada ou cortada ao formato da peça que se partiu. A super-cola, por seu lado, quando usada em separado, só serve de cola.

Esta solução pode não ser nova na web, mas para mim, que volta e meia tenho de arranjar o que lá em casa alguém diz que “partiu-se”, pode vir a servir. Pode servir, por exemplo, para reconstruir a tampa das pilhas do comando remoto com que uma das crianças teima em brincar enquanto vê televisão.

No vídeo, o autor diz que viu a técnica em vídeos de recuperação de instrumentos musicais e não entra em muitos detalhes sobre a razão pela qual a super-cola reage com o bicarbonato de sódio, mas demonstra a sua aplicação em vários objetos que aparentemente não teriam solução.

Com esta solução, a compra de uma impressora 3D deixa de ter menos uma vantagem a seu favor. E já tínhamos aqui apontado desvantagens de usar uma impressora 3D.

Medir o sinal WiFi e mostrá-lo no Home-assistant

Sinal Wifi no Home-assistant

Os equipamentos baseados em ESP8266 e ESP32 (ESP) podem também servir-vos para medir a intensidade do sinal Wifi lá de casa. Isto pode ser útil para determinar se precisam de um repetidor de sinal Wifi, mudar o router wifi de sitio ou melhorar a antena do router Wifi.

A velocidade da Internet nos equipamentos sem fios depende da qualidade do sinal Wifi, por isso, é útil ter a capacidade de medir esse sinal como forma de depois sabermos o que temos de melhorar.

Com o ESPhome.io e alguns ESP isto fica tudo muito mais fácil de integrar no Home-assistant. Acrescentar um sensor de sinal Wifi ao Home-assistant através do ESPhome significa apenas acrescentar mais 3 linhas à configuração de cada ESP na secção sensor:.

- platform: wifi_signal
name: "WiFi Signal Sensor"
update_interval: 3600s

No exemplo do ESPhome.io vão encontrar como intervalo de tempo entre cada medida (update_interval) 60s. Para mim, medir a cada 60 minutos, e por isso configuro os sensores com 3600s.

Como todos os outros sensores do ESPhome.io, o Home-assistant vai identificar automaticamente o novo sensor e podemos por isso acrescentá-lo depois aos painéis.

A unidade de medida de apresentação dos resultados é o decibel (dB), que significa “um décimo de um Bel”. Para interpretar de forma útil os valores apresentados, uso como referência que um bom sinal terá de ficar entre os -70dB e -60dB, sendo melhor à medida que se aproxima de 0. Mas a tabela abaixo, traduzida do site MetaGeek, pode ajudar a perceber melhor como é que isto nos pode ser útil.

Força do sinalTL;DR DescriçãoEssencial para:
-30 dBmEspetacularMáxima força do sinal. O equipamento tem de estar muito perto do router Wifi, o que é pouco usual no mundo real.N/A
-67 dBmMuito bomSinal mínimo para aplicações que necessitam de uma ligação estável e atempada dos pacotes de comunicação.VoIP/VoWiFi, streaming video
-70 dBmBomSinal mínimo para considerar uma ligação capaz de entregar pacotes de comunicação.Email, web
-80 dBmNada bomSinam minimo para considerar que há uma ligação. Não é garantida a entrega dos pacotes de comunicação.N/A
-90 dBmInútilA aproximar-se dos limites do impossível. É quase impossível ter qualquer tipo de funcionalidade com esta força de sinal.N/A

Se forem olhar novamente para a imagem que está no inicio deste artigo vão ver que existe um ESP a obter uma medição de -21dB. Este ESP está a menos de um palmo do meu router, e por isso tem esta medição espetacular.

Interruptores smart com ESPhome e Home-assistant

Com o tempo, tenho transformado o meu apartamento numa smart home. Fiz isso usando o Home-assistant (HASS), alguns ESP8266 e ESP32 com vários tipos de sensores, e uns interruptores da marca SonOff, produzidos pela ITEAD.

Até há uns dias, usava código meu nos ESP8266 e ESP32. Nos interruptores, algo bem mais complicado, converti-os do firmware original para um firmware free open source chamado Tasmota. Este firmware Tasmota é largamente utilizado pela comunidade portuguesa do HASS. Nesta conversão, a parte mais difícil é mesmo abrir os interruptores e soldar uns pins a um programador série para fazer upload do código. Só custa a primeira vez…

Aqui há uns dias, converti todos os meus ESP para ESPhome, pelas várias vantagens que já referi. Hoje, decidi testar o ESPhome num dos meus interruptores de testes da SonOff.

As instruções para fazer esta mudança dos SonOff de Tasmota para ESPhome estão no próprio site do ESPhome. Mas ficam aqui os passos que fiz para um SonOff T2.

A primeira coisa que é necessário fazer é gerar um firmware com Over The Air (OTA) e fazer upload para o SonOff. Fiz tal e qual como nas instruções do ESPhome.

Cada interruptor smart-home SonOff pode ter uma configuração diferente. Cá em casa tenho vários SonOff T1 com 1 e 2 interruptores. Seguindo as instruções do ESPhome, fiz um teste com o SonOff T1 2ch.

No site está uma tabela com os pins e a configuração que temos de preparar em cada pin.


Pin
Função
GPIO0 Button 1 (inverted)
GPIO12 Relay 1 and Blue LED
GPIO9 Button 2 (inverted)
GPIO5 Relay 2 and Blue LED
GPIO10 Button 3 (inverted)
GPIO4 Relay 3 and Blue LED
GPIO13 Blue LED (inverted)
GPIO1 UART TX pin (for external sensors)
GPIO3 UART RX pin (for external sensors)

Por cada botão, vamos ter de adicionar uma secção destas:

binary_sensor:
- platform: gpio
pin:
number: GPIO0
mode: INPUT_PULLUP
inverted: True
name: "Sonoff 2CH Button 1"
on_press:
- switch.toggle: relay_1

E um destes:

switch:
- platform: gpio
name: "Sonoff 2CH Relay 1"
pin: GPIO12
id: relay_1

Vão ter de arrumar todos os switch e todos os binary_sensor na mesma secção, e não se podem repetir secções.

Reparem que o binary_sensor, que aqui representa um dos botões no painel do SonOff, tem uma condição on_press que altera um switch chamado relay_1. Este nome deve ser colocado como identificador do switch que querem mudar de posição. Neste caso, o id do switch 1 será relay_1.

É esta condição que faz com que a luz se ligue ou desligue de cada vez que pressionam o botão no painel do interruptor.

O resultado final fica assim:

substitutions:
  hostname: 'sonoff_04'
esphome:
  name: $hostname
  platform: ESP8266
  board: esp01_1m
wifi:
  ssid: MINHA_REDE_WIFI
  password: PASSWORD_DA_MINHA_REDE_WIFI
  fast_connect: True
  domain: .home
api:
  reboot_timeout: 0s
  password: "PASSWORD_PARA_API"
ota:
  safe_mode: True
  password: PASSWORD_PARA_OTA
logger:
# SonOff T2 2CH configuration
binary_sensor:
  - platform: gpio
    pin:
     number: GPIO0
     mode: INPUT_PULLUP
     inverted: True
    name: "$hostname Button 1"
    on_press:
     - switch.toggle: relay_1
  - platform: gpio
    pin:
     number: GPIO9
     mode: INPUT_PULLUP
     inverted: True
    name: "$hostname Button 2"
    on_press:
      - switch.toggle: relay_2
switch:
  - platform: gpio
    name: "$hostname Relay 1"
    pin: GPIO12
    id: relay_1
  - platform: gpio
    name: "$hostname Relay 2"
    pin: GPIO5
    id_5
output:
  - platform: esp8266_pwm
    id: sonoff_led
    pin:
      number: GPIO13
      inverted: True
light:
  - platform: monochromatic
    name: "Sonoff LED"
    output: sonoff_led

Reparem como aproveitei o que que explico sobre como configurar o ESPhome para facilitar os nomes de cada sensor e atuador.

Assim, se depois de ter o interruptor a teste uns dias estiver tudo a funcionar sem problemas, basta mudar o nome do hostname na secção substitutions para ter tudo pronto para outro interruptor com a mesma configuração. Só muda o nome.