Help to send string as payload
-
I am pretty new to programming and Arduino. I have made a temp sensor, and all are OK, but I need to send the value to the controller as a string, or a char. How can I convert the float to a string.
I have tried with :
char charVal[6];
dtostrf(temperature,6,1,charVal);
send (msg.setSensor(i).set(charVal));It converts right, but when I got the readings in the controller I got 20, if the temp actually are 23.
Please help
-
I am pretty new to programming and Arduino. I have made a temp sensor, and all are OK, but I need to send the value to the controller as a string, or a char. How can I convert the float to a string.
I have tried with :
char charVal[6];
dtostrf(temperature,6,1,charVal);
send (msg.setSensor(i).set(charVal));It converts right, but when I got the readings in the controller I got 20, if the temp actually are 23.
Please help
@Christian-Rogne Hi and welcome.
You should not be bothered with these conversions as MySensors takes care for you. Look at the "setters" on the API page (scroll far down) -
Maybe normally not. The Vera Controller reads the value nicely whatever which type this is. But the Vera are connected to a Control4 controller, this wants the value to be a string or int. I have managed the value to be an int, but then I do not have any decimals. So it would be nice if I could have it to be a string
-
I have tried different things, the thing I have changed, is the type of value who would be send from the sensor.
The default :
send(msg.setSensor(i).set(temperature,1));gives me the following error in Control 4 :
number 1
string UPDATE
parent 26
room 1
subcategory 0
[string "Lua Code"]:120: bad argument #1 to 'SetVariable' (strValue should be a string) (ReceivedFromProxy)
altid 5;0
id 40
temperature 23.5I tried to add the lines :
char charVal[6]; //temporarily holds data from vals
dtostrf(temperature,6,1,charVal);and changed the send to :
send(msg.setSensor(i).set(charVal));
But the same happens
If I cast the temperature to int I got the it, but without decimals
If I try with :
String string = "24,8"; send(msg.setSensor(i).set(string)); No error in Control4, but the sent temperature is 1
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login