Étape 1: Codes de l’Arduino et intégration openHAB
Initialisation
Seulement la WDT (WatchDogTimer) et les bibliothèques RFM sont inclus. La WDT est utilisé dans le cas où l’Arduino est suspendu quelque part et avec la WDT, il aurait remis par lui-même. Cependant avec cette configuration, l’Arduino jamais perdu lui-même jusqu'à présent.
Le code est attaché et devrait être assez simple. On suppose que vous savez que des choses au moins à mi-chemin le lire. Le code de l’Arduino pourrait ressembler familier comme il a été copié à partir de différentes sources, modifié et mis en place.
N’obtenez pas trop pointilleux sur la NodeID ; garder 2 chiffres puisque vous n’aurez probablement plus de 90 nœuds dans votre maison. Ne changez pas le nombre de chiffres, ou vous devrez le changer presque partout plus tard.
Définir la bande de fréquence telle que fournie par le module que vous avez acheté.
Le ChannelFreq peut devoir être ajustée aux normes où vous vivez ; le nombre est en Hertz.
// RFM69#define NODEID 21 //unique for each node on same network Floor&Room&Node#=X&XX&X#define NETWORKID 666 //the same on all nodes that talk to each other #define GATEWAYID 1#define FREQUENCY RF69_433MHZ#define ENCRYPTKEY "1234567890ABCDEF" //exactly the same 16 characters/bytes on all nodes!#define ChannelFreq 434520000
La structure du message doit être le même sur votre réseau entier
typedef struct { // Radio packet format int nodeID; // node identifier int devID; // device identifier int cmd; // read or write long intVal; // integer payload float fltVal; // floating payload char payLoad[32]; // string payload} Message;
Il y a un certain variables pour garder une trace de l’État et le statut antérieur des relais.
Programme d’installation
Rien de spécial pour mettre en surbrillance. Tous les modes de NIP doivent être définis pour « out ».
Boucle
L’Arduino vérifie d’abord si elle a reçu une commande du serveur OH. La commande est analysée à l’extérieur de la boucle-code.
Ensuite, le statut de chaque relais est comparé à la situation antérieure et si il y a une différence, le nouveau statut est envoyé sur le serveur de OH.
Seulement après que le statut réel sont lus et enregistrés en tant que variables.
Selon l’intervalle, l’État sont envoyés sur le serveur de l’OH.
La dernière IF dans la boucle simplement renvoie le signal provenant de la passerelle RFM pour le nœud et vice versa. Cet ordre semble être une bonne logique, parce que parfois les relais ne changer correctement, donc l’état correct est renvoyé et il peut être commuté à nouveau de la tablette/téléphone (sur le serveur OH).
BTW: les relais sont uniquement mis sur un signal envoyé par le serveur de l’OH (téléphone/tablette/rules). Il n’y a aucune possibilité d’avoir des boutons.
Donc tout cela peut être allumé avec des règles (règles de présence, capteur de lumière règles, time-of-day, etc.) et c’est parfait si vous avez d’intérieur lumière de Noël, bougies de Noël électriques ou n’importe quel autres choses que vous ne voulez pas exécuter 24h/jour et que vous êtes trop fiers pour acheter plusieurs minuteries.