Help work out correct MQTT message to activate relay
-
Can you please post your GW sketch ?
Check this also.
http://forum.mysensors.org/topic/2378/how-can-i-set-the-payload-for-mqtt-v1-6Another note regarding the above link. Some replies are talking about a bug which was fixed. But in all cases check the first replies concerning setting the message structure.
-
As far as I know I am just using the default MySensors relay sketch with 1 relay.
// Example sketch showing how to control physical relays. // This example will remember relay state even after power failure. #include <MySensor.h> #include <SPI.h> #define RELAY_1 6 // Arduino Digital I/O pin number for first relay (second on pin+1 etc) #define NUMBER_OF_RELAYS 1 // Total number of attached relays #define RELAY_ON 1 // GPIO value to write to turn on attached relay #define RELAY_OFF 0 // GPIO value to write to turn off attached relay MySensor gw; void setup() { // Initialize library and add callback for incoming messages gw.begin(incomingMessage, AUTO, true); // Send the sketch version information to the gateway and Controller gw.sendSketchInfo("Relay 1.0"); // Fetch relay status for (int sensor=1, pin=RELAY_1; sensor<=NUMBER_OF_RELAYS;sensor++, pin++) { // Register all sensors to gw (they will be created as child devices) gw.present(sensor, S_LIGHT); // Then set relay pins in output mode pinMode(pin, OUTPUT); // Set relay to last known state (using eeprom storage) digitalWrite(pin, gw.loadState(sensor)?RELAY_ON:RELAY_OFF); } } void loop() { // Alway process incoming messages whenever possible gw.process(); } void incomingMessage(const MyMessage &message) { // We only expect one type of message from controller. But we better check anyway. if (message.type==V_LIGHT) { // Change relay state digitalWrite(message.sensor-1+RELAY_1, message.getBool()?RELAY_ON:RELAY_OFF); // Store state in eeprom gw.saveState(message.sensor, message.getBool()); // Write some debug info Serial.print("Incoming change for sensor:"); Serial.print(message.sensor); Serial.print(", New status: "); Serial.println(message.getBool()); } } -
Can you please post your GW sketch ?
Check this also.
http://forum.mysensors.org/topic/2378/how-can-i-set-the-payload-for-mqtt-v1-6Another note regarding the above link. Some replies are talking about a bug which was fixed. But in all cases check the first replies concerning setting the message structure.
Ahhh by GW sketch I guess you mean gateway sketch? I set that up well over a year ago and I actually wouldn't even have a clue where the original sketch is... My temp/humidity sensors have been working perfectly for over a year now. So just diving back into the arduino stuff to see if I can get the relay going.
I'm even using a different PC to compile and upload the sketches so I might not even have the original GW sketch....
-
Ahhh by GW sketch I guess you mean gateway sketch? I set that up well over a year ago and I actually wouldn't even have a clue where the original sketch is... My temp/humidity sensors have been working perfectly for over a year now. So just diving back into the arduino stuff to see if I can get the relay going.
I'm even using a different PC to compile and upload the sketches so I might not even have the original GW sketch....
@TommySharp Yeah I mean the gateway.
You say your gateway is running for a year now, but now you want to use MQTT so you have to set this MQTT gateway. I am not familiar with MYsensor library 1.5 or previous versions. I am using the development branch ( https://github.com/mysensors/Arduino )
It has a sketch for setting MQTT gateway and you can test sending a payload data using mosquitto as explained in my first link in the previous reply. Also there is a new sketch for relayactuator example.It works okay and I have tested it.
-
@TommySharp Yeah I mean the gateway.
You say your gateway is running for a year now, but now you want to use MQTT so you have to set this MQTT gateway. I am not familiar with MYsensor library 1.5 or previous versions. I am using the development branch ( https://github.com/mysensors/Arduino )
It has a sketch for setting MQTT gateway and you can test sending a payload data using mosquitto as explained in my first link in the previous reply. Also there is a new sketch for relayactuator example.It works okay and I have tested it.
@ahmedadelhosni
Yes my gateway is the MQTT gateway and it has been running for well over a year. It happily posts temp/humidity which my OpenHAB server subscribes to and reads in the sensor readings.I just need to work out now how to activate a relay :-)
-
@ahmedadelhosni
Yes my gateway is the MQTT gateway and it has been running for well over a year. It happily posts temp/humidity which my OpenHAB server subscribes to and reads in the sensor readings.I just need to work out now how to activate a relay :-)
Hi!
According to the mqtt gateway sketch in 1.5.3, topic structure is:
Topicprefix/node_id/child_id/v_type
Mysensors payload is mqtt payload.
-
So when my relay sensor announces itself to the gateway below.... Does it announce the child ID anywhere so I can be sure I'm using the right one?
send: 24-24-0-0 s=255,c=3,t=11,pt=0,l=5,st=ok:Relay
send: 24-24-0-0 s=255,c=3,t=12,pt=0,l=3,st=ok:1.0
send: 24-24-0-0 s=1,c=0,t=3,pt=0,l=5,st=ok:1.4.1 -
The last line shows s=1, so child id is 1.
Read this post for details on topic structure:
http://forum.mysensors.org/topic/303/mqtt-broker-gateway/17Also read the text at the top of the mqtt gateway sketch for more info.
I think you should test with this topic:
prefix/24/1/V_LIGHTReplace prefix with your set topic prefix.
You can set payload with the -m option if you're using mosquitto.
-
Be aware though, that the mqtt broker gateway sketch will me removed in the next release, so if you want the best support I would think about changing to the mqtt client gateway. This is currently only available in the dev branch at github, but there is a sticky guide in the forum, on how to set it up.
-
Awesome! I'd much rather use a client gateway so might just hold off until the next release of MySensors and then use the MQTT Client Gateway.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login