#Integrazione delle lampade IKEA Tradfri alla CM3-Home
<abstract>
Appunti sulle prove tra la scheda CM3-Home e il sistema di illuminazione IKEA Trådfri
</abstract>
<img src="ikea.jpg">
## Installazione
Installare il gateway Ikea seguendo le istruzioni su questo video:
* [Come installare il kit con gateway TRÅDFRI](https://www.youtube.com/watch?v=xCfMftLAqyc&feature=youtu.be)
### Da linea di comando
Questo è un estratto dal tutorial disponibile su: <https://learn.pimoroni.com/tutorial/sandyj/controlling-ikea-tradfri-lights-from-your-pi>
Installazione libcoap con supporto per DTLS
sudo apt-get install build-essential autoconf automake libtool
git clone --recursive https://github.com/obgm/libcoap.git
cd libcoap
git checkout dtls
git submodule update --init --recursive
./autogen.sh
./configure --disable-documentation --disable-shared
make
sudo make install
Gli esempi sul sito Pimoroni non funzionano se non aggiornandoli con quanto scritto in
questa email di Ikea:
* <a href="./update_ikea.png">Update Ikea</a>
In pratica bisogna chiedere al gateway una nuova shared key specificando una stringa che identifica l'applicazione.
In questo caso ho usato <b>tanzolab</b>. <b>qefE5g6WZbhbmPXn</b> è invece il codice di sicurezza del gateway
Ikea installato sul pannello e <b>192.168.1.48</b> il suo indirizzo IP.
Per richiedere la chiave:
coap-client -m post -u "Client_identity" -k "qefE5g6WZbhbmPXn" -e '{ "9090":"IDENTITY"}' "coaps://192.168.1.48:5684/15011/9063"
Dopodiché:
coap-client -m get -u "IDENTITY" -k "OZLecZ3ijejmlNsd" -v 4 "coaps://192.168.1.48:5684/15001/65536"
Per accendere la lampadine di SX:
coap-client -m put -u "IDENTITY" -k "OZLecZ3ijejmlNsd" -e '{ "3311": [{ "5850": 1 }] }' "coaps://192.168.1.48:5684/15001/65537"
Per spegnere la lampadine di SX:
coap-client -m put -u "IDENTITY" -k "OZLecZ3ijejmlNsd" -e '{ "3311": [{ "5850": 0 }] }' "coaps://192.168.1.48:5684/15001/65537"
Per accendere la lampadine di DX:
coap-client -m put -u "IDENTITY" -k "OZLecZ3ijejmlNsd" -e '{ "3311": [{ "5850": 1 }] }' "coaps://192.168.1.48:5684/15001/65538"
Per spegnere la lampadine di DX:
coap-client -m put -u "IDENTITY" -k "OZLecZ3ijejmlNsd" -e '{ "3311": [{ "5850": 0 }] }' "coaps://192.168.1.48:5684/15001/65538"
Sostituire 5850 con 5851 per poter inviare il valore di luminosità da 0 a 254
### Esempio di codice in Python
Questo esempio legge un pulsante da uno degli ingressi opto della CM3-Home e accende un
lampadina IKEA Trådfri quando il punsante è premuto.
Legge anche uno switch e pilota una seconda lampadina.
#!/usr/bin/python
import os
import time
import RPi.GPIO as GPIO
PUSHBUTTON=28
SWITCH=29
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(PUSHBUTTON,GPIO.IN)
GPIO.setup(SWITCH,GPIO.IN)
while True:
if GPIO.input(PUSHBUTTON):
os.system("coap-client -m put -u \"IDENTITY\" -k \"OZLecZ3ijejmlNsd\" -e '{ \"3311\": [{ \"5850\": %d }] }' \"coaps://192.168.1.48:5684/15001/65537\"" % 0)
time.sleep(0.5)
else:
os.system("coap-client -m put -u \"IDENTITY\" -k \"OZLecZ3ijejmlNsd\" -e '{ \"3311\": [{ \"5850\": %d }] }' \"coaps://192.168.1.48:5684/15001/65537\"" % 1)
time.sleep(0.5)
if GPIO.input(SWITCH):
os.system("coap-client -m put -u \"IDENTITY\" -k \"OZLecZ3ijejmlNsd\" -e '{ \"3311\": [{ \"5850\": %d }] }' \"coaps://192.168.1.48:5684/15001/65538\"" % 0)
time.sleep(0.5)
else:
os.system("coap-client -m put -u \"IDENTITY\" -k \"OZLecZ3ijejmlNsd\" -e '{ \"3311\": [{ \"5850\": %d }] }' \"coaps://192.168.1.48:5684/15001/65538\"" % 1)
time.sleep(0.5)
time.sleep(0.1)
### OpenHAB
Dal pannello wed di OpenHAB (PAPER UI) andare sul menu a sinistra __Add-ons__
cercare "tradfri" e installare http://localhost:8080/paperui.
Nel menu Inbox dovrebbe apparire immdiatamente un messaggio che indica che il
gateway è stato trovato.
Accedere alla documentazione del binding IKEA Trådfri
* [Trådfri Binding](http://docs.openhab.org/addons/bindings/tradfri/readme.html)
## Links
* [IKEA Smart lighting for a brighter everyday](http://www.ikea.com/gb/en/products/lighting/smart-lighting/)
@include='bio_sergio_tanzilli'
2018 Ⓒ TanzoLab