How lehel67/deer-outages works
DEER Outages is a Home Assistant integration that retrieves public planned-outage and incident feeds, filters them to configured counties, localities, and streets, then exposes address-specific sensors, binary sensors, calendar events, and new-outage events. The runtime path is configuration and feed retrieval through parsing/matching and the coordinator into entity platforms. The README documents freshness fallback and area-only warnings; source excerpts establish the principal calls. Calendar, diagnostics, and platform setup are retained as distinct capabilities, with no unsupported links inferred for unsampled wiring.
Main entry points: coordinator.py Polling coordinator · calendar.py Outage calendar · config_flow.py Address config · api.py DEER API client
Components 16
Address setup
- Address config
custom_components/deer_outages/config_flow.py - Integration settings
custom_components/deer_outages/const.py
Feed ingestion
- DEER API client
custom_components/deer_outages/api.py - Shared feed cache
custom_components/deer_outages/feed.py
Outage processing
- Parse and match outages
custom_components/deer_outages/outages.py - Polling coordinator
custom_components/deer_outages/coordinator.py - Seen-outage storage
custom_components/deer_outages/coordinator.py - Localized outage text
custom_components/deer_outages/texts.py
Home Assistant outputs
- Shared entity base
custom_components/deer_outages/entity.py - Outage sensors
custom_components/deer_outages/sensor.py - Status sensors
custom_components/deer_outages/binary_sensor.py - Outage calendar
custom_components/deer_outages/calendar.py - Integration diagnostics
custom_components/deer_outages/diagnostics.py
Other components
- Home Assistant user
- DEER public feed
- Home Assistant events
Connections 20
- Home Assistant user → Address config: configures address
README.md - Address config → DEER API client: validates county
custom_components/deer_outages/config_flow.py - Address config → Integration settings: uses county map
custom_components/deer_outages/config_flow.py - Polling coordinator → Integration settings: uses polling settings
custom_components/deer_outages/coordinator.py - Shared feed cache → DEER API client: fetches both feeds
custom_components/deer_outages/feed.py - DEER API client → DEER public feed: requests outage data
custom_components/deer_outages/api.py - Polling coordinator → Shared feed cache: gets regional feed
custom_components/deer_outages/coordinator.py - Polling coordinator → Parse and match outages: parses and filters
custom_components/deer_outages/coordinator.py - Polling coordinator → Seen-outage storage: loads and saves keys
custom_components/deer_outages/coordinator.py - Polling coordinator → Localized outage text: formats event message
custom_components/deer_outages/coordinator.py - Polling coordinator → Home Assistant events: fires new-outage event
custom_components/deer_outages/coordinator.py - Outage sensors → Polling coordinator: reads outage state
custom_components/deer_outages/sensor.py - Status sensors → Polling coordinator: reads current matches
custom_components/deer_outages/binary_sensor.py - Outage calendar → Polling coordinator: reads calendar matches
custom_components/deer_outages/calendar.py - Outage calendar → Localized outage text: builds event text
custom_components/deer_outages/calendar.py - Outage sensors → Shared entity base: uses shared base
custom_components/deer_outages/sensor.py - Status sensors → Shared entity base: uses shared base
custom_components/deer_outages/binary_sensor.py - Outage calendar → Shared entity base: uses shared base
custom_components/deer_outages/calendar.py - Integration diagnostics → Polling coordinator: reads coordinator status
custom_components/deer_outages/diagnostics.py - Home Assistant events → Home Assistant user: announces outage
README.md