Autor: bruno marques

Nerd , fã da apple/xiaomi e no tempo livre escrevo esse blog e brinco com automatização residencial

Sonoff – HomeBridge

Para integrar interruptores sonoff com firmware original, você irá precisar do homebrige como ponte , veja neste artigo como instalar o homebridge.

Após instalar o homebridge, você irá precisar configura-lo para conectar-se a api da ewlink através do plugin homebridge-ewlink-max.

Como instalar o homebridge-ewelink-max

Homebridge plugin to control Sonoff relays with OEM firmware. It uses the same API as the iOS app to communicate with your devices.

The platform will dynamically add/remove devices based on what is configured in your eWeLink account.

It has been tested with the Sonoff basic relays. I have performed testing with up to two relays associated to my account.

The plugin will only support one eWeLink account.

It is possible to continue to use the OEM functionality (eWeLink app, Google Home integration); this plugin requires no modification to the relay’s firmware.

Why max?

This is a fork of homebridge-ewelink, which is not being actively updated. There is another package named homebridge-ewelin-plus which is not updated for 6 months at the time of writing. The name is inspired by Apple’s naming convention.

This fork have the following notable changes / improvements:

  • Support login with phone number / email and password, which save your time from obtaining the authentication token with Charles once in a while.
  • Support sending heartbeat on the WebSocket connection, which greatly reduce the interval of reconnects, hence better stability.
  • Support obtaining the correct API / WebSocket API host automatically, so you don’t need to obtain these information with Charles.

Shortcomings

The code is of suboptimal quality. It was a quick-and-dirty plugin; feel free to contribute & improve.

Steps to install / configure

Assuming that you’ve already downloaded the eWeLink app on your iOS device & have configured it:

  1. Install the plugin
sudo npm -g install homebridge-ewelink-max
  1. Add to the platforms[] section of config.json.
  • phoneNumber – The login phone number of your ewelink account, do not include this if you login with email
  • email – The login email of your ewelink account, do not include this if you login with phone number
  • password – Your ewelink account login password
  • imei – This can be any valid UUID, get one with an online generator
  1. Restart Homebridge

Sample config.json

{
    "bridge": {
        "name": "Homebridge",
        "username": "XX:XX:XX:XX:XX:XX",
        "port": 51826,
        "pin": "123-45-678"
    },
    
    "description": "Your description here",

    "accessories": [
    ],

    "platforms": [
        {
            "platform" : "eWeLink",
            "name" : "eWeLink",
            "phoneNumber" : "+12345678901",
            "password" : "your-login-password",
            "imei" : "01234567-89AB-CDEF-0123-456789ABCDEF"
        }
    ]
}

If you use email login, the platform section should look like this:

        {
            "platform" : "eWeLink",
            "name" : "eWeLink",
            "email" : "your-email@example.com",
            "password" : "your-login-password",
            "imei" : "01234567-89AB-CDEF-0123-456789ABCDEF"
        }

A note on login session

An authentication token is generated every time your device’s app logs in to the eWeLink service.

You can only have one authentication token per user account.

Therefore if you use the HomeKit app and eWeLink app at the same time, they will fight each other for the login session. They should both work individually. You can leave homebridge running when using the eWeLink app.

To avoid being logged off from the eWeLink app

  1. Create another account
  2. Then log in with the new account on another mobile device (you have to keep both accounts connected and with eWeLink on the screen).
  3. Go to your eWeLink, select your Sonoff device and share it with the other account.
  4. A popup should appear on the other mobile device, accept it.
  5. Use the second account as your plugin login (and never use this account on eWeLink anymore to avoid being logged off)
  6. Be happy and never get a “session expired” message again.

Troubleshooting

I’ve attempted to make the logging as useful as possible. If you have any suggestions, please open an issue on GitHub.

Sample logging

[12/13/2017, 9:39:05 PM] [eWeLink] A total of [1] accessories were loaded from the local cache
[12/13/2017, 9:39:05 PM] [eWeLink] Requesting a list of devices from eWeLink HTTPS API at [https://us-api.coolkit.cc:8080]
[12/13/2017, 9:39:06 PM] [eWeLink] eWeLink HTTPS API reports that there are a total of [1] devices registered
[12/13/2017, 9:39:06 PM] [eWeLink] Evaluating if devices need to be removed...
[12/13/2017, 9:39:06 PM] [eWeLink] Verifying that all cached devices are still registered with the API. Devices that are no longer registered with the API will be removed.
[12/13/2017, 9:39:06 PM] [eWeLink] Device [Fan] is regeistered with API. Nothing to do.
[12/13/2017, 9:39:06 PM] [eWeLink] Evaluating if new devices need to be added...
[12/13/2017, 9:39:06 PM] [eWeLink] Device with ID [XXXXXXX] is already configured. Ensuring that the configuration is current.
[12/13/2017, 9:39:06 PM] [eWeLink] Updating recorded Characteristic.On for [Fan] to [false]. No request will be sent to the device.
[12/13/2017, 9:39:06 PM] [eWeLink] Setting power state to [off] for device [Fan]
[12/13/2017, 9:39:06 PM] [eWeLink] API key retrieved from web service is [XXXXXXX]
[12/13/2017, 9:39:06 PM] [eWeLink] Connecting to the WebSocket API at [wss://us-long.coolkit.cc:8080/api/ws]
[12/13/2017, 9:39:06 PM] [eWeLink] Sending login request [{"action":"userOnline","userAgent":"app","version":6,"nonce":"151321914688000","apkVesrion":"1.8","os":"ios","at":"XXXXXXX","apikey":"xxxxxxx","ts":"1513219146","model":"iPhone10,6","romVersion":"11.1.2","sequence":1513219146880}]
[12/13/2017, 9:39:06 PM] [eWeLink] WebSocket messge received:  {"error":0,"apikey":"xxxxxxx","config":{"hb":1,"hbInterval":145},"sequence":"1513219146880"}

Hey Siri, turn on the fan

[12/13/2017, 9:39:09 PM] [eWeLink] Setting power state to [on] for device [Fan]
[12/13/2017, 9:39:09 PM] [eWeLink] WebSocket messge received:  {"error":0,"deviceid":"XXXXXXX","apikey":"XXXXXXX","sequence":"1513219149620"}
[12/13/2017, 9:39:11 PM] [eWeLink] Setting power state to [off] for device [Fan]
[12/13/2017, 9:39:12 PM] [eWeLink] WebSocket messge received:  {"error":0,"deviceid":"XXXXXXX","apikey":"XXXXXXX","sequence":"1513219151735"}

The plugin will also listen for announcements via a persistent web socket. This allows you to control the device from the likes of Google Home & have Homebridge be kept up-to-date

Hey Google, turn on the fan

[12/13/2017, 9:41:50 PM] [eWeLink] Update message received for device [XXXXXXX]
[12/13/2017, 9:41:50 PM] [eWeLink] Updating recorded Characteristic.On for [Fan] to [true]. No request will be sent to the device.
[12/13/2017, 9:41:50 PM] [eWeLink] Setting power state to [on] for device [Fan]
[12/13/2017, 9:41:50 PM] [eWeLink] WebSocket messge received:  {"error":0,"deviceid":"XXXXXXX","apikey":"XXXXXXX","sequence":"1513219310003"}

Feito isso, basta adicionar o homebridge ao seu aplicativo apple casa.

  1. Dirija-se ao seu dispositivo iOS e inicie o aplicativo CASA
  2. Toque no botão Adicionar no canto superior direito da tela (parece um sinal de mais).
  3. Toque em Adicionar acessório .
  4. Toque no acessório Homebridge (o meu acabou de se chamar Homebridge).
  5. Você verá um alerta que diz: “Este acessório não é certificado e pode não funcionar de maneira confiável com o HomeKit”. toque em Adicionar mesmo assim .
  6. Toque em Inserir código manualmente na parte inferior da tela.
  7. Digite o código do HomeKit para o seu acessório Homebridge. Você pode encontrá-lo na janela do Terminal abaixo do texto que diz “Digitalize este código com seu aplicativo HomeKit no seu dispositivo iOS para parear com o Homebridge”.
  8. Adicione seu acessório Homebridge e toque em Avançar .

Koogeek – Interruptor KH02

Funciona com o Apple Homekit 
A tecnologia de homekit da Apple oferece uma maneira fácil e segura de controlar acessórios habilitados para homekit

Compatibilidade Siri para controle de voz 
Convenientemente ligue e desligue suas luzes usando Siri ou com um toque rápido no seu iPhone. Atribua um nome a cada Smart Switch e comunique cada Switch por nome ao fazer um comando de voz.

Monitor de Consumo de Energia 
Verifique se o seu Koogeek Smart Light Switch está conectado corretamente com uma luz padrão. Monitore sua energia atual e estado através do aplicativo gratuito Koogeek Home.

Controle remoto 
Você pode configurar o Apple TV (4ª geração ou posterior com o tvOS 10 ou posterior) ou o iPad (com o iOS 10 ou posterior) como um hub doméstico e controlar o Koogeek Smart Light Switch mesmo quando estiver longe de casa.

Crie cenas para controlar vários acessórios 
Crie cenas individualizadas e controle várias luzes simultaneamente com um único comando de voz Siri ou um toque rápido no seu iPhone.

Design de 2 gangues 
O design de 2 bandas permite controlar e monitorar duas luzes conectadas simultaneamente com um interruptor inteligente.

Ampla compatibilidade 
Compatível com todos os interruptores de luz de polo único. Não destinado ao uso em interruptores de luz de 3 vias, que são controlados por mais de um interruptor.

Nota 
1. O Koogeek Smart Switch substitui apenas os comutadores de pólo único. Não é compatível com comutadores de 3 vias, que podem ser controlados a partir de vários locais. 
2. O fio neutro é necessário. 
3. Os faceplates de metal não são recomendados. Caso contrário, pode causar interferência prejudicial ao desempenho do Wi-Fi.

Requisitos de sistema 
O HomeKit requer um iPhone, iPad, iPod touch ou Apple Watch com iOS 8.1 ou posterior

Koogeek – Interruptor KH01

Funciona com o Apple Homekit 
A tecnologia de homekit da Apple oferece uma maneira fácil e segura de controlar acessórios habilitados para homekit

Compatibilidade Siri para controle de voz 
Convenientemente ligue e desligue suas luzes usando Siri ou com um toque rápido no seu iPhone. Atribua um nome a cada Smart Switch e comunique cada Switch por nome ao fazer um comando de voz.

Monitor de Consumo de Energia 
Verifique se o seu Koogeek Smart Light Switch está conectado corretamente com uma luz padrão. Monitore sua energia atual e estado através do aplicativo gratuito Koogeek Home.

Controle remoto 
Você pode configurar o Apple TV (4ª geração ou posterior com o tvOS 10 ou posterior) ou o iPad (com o iOS 10 ou posterior) como um hub doméstico e controlar o Koogeek Smart Light Switch mesmo quando estiver longe de casa.

Crie cenas para controlar vários acessórios 
Crie cenas individualizadas e controle várias luzes simultaneamente com um único comando de voz Siri ou um toque rápido no seu iPhone.

Ampla compatibilidade 
Compatível com todos os interruptores de luz de polo único. Não destinado ao uso em interruptores de luz de 3 vias, que são controlados por mais de um interruptor.

Nota 
1. O Koogeek Smart Switch substitui apenas os comutadores de pólo único. Não é compatível com comutadores de 3 vias, que podem ser controlados a partir de vários locais. 
2. O fio neutro é necessário. 
3. Os faceplates de metal não são recomendados. Caso contrário, pode causar interferência prejudicial ao desempenho do Wi-Fi.

Requisitos de sistema 
O HomeKit requer um iPhone, iPad, iPod touch ou Apple Watch com iOS 8.1 ou posterior

Aqara – Interruptor Duplo – Rele

Aqara LLKZMK11LM Controlador de relé sem fio de módulo de controle bidirecional. 2 canais. Funciona com Mijia (Mi Home) e Apple HomeKit. Requer o hub Aqara para a funcionalidade do HomeKit. Com ele você pode controlar até 2 lâmpadas mantendo os interruptores originais de sua casa.


Brand
Aqara
ModelLLKZMK11LM
Wireless ConnectionsZigbee
ColorWhite
Weight50g
Size49.3 x 46 x 24mm
Input Voltage100-250V / 50Hz
Maximum Load10A/2500W
Operating Temperature-10℃~+50℃
Working Humidity5%~95%RH

Pode ser conectado a interruptores comuns (com fio neutro). Vem com uma antena para impulsionar o sinal do Zigbee. Necessário o Hub Homekit

Funcionamento do aqara

Aqara – Usando o cubo com HomeKit

Se você é uma daquelas pessoas que, para o bem ou para o mal, decidiu arriscar e comprou o lado Aqara da integração do HomeKit, com o hub e vários ‘dispositivos infantis’ como sensores de temperatura, porta e movimento, para Por exemplo, você também pode estar ciente do Aqara ‘Cube’. Se você não é, então basicamente é, como o nome indica, um cubo, que pode atuar como um controlador para outros dispositivos Aqara, Mijia ou Yeelight. Atua com base em um acelerômetro interno que registra diferentes movimentos, para que você possa criar automações baseadas em diversos “movimentos” – virar o cubo em 90 °, girá-lo em 180 °, empurrá-lo, girá-lo, sacudi-lo, tocá-lo duas vezes ou se o movimento for detectado após 1 minuto.Muito bom.

Opções de movimento disponíveis com o Aqara Cube

Agora, tudo isso parece ótimo, mas na verdade, esse tipo de dispositivo não é suportado atualmente no framework HomeKit, então como posso usá-lo com meus dispositivos HomeKit? Bem, com um pouco de criatividade, você pode usá-lo para controlar um dispositivo ou uma cena, mas vai precisar de alguns princípios básicos, que vou descrever abaixo, mas devo salientar que, infelizmente, esse método trabalhe somente no aplicativo Aqara e com um hub Aqara  vinculado  ao aplicativo. Assim, se você estiver usando o aplicativo Mi Home, até onde eu saiba, esse procedimento não é possível, tudo porque não é possível criar uma cena no aplicativo Mi Home que especifique a cor ou o brilho da luz no hub, que é necessário para o método que eu vou delinear.

Você precisará do seguinte;

  • Hub Aqara – conectado ao aplicativo Aqara
  • Aqara app – assinado na China continental com uma conta
  • Cubo de Aqara
  • Eve HomeKit app (ou outros aplicativos que permitem um controle mais granular)

O processo é bastante simples, mas como um esboço, o processo é;

  1. Crie uma cena no Aqara com a luz noturna do hub Aqara
  2. Crie uma automação no aplicativo Aqara, com o Aqara Cube para acionar a cena
  3. Obtenha uma cena baseada em HomeKit para ser ativada quando determinados parâmetros no hub Aqara estiverem ativados.

Seção 1 – Criando uma cena no aplicativo Aqara Agora, supondo que você tenha todos os itens acima e tenha adicionado o Aqara Cube, começamos no aplicativo Aqara.

Hub Aqara e cubo configurados no aplicativo Aqara
clique na aba ‘scene’ para criar uma cena
adicione uma ação para sua cena
  • Abra o aplicativo Aqara. Você verá o cubo e o cubo de Aqara. crie uma ‘cena’ clicando na guia ‘Cena’
  • A página Scene provavelmente dirá ‘No Scenes’, então clique em ‘Create’ e crie sua primeira Scene
  • Você verá uma página para adicionar uma ação. Clique em Adicionar
Selecione o hub Aqara
Selecione ‘Ajustar brilho da luz da noite’
Defina o brilho para 5%
  • Selecione o hub Aqara, que então leva você a uma lista de opções
  • Escolha a opção “Ajusta o brilho da luz da noite”, que abre uma opção para ajustar o brilho
  • Eu selecionei 5% como o brilho preferido, mas sinta-se à vontade para escolher o que você quer, embora ele não fique por muito tempo.
A ação está completa, depois de nomear
Você também tem a opção de adicionar um ícone, mas não é necessário
Depois de nomear sua cena (hub 5pc neste exemplo), você pode salvá-la
  • Depois de selecionar o seu nível de brilho preferido, você tem uma cena completa
  • você pode então adicionar um ícone se desejar (não é necessário)
  • Em seguida, nomeie a cena enquanto salva
Homepage do aplicativo Aqara, agora mostrando a cena criada
Aqui você pode ver a luz noturna de Aqara em 5% depois de pressionar a cena.

Seção # 2 – Criando uma automação para o cubo para acionar a cena Agora criamos uma ‘cena’ predefinida no aplicativo, onde a luz noturna do hub será definida como 5%, mas agora queremos usar o cubo Aqara para acionar essa cena.

Crie uma automação
Comece com a página ‘IF – THEN’
Na seção IF, escolha o cubo Aqara
  • Para criar sua automação, clique na guia “Automação” na parte inferior da tela
  • Você então recebe uma página ‘IF-THEN’. Clique em ‘Adicionar’ na seção ‘IF’
  • Na seção ‘IF’, selecione o cubo Aqara
Selecione o “movimento” específico para sua cena
Neste exemplo, escolhemos ‘Flip 90 °’
na seção ‘THEN’ escolha ‘Scene’
  • Selecionou o movimento específico que acionará a cena que criamos – eu escolhi ‘Flip 90 °’
  • Depois de fazer sua seleção, clique em ‘Adicionar’ na seção ‘ENTÃO’
  • Na lista de opções, escolha ‘Scene’
Escolha a cena criada anteriormente (hub 5 pc)
na próxima página, selecione “Executar”
Você pode, então, nomear a automação
  • Selecione a cena que você criou anteriormente – neste caso, ‘hub 5 pc’
  • Outra página aparecerá com apenas uma opção – Executar – selecione isso e você retornará para a seção ‘IF-THEN’
  • Você pode ir em frente e nomear essa automação, embora ainda haja algumas adições a serem feitas

Essencialmente, o que você criou até agora é uma automação que, quando o cubo Aqara é girado em 90 °, a luz noturna Aqara se acende com 5% de brilho. No entanto, temos que criar etapas adicionais na automação para que a eventual cena ‘HomeKit’ funcione em cada ocasião, portanto…

Adicione um atraso de 1 segundo entre as ações subsequentes
Automação completa contendo uma cena e outras automações
Homepage do aplicativo Aqara mostrando a cena e a automação

Com o aplicativo Aqara, você pode colocar ações ou cenas adicionais para a ação inicial ‘THEN’, então, neste caso, após a cena ser acionada, eu…

  • adicionou um atraso de 1 segundo
  • então uma automação simples para definir a luz noturna do hub para 50% de brilho
  • então outro atraso de 1 segundo
  • antes de uma ação final que desligue a luz da noite.

Vou explicar por que isso parece necessário no final deste tutorial, por enquanto, fique comigo. É isso para o lado do aplicativo Aqara, então agora passamos para o aplicativo Eve.

Seção 3 – Criando uma ‘Regra’ em Eva que acionará uma automação do HomeKit 

Aplicativo Eve – Crie seu gatilho
Aplicativo Eve – Adicione um gatilho
O gatilho – a luz do cubo Aqara está em 5%

Em primeiro lugar, você precisa ter criado uma cena sua, e no exemplo aqui, eu já tinha uma cena para que as luzes do meu quarto estivessem a 100%, com a cena chamada ‘Lights Bright’, então certifique-se de ‘ Ou você criou a cena ou criou uma antes de prosseguir.

  • Abra o aplicativo Eve, clique na guia “Cenas” na parte inferior e clique na guia “Regras” na parte superior.
  • Role para baixo até chegar ao último de todas as cenas ou “Regras”, como elas são chamadas no aplicativo do Eve, e clique em “Adicionar Regra”.
  • Você será apresentado a uma tela que mostra o processo da automação – Trigger> Conditions> Scenes. Clique em Avançar
  • Você terá uma tela onde você precisa adicionar o seu ‘gatilho’, então clique em ‘Adicionar Trigger’
  • Em seguida, você verá uma lista com seções, listadas como ‘acessório’, ‘local’ e ‘hora’.
  • Na lista “Acessórios”, clique em “Outro valor” e, em seguida, role até a sala em que seu hub está localizado
  • Uma vez nessa sala, você verá todos os acessórios, juntamente com seus respectivos parâmetros – neste exemplo eu quero ‘Aqara Hub 3’, que é onde a cena que eu criei anteriormente deve corresponder ao parâmetro que eu configurei no aplicativo Eve
  • A cena no aplicativo Aqara definiu a luz da noite para 5%, então eu preciso definir o brilho para 5% para ser o gatilho, então ligue a alternância de brilho e defina o brilho para 5%, como no exemplo.
Uma vez adicionado, o gatilho será mostrado na seção de gatilho
Escolha sua automação que será acionada pelo acionador
Nomeie a regra e salve
  • Clique em “Adicionar”, e você será levado de volta a uma página que mostrará que quando a luz do hub Aqara estiver com 5% de brilho, isso funcionará como um gatilho. Clique em Avançar
  • A próxima página terá condições de valor e tempo. Nós não nos incomodaremos com o propósito deste tutorial, mas você pode efetivamente obter ainda mais controle caso você explore em outro momento. Clique em Next.
  • Finalmente, você pode escolher a sua cena baseada em HomeKit para ser acionada pela luz do hub Aqara que vem com 5% de brilho. Eu escolhi ‘Lights Bright’ como mencionado anteriormente.Selecione a cena e clique em Avançar, onde você deverá finalmente nomear a ‘Regra’. Você está feito!

Então agora, sempre que eu viro meu Aqara Cube 90 °, a luz noturna do hub Aqara acende a 5%, depois de 1 segundo, vai para 50%, depois de outro intervalo de 1 segundo, a luz se apaga. Enquanto a primeira parte ocorre (5% de brilho), a Regra que criamos verá a luz acender com 5% de brilho, o que acionará a cena ‘Lights Bright’.

Como o Aqara Cube tem uma variedade de ações diferentes, você pode simplesmente repetir o processo para cada cena do HomeKit que deseja ativar, embora para distinguir cada cena, você precisa definir o brilho para um nível diferente para cada cena. Outra coisa a notar é que eu originalmente tentei definir cenas e amarrá-las a uma regra com cores diferentes em vez de níveis de brilho, mas descobri que as referências de cores no aplicativo Aqara e no aplicativo Eve não correspondiam e, portanto, falharam então o brilho parece ser uma medida mais precisa a esse respeito.

Então, por que eu tenho essas etapas extras que mencionei anteriormente? Bem, eu encontrei a ação para transformar a luz da noite em 5%, já que a automação não funcionará uma segunda vez, já que o hub já estará a 5% do anterior, e assim não acionará a automação do HomeKit. O atraso de 1 segundo só para garantir que a Regra que criei no aplicativo do Eve tenha tempo de registrar que a luz acendeu. A ação de 50% de brilho garante que na próxima vez que a cena for disparada pelo Cubo, ela não estará a 5% da automação anterior e, portanto, garantirá que ela acione a Regra subsequente novamente.