That’s awesome, nice work!
PING: @Minims @frazor77 @Vorhees @GSzabados @AltF4me @91JJ @smartmatic @DWeyel @titidelain @Syl20-62
Major Update: v2.1.0 Released + ESPHome Integration Now Available
Hi everyone! Big news on the EverBlu Cyble meter reader project.
What’s New in v2.1.0
I’ve just released v2.1.0 with significant improvements to both the existing MQTT firmware and a brand new ESPHome integration option.
For MQTT Users (Existing Setup)
If you’re already using the MQTT version, here’s what’s new:
New Features:
- Adaptive Frequency Tracking: The firmware now intelligently optimizes the CC1101 frequency offset based on successful reads. This means better signal reliability over time as it adapts to your specific hardware.
- Enhanced Monitoring: New sensors for read attempts counter, frequency offset, and tuned frequency reporting
- Improved Reliability: Better frequency persistence and handling across reboots
All existing MQTT functionality remains unchanged - this is a drop-in upgrade. Your current configurations will continue to work.
NEW: ESPHome Integration
This is the big announcement: I’ve created a fully functional ESPHome external component that brings native Home Assistant integration without needing an MQTT broker.
Why ESPHome?
- Simple YAML configuration (no C++ header editing)
- Native Home Assistant integration with automatic discovery
- All the ESPHome benefits (OTA updates, logging, diagnostics)
- Same proven codebase as the MQTT version (years of testing and refinement)
Available Sensors (15+):
- Volume (liters/m³), Battery, Counter, RSSI, LQI
- Time Start/End, Backflow, Leak, Meter Error indicators
- Read attempts, Frequency offset, Tuned frequency
- WiFi diagnostics
- Plus button controls for manual reads and frequency reset
Technical Highlights
Shared Codebase: Both MQTT and ESPHome versions use the exact same core code (~95% shared). All the CC1101 radio handling, RADIAN protocol decoding, frequency calibration, and multi-layer frame validation is identical between both implementations.
Advanced Frame Validation:
The firmware implements 5 layers of validation to ensure data integrity:
- Custom serial decoding (proprietary 4x oversampled encoding)
- CRC-16/KERMIT Frame Check Sequence
- Frame structure validation (preamble, length, headers, serial matching)
- Temporal validation (wake windows, counter continuity, battery bounds)
- Signal quality filtering (RSSI threshold, LQI assessment)
Result: You only get data when the firmware is highly confident the reading is genuine.
Known Issue
There’s one known limitation in the ESPHome version: the discovered best frequency offset isn’t persistent between reboots (the frequency scan will re-run on each boot). The MQTT version doesn’t have this issue. I’m working on refining the persistence mechanism, but all core functionality works perfectly in the meantime.
Documentation
Full ESPHome Guide: ESPHOME/README.md
GitHub Repository: genestealer/everblu-meters-esp8266-improved
Changelog: CHANGELOG.md
Migration
From MQTT to ESPHome: Super easy - just use the same meter_year and meter_serial values from your private.h. ESPHome will auto-discover sensors with similar entity IDs, so no dashboard reconfiguration needed.
Staying on MQTT: That’s perfectly fine too! Both versions are actively maintained and share the same codebase improvements.
Feedback Welcome
I’ve been testing both versions extensively on real hardware (ESP8266 and ESP32, water and gas meters), but would love to hear from the community:
- How does the ESPHome version work for you?
- Any issues with the adaptive frequency tracking?
- Feature requests?
Feel free to open issues on GitHub or reply here. Happy to help with setup questions!
Credits: As always, this builds on the amazing reverse engineering work by La Maison Simon, neutrinus, and psykokwak. This update is my contribution to make it even better for the Home Assistant community.