@kimot that part i missed. thanks for pointing that out. I will give this option also a try. its just that the other sensors that are in the other rooms are already set in place and I do not want to pluck them out and recode them. So pulling the values from the GW would have been an advantage. But anyways, if that is the way to go, then Ill probably do that.
Thanks everyone for your inputs
Joe13
@Joe13
Best posts made by Joe13
-
RE: MySensors - Get Temperature value from another node through the Gateway
-
RE: MySensors - Get Temperature value from another node through the Gateway
As an update.
Finally after wrapping my head around the topic and knowing that you cant just send a value from one node in a VAR1 and expect it to just retain that value and get it in another node, i used the node - node communication and it worked!!!.so my send sketch is
send(pcMsg.setDestination(1).setSensor(101).set(temperature,1));
and receive sketch is
void loop() { request(0, V_VAR1); } void receive(const MyMessage &message) { if (message.type==V_VAR1) { if (message.sensor==101) { // Write some debug info Serial.print("Incoming change for sensor:"); Serial.print(message.sensor); Serial.print("\n"); Serial.print(", New status: "); Serial.println(message.getFloat()); } }
I am able to get the value from the second node. But was just wondering why '0' is used in the request(0, V_VAR1) call when the value is being directly sent from the 1st node to the 2nd node
Latest posts made by Joe13
-
RE: MySensors - Get Temperature value from another node through the Gateway
@iahim67 . Got tied up some stuffs. I gave DzVents a try as I am totally new to it. Ran some basic stuffs and works perfectly. Will gather some more time and do a full run on this
-
RE: MySensors - Get Temperature value from another node through the Gateway
@iahim67 Thanks for this. I will definitely give it a try and provide a feedback on this. I am still new to this, but your code is well commented to provide a good guide
-
RE: MySensors - Get Temperature value from another node through the Gateway
@rejoe2 thanks works perfectly now.
-
RE: MySensors - Get Temperature value from another node through the Gateway
As an update.
Finally after wrapping my head around the topic and knowing that you cant just send a value from one node in a VAR1 and expect it to just retain that value and get it in another node, i used the node - node communication and it worked!!!.so my send sketch is
send(pcMsg.setDestination(1).setSensor(101).set(temperature,1));
and receive sketch is
void loop() { request(0, V_VAR1); } void receive(const MyMessage &message) { if (message.type==V_VAR1) { if (message.sensor==101) { // Write some debug info Serial.print("Incoming change for sensor:"); Serial.print(message.sensor); Serial.print("\n"); Serial.print(", New status: "); Serial.println(message.getFloat()); } }
I am able to get the value from the second node. But was just wondering why '0' is used in the request(0, V_VAR1) call when the value is being directly sent from the 1st node to the 2nd node
-
RE: MySensors - Get Temperature value from another node through the Gateway
Thanks for all the info. I have not yet started scripting in the Controller. But what you guys have mentioned above makes sense, that passing value from Node A to VAR1 needs to be transferred to Node B VAR1 through the controller. Let me play around with all the info provided above. Probably looks like i would have to do node-node. But my understanding has improved now.
@kimot is that request code that you mentioned to be part of the MySensors code in the node or is that a Domoticz input? -
RE: MySensors - Get Temperature value from another node through the Gateway
@rejoe2 Completely understand and thanks for your time on all this. Probably i am not getting something very basic here.
this is the code that i am using to send the data to GW. i juse put in a constant num to send for VAR 1MyMessage pcMsg(0,V_VAR1); send(pcMsg.set(50));
and in my LCD node, which doesnt have any physical sensor, trying to get that VAR1 value like below
request(0, V_VAR1); void receive(const MyMessage &message) { // We only expect one type of message from controller. But we better check anyway. if (message.type==V_VAR1) { // Write some debug info Serial.print("Incoming change for sensor:"); Serial.print(message.sensor); Serial.print(", New status: "); Serial.println(message.getLong()); } }
but the Serial monitor always shows 0 and just trying to figure out why. I am quite sure that it is probably a really minor change that needs to be done
Requested temp from gw VAR1223055 TSF:MSG:READ,0-0-1,s=0,c=2,t=24,pt=0,l=0,sg=0: Incoming change for sensor:0, New status: 0
-
RE: MySensors - Get Temperature value from another node through the Gateway
@rejoe2 i got to understand quite some things from all what you have shared and thanks for that. just a bit more confusion left.
so i have node 1N/child id 1C to send the temp value to the LCD node 4N / child id 4C, so is the below correct.send(1N.setDestination(4).setSensor(4C).set(temperature, 1));
And if node 1N / child id 1C is to send the temp value to GW(DOMOTICZ), is the below correct and how can node 4/child 4C (LCD) retreive this value from GW.
MyMessage pcMsg(1C,V_VAR1); send(pcMsg.set(TEMP from this sensor))
-
RE: MySensors - Get Temperature value from another node through the Gateway
@kimot that part i missed. thanks for pointing that out. I will give this option also a try. its just that the other sensors that are in the other rooms are already set in place and I do not want to pluck them out and recode them. So pulling the values from the GW would have been an advantage. But anyways, if that is the way to go, then Ill probably do that.
Thanks everyone for your inputs -
RE: MySensors - Get Temperature value from another node through the Gateway
anyone who has tried pulling value from GW or controller to a different node, please let me know on how you did it. thanks
-
RE: MySensors - Get Temperature value from another node through the Gateway
@gohan thanks, but i do not have much knowledge on ESP8266 and mqtt but will give the a try to push data from the node to the LCD node