Gateway to hands out node ID's
- 
					
					
					
					
 Hi 
 Is it even possible to implement that Gateway will hands out node ID's ?(something simple like store the assigned id's in eeprom and hand out what is not assigned...)
 
- 
					
					
					
					
 This is not implemented in the gateway code, as it's "always" been the job of the attached controller. 
 
- 
					
					
					
					
 @tbowmo said: This is not implemented in the gateway code, as it's "always" been the job of the attached controller. I know it's "always" been the job of the attached controller but I have a scenario that the mqtt gateway will send directly to a cloud broker and an app that will receive it without any controller on the way. one problem I facing is the nodes id handing...so my question is if I would like to implement this in the GatewayESP8266MQTTClient.ino file is it possible?(check for incoming id request and 255 id number and saving current id handed in gateway eeprom etc...) 
 
- 
					
					
					
					
 @Mickey - What happens if you fix a static node-id for each node? 
 
- 
					
					
					
					
 @sundberg84 it's need to be automatic. Fix id is easy to implement but because there will be an unknown number of nodes than I cannot use fix id's... 
 
- 
					
					
					
					
 Internal messages does not get exposed in the receive() function of the sketch. To archive this you would have to modify the core somewhere here: 
 https://github.com/mysensors/MySensors/blob/development/core/MyTransport.cpp#L706
 
- 
					
					
					
					
 @hek said: Internal messages does not get exposed in the receive() function of the sketch. To archive this you would have to modify the core somewhere here: 
 https://github.com/mysensors/MySensors/blob/development/core/MyTransport.cpp#L706Thanks for answer. 
 I tried to figure where I change the internal msg type to be exposed to GW in the MyTransport.cpp around line 706 but can't seems to find it...
 
- 
					
					
					
					
 Why pass it to the sketch? You could implement the id-handout directly in core (I pointed out the area where internal messages directed to the node is processed). 
 
- 
					
					
					
					
 @hek said: Why pass it to the sketch? You could implement the id-handout directly in core (I pointed out the area where internal messages directed to the node is processed). To mess with core as little as I could so it can be easy upgradable in future (I already altered the MyGatewayTransportMQTTClient.cpp to support using dynamic connection parameters instead hard coded , I don't want to alter a lot of core files but if it necessary I will...) 
 
- 
					
					
					
					
 So I went and change the MyTransport.cpp file and added a few lines around line 740: uint8_t currentID; #if defined(MY_GATEWAY_FEATURE) if (type == I_ID_REQUEST) { currentID = hwReadConfig(0X123); //Read first byte of free conf eeprom space if(currentID==0xFF)//check to see if it was never changed (255)... {currentID = 1;} _msg.set(currentID); if(transportSendWrite(0xFF,_msg)) { hwWriteConfig(0X123,currentID+1) } } else // Hand over message to controllerBut the sensor still requesting an ID without getting it... 
 
- 
					
					
					
					
 You can see at how incoming PING requests sends a message back to the requesting node. So... something like this: (void)transportRouteMessage(build(_msgTmp, sender, NODE_SENSOR_ID, C_INTERNAL, I_ID_RESPONSE).set(currentID));
 
 
			
		 
			
		 
			
		 
					
				