Reliable Resource Collection for Home Assistant
Persistent • Modular • Provider Agnostic • Home Assistant Ready
Kaomy is a lightweight framework designed to collect, normalize, cache and publish home resource data.
Rather than writing one monolithic script per provider, Kaomy introduces a modular architecture based on Providers, Collectors and a persistent local cache.
The framework is designed to remain simple while being highly extensible.
- Persistent local cache
- Automatic sensor restoration after Home Assistant restart
- Automatic sensor restoration after AppDaemon restart
- Provider / Collector architecture
- Resource normalization
- Home Assistant Statistics compatible
- Home Assistant Energy Dashboard compatible
- ApexCharts compatible
- Modular architecture
- Easily extensible
| Provider | Resource |
|---|---|
| CDE | Water |
| ENERCAL | Electricity |
| Collector | Resource |
|---|---|
| water_principal | Main water meter |
| power_maison | House electricity |
External Provider
│
▼
Provider
│
▼
ResourceState
│
┌──────┴──────┐
│ │
▼ ▼
CacheManager SensorManager
│ │
└──────┬──────┘
▼
Home Assistant
kaomy/
│
├── cache/
├── collectors/
├── core/
├── docs/
├── models/
├── providers/
│
├── README.md
├── LICENSE
└── version.py
Kaomy automatically creates sensors compatible with:
- Recorder
- Statistics
- Energy Dashboard
- ApexCharts
No additional configuration is required.
The AppDaemon configuration must be defined in the following file: /addon_configs/a0d7b954_appdaemon/apps/apps.yaml
After making any changes, make sure to restart AppDaemon and check the logs to ensure everything is running properly.
Example AppDaemon configuration:
power_maison:
module: kaomy.collectors.power_maison
class: PowerMaisonCollector
username: CHANGE_ME
password: CHANGE_ME
schedule: "03:00:00"
simulation: false
water_principal:
module: kaomy.collectors.water_principal
class: WaterPrincipalCollector
username: CHANGE_ME
password: CHANGE_ME
point_installation_id: CHANGE_ME
schedule: "02:00:00"
simulation: false- Login to the CDE customer portal.
- Open the Consumption page.
- Open your browser Developer Tools.
- Go to the Network tab.
- Refresh the consumption graph.
- Locate the request:
GetGraphRelevesData
- Inspect its payload.
Retrieve:
pointDInstallationId
Example:
76397
Use this value in your AppDaemon configuration.
Collectors normally run according to their configured schedule.
For development purposes you can temporarily enable an immediate execution.
Simply uncomment:
self.run_in(self.collect_and_publish, 10)inside the collector.
Example:
collectors/power_maison.py
collectors/water_principal.py
Once the cache has been initialized successfully, comment or remove this line.
Never commit:
apps.yaml
cache/*.json
Credentials must remain outside the repository.
- ✅ Persistent cache
- ✅ Resource normalization
- ✅ Home Assistant integration
- ✅ CDE provider
- ✅ ENERCAL provider
- ✅ Water collector
- ✅ Electricity collector
- Consumption analytics
- Cost analytics
- Solar production
- Battery storage
- Weather integration
- Smart recommendations
Kaomy follows one simple principle.
Providers collect data.
Collectors orchestrate.
The Core remains provider agnostic.
Keeping responsibilities separated makes Kaomy reliable, testable and easy to extend.
Created by Mataïo ☕ Powered by coffee and Home Assistant — Nouméa
MIT

