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. Hardware
  3. MyS blocking i2c PCF8574

MyS blocking i2c PCF8574

Scheduled Pinned Locked Moved Hardware
mysensors
13 Posts 3 Posters 159 Views 3 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 JeeLet
    #1

    Hello

    good news, the libraries for PCF8574 are not compatible with MySensors, one less thing to manage. :)

    I have been testing for a week the different version of library found on the web, it works well, but when I insert the bases of the sketch for MySensors the i2C communication is blocked, and the PCF8574 remains the four iron in the air.

    even with the super https://github.com/RobTillaart/PCF8574

    I've been looking for a practical expander and MySensors on the web, but nothing.

    So everything is normal??? :(

    J 1 Reply Last reply
    0
    • J JeeLet

      Hello

      good news, the libraries for PCF8574 are not compatible with MySensors, one less thing to manage. :)

      I have been testing for a week the different version of library found on the web, it works well, but when I insert the bases of the sketch for MySensors the i2C communication is blocked, and the PCF8574 remains the four iron in the air.

      even with the super https://github.com/RobTillaart/PCF8574

      I've been looking for a practical expander and MySensors on the web, but nothing.

      So everything is normal??? :(

      J Offline
      J Offline
      jkandasa
      Plugin Developer
      wrote on last edited by
      #2

      @JeeLet can you share your MySensors sketch?

      1 Reply Last reply
      0
      • J Offline
        J Offline
        JeeLet
        wrote on last edited by
        #3

        Hello jkandasa

        I will have to find my skecth in my sketch box :)

        but in the meantime I have a problem to solve, very serious

        I can't connect to the MyController forum. :(
        it happened after I cleared my browser cache

        I have recreated a new password but nothing, I don't have the hands.

        This sentence is thrown in my face:

        Login failed
        We cannot connect you, probably because your session has expired. Please try again.

        even creating a new account is impossible

        thank you

        skywatchS 1 Reply Last reply
        0
        • J JeeLet

          Hello jkandasa

          I will have to find my skecth in my sketch box :)

          but in the meantime I have a problem to solve, very serious

          I can't connect to the MyController forum. :(
          it happened after I cleared my browser cache

          I have recreated a new password but nothing, I don't have the hands.

          This sentence is thrown in my face:

          Login failed
          We cannot connect you, probably because your session has expired. Please try again.

          even creating a new account is impossible

          thank you

          skywatchS Offline
          skywatchS Offline
          skywatch
          wrote on last edited by
          #4

          @JeeLet I am seeing the same issue for log in, so it is not just you, it is the site.

          1 Reply Last reply
          0
          • J Offline
            J Offline
            JeeLet
            wrote on last edited by
            #5

            well, here we are, we think we are alone in the world, but no :)

            thank you skywatch

            they is or my sketch that I answer to jkandasa

            J 1 Reply Last reply
            0
            • J JeeLet

              well, here we are, we think we are alone in the world, but no :)

              thank you skywatch

              they is or my sketch that I answer to jkandasa

              J Offline
              J Offline
              jkandasa
              Plugin Developer
              wrote on last edited by jkandasa
              #6

              Thanks @JeeLet @skywatch upgrade leads some issue, I believe I fixed it. I hope MyController forum looks ok now.

              we can go back to the original topic :)

              1 Reply Last reply
              0
              • J Offline
                J Offline
                JeeLet
                wrote on last edited by
                #7

                Hello

                a little more information on the PCF8574 based material

                obsolete industrial equipment recovered in a trash can.
                system building controller from "Johnson Control" the "metasys" game
                https://cgproducts.johnsoncontrols.com/MET_PDF/6364040.PDF

                why the choice of this hardware base ?
                The Opto coupler !

                XP9104

                if not for the Arduino sketch, and its functionning with the PCF8574 library from RobT it's functional :)

                as soon as I activate
                #define MY_TRANSPORT_WAIT_READY_MS 3000
                it works, why it works :(

                Thank you jkandasa for your curiosity, yes the fact that I dive back into it there was like a spark inter neuronal :)

                Thanks

                1 Reply Last reply
                0
                • J Offline
                  J Offline
                  JeeLet
                  wrote on last edited by JeeLet
                  #8

                  in this sketch there is only the Mysensors library to call, to test

                  I just have to finalize my sketch and it to MyController

                  video

                  /************************************************************************************
                     Using an Arduino Uno or an ESP8266 on NodeMCU to control buttons
                     and relays through a PCF8574 GPIO expander.
                     Requires the PCF8574 library
                     https://github.com/RobTillaart/Arduino/tree/master/libraries/PCF8574
                     If using Uno,     comment out #define intPin D4
                     If using ESP8266, comment out #define intPin 2
                     GPIO expander pinout:   0..3 = button input 0..3
                                             4..7 = relay output 0..3
                     Each button controls a corresponding relay 
                     eg. button 0 controls relay 0
                     Button functions:   button 0 and 1 toggle relay 0 and 1 on each press
                                         button 2 and 3 directly control relay 2 and 3 in "realtime"
                     Gadget Reboot
                   *************************************************************************************/
                  /*     
                  *   DESCRIPTION : Arduino UNO et JC-PCF8574 pour 4 Input et 4 Relay   
                  *                 pour MySensors RS485
                  *     
                  *   Libraries: PCF8574 de Rob Tillaart
                  * 
                  *  Modif/Afaire:
                  * -o- 
                  * -x- 
                  * -o-  
                  *   (x%) de l'espace de stockage de programmes               
                  *                
                  */
                       //----------- 2022 ------ PCF8574_RobTi_MyS_4io.ino  ---------- test -----------------//
                  
                  //--------------- MyS ---------------------------------
                    #define MY_DEBUG               /*Enable debug prints to serial monitor*/
                    #define   MY_DEBUG_OTA_DISABLE_ECHO //testing
                    #define MY_TRANSPORT_WAIT_READY_MS 3000
                    #define MY_NODE_ID 40          /*Node en ID static*/
                    #define MY_RADIO_RF24
                    #include <MySensors.h>
                          
                  //---------------- PCF -------------------------------
                    #include <PCF8574.h>
                    #include <Wire.h>
                  
                    PCF8574 pcf8574(0x3D);
                    #define intPin 3                       // interrupt input Uno
                  
                    volatile bool buttonPressed = false;   // button interrupt flag
                    byte buttonReg;                        // button read register
                  
                  //----------------- SETUP -------------------------
                    void setup() {
                  
                  //initialize PCF8574 with an interrupt pin and set all outputs to '1' (Relays off)
                    Wire.begin();
                    pinMode(intPin, INPUT_PULLUP);
                    attachInterrupt(digitalPinToInterrupt(intPin), buttonISR, FALLING);
                    pcf8574.begin(0xFF); // turn off all Relays
                    }
                  
                  //----------------- LOOP ----------------------------
                  void loop() {
                  
                  // if a button press was detected via interrupt, check if the button press
                  // occurred on one of the "toggle" control buttons and toggle the relay if so
                    if (buttonPressed) {
                      delay(50);  // crude debounce
                      buttonReg = pcf8574.read8();
                  
                    if (!bitRead(buttonReg, 0)) {  //toggle a relay if button pressed
                      pcf8574.toggle(4);
                      }
                  
                    if (!bitRead(buttonReg, 1)) {  //toggle a relay if button pressed
                      pcf8574.toggle(5);
                      } 
                    }
                  
                    buttonPressed = false; // clear interrupt flag
                  
                  // manually poll last two buttons and set relays to match button on/off realtime state
                  // method 1:  read all buttons and choose the desired button from the read register
                    // buttonReg = pcf8574.read8();
                    // pcf8574.write(6, bitRead(buttonReg, 2));
                  
                  // method 2:  directly read just one button and directly set the target relay
                    pcf8574.write(7, pcf8574.read(3));
                    pcf8574.write(6, pcf8574.read(2));
                    }
                  
                  //---- interrupt service routine ------------
                    void buttonISR() {
                    buttonPressed = true;
                    }
                    
                  //------------------------------ End pgm -------------------------------------  
                  
                  1 Reply Last reply
                  0
                  • J Offline
                    J Offline
                    JeeLet
                    wrote on last edited by JeeLet
                    #9

                    Operation Expander success

                    I show you two sketches, still based on Rob Tillaart library.

                    • the 1st one is a basic version without MySensors
                      (to understand how the library works)
                      an Input (a shunt) controls an Output.
                      4 inputs 4 outputs

                    • the 2nd one is with MySensors, everything goes up well on MyController, and the 1st time :) (I am surprised :) )

                    a request, a hand for the 2nd for a "clean" touch up of the code (or errors to remove ?? )
                    Yes code readable for beginners, simple function.

                    after cella another video

                    Thanks and good night

                    /*
                     * Test PCF8574 avec module Metasys JC / 4di 4do - 0X03D i2c adress
                     * 
                     *  DESCRIPTION : Exemple pour lire 4 entrée et contrôler 4 Relais 
                     *                avec un PCF8574 (la commande et par les 4 entrée)  
                     *    
                     *   LIBRAIRIES:
                     *   - Rob Tillaart pour PCF8574 https://github.com/RobTillaart/Arduino/tree/master/libraries/PCF8574
                     *    
                     *   ELEMENTS: 
                     *    Do : ?     - Digital output / Relay
                     *         
                     *    Modification:  
                     *    -x- 
                     *    -o-  
                     *    -o- 
                     * 
                     * 
                    */
                    
                       //-----------2022---------------- PCF8574 / 4DI-4DO  - JC  -----------------//
                    
                      #include "PCF8574.h"
                      PCF8574 PCF27a (0x3D);
                    
                    //---------------- SETUP -------------------------
                     void setup() {
                      
                      Serial.begin(115200);
                      
                    //--------- testing IsConnected i2c PCfx ------------
                      Serial.println(__FILE__);
                      Serial.print("PCF8574_LIB_VERSION:\t");
                      Serial.println(PCF8574_LIB_VERSION);
                    
                      if (!PCF27a.begin())   {
                        Serial.println("could not initialize...");
                        }
                      if (!PCF27a.isConnected())   {
                        Serial.println("=> not connected");
                        }
                        else   {
                        Serial.println("=> connected!!");
                        }  
                    
                     }
                    
                    //----------------- LOOP ----------------------------
                     void loop() {
                    
                      if (PCF27a.read(0) == LOW)  do4High(); else PCF27a.write(4, HIGH) ;
                      if (PCF27a.read(1) == LOW)  do5High(); else PCF27a.write(5, HIGH) ;
                      if (PCF27a.read(2) == LOW)  do6High(); else PCF27a.write(6, HIGH) ;
                      if (PCF27a.read(3) == LOW)  do7High(); else PCF27a.write(7, HIGH) ;
                     
                     }
                    
                    // ------- 4x Relay ON ----------
                     void do4High() {
                      PCF27a.write(4, LOW);
                      }
                     void do5High() {
                      PCF27a.write(5, LOW);
                      }
                     void do6High() {
                      PCF27a.write(6, LOW);
                      }
                     void do7High() {
                      PCF27a.write(7, LOW);
                      }
                    
                    //------------------------------ End pgm -------------------------------------  
                    
                    1 Reply Last reply
                    0
                    • J Offline
                      J Offline
                      JeeLet
                      wrote on last edited by JeeLet
                      #10
                      /*
                       * Test PCF8574 avec module Metasys JC / 4di 4do - 0X03D i2c adress
                       * 
                       *  DESCRIPTION : Exemple pour lire 4 entrée et contrôler 4 Relais 
                       *                avec un PCF8574 (la commande et par les 4 entrée)  
                       *    
                       *   LIBRAIRIES:
                       *   - Rob Tillaart pour PCF8574 https://github.com/RobTillaart/Arduino/tree/master/libraries/PCF8574
                       *    
                       *   ELEMENTS: 
                       *    Do : ?     - Digital output / Relay
                       *         
                       *    Modification:  
                       *    -x- 
                       *    -o-  
                       *    -o- 
                       * 
                       *     (14%) de l'espace de stockage de programmes     
                      */
                      
                         //-----------2022---------------- PCF8574 / 4DI-4DO  - MyS et MyC   -----------------//
                      
                      
                      //--------------- MyS ---------------------------------
                        //#define MY_DEBUG               /*Enable debug prints to serial monitor*/
                        //#define   MY_DEBUG_OTA_DISABLE_ECHO //testing
                        #define MY_TRANSPORT_WAIT_READY_MS 3000 /*Tempo de mis en Com (millisecondes) à placer avant Mysensors.h*/ 
                        #define MY_NODE_ID 40          /*Node en ID static*/
                      
                      /* ----- Module TTL-RS485 ----*/
                        #define MY_RS485                  /*Apl du transport RS485 (protocol?)*/
                        #define MY_RS485_DE_PIN 2         /*Cmd DE pin*/
                        #define MY_RS485_BAUD_RATE 9600   /*Set RS485 baud rate to use*/
                        #define MY_REPEATER_FEATURE       /*Activer fonctionnalité de répéteur du nœud*/
                        
                        #include <MySensors.h>
                      
                      //---------------- PCF -------------------------------
                        #include "PCF8574.h"
                        PCF8574 PCF27a (0x3D);  // adjust addresses i2c pcf8574
                      
                      // ------ objet ------
                        #define CHILD_ID_B0 0    /*Id IN - bp */
                        #define CHILD_ID_R4 4    /*Id OUT - relay */
                        
                        #define RELAY_ON 1
                        #define RELAY_OFF 0     
                      
                        int oldValue0=-1;  // input bp
                      
                      //---------- MyS -------------
                        
                        MyMessage msg0(CHILD_ID_B0,V_TRIPPED);  /*Boton*/
                        MyMessage msg4(CHILD_ID_R4,V_STATUS);   /*Relay*/
                      
                         bool info; // pour info GW sur MyC
                         bool state = false;
                      
                      //---------------- SETUP -------------------------
                       void setup() {
                        
                        //Serial.begin(115200);
                        
                      //--------- testing IsConnected i2c PCfx ------------
                        Serial.println(__FILE__);
                        Serial.print("PCF8574_LIB_VERSION:\t");
                        Serial.println(PCF8574_LIB_VERSION);
                      
                        if (!PCF27a.begin())   {
                          Serial.println("could not initialize...");
                          }
                        if (!PCF27a.isConnected())   {
                          Serial.println("=> not connected");
                          }
                          else   {
                          Serial.println("=> connected!!");
                          }  
                              PCF27a.begin(0xFF); // turn off all Relays ????
                      
                          // ---- info send to gateway ----
                         send(msg0.set(info)); 
                         send(msg4.set(info));     
                       }
                       
                      //----------------- MyS ----------------------------
                      void presentation() {
                        
                        sendSketchInfo("DiDo node 40", "2.0");  /*info version sketch à la passerelle*/
                      
                      /*Mysenors Enregistre Child sur la Gw*/
                        present(CHILD_ID_B0, S_DOOR, "boton");      /*Boton*/  
                        present(CHILD_ID_R4, S_BINARY, "relay");    /*Relay*/
                        
                      /* requetes/demandes à un noeud ou GW une variable*/
                        
                        request(CHILD_ID_B0, V_STATUS);  /*Boton*/  
                        request(CHILD_ID_R4, V_STATUS);   /*Relay*/
                      
                        // metric = getControllerConfig().isMetric; 
                        }  
                      
                      //----------------- LOOP ----------------------------
                       void loop() {
                      
                      /* ------ MyS input -----------------------*/
                         int value0 = PCF27a.read(0);
                         if (value0 != oldValue0) {
                           send(msg0.set(value0==HIGH ? 1 : 0));   // Envoyer la nouvelle valeur
                           oldValue0 = value0;
                        }
                       }
                      
                      //--------- MyS out ----------------------------
                      void receive(const MyMessage &message) {
                         
                        if (message.getType()==V_STATUS) {
                              
                         // Change relay state
                          state = (bool)message.getInt();
                           PCF27a.write(4,  state?RELAY_ON:RELAY_OFF);
                          send(msg4.set(state?RELAY_ON:RELAY_OFF));
                         
                        }
                      }
                      
                      //------------------------------ End pgm -------------------------------------  
                      
                      
                      1 Reply Last reply
                      0
                      • J Offline
                        J Offline
                        JeeLet
                        wrote on last edited by JeeLet
                        #11

                        Hello

                        a request for information.
                        What value should be given to avoid a difference in the on/off states between the visualization on the controller and the reality on the LEDs of the Expander module?

                        • on the Arduino's Mysensors sketch
                        • on the configuration of the Field of MyController

                        on which feet to start ????

                        Another question, how to have the synchronicity of the state of the physical outputs (relays/led) and the view on MyC ???

                        with this version of the sketch the state of the outputs is well to go back to the controller after reboot of the Node

                        void receive(const MyMessage &message) {
                           if (message.getType()==V_STATUS) {
                            // Change relay state
                            state = (bool)message.getInt();
                             PCF27a.write(4,  state?RELAY_ON:RELAY_OFF);
                            send(msg4.set(state?RELAY_ON:RELAY_OFF))
                        

                        but now with this version, the reality is false
                        (an augmented reality :) )

                        void receive(const MyMessage &message) {
                          if (message.getType()==V_STATUS) {
                            switch (message.sensor) {
                              case 4:
                                    state = message.getBool();
                                    PCF27a.write(4,  state?RELAY_ON:RELAY_OFF);
                              break;
                              
                        

                        the function

                        // send(msg4.set(PCF27a.read(4)));
                        

                        is removed and you can't see how to add it

                        merci

                        1 Reply Last reply
                        0
                        • J Offline
                          J Offline
                          JeeLet
                          wrote on last edited by JeeLet
                          #12

                          here is a small truth table for the state of the input/output and the values to give to MyController

                          pdf image

                          #define RELAY_ON 0        //  1 reversal of values
                            #define RELAY_OFF 1    //  0 
                          

                          now only the MyS states to be sent to MyC to find.

                          I stop my dialogue :)

                          1 Reply Last reply
                          0
                          • J Offline
                            J Offline
                            JeeLet
                            wrote on last edited by JeeLet
                            #13

                            final sketch and functional with MyController

                            /*
                             *  DESCRIPTION : 4 inputs and 4 outputs on i2C bus with a PCF8574    
                             *    
                             *  LIBRAIRIES:
                             *    - Rob Tillaart pour PCF8574 https://github.com/RobTillaart/Arduino/tree/master/libraries/PCF8574
                             *    - MySensors / Arduino Uno    https://github.com/mysensors/MySensors
                             *    
                             *  ELEMENTS: 
                             *    - Expander PCF8574 avec module Metasys JC / 4di 4do - 0X03D i2c adress
                             *         
                             *  MODIFICATION:  
                             *    -x- RAS : Fonctionnelle 
                             *    -o-  
                             *    -o- 
                             * 
                             *     (36%) de l'espace de stockage de programmes     
                            */
                            
                               //----------- 9 Mai 2022 ---------------- PCF8574 -4DI-4DO / MyS RS485 et MyC -----------------//
                            
                            
                            //------------------- MyS ---------------------------------
                              //#define MY_DEBUG               /*Enable debug prints to serial monitor*/
                              //#define   MY_DEBUG_OTA_DISABLE_ECHO //testing
                              #define MY_TRANSPORT_WAIT_READY_MS 3000 /*Tempo de mis en Com (millisecondes) à placer avant Mysensors.h*/ 
                              #define MY_NODE_ID 40          /*Node en ID static*/
                            
                            /* ----- Module TTL-RS485 ----*/
                              #define MY_RS485                  /*Apl du transport RS485 (protocol?)*/
                              #define MY_RS485_DE_PIN 10         /*Cmd DE pin*/
                              #define MY_RS485_BAUD_RATE 9600   /*Set RS485 baud rate to use*/
                              #define MY_REPEATER_FEATURE       /*Activer fonctionnalité de répéteur du nœud*/
                              
                              #include <MySensors.h>
                            
                            //---------------- PCF -------------------------------
                              #include "PCF8574.h"
                              PCF8574 PCF27a (0x3D);  // adjust addresses i2c pcf8574
                            
                            // ------ objet ------
                              #define CHILD_ID_B0 0    /*Id IN - bp */
                               #define CHILD_ID_B1 1    
                                #define CHILD_ID_B2 2    
                                 #define CHILD_ID_B3 3    
                              #define CHILD_ID_R4 4    /*Id OUT - relay */
                               #define CHILD_ID_R5 5    
                                #define CHILD_ID_R6 6    
                                 #define CHILD_ID_R7 7    
                                   
                              #define RELAY_ON 0    //  1  valeur
                              #define RELAY_OFF 1    // 0  invers 
                               
                            //---------- MyS -------------
                              
                              MyMessage msg0(CHILD_ID_B0,V_TRIPPED);  /*Boton*/
                               MyMessage msg1(CHILD_ID_B1,V_TRIPPED);
                                MyMessage msg2(CHILD_ID_B2,V_TRIPPED);
                                 MyMessage msg3(CHILD_ID_B3,V_TRIPPED);
                                      
                              MyMessage msg4(CHILD_ID_R4,V_STATUS);   /*Relay*/
                               MyMessage msg5(CHILD_ID_R5,V_STATUS);
                                MyMessage msg6(CHILD_ID_R6,V_STATUS);
                                 MyMessage msg7(CHILD_ID_R7,V_STATUS);
                            
                                bool info;              // pour info GW sur MyC
                                bool state = false;     // output
                              //  bool state4 = false;  bool state5 = false;  bool state6 = false;  bool state7 = false;     
                                int oldValue0=-1; int oldValue1=-1; int oldValue2=-1; int oldValue3=-1;  // Input
                            
                            //---------------- SETUP -------------------------
                             void setup() {
                              
                             // Serial.begin(115200); // debug
                              
                            //--------- testing IsConnected i2c PCfx ------------
                              Serial.println(__FILE__);
                              Serial.print("PCF8574_LIB_VERSION:\t");
                              Serial.println(PCF8574_LIB_VERSION);
                            
                              if (!PCF27a.begin())   {
                                Serial.println("could not initialize...");
                                }
                              if (!PCF27a.isConnected())   {
                                Serial.println("=> not connected");
                                }
                                else   {
                                Serial.println("=> connected!!");
                                }  
                                  
                                // ---- info send to gateway ----
                              send(msg0.set(info)); send(msg1.set(info)); //input
                              wait(200);
                              send(msg2.set(info)); send(msg3.set(info));  //input
                              
                              wait(200); //delays for frames, depending on system load and bus type (wireless or wired) 
                              
                              send(msg4.set(info)); send(msg5.set(info));   //output
                              wait(200);
                              send(msg6.set(info)); send(msg7.set(info));  //output
                              }
                             
                            //----------------- MyS ----------------------------
                            void presentation() {
                              
                              sendSketchInfo("PCF8574 x4in/out - node40", "2.0");  /*info version sketch*/
                            
                            /*Mysenors Enregistre Child sur la Gw*/
                              present(CHILD_ID_B0, S_DOOR, "boton0");      /*Boton*/  
                              present(CHILD_ID_B1, S_DOOR, "boton1"); 
                              wait(200);
                              present(CHILD_ID_B2, S_DOOR, "boton2"); 
                              present(CHILD_ID_B3, S_DOOR, "boton3"); 
                              
                              wait(200); //delays for frames, depending on system load and bus type (wireless or wired)         
                              
                              present(CHILD_ID_R4, S_BINARY, "relay4");    /*Relay*/
                              present(CHILD_ID_R5, S_BINARY, "relay5");
                              wait(200);
                              present(CHILD_ID_R6, S_BINARY, "relay6");
                              present(CHILD_ID_R7, S_BINARY, "relay7");
                              
                              wait(200);
                            
                              // metric = getControllerConfig().isMetric; 
                              }  
                            
                            //----------------- LOOP ----------------------------
                             void loop() {
                            
                            //----------- MyS input -------------------------------
                               int value0 = PCF27a.read(0);
                               if (value0 != oldValue0) {
                                 send(msg0.set(value0==HIGH ? 1 : 0));   //Send new value
                                 oldValue0 = value0;
                              }
                            
                               int value1 = PCF27a.read(1);
                               if (value1 != oldValue1) {
                                 send(msg1.set(value1==HIGH ? 1 : 0));   
                                 oldValue1 = value1;
                              }
                              
                               int value2 = PCF27a.read(2);
                               if (value2 != oldValue2) {
                                 send(msg2.set(value2==HIGH ? 1 : 0));   
                                 oldValue2 = value2;
                              }
                              
                               int value3 = PCF27a.read(3);
                               if (value3 != oldValue3) {
                                 send(msg3.set(value3==HIGH ? 1 : 0));   
                                 oldValue3 = value3;
                              }
                            
                             }
                            
                            //----------- MyS out -------------------------------
                              void receive(const MyMessage &message) {
                            
                                    if (message.getType()==V_STATUS) { 
                                          
                               switch (message.sensor) {
                                  case 4:
                                        state= message.getBool();
                                        PCF27a.write(4,  state?RELAY_ON:RELAY_OFF);
                                        break;
                                  case 5:
                                        state = message.getBool();
                                        PCF27a.write(5,  state?RELAY_ON:RELAY_OFF);
                                        break;
                                  case 6:
                                        state = message.getBool();
                                        PCF27a.write(6,  state?RELAY_ON:RELAY_OFF);
                                        break;
                                  case 7:
                                        state = message.getBool();
                                        PCF27a.write(7,  state?RELAY_ON:RELAY_OFF);
                                        break; 
                                        }
                                     }
                                  }
                            
                            //------------------------------ End pgm -------------------------------------  
                            
                            1 Reply Last reply
                            0
                            Reply
                            • Reply as topic
                            Log in to reply
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes


                            21

                            Online

                            11.7k

                            Users

                            11.2k

                            Topics

                            113.1k

                            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