home-climate-control / esphome2influxdb

ESPHome to InfluxDB Gateway
GNU General Public License v3.0
7 stars 0 forks source link

NaN payload breaks the application #6

Closed climategadgets closed 3 years ago

climategadgets commented 3 years ago

To reproduce

Cause a NaN payload to be produced by any of the ESPHome devices (for example, physically disconnect a 1-Wire sensor without restart).

Expected behavior

Application keeps working, having logged a problem.

Actual behavior

Application breaks for good with the exception message below. Deferred sample queue grows until it hits the limit and samples start to be dropped on the floor (queue poisoning).

Relevant log entries

2020-12-17 16:22:09,012 DEBUG MqttReader MQTT Call: 607fa016-76a2-4aa5-9297-4215e5fdff2a [messageArrived] topic=/esphome/45FB71/sensor/water-heater-out/state,
 message=nan
2020-12-17 16:22:09,013 WARN InfluxDbWriter MQTT Call: 607fa016-76a2-4aa5-9297-4215e5fdff2a [messageArrived, consume] can't write sample, deferring remaining
1 samples for now
 java.lang.NumberFormatException: null
        at java.math.BigDecimal.<init>(BigDecimal.java:497) ~[?:1.8.0_252]
        at java.math.BigDecimal.<init>(BigDecimal.java:383) ~[?:1.8.0_252]
        at java.math.BigDecimal.<init>(BigDecimal.java:809) ~[?:1.8.0_252]
        at com.homeclimatecontrol.esphome2influxdb.InfluxDbWriter.consume(InfluxDbWriter.java:147) [esphome2influxdb.jar:?]
        at com.homeclimatecontrol.esphome2influxdb.MqttReader.consume(MqttReader.java:227) [esphome2influxdb.jar:?]
        at com.homeclimatecontrol.esphome2influxdb.MqttReader.consume(MqttReader.java:189) [esphome2influxdb.jar:?]
        at com.homeclimatecontrol.esphome2influxdb.MqttReader.messageArrived(MqttReader.java:165) [esphome2influxdb.jar:?]
        at org.eclipse.paho.client.mqttv3.internal.CommsCallback.deliverMessage(CommsCallback.java:514) [org.eclipse.paho.client.mqttv3-1.2.2.jar:?]
        at org.eclipse.paho.client.mqttv3.internal.CommsCallback.handleMessage(CommsCallback.java:417) [org.eclipse.paho.client.mqttv3-1.2.2.jar:?]
        at org.eclipse.paho.client.mqttv3.internal.CommsCallback.run(CommsCallback.java:214) [org.eclipse.paho.client.mqttv3-1.2.2.jar:?]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]