Automação residencial com ioBroker

Agora, quando novas peças de controle para lâmpadas, aparelhos de ar condicionado e outros utensílios domésticos aparecem quase diariamente, a questão de combinar toda essa riqueza em uma rede é muito aguda.
Felizmente, porém, o mundo não dorme e está diligentemente envolvido nesse problema. Existem duas soluções gratuitas de qualidade decente e pagas (não o fato de boa qualidade).
Assim como o mundo, também não consigo dormir e, como o mundo inteiro, há muitos anos seguidos e, nos últimos três anos, tenho trabalhado duro para integrar todos os tipos de equipamentos em uma casa inteligente.

Neste artigo, quero abordar a automação residencial e como usar seu projeto de código aberto para iluminar (e não apenas) sua casa confortável. Ah, sim, quase esqueci de dizer que toda automação acontece em JavaScript!

Para todos os amantes de JS, peço um corte


Para começar, um pouco de teoria seca e demagogia sobre o tema da casa inteligente.
Todo mundo entende esse termo como algo diferente. Alguém acende a luz no banheiro com um sensor de movimento e considera a casa já inteligente, mas para alguém a casa do IronMan (JARVIS) não é inteligente o suficiente, porque esta casa foi finalmente destruída, o que significa que não é Eu poderia me proteger de algumas pessoas em helicópteros .
Mas piadas à parte - todas essas pessoas estão certas. Só que o nível de "inteligência" em casa também é diferente, como o QI nas pessoas. Existem “crianças” pequenas que sabem como acender a lâmpada, e há “acadêmicos” que se formaram na universidade e são capazes não apenas de acender a luz, mas também de apagá-la :)

Na casa, várias áreas de automação podem ser distinguidas:
- na maioria das vezes é leve
- depois aquece
- monitoramento ambiental: temperatura interna e externa, umidade
- segurança e alarme
- multimídia (TV, música)
- persianas, janelas, portões, portas, toldos
- ventilação e ar condicionado
- controle de outros eletrodomésticos
- registro e horários
-

lista de notificações Você pode continuar, mas eu gostaria de seguir as instruções mais usadas. Cada campo de automação possui seu próprio sistema de dispositivos, cada um com seus próprios protocolos, aplicativos e métodos de controle. Atualmente não háum fabricante capaz de fornecer dispositivos em cada uma das áreas de automação. Mas há alguns que chegaram especialmente longe: Samsung, Google, Apple.
Ao mesmo tempo, cada um dos fabricantes inventa sua própria bicicleta de protocolos de interação e ninguém quer ceder ao outro. Embora o protocolo de interação do google Weave pareça o mais pensado.

Também há tentativas de criar um protocolo independente do fabricante. Nessa direção, a IBM com o MQTT avançou mais. Infelizmente, porém, não existe um canal padronizado sobre o recebimento de descrições de dispositivos, como unidades, localização / sala, grupo funcional (persianas ou luzes) e outras metainformações.

E o que quero dizer com uma casa inteligente ou, como mencionado acima, que nível de automação combina comigo?
Eu experimentei muito e cheguei à conclusão de que todos esses controles do telefone, controle de voz ou gráficos de temperatura são apenas brinquedos.

Uma verdadeira casa inteligente deve ser discreta. Só deve ser notado quando a casa inteligente parar de funcionar.

Uma casa inteligente deve monitorar as pessoas através de sensores e ajustar o ambiente para elas (não, é claro, não deve enviar essas informações ao Google). Ajuste a temperatura, economizando calor no aquecimento; acenda, quando uma pessoa entrar na sala, a luz de fundo sem ofuscá-la ou tapar as persianas das janelas se a TV estiver ligada e a janela lançar brilho na imagem. Os cenários são infinitos. As casas especialmente inteligentes devem reconhecer as sequências e dependências dos eventos e oferecer novas regras de automação.

Eu sei o que estou dizendo. Pendurei um tablet perto da porta da frente e implementei o controle de voz, construí todos os horários possíveis e impossíveis e posso abrir a porta do apartamento com um telefone, mas isso é tudo para mostrar aos meus convidados uma vez que tipo de casa inteligente eu vou ouvir e dizer "uau" . Minha família e eu quase nunca a usamos.

Não, isso é importante, às vezes, olhe o estado dos sensores na casa por telefone enquanto navega no Mar Mediterrâneo ou receba uma notificação com uma foto dizendo que alguém entrou na casa, embora não deva, abra a porta do carteiro e veja o que ele não suportaria meia casa com ele. E, no final, ouvir de seus amigos o mesmo "uau" também não é o último argumento. :) Tudo isso deve ser, apenas para entender que isso não é realmente tão importante :)

A automação é melhor para um apartamento no qual vive um solteirão tecnófilo, indo trabalhar no mesmo horário todos os dias e tendo um número constante de feriados e fins de semana (a Rússia, infelizmente, não se enquadra nesse critério.) :)).

Depois vem uma família jovem sem filhos, com um amor moderado pela tecnologia. É importante que cada um deles não se divida com um telefone celular.

O caso mais difícil é uma família com filhos (quanto maior, mais difícil). As crianças simplesmente não podem ser automatizadas. “Então, pai, que eu esqueci (a) o telefone. Eu não preciso dele no quintal. " E todos os scripts para reconhecer as pessoas na sala e as regras para ativar o alarme com base nelas são inúteis. (Meu caso)

Mas vamos voltar, no entanto, a como fazer tudo isso em casa e tornar nosso espaço mais confortável.

O que é o ioBroker?
É uma plataforma de integração para a Internet das coisas e serve como um servidor central para:
  • casa inteligente
  • automação predial
  • vida assistida

* A propósito, serei grato pela tradução do último termo.

O ioBroker é um sistema capaz de conectar toda a salada de protocolos e dispositivos entre si.

Algumas empresas de construção decidiram construir moradias inteligentes em Hamburgo e coletaram todos os dispositivos possíveis em um apartamento e oferecem oito aplicativos de telefone (a propósito, apenas maçã) para gerenciar todo esse zoológico. Aqui eu provavelmente preciso escrever: você pode imaginar oito aplicações, Carl!
Com o ioBroker, isso não seria necessário.

O ioBroker possui uma estrutura muito modular. Cada módulo é executado em um processo separado e, quando falha, simplesmente reinicia e todo o sistema continua funcionando.

A diferença entre o ioBroker e outros sistemas de automação é o módulo de visualização da web no navegador - vis. Metade do tempo necessário para desenvolver todo o ioBroker foi gasto em seu desenvolvimento.



Além disso, a vantagem do ioBroker está no grande número de pacotes npm disponíveis - 286000.

* Informações obtidas em http://www.modulecounts.com/ .

Obviamente, a qualidade dos pacotes nem sempre está no topo, mas como regra para o mesmo problema, existem vários pacotes diferentes e a quantidade, nesse caso, se torna qualidade. Você só precisa escolher o pacote certo. Assim, a conexão de novos protocolos é apenas uma questão de tecnologia.
Dessa maneira, implementei a conexão do OPC UA, Sonos, MQTT, Telegram, Pushover, Homematic, Z-Wave, Simatic e muitos outros sistemas.

É dada grande ênfase à capacidade de configurar e configurar convenientemente e isso consome a maior parte do tempo, ao contrário do FHEM e, por exemplo, do OpenHAB, onde as configurações são feitas através dos arquivos de configuração.

Alternativas de código aberto.

- OpenHAB é uma plataforma de automação Java popular. Atualmente, existem até 160 drivers ou módulos.

- O FHEM é um sistema de automação generalizado em Perl, na Alemanha, com um grande número de drivers - 340. Mas a configuração do sistema é ruim e a falta de um meta-modelo padronizado dificulta a expansão do sistema.

- MajorDomo é uma plataforma de automação bastante madura em PHP. Você pode encontrar muitos artigos sobre esse sistema aqui em tempos de geek .

- Domoticz - um sistema escrito em C / C ++ com uma interface gráfica bastante decente. Mas devido ao fato de que é difícil escrever rapidamente C / C ++, então com um conjunto limitado de drivers / módulos.

Em geral, muitos sistemas interessantes de automação residencial podem ser encontrados aqui . Basicamente, a separação de sistemas ocorre em linguagens de programação (Java, C / C ++, Python, Javascript, PHP, ...) e em hardware (Vera, Raspberry PI, Synology, Mediola, ...). Todos eles merecem o direito de existir, embora alguns possam ser mais e outros possam ser menos.

No momento, o nível de conhecimento técnico das pessoas que implementam o sistema de automação é bastante alto e elas não desmaiam com as palavras: Linux, console, apt-get. Mas quando a pergunta apareceu no fórum: "Instalei o sistema, mas não posso alterar a pasta pessoal para a pasta ioBroker. Socorro! " Era um sinal de que a informática estava começando a se recuperar e que simples usuários de computador podiam usar o sistema.

Todas as interfaces de configuração são traduzidas para três idiomas, com exceção dos drivers específicos do alemão. Bem, por que os drivers de língua russa estão disponíveis para os dados do usuário sobre os preços da gasolina na Alemanha ou de um aviso de mau tempo do Serviço Meteorológico alemão? ..
Também sem a transferência dos motoristas restantes para o mercado puramente de língua Inglês, tais como o motorista do carro alarmes starline.

A documentação é escrita da melhor maneira possível em três idiomas, mas ainda há muito trabalho. Embora no mês passado tenha havido muitas boas descrições.

JavaScript é usado para escrever a interface, serviço e scripts. Uma das linguagens de programação difundidas e populares. Agora, o Python está ganhando grande popularidade, mas você não pode escrever um shell gráfico para um navegador em python. (Sim, eu sei sobre a existência de py2js , mas ainda não vi nada digno disso).

Um pouco sobre projetos de código aberto.
Como pessoa que participa de um projeto de código aberto, posso dizer: eu costumava pensar que projetos de código aberto são escritos por milhares de pessoas de todo o mundo e que é fácil para eles escreverem qualquer coisa. Agora posso dizer que existe um por trás de cada código aberto (às vezes em projetos especialmente grandes - um grupo de pessoas) e que apenas um por cento dos usuários está ativo na comunidade. É que grandes projetos têm milhões de usuários e um por cento de um milhão são dez mil pessoas. Mas projetos menores têm dezenas ou unidades de indivíduos. Também posso dizer que um usuário interessado pode fazer mais de dez programadores desinteressados ​​e é importante simplesmente conquistar muitos usuários e a probabilidade de uma pessoa que pode dar uma contribuição significativa se torna mais.

As possibilidades
Eu posso dizer que as possibilidades ... são infinitas. Multiplique o número de pacotes npm pela quantidade de ferro e você terá um milhão de possibilidades para acender a lâmpada:
- via telegrama
- por voz
- API de descanso
- visualização na web
- aplicativo Android
- interface para telefones e tablets (celular)
- 340 drivers do FHEM
- MQTT

Sim, e o projeto está em desenvolvimento ativo e cresce em 3 idiomas.

Para os interessados ​​- google para ajudar. E daqui em diante - tentarei descrever não como o universo funciona, mas como ocorre a comunicação entre o dispositivo modbus e a usina nuclear.

Source: https://habr.com/ru/post/pt394961/


All Articles