Navigation

    • Register
    • Login
    • Search
    • OpenHardware.io
    • Categories
    • Recent
    • Tags
    • Popular
    1. Home
    2. sama
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    sama

    @sama

    0
    Reputation
    1
    Posts
    388
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    sama Follow

    Best posts made by sama

    This user hasn't posted anything yet.

    Latest posts made by sama

    • "Error sending switch command, check device/hardware !"

      hello .
      I have problem with switch command.i am using this sketch:

      /**
       * The MySensors Arduino library handles the wireless radio link and protocol
       * between your home built sensors/actuators and HA controller of choice.
       * The sensors forms a self healing radio network with optional repeaters. Each
       * repeater and gateway builds a routing tables in EEPROM which keeps track of the
       * network topology allowing messages to be routed to nodes.
       *
       * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
       * Copyright (C) 2013-2015 Sensnology AB
       * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
       *
       * Documentation: http://www.mysensors.org
       * Support Forum: http://forum.mysensors.org
       *
       * This program is free software; you can redistribute it and/or
       * modify it under the terms of the GNU General Public License
       * version 2 as published by the Free Software Foundation.
       *
       *******************************
       *
       * REVISION HISTORY
       * Version 1.0 - Henrik Ekblad
       *
       * DESCRIPTION
       * Example sketch for a "light switch" where you can control light or something
       * else from both HA controller and a local physical button
       * (connected between digital pin 3 and GND).
       * This node also works as a repeader for other nodes
       * http://www.mysensors.org/build/relay
       */
      
      // Enable debug prints to serial monitor
      #define MY_DEBUG
      
      // Enable and select radio type attached
      #define MY_RADIO_NRF24
      //#define MY_RADIO_RFM69
      
      // Enabled repeater feature for this node
      #define MY_REPEATER_FEATURE
      
      #include <SPI.h>
      #include <MySensors.h>
      #include <Bounce2.h>
      
      #define RELAY_PIN1  6  // Arduino Digital I/O pin number for relay 
      #define BUTTON_PIN1  3  // Arduino Digital I/O pin number for button 
      #define CHILD_ID1 1   // Id of the sensor child
      #define RELAY_PIN2  7  // Arduino Digital I/O pin number for relay 
      #define BUTTON_PIN2  4  // Arduino Digital I/O pin number for button 
      #define CHILD_ID2 2   // Id of the sensor child
      #define RELAY_PIN3  8  // Arduino Digital I/O pin number for relay 
      #define BUTTON_PIN3  5  // Arduino Digital I/O pin number for button 
      #define CHILD_ID3 3   // Id of the sensor child
      #define RELAY_ON 1
      #define RELAY_OFF 0
      
      Bounce debouncer1 = Bounce();
      int oldValue1 = 0;
      bool state1;
      Bounce debouncer2 = Bounce();
      int oldValue2 = 0;
      bool state2;
      Bounce debouncer3 = Bounce();
      int oldValue3 = 0;
      bool state3;
      
      MyMessage msg1(CHILD_ID1, V_LIGHT);
      MyMessage msg2(CHILD_ID2, V_LIGHT);
      MyMessage msg3(CHILD_ID3, V_LIGHT);
      
      void setup()
      {
        // Setup the button
        pinMode(BUTTON_PIN1, INPUT);
        digitalWrite(BUTTON_PIN1, HIGH);
        pinMode(BUTTON_PIN2, INPUT);
        digitalWrite(BUTTON_PIN2, HIGH);
        pinMode(BUTTON_PIN3, INPUT);
        digitalWrite(BUTTON_PIN3, HIGH);
      
        // After setting up the button, setup debouncer
        debouncer1.attach(BUTTON_PIN1);
        debouncer1.interval(5);
        debouncer2.attach(BUTTON_PIN2);
        debouncer2.interval(5);
        debouncer3.attach(BUTTON_PIN3);
        debouncer3.interval(5);
      
        // Make sure relays are off when starting up
        digitalWrite(RELAY_PIN1, RELAY_OFF);
        pinMode(RELAY_PIN1, OUTPUT);
        digitalWrite(RELAY_PIN2, RELAY_OFF);
        pinMode(RELAY_PIN2, OUTPUT);
        digitalWrite(RELAY_PIN3, RELAY_OFF);
        pinMode(RELAY_PIN3, OUTPUT);
      
        // Set relay to last known state (using eeprom storage)
        state1 = loadState(CHILD_ID1);
        digitalWrite(RELAY_PIN1, state1 ? RELAY_ON : RELAY_OFF);
        state2 = loadState(CHILD_ID2);
        digitalWrite(RELAY_PIN2, state2 ? RELAY_ON : RELAY_OFF);
        state3 = loadState(CHILD_ID3);
        digitalWrite(RELAY_PIN3, state3 ? RELAY_ON : RELAY_OFF);
      }
      
      void presentation()  {
        // Send the sketch version information to the gateway and Controller
        sendSketchInfo("Relay & Button", "1.0");
      
        // Register all sensors to gw (they will be created as child devices)
        present(CHILD_ID1, S_LIGHT);
        present(CHILD_ID2, S_LIGHT);
        present(CHILD_ID3, S_LIGHT);
      }
      
      /*
      *  Example on how to asynchronously check for new messages from gw
      */
      void loop()
      {
        { debouncer1.update();
          // Get the update value
          int value1 = debouncer1.read();
          if (value1 != oldValue1 && value1 == 0) {
            send(msg1.set(state1 ? false : true), true); // Send new state and request ack back
          }
          oldValue1 = value1;
        }
        { debouncer2.update();
          // Get the update value
          int value2 = debouncer2.read();
          if (value2 != oldValue2 && value2 == 0) {
            send(msg2.set(state2 ? false : true), true); // Send new state and request ack back
          }
          oldValue2 = value2;
        }
        { debouncer3.update();
          // Get the update value
          int value3 = debouncer3.read();
          if (value3 != oldValue3 && value3 == 0) {
            send(msg3.set(state3 ? false : true), true); // Send new state and request ack back
          }
          oldValue3 = value3;
        }
      }
      
      void receive(const MyMessage &message) {
        // We only expect one type of message from controller. But we better check anyway.
        if (message.isAck()) {
          Serial.println("This is an ack from gateway");
        }
      
        if (message.type == V_LIGHT) {
          switch (message.sensor) {
            case 1:
              state1 = message.getBool();
              digitalWrite(message.sensor + 2, state1 ? RELAY_ON : RELAY_OFF);
      
              break;
            case 2:
              state2 = message.getBool();
              digitalWrite(message.sensor + 2, state2 ? RELAY_ON : RELAY_OFF);
      
              break;
            case 3:
              state3 = message.getBool();
              digitalWrite(message.sensor + 2, state3 ? RELAY_ON : RELAY_OFF);
      
              break;
      
          }
      
          // Write some debug info
          Serial.print("Incoming change for sensor:");
          Serial.print(message.sensor);
          Serial.print(", New status: ");
          Serial.println(message.getBool());
        }
      }
      

      this is a 3 channel relay with button.
      some time commands sent and some time could not be sent and show "Error sending switch command, check device/hardware !" I did take steps in accordance site and use a 4.7uf capacitor between vcc and gnd in radio . now some time command sent . some time could not be sent and i wait for a time (1 min , 2 min and more) and again send command and this is ok ! also when for test i sent some consecutive command (on/off/on/off/on) so again i see "Error sending switch command, check device/hardware !" i wait again and after a while work again and ok !
      I did search between topics and i see some suggest to use this module:
      link text
      so i use this but the problem did not solve for me .
      also i use a repeater between node and gateway but...
      Does anyone a proposal for my problem ?

      Best Regards S_m .

      posted in Troubleshooting
      sama
      sama