How to send updated V_TEXT/S_INFO to controller?
- 
					
					
					
					
 I'm working on an alarm clock... my controller is Domotiocz. I'm using a text sensor to send the alarm time to my arduino.... the following post helped me get it all working properly -> lcd-clock-and-text-sensor-node-with-new-v_text My clock also has buttons (like a traditional alarm clock), I've written all the code to change the alarm using the buttons. Now I want to send the new alarm time set on the arduino to the controller (Domoticz), and have the text sensor updated. I thought this would simply be a send(....) command, but I can't get it working. Here is a sub-set sample code of what I thought I needed to do to send the update (I'm on mysensors 2.0.*) #define MY_DEBUG #define MY_RADIO_NRF24 #define MY_NODE_ID 9 #include <SPI.h> #include <MySensors.h> #define cID_ALARM_TIME 1 MyMessage MySensors_MSG_Alarm1_Time(cID_ALARM_TIME, V_TEXT); void setup() { Serial.begin(115200); request(cID_ALARM_TIME, V_TEXT); } void presentation() { sendSketchInfo("WakeUp Clock", "0.0.1"); present(cID_ALARM_TIME, S_INFO, "Alarm Time", true); } void loop() { int newHour = 12; int newMinute = 45; String val = String(newHour) + "." + String(newMinute); send(MySensors_MSG_Alarm1_Time.set(val), true); } void receive(const MyMessage &message) { if (message.type==V_TEXT) { if (message.sensor == cID_ALARM_TIME){ // Here is where the return value comes from Domoticz when requesting the V_TEXT } } }When I run it I get the following console message.... 35287 TSF:MSG:SEND,9-9-0-0,s=1,c=1,t=47,pt=1,l=1,sg=0,ft=0,st=OK:1 35297 TSF:MSG:READ,0-0-9,s=1,c=1,t=47,pt=1,l=1,sg=0:1 35302 TSF:MSG:ACKand then my controller (Domoticz) updates the text sensor to the value of 1 I'm very confused, please help  
 
- 
					
					
					
					
 You should not use the String class in a Arduino environment (google why). The send function takes a char buffer. If you need to append/copy things into it, use strcpy or memcpy. 
 
- 
					
					
					
					
 @hek not strncpy? http://www.cplusplus.com/reference/cstring/strncpy/ 
 
- 
					
					
					
					
 @mfalkvidd 
 Sure, if you'd like some more control over things 
 
- 
					
					
					
					
 @hek otherwise you might end up in this thread https://forum.mysensors.org/topic/5212/why-ioyt-matters Edit: well not centrally bricked but owned and part of a botnet 
 
- 
					
					
					
					
 @hek 
 Ok, I think I understand what you are saying, but I can't figure out the implementation.This didn't work char temp_Msg[3]; strcpy (temp_Msg, char("1")); strcpy (temp_Msg, char(".")); strcpy (temp_Msg, char("1")); send(MySensors_MSG_Alarm1_Time.set(temp_Msg), true);or this char temp_Msg[3]; strcpy (temp_Msg, "1"); strcpy (temp_Msg, "."); strcpy (temp_Msg, "1"); send(MySensors_MSG_Alarm1_Time.set(temp_Msg), true);or this char temp_Msg[3]; strcpy (temp_Msg, '1'); strcpy (temp_Msg, '.'); strcpy (temp_Msg, '1'); send(MySensors_MSG_Alarm1_Time.set(temp_Msg), true);But this does work (message is sent and loaded into Domoticz) send(MySensors_MSG_Alarm1_Time.set("1.1"), true);What am I not understanding? 
 
- 
					
					
					
					
 char buf[20]; strcpy (buf,"Hello "); strcat (buf,"world"); strcat (buf,"!");
 
- 
					
					
					
					
 Oh, I didn't know I needed to use both. Well I tried a million combinations after seemingly reading everything on the subject, and I still couldn't get {int + char + int} converted into a char[] using strcpy and strcat for some reason my brain is just not wrapping itself around the concept today... maybe I'll come back to it tomorrow. In the mean time, I tried the following and it worked. char buf[20]; sprintf(buf, "%d.%d", Alarm1_Time_Local[0], Alarm1_Time_Local[1]); send(MySensors_MSG_Alarm1_Time.set(buf), true);I've read that using sprintf increases the size of your sketch... but for now I'm fine with it, since it works and I can move on to being creative and productive.. lol 
 
 
			
		 
					
				 
					
				 
					
				