c903677ac5
Added dynamic device naming by allowing a MAC address -> device name mapping in config.h. This keeps me from forgetting to change #define statements in config.h prior to building new firmware. The same firmware can now be deployed to all three my Metriful devices. Also added filtering to publishing values to Home Assistant. Values of zero are not published anymore (these are seen during device startup for example, and are disturbing the graphs.
d67511fbb5
Don't report unreliable data. Also translate Pa -> hPa, which is a more commonly used unit.
e48e44f287
Implemented the calibration mode and introduced a 'height' value in the mqtt stream, which is (container height - distance measurement). First implementation, so much might still change. I'm thinking about introducing a virtual sensor, but I'm not sure yet what the cleanest implementation will look like.
e416dab9dd
Temperature and humidity are now propagated to the distance sensor.
2022eb33c5
Got rid of the now useless main.h #include.
02e5cc2e14
Implemented state change handling using a plugin mechanism for the new AppStateController class. This way, I now have a class that handles all state changes, combined with a loosely coupled plugin for it, which takes care of notifying an communicating the state changes.
4c5ea8c001
Backup work on making the application state a separate class, so I can keep all state knowledge in one place.
22144487f0
String parser replaced with a low level parser for performance.
ed846c7e53
Wrote a first crude version of specific tokenizer handlers for string parsing. Missing feature is good error reporting from the tokenize handler code (which has been a TODO for a while, so a nice one to implement after this).