Markdown source

#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'