diff --git a/CHANGES.rst b/CHANGES.rst index a7ff14f..8882065 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -17,6 +17,7 @@ in-progress - Improve firmwares :ref:`node-wifi-mqtt-homie` and :ref:`node-wifi-mqtt-homie-battery` - :ref:`node-wifi-mqtt`: Fix JSON serialization: Transmit sensor readings as float values. Thanks, Matthias! - :ref:`node-wifi-mqtt`: Improve configuration and documentation +- :ref:`node-wifi-mqtt`: Fix JSON serialization again, there was an off-by-one-error. Thanks, Giuseppe! 2017-03-17 0.13.0 diff --git a/node-wifi-mqtt/node-wifi-mqtt.ino b/node-wifi-mqtt/node-wifi-mqtt.ino index bddbf19..7b988c1 100644 --- a/node-wifi-mqtt/node-wifi-mqtt.ino +++ b/node-wifi-mqtt/node-wifi-mqtt.ino @@ -365,9 +365,8 @@ void loop() { getHumidityTemperature(); - // Prepare data, build JSON object - - StaticJsonBuffer<256> jsonBuffer; + // Build JSON object containing sensor readings + StaticJsonBuffer<512> jsonBuffer; JsonObject& root = jsonBuffer.createObject(); root["weight"] = String(weightChar).toFloat(); @@ -384,7 +383,8 @@ void loop() { // Serialize data - char payload[256]; + int json_length = root.measureLength(); + char payload[json_length+1]; root.printTo(payload, sizeof(payload));