NodeMCU Tasmota Atlas Scientific sensors pH, EC, and Temp

I’m working on using a NodeMCU with Tasmoto to access the readings from Atlas Scientific pH, EC, and Temp sensors all connected to the NodeMCU via I2C.
Everything seems to be working. NodeMCU sees the sensors.
When troubleshooting with mosquitto_sub its showing it’s receiving the readings, and that I have the topic right:
{“Time”:“1970-01-01T01:35:12”,“EZO-1”:{“pH”:14.00},“EZO-2”:{“EC”:4.640},“EZO-3”:{“Temperature”:-1023.0},“TempUnit”:“C”}

I setup a MQTT input with three measurements. Ch0: pH; CH1: EC, CH3: Temperature.

Mycodo daemon is showing the errors:
Error processing message payload ‘{“Time”:“1970-01-01T01:32:12”,“EZO-1”:{“pH”:14.00},“EZO-2”:{“EC”:4.240},“EZO-3”:{“Temperature”:-1023.0},“TempUnit”:“C”}’: could not convert string to float: ‘{“Time”:“1970-01-01T01:32:12”,“EZO-1”:{“pH”:14.00},“EZO-2”:{“EC”:4.240},“EZO-3”:{“Temperature”:-1023.0},“TempUnit”:“C”}’

Any idea of the cause?

Each MQTT topic needs to have a payload of a string that represents a float.

Indeed, this string does not represent a float value.

You didn’t specify which of the two MQTT Inputs you’re using, but I just recalled that there is also an MQTT Input that accepts JSON payloads like yours. You’ll need to use that specific input and follow the documented instructions.

I got it working, thank you.
Used the MQTT JSON input.

For the JSON keys I used:
“EZO-1”.pH
“EZO-2”.EC
“EZO-3”.Temperature

1 Like