Vous ne pouvez pas créer de nouvelle commande depuis votre pays : United States
Je n'utilise plus de Raspberry pour dogmatiser le poêle, j'ai préféré basculer sur un Arduino Mega avec une carte Ethernet
Je fournis le fichier .ino. mais aucun support, débrouillez-vous avec. Cliquez ici.
Le principe reste le même : on simule un modem GSM. Attention,selon le firmware de votre poêle, ça peut fonctionner, ou pas. (En particulier, je doute que ça fonctionne tel quel avec la nouvelle génération de poêle Rika)
Un port série communique donc avec le poêle, l'autre port série communique sur le port USB de l'Arduino (pour le débugage), et enfin, le port Ethernet permet de communiquer avec le reste du monde (notamment avec la centrale domotique)
Pour rappel, voici le câblage de la prise au dos du poêle (pour la communication et le capteur de température sans fil Rika)
En plus du système Tipi, j'ai un Raspberry qui me sert de centrale domotique (et qui fonctionne avec l'excellent Jeedom).
Mon poêle à granules Rika possède une programmation intéressante (2 démarrages et 2 arrêts programmés pour chaque jour de la semaine) mais la centrale Jeedom permettrait une bien plus grande finesse de programmation (via les scénarios).
Sur le poêle, on peut changer le mode de fonctionnement à distance via le module GSM optionnel. Ce dernier communique avec le poêle sur un simple port série RS232.
On trouve le schémas de câblage de la prise DB15 assez facilement sur le web, et même des infos sur le protocole de communication ici : http://www.10assembly.net/rika-raspberry-pi-part1/
Par contre, il doit y avoir des différences dans les firmwares car en analysant la communication, je n'ai pas trouvé exactement les mêmes infos.
débit : baud, 8 bits de données, 1 bit de stop, pas de parité
Quand on active le module GMS depuis le clavier sur le poêle, ce dernier envoit la commande
ATE0<cr> plusieurs fois de suite. Si on répond OK<cr><lf>, le mode GSM est activé et le poêle commence la communication
AT+CMGF=1 => active le mode Text SMS
AT+CMGD=1 => efface la mémoire SMS n°3
AT+CMGD=2 => efface la mémoire SMS n°2
AT+CMGD=3 => efface la mémoire SMS n°3
Le poêle n'attend même pas la réponse OK<cr><lf> pour ces instructions
Ensuite, environ toutes les secondes, le poêle demande la lecture du SMS dans la mémoire n°1 avec la commande :
AT+CMGR=1 => lecture de la mémoire SMS n°1
La commande reçue par SMS est alors exécutée, le SMS est effacée :
AT+CMGD=1
puis le poêle envoi un SMS pour indiquer son état (marche/arrêt) ou une éventuelle erreur (dont l'absence de granules)
Il est relativement facile de simuler cette communication pour programmer son poele à distance
J'ai créé 2 programmes pour cela :
rikacomm.py (python)
ce programme communique directement avec le port série du poële : il répond OK chaque fois que nécessaire, transmet le contenu du fichier rika_commande.txt en simulant la réception d'un SMS, et si le poêle envoie un SMS, son contenu sera écrit dans le fichier rika_status.txt
rikaserver.py (python3)
ce programme permet de commander le poêle via des requêtes HTTP :
http://IP_RASPBERRY:10005/API/status permet de récupérer un objet JSON contenant le dernier message envoyé par le poële (en fait, c'est le contenu du fichier rika_status qui est encodé en JSON)
http://IP_RASPBERRY:10005/API/commande=xxxx permet de transmettre le message xxxx au poêle en simulant la réception d'un SMS (en fait on écrit le SMS dans le fichier rika_commande.txt et le programme rikacomm.py se charge de le transmettre)
J'ai également mis 2 fichiers rikacomm et rikaserver qui doivent être installé dans /etc/init.d/ pour pouvoir démarrer ou arrêter les 2 programmes.
sudo service rikacomm (ou rikaserver) start pour le démarrer
sudo service rikacomm stop pour le stopper
sudo service rikacomm status pour vérifier s'il fonctionne ou pas
Les commandes
sudo update-rc.d rikacomm defaults
sudo update-rc.d rikaserver defaults
permettent de rendre le démarrage des 2 programmes automatique
Les 2 scripts précédents inscrivent un 1 dans un fichier dans /etc/restart/ (dossier qu'il faudra créé).
Toutes les minutes, un script restart.sh lancé par cron vérifie que les programmes sont effectivement en fonctionnement, et les relance si ce n'est pas le cas....
C'est utile car si le poêle ne voit pas de réponse pendant environ 30 s, il considère que le module GSM est déconnecté et on ne peut plus piloter le poêle.
INSTALLATION PRESQUE SIMPLE
1- télécharger l'archive zip contenant tous les fichiers
wget http://www.suiviconso.fr/rika/rika_last_version.zip
2- changer de dossier
cd rika
3- executer le script d'installtion
sudo bash install_rika
Le script modifiera la crontab du système /etc/crontab
1- copier les fichiers fournis dans un dossier quelconque (/home/pi/rika par exemple)
wget http://www.suiviconso.fr/rika/rika_last_version.zip
tar -xvzf rika_last_version.zip
2- créer un dossier /etc/restart
sudo mkdir /etc/restart
3- déplacer les scripts de démarrage
sudo mv /home/pi/rika/rikacomm /etc/init.d
sudo mv /home/pi/rika/rikaserver /etc/init.d
sudo chown root:too /etc/init.d/rika*
sudo chmod 755 /etc/init.d/rika*
4- activer le démarrage automatique
sudo update-rc.d rikacomm defaults
sudo update-rc.d rikaserver defaults
5- modifier la crontab de l'utilisateur pi (par ex)
crontab -e
puis ajouter la ligne suivante à la fin du fichier :
* * * * *sudo /home/pi/restart.sh >> /home/pi/restart.log 2>&1 # Relance automatique des services
6- activer le mode GSM sur votre poêle et modifier le code (1234 programmé par défaut dans rikacomm.py)
A la 1ère commande, le poêle répondra qu'il faut enregistrer le numéro de téléphone.
Ca se fait en envoyant un SMS contenant TEL
http://IP_RASPBERRY:10005/API/commande=TEL
(le numero mémorisé sera celui programmé par défaut dans le programme rikacomm.py.
Carte d'extension pour Raspberry Pi A+ OU B+ (ou Raspberry Pi 2) avec...
Notre service client est disponible 24h/24, 7j/7