Olá pessoas!
Quero fazer uma integração com os aquecedores da Rinnai que usam o módulo ROU-003, mas a documentação do HA está me deixando na mão. Alguém já fez uma integração do zero, ou tem experiência para me ajudar a sair do zero?
Estou usando o home assistant há anos, e estou muito feliz com como tudo “só funciona”, nunca tem dor de cabeça. Estou usando aquela versão que roda no container, usando um raspeberry pi e rodando direto do cartão SD mesmo. Hoje minhas integrações são ao redor do celular com o app, da televisão LG (e com o fireTV), da alexa (com aquela mensalidade pra financiar os caras), das luzes sonoff, e umas cortinas sonoff também.
No caso do aquecedor, eu queria que quando a luz do meu banheiro estivesse acesa e a luz do banheiro da esposa estivesse desligada, que a temperatura baixasse uns 4 graus, e que voltasse à temperatura padrão (40 graus) fora disso. A Rinnai lá de fora até tem uma integração com o HA, vi que usa a cloud deles, e, infelizmente, não funciona com o módulo da Rinnai do Brasil.
O app da Rinnai do Brasil é bem completo (mostra os dados do aquecedor como fluxo, temperatura, ventoinha, etc), mas ainda não faz a integração com o HA. Usando o wireshark, consegui encontrar os comandos que o app usa para falar com o módulo de controle, então sei como monitorar o aquecedor e como alterar a temperatura, são só chamadas HTTP sem autenticação.
A parte difícil é que criar a integração no HA, pela sua flexibilidade, não é tão simples. Consegui montar o ambiente de desenvolvimento (docker, visual studio, github, fazer o fork do código de dev do HA), mas as intruções de como montar a integração em si já não são tão triviais assim.
Usando o scaffold que eles dão, eu consegui “criar” a integração e fazer ela aparecer para ser adicionada no HA. O próximo passo, imagino eu, seria criar o device do tipo water_heater para que eu possa sobrecarregar as funções da classe para, dentro dessas funções, fazer as chamadas que preciso fazer para monitorar e mudar a temperatura como no meu caso de uso.
A parte que não estou me achando é: depois de editar o manifest.json (que fala de nomes), e de editar o init.py (que é o primeiro lugar que fala do tipo de objeto), que são os lugares mais evidentes que vi que tenho que editar? Eu só crio um arquivo water_heater.py na mesma pasta e começo a criar a classe lá dentro? Onde eu instancio essa classe na minha integração? No init tem uma função de setup, eu só crio um objeto com o nome da minha classe ali dentro é isso?
Alguém tem alguma classe mais simples que eu possa olhar para entender? Os exemplos que achei na internet ou são muito básicos (como o hello world que não tem devices), ou muito avançados (como os outros módulos de water heater que mistura devices e sensores e mais tudo), e aí estou fora da minha zona de conforto.
De qualquer maneira, alguém tem alguma direção pra compartilhar? Qualquer ajuda é bem vinda.