Page 1 sur 1

RF433 vers Switch Mysensors dans Domoticz

Publié : 16 oct. 2019, 20:42
par V1nz T3ch
Je vous propose une sketch pour transformer des commandes rf 433 en interrupteur mysensors

Image

Matériel nécessaire :
-1 carte arduino nano
-1 nrf24l01
-1 rxb6 (recepteur R433)
-3 câble pour breadbord
-une antenne pour le rf433 (un simple bout de câble fait l’affaire dans mon cas)
-1 interupteur RF433 compatible RC-switch (liste des chipsets supportés ici)

Logiciel :
-arduino IDE
-RC-switch librarie
-Mysensors librairie

Réaliser le branchement comme suit :
Image
La data du rxb6 en D3 (Pin 1)


Dans un premier temps charger le sketch sans le modifier dans l’arduino
Pour pouvoir récupérer les différents code RF433

Une fois charger ouvre le moniteur série dans le logiciel Arduino IDE
Puis appuyer sur les bouton d’une commande rf433 vous devriez voir apparaitre des codes
Image

Recopier les code après « RF433 code : » dans mon cas

RF433 code : <strong>1381719</strong>
RF433 code : <strong>1381716</strong>
RF433 code : <strong>1394007</strong>
ect....

Une fois vos codes récupérer aller dans le sketch Arduino et modifier les codes de la ligne 20 et 21 en modifiant par les vôtres n’oublier pas de changer le nombre de code contenu dans votre tableau sur la ligne du dessus

Avant:
<code>#define NUMBER_OF_SWITCHES 4
long switchCode[NUMBER_OF_SWITCHES] = {6210721,22610,22609,22616};</code>

Après:
<code>#define NUMBER_OF_SWITCHES 6
long switchCode[NUMBER_OF_SWITCHES] = {1381719, 1381716, 1394007, 1394004, 1397079, 1397076}</code>;

Recharger votre sketch
Teste une commande, vous devriez voir maintenant à chaque appuie sur une touche la ligne suivante :
"Envoie MYS ID " et le numéro id dans le nœud
Image

La partie arduino est fini

Dans domoticz

Dans un premier temps vérifie que votre nœud est bien reconnu dans Domoticz aller
Reglages / Materiel / ton matériel my sensors reglages
Vérifier que le nœud s ID 10 est présent avec comme nom "RF433_MYS"
Image

Dans Réglages / Paramètres / Système
Autorise le matériel pendant 5 minutes
Image

Puis Appliquer les paramètres

Ensuite aller dans dispositifs
Ajouter les nouveaux switches
Image

Dans mon cas je lui est donné le nom de « Cmd RF 1 »
Image

Ensuite allez dans l’onglet interrupteur
Puis dans « Cmd RF 1 » modifié
Image

Modifie le délai d’extinction afin qu’après chaque passage a On il repasse automatiquement a off après ce délai
Dans mon cas je mets 1s
Et dans Action on je mets le code pour allumer un éclairage au travers un commande Json Domoticz

Je fais la meme chose pour la commande OFF en créant « Cmd RF 2 »

Voila le code RF433_Switch_MYS.ino

Code : Tout sélectionner

/*
  
 Creation d'un node pour transformer les signaux RF433 en Switch MySensors
 Pin du recepteur RF433  1 => pin D3
 
*/

#define MY_DEBUG 

// Noeud de l'objet / Object Node
#define MY_NODE_ID 10


// Enable and select radio type attached
#define MY_RADIO_NRF24

#define Pin_Radio 1

#include <SPI.h>
#include <RCSwitch.h>
#include <MySensors.h>

#define NUMBER_OF_SWITCHES 6
long switchCode[NUMBER_OF_SWITCHES] = {1381719, 1381716, 1394007, 1394004, 1397079, 1397076};

long RFcode;

RCSwitch mySwitch = RCSwitch();

MyMessage msg(0,V_TRIPPED);

void setup() {
  mySwitch.enableReceive(Pin_Radio);
}

void presentation() 
{
  // Présenttion du sketch 
  sendSketchInfo("RF433_MYS", "1.0");

  // Déclaration des different switch
  for (int i = 0; i < NUMBER_OF_SWITCHES; i++) {
      present(i+1, S_DOOR);  
      delay(100);
  }
}

void loop() { 
  if (mySwitch.available()) {
    RFcode = mySwitch.getReceivedValue();
    
    Serial.print("RF433 code : ");
    Serial.println( RFcode );
    
    mySwitch.resetAvailable();

    for (int i = 0; i < NUMBER_OF_SWITCHES; i++){
        if (switchCode[i] == RFcode) {
          send(msg.setSensor(i+1).set(1));          
          Serial.print("Envoie MYS ID ");
          Serial.println(i+1);
        } 
    }
  }
}