Installare il gateway Ikea seguendo le istruzioni su questo video:
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:
In pratica bisogna chiedere al gateway una nuova shared key specificando una stringa che identifica l'applicazione. In questo caso ho usato tanzolab. qefE5g6WZbhbmPXn è invece il codice di sicurezza del gateway Ikea installato sul pannello e 192.168.1.48 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
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)
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
2018 Ⓒ TanzoLab