Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Controllers
  3. Domoticz
  4. States Relay

States Relay

Scheduled Pinned Locked Moved Domoticz
1 Posts 1 Posters 342 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Offline
    J Offline
    JeeLet
    wrote on last edited by
    #1

    translate French--> Anglais

    Hello
    a request on the Eternal "status feedback" of a command.

    did the command activate my request?
    a can like an existential, to be or not to be

    My test model diagram
    Domoticz ----> Arduino output ----> Relay
    Domoticz <----- Arduino Input <----- °--°

    the scheme
    alt text

    a skit tampering

    /*
    *
     * compilation de 
     *  RelayActuator.ino et BinarySwitchSensor.ino
     *
     * LA DESCRIPTION
     * utilisation d'un contact auxilaire du relais pour retour d'etat d'une commande, 
     *
     *
     */
    
    
    //----------------------- Library Configuration ---------------------
     #define MY_DEBUG                          // uncomment to enable debug prints to serial monitor
    
     #define MY_NODE_ID 22                   /*Node en ID static*/
     
     #define MY_TRANSPORT_WAIT_READY_MS 3000 /*Tempo d'attente de mis en Com, des millisecondes*/ 
     #define  MY_SPLASH_SCREEN_DISABLED /*désactive écran de démarrage MySensors (économie 120oct. en flash)*/
    
    //-------------------------------Bus RS485--------------------------------
     #define MY_RS485       
     #define MY_RS485_DE_PIN 2
     #define MY_RS485_BAUD_RATE22 9600  /* débit du bus rs485*/
     // #define MY_RS485_HWSERIAL Serial1    /*pour Mega2560,Serial 1-2- ou 3 ? */
    
    //---------------------------------------------------------------------------
    
    #include <MySensors.h>
    #include <Bounce2.h>  /*anti rebond*/
    
    #define CHILD_ID 3 // contact enfant
    
    //--------------- contact-----------------------
    #define BUTTON_PIN  7   // Broche Arduino Digital I / O pour bouton / interrupteur reed
    
    //------------------ relay------------------------------
    #define RELAY_PIN 3  // Arduino Digital I/O pin number for first relay (second on pin+1 etc)
    #define NUMBER_OF_RELAYS 1 // Total number of attached relays
    #define RELAY_ON 1  // GPIO value to write to turn on attached relay
    #define RELAY_OFF 0 // GPIO value to write to turn off attached relay
    
    //----------------- contact
    //Bounce debouncer = Bounce(); 
    //int oldValue=-1;
    
    Bounce debouncer = Bounce(); 
    int oldValue=0;
    bool state;
    
    // -----------------contact--------------------
    
    MyMessage msg(CHILD_ID,V_TRIPPED);  // V_LIGHT si vous utilisez S_LIGHT
    
    //MyMessage msg(CHILD_ID,V_LIGHT); 
    
    //-------------------- Relay--------------------------------
    //void before()
    //{
    //    for (int sensor=1, pin=RELAY_PIN; sensor<=NUMBER_OF_RELAYS; sensor++, pin++) {
    //        pinMode(pin, OUTPUT);  // Then set relay pins in output mode
            // Set relay to last known state (using eeprom storage)
            //digitalWrite(pin, loadState(sensor)?RELAY_ON:RELAY_OFF);
    //    }
    //}
    //----------------------  *************-----------------------------------
    
    void setup()  
    {  
      // Configurer le bouton
      pinMode(BUTTON_PIN,INPUT_PULLUP);
      digitalWrite(BUTTON_PIN,HIGH);
      
      // configure le bouton et debounce
      debouncer.attach(BUTTON_PIN);
      debouncer.interval(5);
    
     // Assurez-vous que les relais sont désactivés au démarrage 
      digitalWrite(RELAY_PIN, RELAY_OFF);
      // Réglez ensuite les broches de relais en mode sortie 
      pinMode(RELAY_PIN, OUTPUT);     
      
    }
    
    void presentation()
      {
     //------------------ contact-----------------   
      // pouvez utiliser S_DOOR, S_MOTION ou S_LIGHT,  Si S_LIGHT est utilisé, 
      //n'oubliez pas de mettre à jour le type de variable que vous envoyez. Voir "msg" ci-dessus.
     // present(CHILD_ID, S_DOOR);  
      //----------------- ************----------------
    present(CHILD_ID, S_LIGHT);
      //-------------------- relay ---------------------------------------
          sendSketchInfo("Relay et State", "2.0");
    
        for (int sensor=1, pin=RELAY_PIN; sensor<=NUMBER_OF_RELAYS; sensor++, pin++)
        {
         present(sensor, S_BINARY);  // Register et  created as child devices
        }
     //--------------------****************-------------------------   
    }
    
    void loop() 
    {
    //      --------------- contact--------------  
      debouncer.update(); // control Etat contact 
      int value = debouncer.read(); // Récupère la valeur de mise à jour
    //-----------------------------
      if (value != oldValue && value==0) {
          send(msg.set(state?false:true), true); // Envoyer un nouvel état et demander un accusé de réception
      }
      oldValue = value;
    } 
    
    //------------------------------------------ 
    //  if (value != oldValue)  // Envoyer la nouvelle valeur
    //  {
    //     send(msg.set(value==HIGH ? 1 : 0));
    //     oldValue = value;
    //  }
    //} 
    //-----------------------------
    
    //  --------------------************-------------------  
    
    // -------------------- Relay-----------------------
    void receive(const MyMessage &message)
    {
    
    if (message.isAck()) {
         Serial.println("This is an ack from gateway");
      }
      
        // We only expect one type of message from controller. But we better check anyway.
       // if (message.getType()==V_STATUS) {
            // Change relay state
                 // digitalWrite(message.getSensor()-1+RELAY_PIN, message.getBool()?RELAY_ON:RELAY_OFF);
                
          
    //-----------------cmd local----------------
     if (message.type == V_LIGHT) {
         // Change relay state
         state = message.getBool();
         digitalWrite(RELAY_PIN, state?RELAY_ON:RELAY_OFF);
            
    //-------------------------------------------        
            // Write some debug info
            Serial.print("    Incoming change for sensor:");
            Serial.println(message.getSensor());
            Serial.print("   New status: ");
            Serial.println(message.getBool());
    
            Serial.print(" etat contact ");
            Serial.println(oldValue);
            }
    }
    
    // ----------------- fin Pgm -----------------
    

    already made a request on
    but no answer. https://easydomoticz.com/forum/viewtopic.php?f=20&t=10601

    so how to activate the relay state in Domoticz

    Thank you

    1 Reply Last reply
    0

    Hello! It looks like you're interested in this conversation, but you don't have an account yet.

    Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

    With your input, this post could be even better 💗

    Register Login
    Reply
    • Reply as topic
    Log in to reply
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes


    12

    Online

    12.0k

    Users

    11.2k

    Topics

    113.4k

    Posts


    Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
    • Login

    • Don't have an account? Register

    • Login or register to search.
    • First post
      Last post
    0
    • MySensors
    • OpenHardware.io
    • Categories
    • Recent
    • Tags
    • Popular