sending messages not working for some reason
-
Hi,
I am trying to build a board connected to a relay and a switch. I have something up and running. the only issue is that for some reason when i send a message to the controller, it seems to never get there. I never get a response from the controller and on its logs i never see that the message arrived.
I am using a eth W5100 and it is connected directly to my arduino, i.e. there is no relay or wifi involved, when i push the button i do get the print outs in the console, so the button is working.
here is my code:
// Enable debug prints to serial monitor #define MY_DEBUG // Enable gateway ethernet module type #define MY_GATEWAY_W5100 // W5100 Ethernet module SPI enable (optional if using a shield/module that manages SPI_EN signal) #define MY_W5100_SPI_EN 4 // Enable Soft SPI for NRF radio (note different radio wiring is required) // The W5100 ethernet module seems to have a hard time co-operate with // radio on the same spi bus. #if !defined(MY_W5100_SPI_EN) && !defined(ARDUINO_ARCH_SAMD) #define MY_SOFTSPI #define MY_SOFT_SPI_SCK_PIN 14 #define MY_SOFT_SPI_MISO_PIN 16 #define MY_SOFT_SPI_MOSI_PIN 15 #endif // When W5100 is connected we have to move CE/CSN pins for NRF radio //#ifndef MY_RF24_CE_PIN // #define MY_RF24_CE_PIN 5 //#endif //#ifndef MY_RF24_CS_PIN // #define MY_RF24_CS_PIN 6 //#endif // Enable to UDP //#define MY_USE_UDP #define MY_IP_ADDRESS 192,168,1,177 // If this is disabled, DHCP is used to retrieve address // Renewal period if using DHCP //#define MY_IP_RENEWAL_INTERVAL 60000 // The port to keep open on node server mode / or port to contact in client mode #define MY_PORT 5003 // The MAC address can be anything you want but should be unique on your network. // Newer boards have a MAC address printed on the underside of the PCB, which you can (optionally) use. // Note that most of the Ardunio examples use "DEAD BEEF FEED" for the MAC address. #define MY_MAC_ADDRESS 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED // Enable inclusion mode #define MY_INCLUSION_MODE_FEATURE // Enable Inclusion mode button on gateway //#define MY_INCLUSION_BUTTON_FEATURE // Set inclusion mode duration (in seconds) #define MY_INCLUSION_MODE_DURATION 60 // Digital pin used for inclusion mode button //#define MY_INCLUSION_MODE_BUTTON_PIN 3 // Set blinking period #define MY_DEFAULT_LED_BLINK_PERIOD 300 // Flash leds on rx/tx/err // Uncomment to override default HW configurations //#define MY_DEFAULT_ERR_LED_PIN 7 // Error led pin //#define MY_DEFAULT_RX_LED_PIN 8 // Receive led pin //#define MY_DEFAULT_TX_LED_PIN 9 // Transmit led pin // Enabled repeater feature for this node #define MY_REPEATER_FEATURE #include <SPI.h> #include <Ethernet.h> #if defined(MY_USE_UDP) #include <EthernetUdp.h> #endif #include <MySensors.h> #include <Bounce2.h> #define RELAY_PIN 5 // Arduino Digital I/O pin number for relay #define BUTTON_PIN 2 // Arduino Digital I/O pin number for button #define CHILD_ID 1 // Id of the sensor child #define RELAY_ON 1 #define RELAY_OFF 0 Bounce debouncer = Bounce(); int oldValue=0; bool state; long max_on_time = 100000; long last_on_time = 0; int ledState = HIGH; // the current state of the output pin int buttonState; // the current reading from the input pin int lastButtonState = LOW; // the previous reading from the input pin long lastDebounceTime = 0; // the last time the output pin was toggled long debounceDelay = 50; // the debounce time; increase if the output flickers MyMessage msg(CHILD_ID,V_STATUS); void setup() { // Setup the button pinMode(BUTTON_PIN,INPUT); // Activate internal pull-up digitalWrite(BUTTON_PIN,HIGH); // After setting up the button, setup debouncer debouncer.attach(BUTTON_PIN); debouncer.interval(50); // Make sure relays are off when starting up digitalWrite(RELAY_PIN, RELAY_OFF); // Then set relay pins in output mode pinMode(RELAY_PIN, OUTPUT); // Set relay to last known state (using eeprom storage) state = loadState(CHILD_ID); digitalWrite(RELAY_PIN, state?RELAY_ON:RELAY_OFF); send(msg.set(true)); send(msg.set(false)); } 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_ID, S_LIGHT); } /* * Example on how to asynchronously check for new messages from gw */ void loop() { debouncer.update(); // Get the update value int value = debouncer.read(); if (value != oldValue && value==0) { send(msg.set(state?false:true), true); // Send new state and request ack back //send(msg.set(true)); // Send new state and request ack back Serial.println(value); Serial.println(state); } oldValue = value; } void receive(const MyMessage &message) { Serial.println("got 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_STATUS) { // Change relay state state = message.getBool(); digitalWrite(RELAY_PIN, state?RELAY_ON:RELAY_OFF); // Store state in eeprom saveState(CHILD_ID, state); // Write some debug info Serial.print("Incoming change for sensor:"); Serial.print(message.sensor); Serial.print(", New status: "); Serial.println(message.getBool()); } }
1 out of 1
Suggested Topics
-
Vera Gateway Versions
Troubleshooting • 29 Mar 2014, 19:59 • karenbobiv 30 Mar 2014, 07:20 -
S_GAS, send and request problem
Domoticz • 28 Nov 2024, 05:38 • Marcin 28 Nov 2024, 05:38 -
domoticz tables and mysensors
Domoticz • 7 Feb 2023, 20:55 • ebioz 7 Feb 2023, 20:55 -
Node update on value from Domoticz
Domoticz • 30 Jul 2023, 19:19 • zboblamont 7 Aug 2023, 14:33 -
Roller shutter(s_cover) on Domoticz
Domoticz • 5 Aug 2019, 08:43 • Tmaster 21 Jun 2022, 20:48 -
Blockley in Domoticz-not working correctly. Anyone know how to fix.... ?
Domoticz • 15 Nov 2021, 23:07 • Bren 21 Nov 2021, 18:09