
Sempre me pareceu que o principal em uma "casa inteligente" não são nem mesmo os recursos de um determinado dispositivo, mas a capacidade desses dispositivos de interagirem entre si, realizando cenários complexos. Para fazer isso, não é mais necessário se limitar a componentes de um fabricante, já que existem agregadores, como o Google Home ou as habilidades de gerenciamento de dispositivos de Alice. No entanto, alguns cenários ainda estão além de seu poder. Hoje vamos falar sobre como contornar isso usando IFTTT - um intermediário universal entre serviços da web. E spoiler: mencionarei no final como contornar as limitações do próprio IFTTT.
IFTTT em poucas palavras
O serviço de mashup IFTTT tem cerca de 10 anos, portanto, não precisa de uma introdução detalhada. O IFTTT ajuda a interconectar serviços de Internet que não estão diretamente integrados. Em vez de trabalhar em uma dúzia de integrações diferentes, os criadores do serviço de Internet precisam apenas se integrar com um IFTTT, que se torna um intermediário universal, permitindo aos usuários finais determinar a direção da transferência de dados para o lado e as tarefas que a integração resolve.
O IFTTT é frequentemente lembrado no contexto de repostagens automáticas de uma rede social para outra. Também é fácil de usar para coletar informações e tarefas úteis. Por exemplo, trabalhando em equipes diferentes, cada uma com uma ferramenta de distribuição de tarefas diferente, agrego tudo o que é atribuído a mim em diferentes sistemas - Trello, Asana e e-mail - em meu Lembrete pessoal do leite (RTM).

A própria RTM possui algumas integrações com serviços de terceiros, mas só estão disponíveis na versão paga. Portanto, o IFTTT tornou possível contornar a necessidade de uma assinatura paga. E ao mesmo tempo ajudei a configurar um bot do Telegram para adicionar rapidamente tarefas do messenger.



O IFTTT não vive apenas no mundo virtual. Se os componentes da casa inteligente ou de qualquer outro dispositivo IoT tiverem acesso à nuvem (e o fabricante integrou seu serviço web ao IFTTT), você poderá controlá-los por meio dos miniaplicativos IFTTT.
Claro, há muitas reservas aqui. Os cenários só podem ser extremamente simples - "se - então", nenhuma lógica complexa. O serviço entende o alfabeto cirílico em nomes de miniaplicativos e campos de texto ao configurá-los, mas nem todas as funções funcionam na Rússia e com o idioma russo. Por exemplo, nos Estados Unidos, os usuários têm a oportunidade de criar um script que liga para um telefone celular em algum evento. Este recurso não está disponível fora dos Estados Unidos. Além disso, muitos recursos russos populares (de VKontakte a Alice) não estão integrados ao IFTTT.
Mas hoje não vamos falar sobre isso, mas sobre como o IFTTT ajuda a trabalhar com dispositivos. A maioria dos componentes de casa inteligente disponíveis em nosso mercado é produzida fora de nosso país e depende de serviços da web estrangeiros, e o IFTTT é popular entre eles.
Controle de dispositivos inteligentes usando Sonoff como exemplo
O IFTTT é integrado a uma ampla variedade de sistemas domésticos inteligentes. Componentes de vários deles são vendidos na Rússia, mas Sonoff (sistema eWeLink Smart Home), de acordo com a impressão subjetiva, é um dos mais populares, principalmente devido ao preço (nas vendas no AliExpress, relés de Wi-Fi podem ser comprados por 300-400 rublos).
O que são dispositivos Sonoff?

Sonoff é uma marca de relés, tomadas, sensores e interruptores controlados por Wi-Fi acessíveis. Os componentes do sistema podem ser adquiridos na Federação Russa ou solicitados na China. Eles são bem conhecidos no Habré pelo fato de que os artesãos estão atualizando o módulo ESP8266 Wi-Fi usado neles para que os dispositivos não tentem acessar a nuvem na Amazon, mas funcionem dentro da rede local (substituindo o serviço em nuvem por seu próprio hub de casa inteligente). Mas para trabalhar com IFTTT, esse tipo de flash simplesmente não é necessário.
O controle "out of the box" dos dispositivos é feito a partir de um smartphone a partir do aplicativo eWeLink (em teoria, existe uma interface web, mas está em um estágio inicial de desenvolvimento).
Nos últimos anos, o serviço com o mesmo nome foi finalizado. Surgiu a integração com o Google Home e Alice, para que os dispositivos possam ser controlados por voz em russo, sem configurações complicadas. No entanto, alguns cenários não podem ser implementados apenas no aplicativo. Por exemplo, ao instalar um relé com sensor de temperatura e umidade em um piso aquecido, não será possível criar um cenário complexo na aplicação que permita ligar ou desligar o aquecimento de acordo com os dados de ambos os sensores.
Embora o conjunto de comandos ainda seja limitado, o aplicativo já permite vários cenários interessantes. Por exemplo, você pode ligar e desligar uma luz noturna em uma sala de acordo com a programação de amanheceres e entardeceres para um dia específico (a função é configurada uma vez e todos os dias o tempo de ativação da luz noturna muda ligeiramente de acordo com dados astronômicos)
Ao mesmo tempo, o aplicativo lida perfeitamente com a tarefa de desligar dispositivos à noite em uma programação, com configurações para temporizadores cíclicos e faz muitas outras coisas úteis, mas não muito inteligentes.
Conectamos o eWeLink ao IFTTT
Ao configurar uma casa inteligente, a necessidade de IFTTT surge no momento em que se deseja implementar um cenário que não é suportado pelo fabricante (por exemplo, agrupando dispositivos), ou combinar várias funções de diferentes fabricantes em um único todo. Infelizmente, na versão mais recente do aplicativo eWeLink, o fabricante decidiu ganhar dinheiro com quem não se contenta com scripts simples, e abre a integração com IFTTT apenas em um plano pago - R $ 9,99 com pagamento PayPal por ano. Esta não é uma quantia tão grande para uma experiência de um ano.
Por que um experimento? Porque a real conveniência de certos cenários é mostrada apenas pelo uso diário de longo prazo. Dispositivos inteligentes estão morando em nosso apartamento e se substituindo há mais de um ano. Quando um novo componente aparece, uma dezena de cenários já estão torcidos na minha cabeça, que ele permitirá implementar. E a princípio todos estão envolvidos. Mas depois de um mês, 9 em cada 10 não são mais usados. E aquele que “sobrevive” passa por algumas mudanças - nesse período a ideia é “afinada” por si mesma: por quanto tempo a luz do corredor deve continuar acesa depois que o botão é pressionado? Que nível de brilho deve ter a luz noturna do corredor? Quais limites para as leituras do sensor devem ser definidos para enviar notificações para que não se esforcem, etc.
O IFTTT permite implementar vários cenários e reconfigurá-los facilmente. Para ilustrar a abordagem, suponha que queiramos desligar automaticamente o potenciômetro térmico quando eu sair de casa mais longe do que a próxima rua. Isso pode ser feito de maneira elementar:

Crie um novo miniaplicativo (Criar). Como um gatilho (+ This), selecione o serviço Location, que obtém a localização de um dispositivo Android (ou iPhone) onde o cliente IFTTT está instalado (logado na mesma conta, se você configurar um script na interface da web).


Existem 3 gatilhos disponíveis para o serviço. "Você área de saída" será adequado para nós.

Defina o endereço do ponto central da zona e o raio em torno deste endereço (o raio é regulado aumentando / diminuindo a escala do mapa). O IFTTT ficou agradavelmente surpreso com o fato de compreender a entrada do endereço em cirílico. Infelizmente, o raio não pode ser muito grande - por exemplo, uma cidade inteira com mais de um milhão não pode ser designada como uma zona.

Criamos um gatilho desta forma (o botão Criar gatilho na parte inferior da tela).

Definimos a ação (+ That) - desabilitar o relé eWeLink. Para fazer isso, conectamos o serviço eWeLink Smart Home. Após clicar em Conectar, você precisará fazer login em sua conta eWeLink em uma janela separada.




Se a autorização for bem-sucedida, uma lista completa de ações disponíveis para eWeLink Smart Home aparecerá.

Clique em "Ativar ou desativar a opção de 1 canal" e, na próxima página da lista suspensa, selecione o dispositivo desejado, bem como o estado necessário (ativado ou desativado). No meu caso, é o relé que é usado para conectar o termopô, e não o soquete, mas se você cometer um erro e selecionar "Ligar ou desligar o plugue de 1 canal", nada irá quebrar.

Crie uma ação com o botão Criar ação e conclua a configuração do miniaplicativo.

Uma tarefa mais difícil é a implementação de um bot no Telegram para "se comunicar" com a casa. Para fazer isso, você precisa se conectar ao serviço Telegram. Ao criar os miniaplicativos apropriados, você pode adicionar comandos ao bot para controlar dispositivos (ligar / desligar luzes e dispositivos individuais), bem como várias notificações úteis, em particular:
- . — . Google , IFTTT, .
- , / / . . , ( ). . , .
- , - ( ).
Vamos criar um applet que, a um comando do chat do Telegram, acenda as luzes noturnas do corredor (como o potenciômetro térmico conectado via relé Sonoff). Vamos começar conectando o serviço Telegram. Vamos encontrá-lo em Explorar (guia Serviços):


Clique em Conectar para conectá-lo à sua conta. Após o convite, acesse o Telegram e adicione o bot aos contatos.


Clique em Iniciar para fazer o login.

Depois de passar para o IFTTT para autorização, temos acesso a todas as possibilidades de comunicação entre o serviço e o mensageiro.

Agora voltamos ao IFTTT e começamos a criar o miniaplicativo.

Selecione Telegram como o gatilho.

O acionador "Nova mensagem com frase-chave para @IFTTT" é adequado para nós.

Deixe a frase-chave ser "luz noturna" e a resposta à minha mensagem - uma palavra "Ligue" (lembre-se de que o serviço é sensível a letras maiúsculas / minúsculas).

Vamos prosseguir com a configuração da ação.

Como no exemplo anterior, optamos por habilitar o relé do serviço eWeLink Smart Home. Desta vez, apenas na lista de dispositivos, você precisa selecionar o que corresponde à luz de fundo.

Tudo funciona da mesma forma com as notificações, apenas algum outro serviço (por exemplo, um sensor do eWeLink Smart Home) atuará como um gatilho, e a ação será realizada pelo Telegram - o envio de uma mensagem de determinado conteúdo.
Como mencionado acima, no segmento de casa inteligente, o IFTTT não se limita a suportar apenas dispositivos Sonoff - é apenas um exemplo à mão. Existem muitos fabricantes que já se integraram com o serviço e ainda mais conselhos ao usuário sobre como contornar a falta de integração, por exemplo, com o Xiaomi Mi Home (spoiler - via notificações em um dispositivo móvel para Android).
Quando IFTTT não é suficiente
A lógica por trás do IFTTT é bastante simples: uma condição, uma ação. Coisas interessantes podem ser feitas com base nessa lógica, mas mais cedo ou mais tarde isso se torna insuficiente. Infelizmente, o serviço não permite especificar cadeias de ações (para cada uma delas terá que criar o seu próprio script), assim como não permite construir condições complexas compostas por várias partes com um “e” ou “ou” lógico.
Mas isso também pode ser contornado com a ajuda de um "add-on". Estamos a falar do serviço apilio.com , cuja tarefa é adicionar lógicas mais complexas ao IFTTT. Conectar uma ferramenta adicional, é claro, será outro nível de complicação do sistema, mas trará a configuração de scripts de casa inteligente mais perto da programação - será possível definir variáveis, alterar seus valores quando os gatilhos forem acionados, construir condições, etc.
Deixe-me mostrar o que o Apilio pode fazer, usando o exemplo de complicar o cenário com a desativação do potenciômetro térmico.
Inicialmente, o relé termo-suor é desligado à noite (das 2h às 8h) e ao sair da zona configurada no IFTTT. Mas e se outra pessoa morar em casa além de mim? Concordo, será inconveniente se o aquecimento da água desligar toda vez que eu sair para o trabalho. É mais lógico simplesmente lembrar que a panela térmica está ligada se eu não estiver em casa em um determinado horário (no momento em que a panela térmica é ligada depois de "dormir à noite") - depois de pensar sobre o cenário, me pareceu que este é o melhor indicador que deixei em algum lugar por muito tempo.
Por esta:
- Registramos no serviço Apilio;
- Crie 2 variáveis booleanas que são falsas por padrão (vamos chamá-las de local e bule);


- : I_exit_area ( true, IFTTT ) I_forgot_teapot (true, );


- Apilio IFTTT. IFTTT Webhook Apilio, IFTTT ( — URL, “”). IFTTT Apilio;

- IFTTT location teapot ( eWeLink Location, — true Apilio, «Update a variable in Apilio to true»);




- : IFTTT ;

- IFTTT ( Apilio, — Telegram ).
Resultado: se alguma coisa fizer o termopô ligar no momento em que estou longe de casa, vou receber uma pergunta no Telegrama: “Esqueceu de desligar a chaleira?
Na versão gratuita, o serviço Apilio permite que você especifique um esquema lógico e isso é suficiente para um experimento. As assinaturas anuais começam em US $ 7,2, o que também é bastante acessível. Como o próprio IFTTT, o serviço já tem muitos análogos - acho que você pode pegar algo de graça para suas tarefas. É importante entender que, ao abrir o acesso a um novo serviço para sua casa inteligente, você está, de certa forma, compartilhando dados pessoais com ela - portanto, a segurança não é o último problema aqui.
O desenvolvimento do IFTTT, Apilio e ferramentas semelhantes mostra que os usuários domésticos inteligentes ainda precisam de algum tipo de complicação de cenários. Não importa quantos fabricantes lutem pela simplificação máxima, às vezes sem nenhuma lógica adicional.
