Semi static parent modification
-
Some background information:
I've bunch (over 30) nodes (NRF24) in my garden, there are working as lamp switches. I'm also using message signing. Because of RF range and required good signal quality (signing demands real stable RF network) I'm using repeaters.
In my code I'm using:int8_t myParrentNodeId; int8_t myRF24PALelel; #define MY_PARENT_NODE_ID myParrentNodeId #define MY_RF24_PA_LEVEL myRF24PALeleltrick to change preferred parent for nodes without needs of having different sketch image for each node and reflashing.
Unfortunately sometimes (because of unknown reason) node changes parent node to some distant repeater node and communication with these node (over "new parent") is very poor. It's also very hard to recover node from such state (reboot command needs signing, signing needs good radio connection, radio link is poor because node is using very distant repeater).
I've some ideas which could be implemented to remedy such situations:
-
Possibility to BLACKLIST some repeaters - it should be a array(?) in RAM/EEPROM which contain IDs of forbidden parents
-
Possibility to declare " MY_PARENT_NODE_IS_STATIC" but with fixed (in RAM or EEPROM) backup parrent ID. It will allow to limit possible parent to two good (in range) nodes but not break connectivity in case of primary parent failure
-
Better RF link quality verification to be 100% sure that whole path to controller is performing well.
-
It could be also a good idea to make possible enable/disable working node "as parent" without recompilation (easier tunning of large Mysensors network).
-
-
@gohan Static parent id would solve my problem BUT what if one repeaters (Murphy's law: most important) fail? 1/3 of my node network gone..... If I can blacklist some nodes (very distant from sensor) I can enable repeater feature on more nodes and have more redundant network. Similar with "static with backup": I can put more repeaters talking with more PA power and be 100% sure that node will talk to controller via one of "preferred parent".
Of course it's just my idea but maybe it's worth to think about it?