Error Sending switch command
-
Hello guys,
I had the same problem with st=fail, also with this output: "Error sending command, check your hardware/device (blablabla :D)". I can give you here my hints, maybe they will help you. First of all I am using the latest beta domoticz and beta mysensors library v1.6.
I am using two types of nrf24L01+ (with built-in antenna and external). For built-in antenna I am using #define RF24_PA_LEVEL_GW RF24_PA_HIGH in my sketches, BUT for external I need to lower the power because Arduino cannot provide enought current for it (even with attached capacitor): define RF24_PA_LEVEL_GW RF24_PA_LOW. I had this st=fail when I was using HIGH settings for nrf with external antenna, but now it is fixed. Also make sure that you have enough coverage.
I have Arduino Mega2560 installed 1 week ago with 16 channel 12v relay board together. I had the the same problem like you "Error sending command, check your hardware/device". Two days ago I realized that maybe there is a problem with my powering my gateway. I have RFXtrx433, APCups and Ethernet Arduino Uno gateway connected to Raspberry Pi USB. I connected my MySensors gateway separately via 5V charge to the wall socket and this error problem is gone. Conclusion was this that my Raspberry couldnt supply enough current for all attached devices. Now I am planning to install PiHut USB hub with external power supply and move all connected USB interfaces to it and then just with one connection cable to my raspberry (maybe RFX will work better :) we will see).
Update us if these two hints helped you ;D.
Cheers
Maciek@macieiks said:
Hello guys,
I had the same problem with st=fail, also with this output: "Error sending command, check your hardware/device (blablabla :D)". I can give you here my hints, maybe they will help you. First of all I am using the latest beta domoticz and beta mysensors library v1.6.
I am using two types of nrf24L01+ (with built-in antenna and external). For built-in antenna I am using #define RF24_PA_LEVEL_GW RF24_PA_HIGH in my sketches, BUT for external I need to lower the power because Arduino cannot provide enought current for it (even with attached capacitor): define RF24_PA_LEVEL_GW RF24_PA_LOW. I had this st=fail when I was using HIGH settings for nrf with external antenna, but now it is fixed. Also make sure that you have enough coverage.
Hi,
Can't find the specific line. The most similar one is in the MyConfig.h line 115
#define RF24_PA_LEVEL_GW RF24_PA_LOW
Going with the GitHub file I don't even find it...
Where exactly did you change the mentioned above?
Thanks
Hugo
P.S. I can't find the V 1.6 library for my sensors. That's why I mentioned github
-
st=fail means the gw radio doesnt reach the node.
It can be a power issue (search the forum) which can be fixed with caps and/or other power.
It can be a range issue and then you need a repeater. -
st=fail means the gw radio doesnt reach the node.
It can be a power issue (search the forum) which can be fixed with caps and/or other power.
It can be a range issue and then you need a repeater.@sundberg84 The node is 2 meters from the gateway.
It most be an power problem. Is it with the gateway or node? -
Hi!
Can be both (or even worse, faulty hardware/bad fake nrf radios).I power my gateway through USBCharger and have a 4.7 + 47 uF cap paralell on VCC/Gnd.
On my nodes i use a single 4.7uF cap VCC/GNDIn best case its just one of your radios thats bad or misswired... check wiring and/or change the radios if you have another one.
-
Hi!
Can be both (or even worse, faulty hardware/bad fake nrf radios).I power my gateway through USBCharger and have a 4.7 + 47 uF cap paralell on VCC/Gnd.
On my nodes i use a single 4.7uF cap VCC/GNDIn best case its just one of your radios thats bad or misswired... check wiring and/or change the radios if you have another one.
@sundberg84 On my gateway (nano) is an 4.7 uF og it is connected with USB to the domoticz. How can I do it different?
Im getting this from the node. It reads okay.
1;255;3;0;11;RELAY_BUTTON_JUL
0;0;3;0;9;read: 1-1-0 s=255,c=3,t=12,pt=0,l=3,sg=0:1.0
1;255;3;0;12;1.0
0;0;3;0;9;read: 1-1-0 s=1,c=0,t=3,pt=0,l=0,sg=0:
1;1;0;0;3; -
I have made an temp node and it communicating okay.
0;0;3;0;9;read: 4-4-0 s=1,c=1,t=0,pt=7,l=5,sg=0:17.8
4;1;1;0;0;17.8
0;0;3;0;9;read: 4-4-0 s=0,c=1,t=1,pt=7,l=5,sg=0:45.2
4;0;1;0;1;45.2
0;0;3;0;9;read: 4-4-0 s=0,c=1,t=1,pt=7,l=5,sg=0:45.0
4;0;1;0;1;45.0
0;0;3;0;9;read: 4-4-0 s=0,c=1,t=1,pt=7,l=5,sg=0:45.3
4;0;1;0;1;45.3
0;0;3;0;9;read: 4-4-0 s=0,c=1,t=1,pt=7,l=5,sg=0:45.0
4;0;1;0;1;45.0Read is not the problem. it is send comands
-
I had this problem due to range but 2m shouldnt be any problem... so strange you can recieve but not send.
Some things to consider if someone else doesnt know better than me:
- Change radios if possible
- Send commands without relays attached (to see if there is some spokes or disturabnce from relay)
- Connect MYSController to debug if possible
Whats your node ID on that node?
Im not good reading those serial lines but if they are beginning with 0 its like its sending to the gateway!?
In my case when i send: 103;1;1;1;2;1 where 103 is node ID, Child(Relay) 1, MsgType = 1 (Set), Ack = 1 (yes), 2 = V_LIGHT, 1 = On -
Sorry, Domoticz logs and hardware doesnt provide any info about the radio traffic. MySensors NodeID and Domoticz ID is not the same either.
If you disconnect the relay from your Arduino you should still be able to send the switch command and with this the relay disconnected it doesnt make any power spikes that could interfere with the radio.
Could you please post your sketch and logs from the gateway again... I cant seem to figure this out.
-
The sketch to the relay
/** * 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 */ #include <MySensor.h> #include <SPI.h> #include <Bounce2.h> #define RELAY_PIN 4 // Arduino Digital I/O pin number for relay #define BUTTON_PIN 3 // Arduino Digital I/O pin number for button #define CHILD_ID 1 // Id of the sensor child #define RELAY_ON 0 #define RELAY_OFF 1 Bounce debouncer = Bounce(); int oldValue=0; bool state; MySensor gw; MyMessage msg(CHILD_ID,V_LIGHT); void setup() { gw.begin(incomingMessage, AUTO, true); // Send the sketch version information to the gateway and Controller gw.sendSketchInfo("RELAY_BUTTON_JUL", "1.0"); // 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(5); // Register all sensors to gw (they will be created as child devices) gw.present(CHILD_ID, S_LIGHT); // 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 = gw.loadState(CHILD_ID); digitalWrite(RELAY_PIN, state?RELAY_ON:RELAY_OFF); } /* * Example on how to asynchronously check for new messages from gw */ void loop() { gw.process(); debouncer.update(); // Get the update value int value = debouncer.read(); if (value != oldValue && value==0) { gw.send(msg.set(state?false:true), true); // Send new state and request ack back } oldValue = value; } void incomingMessage(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) { // Change relay state state = message.getBool(); digitalWrite(RELAY_PIN, state?RELAY_ON:RELAY_OFF); // Store state in eeprom gw.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()); } }Log from gateway:
1;255;3;0;11;RELAY_BUTTON_JUL
0;0;3;0;9;read: 1-1-0 s=255,c=3,t=12,pt=0,l=3,sg=0:1.0
1;255;3;0;12;1.0
0;0;3;0;9;read: 1-1-0 s=1,c=0,t=3,pt=0,l=0,sg=0:
1;1;0;0;3;
0;0;3;0;9;send: 0-0-1-1 s=1,c=1,t=2,pt=0,l=1,sg=0,st=fail:1
0;0;3;0;9;read: 4-4-0 s=1,c=1,t=0,pt=7,l=5,sg=0:17.9
4;1;1;0;0;17.90;0;3;0;9;read: 4-4-0 s=0,c=1,t=1,pt=7,l=5,sg=0:44.4
4;0;1;0;1;44.4Without relay:
0;0;3;0;9;send: 0-0-1-1 s=1,c=1,t=2,pt=0,l=1,sg=0,st=ok:1
0;0;3;0;9;read: 1-1-0 s=1,c=1,t=2,pt=0,l=1,sg=0:1
1;1;1;1;2;1But in domoticz it still gives me hardware error.
Gateway version 1.5.
-
Change: gw.begin(incomingMessage, AUTO, true);
To: gw.begin(incomingMessage, 3, true); (If you want 3 as node id) -
Made a test (with the external antenna on Gateway) the other day and this is what happens.
I put the nrf24 with the external antenna attached to the Nano and Upload the Serial Gateway Scetch onto it.
Ran The Serial Monitor and get this
0;0;3;0;9;gateway started, id=0, parent=0, distance=0
0;0;3;0;14;Gateway startup complete.
I remove it from the PC, attach it to the Raspberry Pi I give two switch commands that work, then at the third attempt the message comes to life "Error sending switch command, check device/hardware !"
2016-01-06 01:04:25.708 MySensors: Using serial port: /dev/ttyUSB0
2016-01-06 01:04:27.186 MySensors: Gateway Ready...
2016-01-06 01:04:27.262 MySensors: Gateway Version: 1.5
2016-01-06 01:04:28.329 Hardware Monitor: Fetching data (System sensors)
2016-01-06 01:04:56.024 User: admin initiated a switch command
2016-01-06 01:04:58.436 Hardware Monitor: Fetching data (System sensors)
2016-01-06 01:05:05.599 User: admin initiated a switch command
2016-01-06 01:05:28.560 Hardware Monitor: Fetching data (System sensors)
Back to PC this is what I get.
0;0;3;0;9;radio init fail
After a few minutes It's OK again like the beginning.
Thanks
-
It (radio init fail) means that when you power it up (connecting it back to PC) it cant initialise radio.
Mostly this is = check wires and/or power issues.Actions:
Check wires, check wires and check wires :)
Try powering your nano without the relay attached if possible (and see if you get Radio Init fails)
If not - power your relay seperatly if possible (relay often create interferance with radio). -
It (radio init fail) means that when you power it up (connecting it back to PC) it cant initialise radio.
Mostly this is = check wires and/or power issues.Actions:
Check wires, check wires and check wires :)
Try powering your nano without the relay attached if possible (and see if you get Radio Init fails)
If not - power your relay seperatly if possible (relay often create interferance with radio).Thanks for the reply, the thing is that I'm powering the Nano via USB from the raspberry Pi (serial Gateway with the external antenna).
The wires I don't think are the problem because it works with the integrated antenna.Can I power Up the Nano with the Raspbery Pi USB and a 5V Transformer with out burning everything?
From what I remember, parallel tension doesn't sum up, but the current does. Wright?
Will I damage everything, including the Raspberry?
Thanks
-
Sorry i missunderstood you, you are talking about the gateway, not the node with the relay right?
If so, you dont need to power it seperetaly....Start with checking your wires...
-
Hello friends:
Happens to me the same error " Error sending command switch , check device / hardware ! " when I update the device status from the application. HOWEVER from the device button it works well.
I tested with serial GW (internal GPIO ) and GW LAN , with the same results.
The traces of the device and the GW are:Device type: light node: 3 child: 6
Command Msg GW Msg Device
On button 3; 6; 1; 0; 2; 1; send 3-3-2-0 s=6,c=1,t=2,pt=2,l=2,sg=0,st=ok:1
read: 0-2-3 s=6,c=1,t=2,pt=2,l=2,sg=0:1
This is an ack from gateway
Incoming change for sensor:6 , New status: 1
On Domoticz 3; 6; 1; 1; 2; 1; read: 0-2-3 s=6,c=1,t=2,pt=0,l=2,sg=0:1
send 3-3-2-0 s=6,c=1,t=2,pt=0,l=2,sg=0,st=ok:1
This is an ack from gateway
Incoming change for sensor:6 , New status: 1
Off button 3; 6; 1; 0; 2; 0; send 3-3-2-0 s=6,c=1,t=2,pt=2,l=2,sg=0,st=ok:0
read: 0-2-3 s=6,c=1,t=2,pt=2,l=2,sg=0:0
This is an ack from gateway
Incoming change for sensor:6 , New status: 0
Off Domoticz 3; 6; 1; 1; 2; 0; read: 0-2-3 s=6,c=1,t=2,pt=0,l=2,sg=0:0
send 3-3-2-0 s=6,c=1,t=2,pt=0,l=2,sg=0,st=ok:0
This is an ack from gateway
Incoming change for sensor:6 , New status: 0A Someone comes up with an idea?

