ESPHome no seu Home Assistant

Código quase todo escrito; estou montando os componentes para testar e ajustar o código. Assim que der, vou criar um tópico.

Para contribuir com o fórum ta ai a configuração do Sonoff Mini.

esphome:
  name: sonoffmini_luz_fundo
  platform: ESP8266
  board: esp01_1m

wifi:
  ssid: "SeuID"
  password: "SuaSenha"
  
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Sonoff mini Fundo"
    password: "SuaSenha"

captive_portal:

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:

binary_sensor:
  - platform: gpio
    id: button
    pin:
      number: GPIO0
      mode: INPUT_PULLUP
      inverted: True
    on_press:
      - light.toggle: light01
  - platform: gpio
    pin:
      number: GPIO4
      mode: INPUT_PULLUP
      inverted: False
    name: "Interruptor do Fundo"
    on_press:
      - light.toggle: light01
    on_release:
      - light.toggle: light01


output:
  - platform: gpio
    pin: GPIO12
    id: relay

light:
  - platform: binary
    name: "Luz do Fundo"
    id: light01
    output: relay
    restore_mode: restore_default_off
5 curtidas

Bom dia, fiquei com uma dúvida no caso da placa usada (esp01) pelo pinoult só vejo os pinos: GPIO0, GPIO1, GPIO2, GPIO3.
Eu poderia trocar neste código, por exemplo: GPIO4 por GPIO1 e GPIO12 por GPIO2?

Boa noite Douglas
Desde já grande trabalho, obrigado.
A minha questão é sobre a linha de dispositivos da Finder Yesly que são dispositivos Bluetooth se serão reconhecidos pelo hub esp32 que explicaste no tópico acima.
Vou colocar estes dispositivos na minha casa mas não tenho forma de integrar no home assistant.
Obrigado.
Continuação do grande trabalho.

Boa noite, gostaria muito da ajuda de vcs, estou com dificuldades para trazer o estado dos meus módulos reles para o home assistant, eles funcionam tanto pelo HA quanto pelo interruptor paralelo, o problema é que não sei quando estão ligados ou desligados, alguém poderia me ajudar?

É possível usar o mesmo arquivo secrets.yaml do Home Assistant para variáveis do ESPHome, muito útil para nome e senha da rede wifi e senhas da API e do OTA dos dispositivos.

Assim é possível concentrar todas as suas variáveis importantes em um único arquivo, veja o post a seguir:

Configuração que uso no meu sonoff mini

substitutions:
  device_name: mini-sonoff-sala
  

esphome:
  name: ${device_name}
  platform: ESP8266
  board: esp01_1m
  
  
wifi:
  networks:
  - ssid: !secret wifi1
    password: !secret senhawifi1
  - ssid: !secret wifi2
    password: !secret senhawifi2
    

  # caso a conexão falhe, pode acessar usando
  ap:
    ssid: ${device_name}
    password: "12345678"
    

# sensores

sensor:
  - platform: wifi_signal
    name: ${device_name} sinal wireless
    icon: mdi:signal-cellular-2
    update_interval: 60s
    
  - platform: uptime
    name: ${device_name} tempo de atividade
    icon: mdi:timeline-clock

text_sensor:
  - platform: wifi_info
    ip_address:
      name: ${device_name} ip
      icon: mdi:ip-network
    ssid:
      name: ${device_name} conectado à
      icon: mdi:wifi
    bssid:
      name: ${device_name} mac do roteador
      icon: mdi:access-point
    mac_address:
      name: ${device_name} mac do dispositivo
      icon: mdi:lan-connect
      
      
logger:
  
  
api:
  password: !secret senhaapi


ota:
  password: !secret ota_password
  

web_server:
  port: 80
  auth:
    username: admin
    password: !secret web_senha



##################################################
# A configuração do dispositivo começa abaixo    #
##################################################

binary_sensor:
  # as 7 linhas abaixo definem o botão de reset
  - platform: gpio
    pin: GPIO00
    id: reset
    internal: true  # hides reset switch from HomeAssistant
    filters:
      - invert:
      - delayed_off: 10ms

  # as 3 linhas abaixo alternam o relé principal
    on_press:
      - light.toggle:
          id: light_id

  # as 13 linhas abaixo alternam o relé principal
  - platform: gpio
    name: liga_desliga
    internal: true  # oculta no homeassistant
    pin: GPIO04
    id: gpio_light_id
    on_press:
      then:
        - light.toggle:
            id: light_id
    on_release:
      then:
        - light.toggle:
            id: light_id

  # as 2 linhas abaixo criam um entidade de status no homeassistant
  - platform: status
    name: ${device_name}_status

status_led:
  pin:
    number: GPIO13
    inverted: true
    

# output

output:
  # as 3 linhas controlam o relê principal
  - platform: gpio
    pin: GPIO12
    id: main_light_relay
    
  # as 3 linhas abaixo controlam o led
  - platform: esp8266_pwm
    id: blue_led
    pin: GPIO13
    inverted: True

# light

light:
  # as 4 linhas abaixo definem o relé principal como uma luz
  - platform: binary
    name: ${device_name} # aqui vc escolhe o nome que aparecerá no homeassistant
    output: main_light_relay  
    id: light_id

    
  # as 4 linhas abaixo definem a luz LED no Mini, para expor na linha de remoção do HomeAssistant "internal: true"
  - platform: monochromatic
    name: ${device_name}_blueled
    output: blue_led
    internal: true # esconde o LED azul do Homeassistant

    
# time

time:
  - platform: sntp # você pode usar homeassistant em lugar de sntp
    id: sntp_time
    servers:
      - b.st1.ntp.br 
      - b.ntp.br
    timezone: America/Sao_Paulo
    
      # Desligar todos os dias da semana nos horários abaixo
    on_time:
      - seconds: 0 # pode ser 1,2,3... ou 0-59
        minutes: 0 # pode ser 1,2,3... ou 0-59
        hours: 10 # pode ser 1,2,3... ou 0-23
        days_of_week: 1-7 # pode MON-FRI. 1 a 7 equivale aos dias da semana
        then:
          - light.turn_off: light_id

Olá Pessoal

Tenho home assistant instalado em um mini computador rodando debian 11. Enfim tenho aproximadamento 60 esp’s integrados via esphome (esp8266 e esp32) Acontece que desde as duas ultimas atualizacoes do esphome estou um tanto confuso. Eu faco flash na placa ela fica online, faco a intregracao ate ai tudo bem. Quando comeco a adicionar as entidades, seja sensores, interruptores, reles vai tudo bem ate finalizar o upload a partir dai a placa perde a integracao com o home assistant mas continua on line e eu consigo alterar a programacao, se eu delelar o que fiz e enviar novamente o arquivo bin por wifi a placa volta a estar integrada. A outras 60 placas estao funcionando perfeitamente, copiei e colei toda a programacao de uma delas e continua dando o mesmo problema. Este o final do upload:

INFO Uploading /data/banheiro-social/.pioenvs/banheiro-social/firmware.bin (933696 bytes)
Uploading: [============================================================] 100% Done…

INFO Waiting for result…
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from banheiro-social.local using esphome API
WARNING Can’t connect to ESPHome API for banheiro-social.local: Error resolving IP address: [Errno -2] Name or service not known
INFO Trying to reconnect to banheiro-social.local in the background

Eu tentei de tudo e nao sei se perdi alguma coisa com esta atualizacao que acabei nao lendo mas, esgotei tudo o que poderia fazer. Se agluem puder me ajudar eu agradeco.
Pecos desculpas pelos erros de digitacao meu teclado esta bugado.

Revivendo aqui…rs

Alguém sabe o motivo de toda vez que tento realizar a instalação o Home Assistant perde a canexão?
Não estou conseguindo subir nenhuma programação para os nodemcu que tenho…

Isso tentando todos os modos que tem disponíveis…

Tereia como fazer esse processo de alguma outra forma e depois o HA reconhecer?

Tem umas placas que você precisa segurar o botão “flash” num dado momento pra conseguir subir algo nelas.
Não sei se é o caso da sua.
Se a sua tiver o botão flash, dá uma pesquisada nisso.

1 curtida

Vou tentar…
Mas o problema é que começa subir e o home assistant para de funcionar, ai tenho que desligar e ligar a tomada do rasp pra voltar o HA

Ele trava nessa tela ai…e derruba a conexão do Home Assistant…
impossível subir o código assim né?
Não existe outra forma com programas rodando no próprio windows??

A primeira vez tem que ser cabeado ou via webserials.
Justamente pra não precisar de conexão com HA.
As próximas pode ser OTA.

1 curtida

Sim, estou fazendo cabeado usando o addon do esphome no HA, é assim não é?
e no meio do processo trava nessa parte e o HA quando vou ver está fora do ar…
fica travado minutos nessa tela da print…

Fiz um teste com o sensor ultrassônico que é o que estou tentando fazer para medição da caixa d’água usando tasmota e está funcionando tanto o nodemcu quanto o sensor…testei pra ver se poderia ser algum problema no nodemcu…

Estou tentando esse modelo que achei mais simplificado e me atenderia:

Medindo o nível da caixa d’água com sensor ultrassônico e esphome – Wanderson Niquini

Então não sei o que é.
Verifica o log do HA quando voltar pra ver o que pode ser.

1 curtida

Seu problema tá na compilação, e me arrisco a dizer que não é no ESPHome e sim a falta de recurso (CPU, memória…) disponível no host…

Até onde sei, só é possível instalar o ESPHome no docker… você pode tentar criar uma VM (virtual box, etc) com HAOS no seu computador Windows para compilar o código.

Segue o log com diversos erros aff…rs

Command failed (with return code 1): cat /sys/devices/platform/coretemp.0/hwmon/hwmon1/temp2_input

14:58:05 – (ERRO) command_line - a mensagem ocorreu pela primeira às 09:58:25 e apareceu 280 vezes

Icon mdi:google-home was removed from MDI, please replace this icon with an other icon in your config, it will be removed in version 2022.10.

14:57:53 – (ALERTA) components/system_log/init.py - a mensagem ocorreu pela primeira às 10:01:13 e apareceu 57 vezes

Update “None” caused error: “Conflict: terminated by other getUpdates request; make sure that only one bot instance is running”

14:57:40 – (ERRO) Telegram bot - a mensagem ocorreu pela primeira às 10:00:24 e apareceu 507 vezes

Error while getting Updates: Conflict: terminated by other getUpdates request; make sure that only one bot instance is running

14:57:40 – (ERRO) /usr/local/lib/python3.10/site-packages/telegram/ext/updater.py - a mensagem ocorreu pela primeira às 10:00:24 e apareceu 507 vezes

Error executing query SELECT table_schema “database”, Round(Sum(data_length + index_length) / 1048576, 1) “value” FROM information_schema.tables WHERE table_schema=“homeassistant” GROUP BY table_schema LIMIT 1;: (MySQLdb.OperationalError) (2013, ‘Lost connection to MySQL server during query’) [SQL: SELECT table_schema “database”, Round(Sum(data_length + index_length) / 1048576, 1) “value” FROM information_schema.tables WHERE table_schema=“homeassistant” GROUP BY table_schema LIMIT 1;] (Background on this error at: Error Messages — SQLAlchemy 1.4 Documentation)

14:53:10 – (ERRO) SQL - a mensagem ocorreu pela primeira às 10:45:18 e apareceu 24 vezes

Unexpected error fetching multiscrape data:

14:48:48 – (ERRO) multiscrape (integração customizada) - a mensagem ocorreu pela primeira às 09:59:16 e apareceu 10 vezes

Setup of sensor platform multiscrape is taking over 10 seconds.

14:41:10 – (ALERTA) Sensor - a mensagem ocorreu pela primeira às 09:58:33 e apareceu 81 vezes

Error fetching speedtestdotnet data: Unable to connect to servers to test latency.

14:30:05 – (ERRO) Speedtest.net - a mensagem ocorreu pela primeira às 10:30:02 e apareceu 2 vezes

Error doing job: Task exception was never retrieved

13:59:36 – (ERRO) /usr/src/homeassistant/homeassistant/runner.py - a mensagem ocorreu pela primeira às 13:59:30 e apareceu 3 vezes

error while get mqtt config

13:57:16 – (ERRO) /usr/local/lib/python3.10/site-packages/tuya_iot/openmq.py - a mensagem ocorreu pela primeira às 11:58:15 e apareceu 2 vezes

Updating state for calendar.leojcs_br_gmail_com (<class ‘homeassistant.components.google.calendar.GoogleCalendarEntity’>) took 0.425 seconds. Please create a bug report at Issues · home-assistant/core · GitHub

11:12:01 – (ALERTA) helpers/entity.py

Updating dlna_dmr media_player took longer than the scheduled update interval 0:00:10

11:10:18 – (ALERTA) Navegador multimídia - a mensagem ocorreu pela primeira às 10:45:04 e apareceu 4 vezes

Update of media_player.tv_samsung_led32 is taking over 10 seconds

11:10:17 – (ALERTA) helpers/entity.py - a mensagem ocorreu pela primeira às 10:45:16 e apareceu 4 vezes

Error doing job: Task exception was never retrieved

11:10:02 – (ERRO) /usr/src/homeassistant/homeassistant/runner.py - a mensagem ocorreu pela primeira às 11:10:01 e apareceu 9 vezes

[1473357952] Unexpected error inside websocket API

11:10:01 – (ERRO) Home Assistant WebSocket API - a mensagem ocorreu pela primeira às 11:10:01 e apareceu 5 vezes

Unexpected disconnection.16

11:09:55 – (ERRO) /usr/local/lib/python3.10/site-packages/tuya_iot/openmq.py - a mensagem ocorreu pela primeira às 11:09:50 e apareceu 2 vezes

[Sala(192.168.0.9):8009] Heartbeat timeout, resetting connection

10:58:10 – (ALERTA) /usr/local/lib/python3.10/site-packages/pychromecast/socket_client.py

Disconnected from MQTT server core-mosquitto:1883 (7)

10:50:52 – (ALERTA) MQTT

Unhandled database error while processing task EventTask(event=<Event state_changed[L]: entity_id=sensor.speedtest_download, old_state=<state sensor.speedtest_download=263.23; state_class=measurement, server_name=Rio de Janeiro, server_country=Brazil, server_id=14612, bytes_received=329569898, unit_of_measurement=Mbit/s, attribution=Data retrieved from Speedtest.net by Ookla, icon=mdi:speedometer, friendly_name=SpeedTest Download @ 2022-09-18T10:43:13.644915-03:00>, new_state=<state sensor.speedtest_download=6.86; state_class=measurement, server_name=Rio de Janeiro, server_country=Brazil, server_id=42827, bytes_received=8905672, unit_of_measurement=Mbit/s, attribution=Data retrieved from Speedtest.net by Ookla, icon=mdi:speedometer, friendly_name=SpeedTest Download @ 2022-09-18T10:45:16.988558-03:00>>): (MySQLdb.OperationalError) (2002, “Can’t connect to MySQL server on ‘core-mariadb’ (115)”) (Background on this error at: Error Messages — SQLAlchemy 1.4 Documentation)

10:45:21 – (ERRO) Recorder - a mensagem ocorreu pela primeira às 10:45:17 e apareceu 12 vezes

Unhandled database error while processing task EventTask(event=<Event system_log_event[L]: name=homeassistant.helpers.entity, message=[‘Update of sensor.cpu_speed is taking over 10 seconds’], level=WARNING, source=[‘helpers/entity.py’, 515], timestamp=1663508716.275719, exception=, count=1, first_occurred=1663508716.275719>): (MySQLdb.OperationalError) (2002, “Can’t connect to MySQL server on ‘core-mariadb’ (115)”) (Background on this error at: Error Messages — SQLAlchemy 1.4 Documentation)

10:45:21 – (ERRO) Recorder - a mensagem ocorreu pela primeira às 10:45:14 e apareceu 10 vezes

Error executing statistics: (MySQLdb.OperationalError) (2002, “Can’t connect to MySQL server on ‘core-mariadb’ (115)”) (Background on this error at: Error Messages — SQLAlchemy 1.4 Documentation)

10:45:20 – (ALERTA) Recorder

Error executing query: (MySQLdb.OperationalError) (2002, “Can’t connect to MySQL server on ‘core-mariadb’ (115)”) (Background on this error at: Error Messages — SQLAlchemy 1.4 Documentation)

10:45:20 – (ERRO) Recorder

Failed to to call /ingress/validate_session -

10:45:17 – (ERRO) Home Assistant Supervisor

Timeout on /ingress/validate_session request

10:45:17 – (ERRO) Home Assistant Supervisor

Unhandled database error while processing task EventTask(event=<Event system_log_event[L]: name=telegram.ext.updater, message=[‘Error while getting Updates: Conflict: terminated by other getUpdates request; make sure that only one bot instance is running’], level=ERROR, source=(‘/usr/local/lib/python3.10/site-packages/telegram/ext/updater.py’, 478), timestamp=1663508694.746937, exception=, count=1, first_occurred=1663508694.746937>): (MySQLdb.OperationalError) (2013, ‘Lost connection to MySQL server during query’) [SQL: SELECT event_data.data_id FROM event_data WHERE event_data.hash = %s AND event_data.shared_data = %s] [parameters: (28285026, ‘{“name”:“telegram.ext.updater”,“message”:[“Error while getting Updates: Conflict: terminated by other getUpdates request; make sure that only one bot … (61 characters truncated) … lib/python3.10/site-packages/telegram/ext/updater.py”,478],“timestamp”:1663508694.746937,“exception”:“”,“count”:1,“first_occurred”:1663508694.746937}’)] (Background on this error at: Error Messages — SQLAlchemy 1.4 Documentation)

10:45:03 – (ERRO) Recorder

Current option: Enchendo no longer valid (possible options: Enchendo Batendo Molho Esvaziando Centrifugando)

10:37:55 – (ALERTA) Entrada de seleção

Can’t connect to ESPHome API for esphome-web-0c7af8 @ 192.168.0.98: Timeout while connecting to (‘192.168.0.98’, 6053)

10:33:05 – (ALERTA) /usr/local/lib/python3.10/site-packages/aioesphomeapi/reconnect_logic.py

Error fetching roku data: Invalid response from API: Timeout occurred while connecting to device

10:01:28 – (ERRO) Roku

Error doing job: Task exception was never retrieved

10:01:19 – (ERRO) config_entries.py

Error occurred loading configuration flow for integration tuya: cannot import name ‘AuthType’ from ‘tuya_iot’ (/usr/local/lib/python3.10/site-packages/tuya_iot/init.py)

10:01:19 – (ERRO) config_entries.py

The unit of sensor.cons_energ_hora_rack (kWh) does not match the unit of already compiled statistics (None). Generation of long term statistics will be suppressed unless the unit changes back to None. Go to Link to Developer Tools: Statistics – My Home Assistant to fix this

10:00:11 – (ALERTA) Sensor - a mensagem ocorreu pela primeira às 10:00:11 e apareceu 12 vezes

TemplateError(‘ValueError: Template error: int got invalid input ‘unknown’ when rendering template ‘{{ states(‘sensor.tyebec4449db832aaa8cnqfs’) |int / 1000 }}’ but no default was specified’) while processing template ‘Template(“{{ states(‘sensor.tyebec4449db832aaa8cnqfs’) |int / 1000 }}”)’ for attribute ‘_attr_native_value’ in entity ‘sensor.tomada_rack_current’

09:59:43 – (ERRO) helpers/template_entity.py - a mensagem ocorreu pela primeira às 09:59:43 e apareceu 3 vezes

Error while processing template: Template(“{{ states(‘sensor.tyebec4449db832aaa8cnqfs’) |int / 1000 }}”)

09:59:43 – (ERRO) helpers/template.py - a mensagem ocorreu pela primeira às 09:59:43 e apareceu 3 vezes

Error setting up entry Zigbee CC2531 for zha

09:59:36 – (ERRO) components/zha/core/gateway.py

Couldn’t start ZNP = Texas Instruments Z-Stack ZNP protocol: CC253x, CC26x2, CC13x2 coordinator (attempt 1 of 3)

09:59:36 – (ALERTA) Zigbee Home Automation - a mensagem ocorreu pela primeira às 09:59:30 e apareceu 3 vezes

Couldn’t start application

09:59:36 – (ERRO) /usr/local/lib/python3.10/site-packages/zigpy/application.py - a mensagem ocorreu pela primeira às 09:59:30 e apareceu 3 vezes

Config entry ‘Home’ for met integration not ready yet: Update failed: ; Retrying in background

09:59:24 – (ALERTA) config_entries.py - a mensagem ocorreu pela primeira às 09:59:04 e apareceu 2 vezes

custom_components.tuya_v2.number::TuyaHaNumber is overriding deprecated methods on an instance of NumberEntity, this is not valid and will be unsupported from Home Assistant 2022.10. Please report it to the custom integration author.

09:59:16 – (ALERTA) Número

Platform openhardwaremonitor not ready yet: None; Retrying in background in 30 seconds

09:59:04 – (ALERTA) Sensor

Access to https://aa015h6buqvih86i1.api.met.no/weatherapi/locationforecast/2.0/complete returned error ‘TimeoutError’

09:59:04 – (ERRO) components/met/init.py

Timeout of 20 reached while waiting for https://api.github.com/rate_limit

09:59:04 – (ERRO) HACS (integração customizada)

Setup of light platform switch is taking over 10 seconds.

09:59:04 – (ALERTA) Luz

Setup of media_player platform dlna_dmr is taking over 10 seconds.

09:59:04 – (ALERTA) Navegador multimídia

Setup of hassio is taking over 10 seconds.

09:58:38 – (ALERTA) runner.py - a mensagem ocorreu pela primeira às 09:58:09 e apareceu 3 vezes

command_line: Error on device update!

09:58:28 – (ERRO) Sensor

Template variable warning: ‘None’ has no attribute ‘state’ when rendering ‘/local/moon_phases/{{ states.sensor.moon.state }}.png’

09:58:25 – (ALERTA) helpers/template.py

Configuration of the SQL sensor platform in YAML is deprecated and will be removed in Home Assistant 2022.6; Your existing configuration has been imported into the UI automatically and can be safely removed from your configuration.yaml file

09:58:24 – (ALERTA) SQL

The cpuspeed platform for the sensor integration does not support platform setup. Please remove it from your config.

09:58:23 – (ERRO) Sensor - a mensagem ocorreu pela primeira às 09:58:23 e apareceu 2 vezes

The ‘entity_id’ option near /config/sensor.yaml:462 is deprecated, please remove it from your configuration

09:58:23 – (ALERTA) Template

Ended unfinished session (id=1452 from 2022-09-18 11:58:52)

09:57:58 – (ALERTA) Recorder

No grupo já teve relatos parecidos e era falta de recurso de hardware, qual hardware você roda o HA?

1 curtida

Acabei de ver lá…o problema está provavelmente relacionado ao uso do rasp 3 que to usando…
tentei carregar ele ao máximo, mas tô vendo que vou ter que trocar mesmo…
Não existe opção de compilar fora né?

1 curtida

Você pode instalar o ESPHome em docker e rodar ele fora do HA na sua máquina windows ou usar uma VM.