jag har integrerat en dimbar IKEA lampa i min nexahome och det fungerar bra.
För att göra det behöver man en IKEA gateway och fjärrkontroll med lampa, lite mek i raspberry plus script.
Så här gjorde jag:
0. Installera och få igång lampan med fjärrkontroll och gateway plus android eller ios app.
1. Installera coap i raspberryn.
https://learn.pimoroni.com/tutorial/san ... om-your-pi
Öppna ett terminalfönster och bara följ instruktionerna (tar lite tid).
På sidan finns också exempel på grundläggande kommando för att styra lampan.
OBS. Denna sida saknar info om shared key vilket tillkommit senare, se nedan.
Så istället för att i dessa kommando använda koden som står på lådan ska man istället använd en shared key.
Installationen fungerade med en gång hos mig, inga problem.
2. Ta reda på IP adressen till gatewayn, kolla i din router.
3. På denna sida hittar man instruktioner för att hämta shared key som sen ska användas i kommandona för att styra lampan.
https://github.com/ggravlingen/pytradfri/issues/90
Använd terminalfönstret och skriv följande kommando med din SECURITY_CODE (står på lådan), din IP_ADDRESS samt IDENTITY (som du kan välja själv vad du vill ha).
Code: Select all
coap-client -m post -u "Client_identity" -k "SECURITY_CODE" -e '{"9090":"IDENTITY"}' coaps://IP_ADDRESS:5684/15011/9063"
KOM IHÅG DENNA KOD, spara den nånstans.
(Det verkar som man endast kan hämta ut shared_key en gång per IDENTITY).
Går det ej, så byta IDENTITY mot nåt annat, det gjorde jag, var lite fram och tillbaka innan jag fick en kod med min egen identity.
4. Om det gick bra, så kan du skriva kommandot (byt ut IDENTITY, shared_key och IP_ADDRESS mot dina egna):
Code: Select all
coap-client -m get -u "IDENTITY" -k "shared_key" "coaps://IP_ADDRESS:5684/15001"
v:1 t:CON c:GET i:fbcf {} [ ]
decrypt_verify(): found 24 bytes cleartext
decrypt_verify(): found 24 bytes cleartext
[65536,65537]
I detta faller är 65537 min lampa, 65536 tror jag är id till min ikea fjärrkontroll.
6. Har du kommit så här långt, kan du börja tända / släcka med kommandon i terminalfönstret.
Code: Select all
tänd:
coap-client -m put -u "IDENTITY" -k "shared_key" -e '{ "3311": [{ "5850": 1 }] }' "coaps://IP_ADDRESS:5684/15001/65537"
Släck:
coap-client -m put -u "IDENTITY" -k "shared_key" -e '{ "3311": [{ "5850": 0 }] }' "coaps://IP_ADDRESS:5684/15001/65537"
dimma 0 - 254: (127 är halv)
coap-client -m put -u "IDENTITY" -k "shared_key" -e '{ "3311": [{ "5851": 127 }] }' "coaps://IP_ADDRESS:5684/15001/65537"
Jag har tillsvidare hårdkodat shared_key och ip_adress i mina script, går nog att göra mycket bättre.
Jag skapade en dimmer (device nr 19) med dummy=yes.
Skapa två scriptfiler.
Script kod på min device skickar dimvärdet från devicen och IKEA lampid till ett sh script, på så sätt kan samma sh-script sen användas till alla lampor.
19.bsh (dimmar lampa 65537):
Code: Select all
process = Runtime.getRuntime().exec(new String[] { "/home/pi/nexahome/coap_dim.sh", Integer.toString(Integer.parseInt(getDeviceLevel("19"))*254/100), "65537"});
int exitVal = process.waitFor();
coap_dim.sh (Glöm ej göra den exekverbar)
Code: Select all
#!/bin/bash
coap-client -m put -u "IDENTITY" -k "shared_key" -e '{ "3311": [{ "5851": '$1' }] }' "coaps://IP_ADDRESS:5684/15001/$2"
Tips:
- Gör ett steg i taget och få kommandon att fungera.
- Ger man ett coap kommando som är felaktig, men som behandlas, så får man en fel kod på slutet typ 4.01.
Hoppas det kan vara till nytta, jag tycker själv det är riktigt användbart att ha lamporna integrerade i Easyhome.
Instruktionen ser besvärlig ut men tar man ett steg i taget så kommer man till slut fram.