home-climate-control / esphome2influxdb Goto Github PK
View Code? Open in Web Editor NEWESPHome to InfluxDB Gateway
License: GNU General Public License v3.0
ESPHome to InfluxDB Gateway
License: GNU General Public License v3.0
Cause a NaN
payload to be produced by any of the ESPHome devices (for example, physically disconnect a 1-Wire sensor without restart).
Application keeps working, having logged a problem.
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).
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]
As an Application Maintainer, I want to enable test coverage calculation as a build pipeline so that I can have an idea about what code can be (somewhat) trusted.
Kotlin native MQTT client is used in Kotlin code.
Eclipse Paho MQTT client is used. Not cool.
Wiki reflects the current state of affairs
The expected behavior is unattainable since different branches of the code, a lot of them long lived, may exhibit totally different behavior and may be affected by totally different bugs.
Move the documentation to version controlled code base, retain links to the documentation in Wiki, along with MOST basic FAQ answers.
ESPHome devices appear automagically
Everything needs to be configured by hand
Description will be provided upon completion
Eclipse Paho MQTT client seems to be lagging, while HiveMQ is in active development. Not to mention the annoying issue with creating random directories.
Need to provide the configuration.
The application starts up and starts producing at least something exciting with no need to configure it.
Small isolated project. Why not?
At this point, there are no plans to turn the project over to Kotlin completely, let's shake things down and iron out the wrinkles.
It would be nice to have this application run unattended as a background process.
When the configuration file changes, the configuration is reloaded
The application needs to be restarted in order to read the new configuration. Uncool.
Reference: https://github.com/home-climate-control/esphome2influxdb/runs/1544440044?check_suite_focus=true
Root cause: ErrorProne requires special treatment with JDK 1.8
Because reasons.
References:
Self-explanatory.
MQTT connection stays on as long as the broker is up
MQTT connection drops once in a while
The application can be accessed, monitored, and configured without a restart via Web interface
None of that is happening
Because why not. Opens up startup latency improvements (not that you need them once in 6 months) and bridges to Kotlin Flow.
Two sensors configured, with following parameters:
room-0-temperature
source for oneroom-0-temperature-1wire
source for the otherroom-0-temperature
and room-0-temperature-1wire
source
tag (room-0-temperature
).A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.