Library Version report, gateway vs sensors
For the Gateway, MyGateway.cpp has a check for INTERNAL message with I_VERSION, that is 0;0;3;0;2; to which it responds with same + the define LIBRARY_VERSION (1.4.1 for example).
For Sensors, http://www.mysensors.org/download/serial_api_14 says that INTERNAL+I_VERSION is "Sensors report their library version at startup using this message type". This isn't true, they send nodeid;255;0;0;17;libraryversion (or 18 if it's a repeater)... There's no code for replying to this request either.
This is coming from MySensors::begin;
present(NODE_SENSOR_ID, repeaterMode? S_ARDUINO_REPEATER_NODE : S_ARDUINO_NODE);
How much will we break if they start sending the same as documentation+gateway? On the other hand, various other things are reported under the NODE_SENSOR_ID (255) "sensor"..
If I remember correctly this was changed between 1.3 -> 1.4 version. The documentation will be updated to reflect this (done locally here now and will be pushed in the next deployment).
The reson for changing was to keep reduce the number of messages sent during startup.
Altering this behaviour (in 1.4 and 1.5) would break things.
How is it more messages to send with "node;0;3;0;2;version" than "node;255;0;0;17;version" ? Or am I missing something..? Was the old method that the sensor said "hi!", gw says "what version?" and sensor said "v1.xx" vs the new "hi, v1.xx" ?
"node;0;3;0;2;version" doesn't contain the node type it is (repeater/sensor). So I think this was sent in a separate message back then. Sorry, my memory fails me.. Github history has the answer if you care to dig.
ok, so it's a merge of version + sensor-vs-repeater into one msg..