- What Humidity Intelligence V2 Is
- Why Environmental Stability Matters
- Architecture Overview
- Installation
- Migration Guide - v1 to v2
- Full Configuration Flow
- Configuration Screenshots (Visual Guide)
- Post-Configuration Workflow
- How to Use Services
- Design Philosophy
Humidity Intelligence V2 is not a collection of automations.
It is a deterministic environmental runtime engine.
It replaces stacked triggers and conflicting scripts with:
- a lane-based priority architecture
- physics-aware environmental modelling
- global gating logic
- one authoritative control state per evaluation cycle
There is no "last automation wins." There is no trigger race condition. There is one resolved outcome, every time.
This is environmental control with structure.
Most dashboards show a number. Humidity Intelligence models behavior.
Humidity problems rarely appear as isolated spikes. They emerge as:
- drift
- imbalance
- duration
- recurring spread patterns
- condensation formation
- mould growth risk
- dust mite proliferation
- sleep disruption
- structural degradation over time
- irritated airways
- dry throat and coughing
- worsened asthma symptoms
- dry skin and eye irritation
- reduced respiratory resilience
- low humidity: leaf browning, stress, slowed growth
- excess humidity: fungal growth and pest vulnerability
Most homes oscillate between both extremes seasonally.
V2 models that instability structurally.
Humidity Intelligence V2 operates across three defined layers.
Transforms raw telemetry into structured environmental signals:
- dynamic house average humidity
- 7-day mean and drift tracking
- Magnus dew point calculation
- condensation spread (
temperature - dew_point) - mould risk normalization
- worst-room detection
- binary danger states
This layer models risk and does not control hardware.
Canonical runtime order:
- CO Emergency: highest priority automation
- Alert Lane: best use is for when physical intervention is required
- Zone 1: level humidity stabilisation automation
- Zone 2: lower priority humidity level stabilisation automation
- Air Quality: background automation with VOC PM25 & IAQ threshold triggers.
- Normal
Humidifier lanes operate independently where safe.
Each evaluation cycle:
- global gates evaluated
- lanes resolved top-down
- first valid lane wins
- lower lanes remain blocked
Only one comfort/control lane drives outputs at a time.
This eliminates automation conflict entirely.
The UI reflects runtime truth:
- active lane
- gate blocks
- override state
- reason text
- output stage transparency
The UI does not compute logic. The engine decides. The UI renders.
- Add custom repository:
https://github.com/senyo888/Humidity-IntelligenceCategory: Integration - Install Humidity Intelligence
- Restart Home Assistant
- Go to Settings -> Devices & Services -> Add Integration
- Search for Humidity Intelligence
- Begin configuration
V1 was template-based. V2 is a structured integration with configuration flow and runtime validation.
Migration is required.
Delete:
/config/custom_templates/humidity_intelligence.jinja
/config/packages/humidity_intelligence.yaml
Remove any related includes from configuration.yaml.
Restart Home Assistant.
Delete:
/config/www/.../v1_mobile.yaml
/config/lovelace/v1_mobile.yaml
Restart if using YAML dashboards.
The classic four-badge + Comfort Band layout remains compatible on the V2 engine.
- V1 UI = presentation skin
- V2 = runtime engine
No forced visual migration.
Follow this sequence on first install.
What to do:
- review optional frontend dependencies
- continue even if some are not installed
Suggested baseline:
- install HACS first
- install card helpers used by your chosen dashboard style
- if unsure, continue with skip and complete backend setup first
What to do:
- set time gate window (optional)
- select presence/alarm entities (optional)
- define explicit present and away state values
Example baseline:
- time gate enabled:
06:00to23:30 - outside action:
safe_state - presence entities:
person.adam,person.eve, or alarm panel - present states:
home,on,disarmed - away states:
not_home,off,armed_away,away
Example:
- if everyone is away, HI enters gate hold
- Current Air Control shows gate-active mode/chips
- outputs are held or reset based on selected outside action
What to do:
- add source entities for humidity and temperature
- add optional AQ telemetry (
iaq,pm25,voc,co2,co) - added sensors will appear in the UI Chip
- assign EVERY sensor to level and room regardless of intended use
Rules:
- minimum one humidity + one temperature sensor per active level
- use
level1andlevel2consistently - keep room labels stable and human-readable
Example baseline:
- Level 1: kitchen humidity, hallway humidity, kitchen temperature
- Level 2: bedroom humidity, landing humidity, bedroom temperature
- AQ: one IAQ + one PM2.5 per level if available
Example row:
- entity:
sensor.kitchen_humidity - type:
humidity - level:
level1 - room:
Kitchen
What to do:
- choose external slope sensors or HI-generated slope
Suggested baseline:
- use HI-generated slope if you do not already publish stable slope entities
- use external slope entities only when they are already validated
Example (external):
sensor.kitchen_temp_slopesensor.bedroom_temp_slope
Example (HI-generated):
- source sensors selected:
sensor.kitchen_temp,sensor.bedroom_temp - slope calculated displayed and used
What to do:
- assign each zone to a level and room set
- configure output entities
- choose triggers and thresholds
- set output stage and UI label
Example baseline:
- Zone 1 label:
Cooking - Zone 1 level:
level1 - Zone 1 output level:
66 - Zone 1 trigger: humidity delta high
- Zone 2 label:
Bathroom - zone 2 trigger: humidity delta high, temp slope delta...
- Zone 2 level:
level2 - Zone 2 output level:
100
Example:
- Zone 1 outputs:
fan.kitchen_air,fan.living_room_air - Zone 2 outputs:
fan.upstairs_air - fan stages:
auto,33,66,100
What to do:
- configure per-level humidifier outputs
- confirm on/off behavior against target band
Suggested baseline:
- enable humidifier lanes only on levels with real humidifier hardware
- validate activation below target low
- validate recovery shutoff inside the normal band
Example:
- Level 1 output:
humidifier.downstairs_humidifier - turns on when below low target
- turns off when humidity recovers to low target + 3%
What to do:
- enable AQ per level if AQ telemetry is present
- assign outputs and run duration
- set safe AQ thresholds
Suggested baseline:
- AQ output level:
66 - run duration:
15to30minutes - IAQ threshold aligned to your sensor scale and household tolerance
Example:
- Level 1 AQ output:
fan.purifier_living - trigger: IAQ below threshold
- if Zone or Alert lane is active, AQ is deferred
- if two AQ levels share one output, last trigger update wins output setting
What to do:
- configure alert triggers, outputs, and flash behavior
- configure CO emergency thresholds and outputs
Suggested baseline:
- keep thresholds realistic and bounded
- use dedicated lights for alerts when possible
- use optional
power_entitywhen wiring requires separate power enable
Example alert:
- trigger type: custom binary sensor
- trigger entity:
binary_sensor.bathroom_moisture_alert - threshold:
80 - lights:
light.bathroom_alert - power entity:
switch.bathroom_light_power(optional)
Example CO:
- trigger type: CO emergency
- threshold:
15 - outputs: purifier/fan entities on both levels
What to do:
- click finish setup
- select card(s) you would like to generate
- card YAML dropped with notification of location
- if not generate mapped cards through services
Suggested baseline:
- start with one dashboard layout (
v2_mobileorv2_tablet) - verify Current Air Control, chips, and outputs
- then add second layout if needed
Service options:
humidity_intelligence.create_dashboardhumidity_intelligence.view_cardshumidity_intelligence.dump_cards
Example service usage:
- create dashboard with
layout: v2_mobile,title: Humidity Intelligence,url_path: humidity-intelligence
When modifying options:
- change one section at a time
- save
- run
humidity_intelligence.refresh_ui - verify:
- Current Air Control mode
- gate chips
- reason text
- output behavior
Use Home Assistant Developer Tools:
- Go to Developer Tools -> Actions.
- Select service domain:
humidity_intelligence. - Pick a service.
- Fill service data (YAML or UI fields).
- Run and verify result in UI/notifications/files.
Notes:
entry_idis optional for most services. If omitted, HI uses all entries or first valid entry based on service behavior.- File outputs are written into your HA config folder.
Purpose:
- create a Lovelace dashboard from a rendered HI layout.
Example:
service: humidity_intelligence.create_dashboard
data:
layout: v2_mobile
title: Humidity Intelligence
url_path: humidity-intelligencePurpose:
- render cards and write them to file, then push a notification with file path.
Example:
service: humidity_intelligence.view_cards
data:
filename: humidity_intelligence_cards
layout: v2_tabletPurpose:
- render and export card YAML to file without dashboard creation.
Example:
service: humidity_intelligence.dump_cards
data:
filename: humidity_intelligence_cards
layout: v2_mobilePurpose:
- rebuild placeholder mapping and refresh rendered UI output after config changes.
Example:
service: humidity_intelligence.refresh_ui
data: {}Purpose:
- run alert flash behavior manually for testing.
Example:
service: humidity_intelligence.flash_lights
data:
power_entity: switch.alert_power
lights:
- light.bathroom_alert
color: [255, 0, 0]
duration: 12
flash_count: 8Purpose:
- pause automation engine for a set duration.
Example:
service: humidity_intelligence.pause_control
data:
minutes: 60Purpose:
- clear pause state and resume runtime immediately.
Example:
service: humidity_intelligence.resume_control
data: {}Purpose:
- run mapping/dependency/telemetry health checks and write report JSON.
Example:
service: humidity_intelligence.self_check
data: {}Purpose:
- export runtime diagnostics, mapping, and card info to JSON.
Example:
service: humidity_intelligence.dump_diagnostics
data:
filename: humidity_intelligence_diagnostics.jsonPurpose:
- remove generated HI files and attempt dashboard cleanup.
Example:
service: humidity_intelligence.purge_files
data: {}Safety guidance:
- use
purge_filesonly when intentionally resetting generated artifacts - run
dump_diagnosticsbefore purge if you want a snapshot for troubleshooting
- determinism over cleverness
- transparency over magic
- one authoritative state
- explicit override hierarchy
- safe fallback over silent failure
Humidity Intelligence V2 your environmental runtime architecture.

















