Can a node request a status from other node?
-
Hello,
I'd like to have a "6 button node" that will control lights (in other nodes). Since some lights are far away (not visible), I'm thinking in putting there a led just to signal if the light is currently on or off.
For this to happen, I guess I'll have to request the status of each light every time a button is pressed (or pool it every 10m or so).
Is this possible? How?
Thanks
-
@joaoabs yes it is possible. There are multiple threads in the forum. The documentation for how to request information is available at https://www.mysensors.org/download/sensor_api_20#requesting-data and just above that section is information on how to make a node respond to the request.
-
While it would be possible via
request()
as @mfalkvidd suggests, I wouldn't recommend to do that in this case. I think it's rather pointless to regularly request variables which only change rarely. It adds a lot of traffic to the network - at least 4 messages (including echos) per request - while the requested values stay unchanged 98% of the time or so. Not to mention that the status LEDs could show a wrong condition for up to 10 minutes if you toggle a light switch right after its state has been requested.I'd suggest to use one of the following alternatives instead:
-
You could have the light nodes send messages to both the gateway and the node with the status LEDs. The status LEDs would update immediately when a light is toggled and there's a lot less unnecessary traffic on the network.
-
Let the controller handle the logic. Whenever a light node sends a state change to the gateway, tell the controller to send a message to the node with the status LEDs. This method has the same benefits as the one before and it's easier maintainable since you don't need to re-upload sketches to multiple nodes if something changes - just reconfigure a script in your controller.
-