Bom dia a todos! Continuando a ideia do meu post antigo , desenvolvi um programa que pode ser usado como um sistema para controlar uma casa inteligente.

Para interessar imediatamente o leitor, demonstrarei alguns dos cenários para o uso do software:
CENÁRIOS
O Lazurite permite criar gatilhos e scripts complexos com condições e loops , ou seja, o usuário pode "programar" o programa usando o construtor interno para qualquer uma de suas necessidades.
Qualquer script tem sua própria opção na interface do usuário - "lado a lado". Dependendo do tipo de dados do script, a opção terá uma aparência diferente.
Exemplos de opções de script.





>> Saiba mais sobre tipos de dados e switches.
Além disso, existem três tipos de scripts no Lazurite: ação única, script complexo e script remoto.
Janela para selecionar o tipo de script a ser criado.

Ação única
Ações únicas são cenários que não exigem lógica complexa, como acender a luz ou alterar o nível do som usando o “ladrilho” no menu do interruptor. Nesse cenário, não será possível criar um ciclo ou condição; nele, você só pode vincular uma ação separada do plug-in (sobre eles abaixo) ao comutador.
Construtor de ação única, usando o exemplo da criação de um comutador ModbusRTU .

Cenário difícil
Um cenário complexo é um cenário com lógica complexa na qual existem loops e condições.
>> Detalhes sobre a criação de um script complexo.
Enquanto a umidade na sala for menor ou igual a 40%, ajuste a umidade.

Um cenário complexo usando dispositivos Z-Wave como exemplo.

Uma condição difícil com grupos e comparações de valores numéricos.

Script remoto
O Lazurite possui um servidor interno no qual o serviço WCF está sendo executado. É isso que permite que os aplicativos clientes recebam informações sobre scripts e executem algumas ações. Além disso, outro servidor Lazurite pode se conectar ao servidor Lazurite e usar scripts de servidor remoto. Para usar essa funcionalidade, você deve criar um script remoto .
O suporte a scripts remotos permite criar uma rede de dispositivos com o Lazurite instalado. I.e. nos scripts de um servidor, você pode chamar scripts ou obter valores de script de outro servidor.
Por exemplo, em uma casa grande, você pode criar um sistema distribuído no qual vários nós com o Lazurite instalado permanecerão em diferentes pisos (salas, edifícios), com os quais a unidade central do Lazurite se comunicará. O administrador configurará o sistema e decidirá quão independentes os dispositivos escravos serão, se serão usados como executores simples ou se alguma autonomia será incorporada a eles.

TRIGGERS
Acionadores são determinadas ações que são acionadas quando condições especiais ocorrem. Eles diferem do cenário em que eles não têm um tipo de dados e não têm um "bloco". O gatilho para acionar um gatilho é alterar o cenário selecionado, ou seja, se quisermos executar alguma ação quando a temperatura mudar, a umidade mudar, a aparência do usuário em casa, etc., precisaremos criar um gatilho para o cenário correspondente. O construtor de gatilho é uma cópia do construtor de script, onde você pode criar loops, condições, ações.
Gatilho para acionar um sensor de movimento.

AÇÃO
Qualquer linha adicionada no construtor de scripts é uma "ação". Cada plug-in instalado no Lazurite adiciona alguns novos recursos às ações do programa. Qualquer trabalho com Z-Wave, Modbus, geolocalização, etc. produzido através desta funcionalidade. Assim, qualquer ação, como um script, tem seu próprio tipo de dados .
>> Lista de todas as ações em Lazurite.
Janela para selecionar uma ação no construtor de scripts.

SEGURANÇA
No Lazurite, você pode configurar o acesso para visualizar e alterar o valor do script. Isso pode ser necessário quando criamos um usuário no sistema para nosso convidado ou quando queremos apenas ocultar um script que execute funções auxiliares e não deva ser exibido aos usuários.
Janela de configurações de segurança de script.

Os seguintes itens estão disponíveis para configurar a segurança:
- "Negar por qualquer uso";
- "Negar para todos os grupos, exceto ..." - uma proibição do uso do script para usuários que não são membros dos grupos selecionados;
- "Negar para todos os usuários, exceto ..." - proibição de usar o script para todos os usuários, exceto os selecionados;
- "Negar para grupos" - proibição de execução para grupos de usuários selecionados;
- "Negar execução a partir da rede" - scripts com essa restrição não podem ser exibidos nos aplicativos clientes e não podem ser usados como um "script remoto";
- “Negar menu de inicialização rápida” - o script não será exibido no menu de inicialização rápida;
- "Negar para usuários" - proibição de execução para usuários selecionados;
- "Negar uso de outro script / gatilho" - o script não pode ser executado em outro script ou gatilho.
Por padrão, qualquer script é proibido para iniciar na rede e para o menu de inicialização rápida.
USUÁRIOS E GRUPOS
Os usuários da Lazurite são parte integrante do sistema. Sem uma conta, os usuários não poderão acessar os scripts necessários e gerenciar dispositivos em casa. Se não houvesse autenticação, qualquer pessoa se conectaria ao sistema e executaria qualquer script, o que é extremamente indesejável.
Por conveniência, as configurações de segurança dos scripts do usuário podem ser agrupadas, por exemplo, você pode criar um grupo "Convidados" e impedir que esse grupo execute determinados scripts.
>> Mais sobre usuários e grupos .
Onda Z
O Z-Wave é um protocolo de comunicação sem fio usado em automação residencial. Para implementar o protocolo, são utilizados módulos de RF de baixa potência em miniatura. Agora, no mercado da ZWave, existe uma lista bastante extensa de dispositivos, como lâmpadas, soquetes, módulos de relé, interruptores, interruptores, travas, sensores de temperatura (umidade, movimento, vazamentos), controladores de temperatura, dispositivos de controle de ar condicionado, etc. Multissensores também são comuns - dispositivos que combinam vários sensores (por exemplo, luz, presença, sensor de temperatura, sensor de porta etc.), o que é muito atraente do ponto de vista dos custos financeiros e da localização na sala.
No Lazurite, o módulo ZWave permite executar todas as operações padrão do dispositivo, como excluir, adicionar dispositivos e redefinir o controlador. Você também pode usar vários controladores ZWave, o usuário final não verá a diferença. Por exemplo, você pode fazer leituras de temperatura de um sensor conectado ao controlador "A" e iniciar o ar condicionado usando o controlador "B". Não há restrições, qualquer ação e verificação são realizadas de maneira padrão e adicionadas ao designer de scripts .
O nó é selecionado na imagem, o multisensor é ZW100 e, em seguida, seu parâmetro do usuário é selecionado, com o qual você pode medir a temperatura na sala .

Após a criação de um script usando esse nó, um bloco com informações de temperatura será exibido.

>> Mais sobre o Z-Wave na Lazurite.
ESTATÍSTICAS
O Lazurite possui uma funcionalidade que permite manter um histórico dos valores de diferentes cenários (por exemplo, temperatura na sala de estar, umidade na sala, nível de UV, detecção de movimento). O usuário pode selecionar os cenários para os quais é necessário manter as estatísticas e, em seguida, examinar os gráficos de sua dinâmica por um determinado período de tempo.
Exibir estatísticas na forma de gráficos.

Exibir estatísticas na forma de um gráfico de pizza.

>> Mais sobre estatísticas.
GEOLOCAÇÃO DO USUÁRIO
Lazurite tem a funcionalidade de um rastreador GPS. Qualquer aplicativo cliente envia informações de geodados para o servidor Lazurite, onde esses dados podem ser processados, salvos e exibidos. As ações apresentadas no plug- in UserGeolocationPlugin foram projetadas para trabalhar com a localização geográfica dos usuários e permitem calcular valores como a distância do usuário até um local, a localização do usuário em um local específico etc.
Algumas ações exigem a presença não apenas do usuário, mas também de um local ou "local", que deve ser instalado e configurado no programa. Esse lugar pode ser uma casa, trabalho, cidade, estação de metrô. Ações com este parâmetro são necessárias para executar qualquer ação na aparência ou distância do usuário a partir deste "local". Um local possui três parâmetros: coordenadas centrais, raio e nome.
Um exemplo dos locais criados (casa e trabalho) e a rota do usuário entre eles na data selecionada.

A posição do usuário pode ser visualizada através do aplicativo Lazurite no smartphone.

Além disso, você pode manter um histórico de movimentos adicionando o script apropriado às estatísticas .
Movimentos do usuário por um longo período de tempo.

>> Mais sobre o plugin.
>> Mais sobre a história dos movimentos.
DIVERSOS
O programa tem a capacidade de criar scripts para trocar mensagens entre usuários e receber notificações do sistema sobre vários eventos.
Janela de exibição da caixa de entrada.

Enviando uma mensagem para outro usuário.

Além disso, existem várias outras funções, como Wake-on-Lan , emulação de teclas multimídia no Windows , controle de som no Windows , trabalho com processos do Windows , controle de dispositivos Modbus , etc.
Aprenda como criar plugins aqui .
O desenvolvimento do sistema no momento é visto da seguinte forma:
- a arquitetura do programa será modernizada de forma que mecanismos prontos ou serviços de reconhecimento de fala possam ser usados como plug-ins;
- decomposição e modernização adicionais da funcionalidade de plugins e scripts no futuro permitirão criar scripts a partir de um tablet ou smartphone;
- está planejado criar um módulo de vigilância por vídeo no qual haveria funcionalidade para gravar vídeo, transmitir o fluxo de vídeo para dispositivos móveis, reconhecimento de movimento etc.
>> Projeto WIKI
>> Site do projeto
>> NO GOOGLE PLAY
>> Versão mais recente