Olá pessoal! Finalmente, a revisão do apartamento chegou ao fim e, neste contexto, quero compartilhar com você o projeto Smart Apartment implementado com os recursos básicos de controle de iluminação, aquecimento de piso radiante, controle de temperatura e umidade ambiente e outros itens. A parte descritiva será feita na forma de um manual (é mais fácil indicá-lo ou algo assim).

Equipamento
Considerando que, em princípio, eu queria montar toda a automação em decisões prontas, mas orçamentárias, de dispositivos executivos e de controle, uma decisão unânime foi tomada (em uma pessoa), para usar esta lista de equipamentos:
Servidor de gerenciamento - Raspberry Pi 3 + OpenHAB 2 - 1pc (3000 rub.)
Controlador multifuncional - MegaD-2561 - 1pç (3480 esfreg.)
Unidade executiva com 14 saídas a relé - MegaD-14-R - 1pc (4480 rublos)
Sensores de temperatura e umidade DHT22 (AM2303) - 4pcs (1960 esfreg.)
Sensores de temperatura DS18B20 de 1 fio à prova d'água - 2pcs (180 esfreg.)
Fonte de alimentação 12V DR-60-12 - 1pc (1420 fricção)
Caixas para sensores Dsen-Box - 4pcs (1000 rub.)
Um tablet para gerenciar e exibir parâmetros - já existe (3000-10000r.)
A maior parte da lista pode ser comprada na ALI.
Introdutório
Um dos princípios básicos da operação de sistemas de automação é a operação ininterrupta e a redundância de funções. Ou seja, mesmo que toda a automação de baixa corrente queime no inferno, não devemos perder a função de controlar a iluminação e outros dispositivos executivos importantes. Assim, a solução de controle de iluminação será implementada no chamado "sistema de passagem", ou seja, os interruptores (interruptores) nas salas serão detalhados e o papel dos segundos interruptores (interruptores) será desempenhado por relés na unidade executiva MegaD-14-R. Desde que, é claro, as bobinas não se queimem, não perderemos a funcionalidade se as unidades de automação falharem. Portanto, através de todos os comutadores Legrand Etika de 2 e 2 teclas, são instalados em todas as salas (eles ficam bem em comparação com o Valenoy).
Ligação
Os sensores de temperatura e umidade DHT22 são instalados nos gabinetes Dsen-Box a um nível de cerca de 2 metros do chão em cada sala. Não esqueça que o apartamento foi revisado e todos os fios são cuidadosamente colocados da blindagem até os locais dos sensores e dispositivos.
O cabo foi colocado em quase toda parte por SFTP 4x2x0.5 blindado. Os sensores de temperatura DS18B20 são instalados no momento da instalação do piso radiante.



Instalamos dispositivos MegaD no painel, emparelhamos com um cabo nativo de 34 pinos e nos conectamos à rede Ethernet. Vamos para a interface da web em 192.168.0.14/sec. Na seção "config", defina o endereço desejado ou deixe-o por padrão, certifique-se de especificar o endereço do servidor Openhab (descobriremos mais tarde quando implantarmos a imagem do Openhab no raspberry ou gravá-lo imediatamente, e alterá-lo no raspberry). Conectamos todos os sensores e fios dos comutadores de acordo com a mesma linha.


Nas configurações de porta do dispositivo MegaD, defina os tipos (OUT - se for um relé, IN ou Dsen - se a entrada do sensor). Se você indicar o tipo correto nas portas dos sensores conectados, veremos imediatamente as leituras atuais.

Servidor
Nós coletamos o servidor. O gabinete para framboesas é constituído por uma fonte de alimentação com falha para montagem conveniente em um trilho DIN (é claro que há um caso especial para isso, mas isso não é sobre nós))). Não se esqueça de colar naturalmente uma unidade flash USB e um cabo Ethernet.
Para não ser atormentado com a instalação, decidi fazer o download da imagem
OpenHabian finalizada - todo o processo de instalação e configuração do servidor é descrito em detalhes lá e resume-se à implantação da imagem em uma unidade flash USB, iniciando a framboesa e aguardando 15-45min. (sim longo) na primeira configuração. O OpenHab está pronto para começar!
Se não queremos mudar nada na configuração do servidor (como abrir a seção de configurações é descrita em detalhes no openhab.org), conectamos-nos ao Openhab
openhabianpi : 8080, selecione a interface gráfica da interface do usuário do Paper e comece a esculpir tudo o que você precisa.

Personalização
Ligações
Primeiro você precisa conectar o servidor OH (openhab) e o MegaD. A integração de equipamentos no servidor, usando protocolos e regras definidas pelo equipamento, é feita usando arquivos prontos, os chamados "Bindings". Faça o download da ligação mais recente para equipamentos
MegaD . Nós o soltamos (você pode usar o WinSCP) na pasta / srv / openhab2-addons no servidor, portanto veremos essa ligação na UI do papel "Bindings".
Além disso, na "Caixa de entrada", criamos o adaptador de servidor Bridge MegaD Incoming, é algo como uma ponte virtual de comunicação entre o servidor e o equipamento. Anotamos a porta desejada (o endereço do servidor e a porta devem ser registrados no "Config" do próprio dispositivo MegaD).

Coisas
Depois de criar a ponte, nós, também na seção "Caixa de entrada", criamos as "Coisas vinculativas do MegaD". Um “Coisa” separado - é assim que um dispositivo físico específico é definido no servidor, seja um sensor ou um relé, com o qual interagiremos com a ajuda da ponte criada. Neles, prescrevemos especificamente o endereço IP do dispositivo MegaD, a senha de acesso e a porta do dispositivo (esta é a porta de entrada na qual o sensor está conectado ou a porta de saída para o controle do dispositivo).
Para uma distribuição conveniente por local, no campo "Local", indique onde está - um salão, uma cozinha ... Depois de criar essas "Coisas", elas aparecerão em "Configuração / Coisas". Entramos no "Thing" criado e, ao clicar no tipo desejado (tivemos que especificá-lo nas configurações de porta do dispositivo MegaD), o anexamos ao "Item", criando um novo "Create new Item".

Itens
“Item” separado - no servidor e na interface gráfica, esse é o mesmo elemento que atua como um botão de controle ou gera dados do sensor e outros recursos.
O campo "Nome" deve ser um alfabeto latino contínuo, mas "Rótulo" é chamado como queremos. Nas configurações de "Item", é necessário especificar o tipo (se for um relé, então - SWITCH, se o sensor, então - NUMBER, etc.
Se quisermos combinar determinados itens em grupos (isso é principalmente necessário para distribuição e visualização convenientes em um aplicativo móvel ou usando a interface básica da interface do usuário), no campo "Grupo", indique o grupo desejado, que primeiro deve ser criado na seção "Itens" especificando o tipo de "Grupo". Após essas manipulações, veremos o "Item" muito criado na seção "Controle" da UI do papel e, se tudo for feito corretamente, quando você clicar no "Item" criado do tipo "Switch", o dispositivo conectado (relé MegaD) clicará.
Realizamos ações semelhantes para todos os comutadores e sensores, nomeando-os corretamente e configurando-os.

UI
Agora, tudo isso, é claro, funciona bem, mas não de maneira bonita e desconfortável.
Pegamos o tablet,
acessamos o navegador
openhabianpi : 8080, selecionamos a GUI Habpanel e começamos a personalizar para atender às suas necessidades.
Clique na engrenagem de configurações no canto superior direito, clique em "Configurações avançadas" e faça as configurações necessárias (tema, nome ...) no lado esquerdo das configurações, depois de criar a interface concluída, salve-a "Salve a configuração atual em uma nova configuração de painel" .
Retornamos das configurações, use o controle deslizante para selecionar o número necessário de colunas de blocos na interface e clique em "Adicionar um novo painel". Nas configurações de bloco, especifique o esquema de cores e exiba os ícones. Com esses ladrilhos, determinaremos a localização ou o grupo de nossos dispositivos (por exemplo, no meu caso, são quartos).
Em seguida, depois de criar o local, vá para ele clicando no ladrilho e, em cima, ao lado do nome do ladrilho, clique no lápis, organizaremos os ladrilhos criados no sistema "Itens". No canto superior direito, clique em "Adicionar um novo widget". Escolha o tipo de bloco que você deseja (quando você passa o mouse sobre o cursor, as solicitações serão exibidas) “Alternar” se for um comutador, “Manequim” se for um sensor ... etc. Nas configurações do bloco criado, vinculamos-o ao sistema “Item” existente e configuramos a exibição - ícone, cor, tamanho ... Após criar todos os blocos necessários, clique em “Executar” no canto esquerdo, salvando as configurações e iniciando o modo de exibição. É assim que criamos a interface Habpanel para nós mesmos. Após a configuração, se foi feito no Chrome, é muito conveniente adicionar a página Habpanel à área de trabalho do tablet nas configurações do navegador.


Regras
Regras (regras) - essas mesmas regras (scripts) para implementar a lógica de funcionamento de um único dispositivo ou interações entre vários.
Percebemos o controle automático do exaustor no banheiro.
Para fazer isso, precisamos criar um "Item" virtual do tipo "Número" no sistema no qual registraremos os valores do nível de umidade necessário. Outro "Item" do tipo "Switch" para acionar o controle automático de umidade. Bem, na verdade a regra em si, que processará o valor de umidade obtido do sensor no banheiro, verifique com o valor definido da nossa configuração e controle o capô.
Para criar uma regra, precisamos criar um arquivo com a extensão .rules com conteúdo javascript na pasta no servidor / etc / openhab2 / rules. Aqui está um exemplo do conteúdo:
Auto_air.rulesregra "Auto_air"
quando
O item Hum_H_T_sens recebeu atualização
então
se
(Hum_H_T_sens.state> Set_hum.state && Air_H_T_switch.state == OFF e& Set_auto_air.state == ATIVADO) {
Air_H_T_switch.sendCommand (ON)
}
mais
se
(Hum_H_T_sens.state <Set_hum.state && Air_H_T_switch.state == ATIVADO && Set_auto_air.state == ATIVADO) {
Air_H_T_switch.sendCommand (OFF)
}
fim
Bem, na verdade você precisa exibir os “Itens-s” criados na tela do painel no Habpanel. Para a configuração “Item” do nível de umidade, aplique o tipo “Slider”.
Gráficos
Outro recurso interessante do sistema é a coleta estatística de dados em bancos de dados e a exibição em gráficos.
Crie gráficos! Primeiro você precisa configurar o banco de dados.
Por padrão, o OpenHab oferece trabalho com o banco de dados Rrd4j, mas não consegui configurá-lo normalmente. Portanto, comecei a usar o MySQL (de alguma forma mais familiar).
Para trabalhar com o banco de dados, você deve instalar o complemento no sistema. Na guia "Addons" da interface do usuário do Paper, na seção "Persistence", selecione MySQL Persistence (install).
A base que criamos agora está configurando.
Para fazer isso, precisamos criar um arquivo (se estiver faltando) na pasta no servidor: /etc/openhab2/persistence/mysql.persist, na qual devemos especificar a estratégia de coleta de dados (como por hora, diariamente, semanalmente ...) e especificar qual “Item ”Com referência a qual estratégia será armazenada. Por exemplo, aqui está o conteúdo:
mysql.persist// estratégias de persistência têm um nome e uma definição e são mencionadas na seção "Itens"
Estratégias {
// se nenhuma estratégia for especificada para o item abaixo, a lista padrão será usada
everyMinute: "0 * * * *?"
every5Minutes: "0 * / 5 * * *?"
everyHour: "0 0 * * *?"
everyDay: "0 0 0 * *?"
default = everyChange
}
/ *
* Cada linha desta seção é determinada para quais mercadorias, em quais estratégias (IEs) devem ser aplicadas.
* Você pode listar itens únicos, use "*" para todos os itens ou "groupitem *" para todos os membros de um grupo
* item (exceto o item do grupo).
* /
Itens {
// salva todos os elementos uma vez por dia e restaura-os do banco de dados na inicialização a cada alteração
// *: strategy = everyChange, everyDay, restoreOnStartup
// além disso, todos os valores de temperatura e clima são salvos a cada hora
Weather_Temperature, Temp_H_LR_sens, Temp_H_BR_sens, Temp_H_T_sens, Temp_H_KT_sens, TP_H_H_sens, TP_H_KT_sens, Weather_Humidity, Hum_H_LR_sens, Hum_H_BR_sensHentensMent_Humans_Humans_Humans_Humans_Humans
}
Após criar o arquivo, o sistema já começará a coletar dados. Precisamos configurar o painel Habpanel para exibir gráficos.
Retornamos à GUI do Habpanel, vamos para o local desejado e adicionamos um novo widget selecionando o tipo "Gráficos". Ligue como desejar, “Type” selecione “n3-line-chart (interativo)”, “Service provider” - mysql, “Period” - exibe o período do dia (D). Na guia "Série" - anexamos o "Item" que precisamos. E pronto! temos uma agenda linda!

Bem, então pura iniciativa - montamos o tablet na parede! O_o, para isso, peguei dois cartões magnéticos do formato em-marin (aqueles que são muito finos) e colei dois ímãs de neodímio nas bordas do cartão (Uhu). Colocamos essas plataformas com ímãs em fita dupla face (boa e fina) na parte traseira do tablet e na parede. A propósito, com antecedência no soquete, a fonte de alimentação MeanWell 5V é instalada, com um cabo microUSB. O tablet na parede!

Peço desculpas pela peculiaridade da apresentação do material (nunca havia escrito nada assim antes). Se a postagem for pelo menos tão popular, a seguir, descreverei o recurso de configuração de um aplicativo móvel. Espero que seja útil. Todos casa inteligente)))