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
    #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