Estou a desistir do Home Assistant

Tentei de todas as formas integrar o Nodemcu com home assistant por meio do Mqtt mas não tive sucesso. Não sou um programador mas sim um auto de data, mas não há informação suficiente para poder aprender a usar essa ferramenta.
É uma droga, todas as dicas que deram eu tentei e simplesmente não funciona. Conecto o wifi conecto o servidor mas não consigo integrar ao HA. É impossível, a temperatura da minha região não aparecem mais e não mexi nessa configuração e não encontro informações para corrigir. Meu telemovel também não mostra o valor da bateria. Conclusão, não funciona é murro em ponta de faca.

@Rogerio_Souza Desistir logo na primeira mensagem do fórum vai contra a natureza do mesmo…e isso não é uma dúvida é uma certeza.

Primeiro é preciso que deixes para lá a frustração e que nos expliques as coisas como deve ser para que possamos entender.
Primeiro… em que máquina tens o HA instalado? Em um Rpi, em um pc, em um Nuc?
Segundo que tutorial seguiste para instalares?
Terceiro que firmware instalaste no nodemcu e o que queres fazer com ele?
Quarto, coloca aqui a configuração do teu ficheiro configuration.yaml devidamente formatado.
Quinto que aplicação tens no telemóvel para reportar o estado da bateria?

Responde a todas as questões com clareza e com o máximo detalhe possível e não de uma forma vaga.
Só assim poderemos encontrar um caminho para uma possível solução dos teus problemas.

É disso que preciso, um cara que me entende. Agora estou dando atenção à familia, mas já respondo tudo o que me perguntou, obrigado por me orientar e não me deixar desistir.

Instalei o Home Assistant 0.105.5 em um Rpi.
Instalei seguindo o tutorial https://www.home-assistant.io/hassio/installation/
Firmware Winc 1501 model b (19.6.1) (Arduino/Genuino MKR 1000)
O ficheiro está limpo porque reinstalei o HA.
E no telemovel coloquei o App Home Assistant 1.7.2-128

Estou tentando controlar dois led’s no Nodemcu, à principio para aprender, mas o que pretendo é automação de todas as lâmpadas usando o interruptor comum. Então o indivíduo poderá ligar a lampada como sempre fez, mas quem está no controle é o Home Assistant. Sendo assim, posso mandar o meu código C++, mas pode ser alterado como quiser. Não sou programador, apenas um curioso que sempre enfia a cabeça para aprender algo novo, preciso disso se não me sinto atrofiado.

#include <ESP8266WiFi.h>
#include <PubSubClient.h>
const char* ssid = "Costa&Souza"; 
const char* password =  "ninguemsabe";

const char* mqttServer = "192.168.0.10"; 
const int mqttPort = 1883; 
const char* mqttUser = "rogerio"; 
const char* mqttPassword = "ninguemsabe"; 

const char* STATE_TOPIC = "casa/teste/status";
const char* COMMAND_TOPIC = "casa/teste/set";


WiFiClient espClient;
PubSubClient client(espClient);
/*
-------------------------------------------------
NodeMCU / ESP8266  |  NodeMCU / ESP8266  |
D0 = 16            |  D6 = 12            |
D1 = 5             |  D7 = 13            |
D2 = 4             |  D8 = 15            |
D3 = 0             |  D9 = 3             |
D4 = 2             |  D10 = 1            |
D5 = 14            |                     |
-------------------------------------------------
*/

const int LED1 = 2;
const int LED2 = 0;

void mqtt_callback(char* topic, byte* dados_tcp, unsigned int length);

void setup() { 
  
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
 
  Serial.begin(115200);
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) 
  {   
     delay(100);
    Serial.println("Conectando a WiFi..");
  }
  Serial.println("Conectado!"); 
  client.setServer(mqttServer, mqttPort);
  client.setCallback(callback);
 
  while (!client.connected()) {
    Serial.println("Conectando ao servidor MQTT...");
    
    if (client.connect("Projeto", mqttUser, mqttPassword ))
    {
 
      Serial.println("Conectado ao servidor MQTT!");  
 
    } else {
 
      Serial.print("Falha ao conectar ");
      Serial.print(client.state());
      delay(2000);
 
    }
  }
 
  client.publish("Status ","Reiniciado!");
  client.publish("Placa","Em funcionamento!");
  client.subscribe("LED"); 
}

void callback(char* topic, byte* dados_tcp, unsigned int length) {
    for (int i = 0; i < length; i++) {
      }
  if ((char)dados_tcp[0] == 'L' && (char)dados_tcp[1] == '1') {
    digitalWrite(LED1, HIGH);   
  } else if((char)dados_tcp[0] == 'D' && (char)dados_tcp[1] == '1'){
    digitalWrite(LED1, LOW);  
  }
  if ((char)dados_tcp[0] == 'L' && (char)dados_tcp[1] == '2') {
    digitalWrite(LED2, HIGH);   
  } else if((char)dados_tcp[0] == 'D' && (char)dados_tcp[1] == '2'){
    digitalWrite(LED2, LOW);  
  }
} 

void loop() {        
     client.loop();
 }


# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:

# Uncomment this if you are using SSL/TLS, running in Docker container, etc.
# http:
#   base_url: example.duckdns.org:8123

# Text to speech
tts:
  - platform: google_translate

group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

@Rogerio_Souza estás a ir por um caminho complicado sem necessidade podes usar firmwares alternartivos , capazes de fazer o que pretendes. Como por exemplo tasmota, ou esphome. Tens no forum informação disso…não precisas de usar c++.
Tens que pesquisar e ler muito ou até mesmo caso aches mais fácil ver videos no youtube relacionados com esphome e tasmota.

1 Like

@Rogerio_Souza como acho que toda a gente que aqui está aprendeu é contínua a aprender no fórum. Porque não começar por coisas mais básicas?

image

Vou tentar o Tasmota

1 Like

@Rogerio_Souza quando comecei a usar o home assistant ainda nem conhecia o fórum… Só mais tarde é que descobri. E a partir daí foi sempre a evoluir. Não podes desistir. Se tiveres dúvidas o pessoal ajuda.

Consegui configurar usando o Tasmota no Nodemcu, tive de fazer o processo de firmware algumas vezes, parecia estar intermitente, mas agora funcionou.
Falar um pouco do que já estou fazendo, quero colocar dois interruptores comuns para controlar duas lâmpadas, aparentemente funcionou, no HA mas no Tasmota o segundo interruptor (físico) não funciona.
Preciso agradecer o Rodolfo Vieira que me apontou uma outra direção.

Toda a parte logica funciona. No HA e no Tasmota, mas quando pressiono o interruptor 2 o status do LED 2 não acende ou apaga. Onde estou errando??

@Rogerio_Souza podes dar uma vista de olhos neste tópico

Caso ainda tenhas dúvidas como adaptar ao twu caso podes ler atentamente a wiki do Tasmota.

Valeu suas dicas me ajudaram muito, agora é só tocar em frente.


Resolvido só precisei mudar a pinagem, funcionando perfeitamente.

2 Likes

Não seria mais fácil usares um shelly?


Copyright © 2017-2020. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade