10 KiB
10 KiB
Power & Energy Monitoring Properties
Properties for power consumption measurement, energy usage tracking, and reporting thresholds via Zigbee2MQTT.
Sensor Properties (Read-Only)
power
- Type: Sensor (read-only)
- Unit: Watts (W)
- Description: Instantaneous measured power consumption of the connected load.
- Home Assistant Entity:
sensor.[device_name]_power - Updates: Based on activePowerReports threshold or periodicPowerAndEnergyReports interval
- Use cases:
- Real-time power monitoring
- Detect when lights turn on/off
- Track power consumption changes
- Trigger automations based on power usage
energy
- Type: Sensor (read-only)
- Unit: Kilowatt-hours (kWh)
- Description: Cumulative energy consumption over time.
- Home Assistant Entity:
sensor.[device_name]_energy - Updates: Based on activeEnergyReports threshold or periodicPowerAndEnergyReports interval
- Use cases:
- Long-term energy tracking
- Billing/cost calculations
- Energy usage analytics
- Historical consumption trends
Reporting Configuration
activePowerReports
- Type: Number
- Range: 0-100
- Default: 10 (10% change)
- Description: Percent power level change that will result in a new power report being sent. 0 = Disabled.
- Home Assistant Entity:
number.[device_name]_active_power_reports - Special values:
0= Disabled (no automatic power reports based on change)1-100= Percentage change threshold
- Use cases:
- Real-time power monitoring
- Detect significant power changes
- Trigger automations based on power delta
- Common values:
- Sensitive monitoring:
5(5% change) - Default:
10(10% change) - Reduce network traffic:
20(20% change)
- Sensitive monitoring:
- Network impact: Lower values generate more Zigbee traffic
periodicPowerAndEnergyReports
- Type: Number
- Range: 0-32767
- Default: 3600 seconds (1 hour)
- Description: Time period between consecutive power & energy reports being sent (in seconds). The timer is reset after each report is sent.
- Home Assistant Entity:
number.[device_name]_periodic_power_and_energy_reports - Units: Seconds
- Special values:
0= Disabled (no periodic reports)1-32767= Report interval in seconds
- Use cases:
- Regular energy usage logging
- Dashboard updates
- Long-term consumption tracking
- Backup reporting if active reports miss changes
- Common values:
- Frequent updates:
300(5 minutes) - Default:
3600(1 hour) - Reduce traffic:
7200(2 hours) - Daily:
86400(24 hours)
- Frequent updates:
- Note: Works alongside activePowerReports and activeEnergyReports (not instead of)
activeEnergyReports
- Type: Number
- Range: 0-32767
- Default: 10 (0.10 kWh)
- Description: Energy level change which will result in sending a new energy report. 0 = disabled, 1-32767 = 0.01kWh-327.67kWh.
- Home Assistant Entity:
number.[device_name]_active_energy_reports - Units: 0.01 kWh (value of 10 = 0.10 kWh = 100 Wh)
- Special values:
0= Disabled (no automatic energy reports based on accumulation)1-32767= Threshold in 0.01 kWh increments
- Use cases:
- Track cumulative energy consumption
- Billing/cost calculations
- Energy usage analytics
- Trigger automations at energy milestones
- Common values:
- Sensitive:
1(0.01 kWh = 10 Wh) - Default:
10(0.10 kWh = 100 Wh) - Reduce traffic:
100(1.0 kWh)
- Sensitive:
- Example: Default of 10 means report every 100 Wh (0.1 kWh) consumed
Performance Tuning
quickStartTime
- Type: Number
- Range: 0-60
- Default: 0 (disabled)
- Description: Duration of full power output while lamp transitions from Off to On. In 60th of second. 0 = disable, 1 = 1/60s, 60 = 1s.
- Home Assistant Entity:
number.[device_name]_quick_start_time - Units: 1/60th of a second
- Use cases:
- Help LED bulbs start reliably
- Overcome LED driver inrush requirements
- Prevent flickering on startup
- Common values:
- Disabled:
0 - Short boost:
10(0.17 seconds) - Default boost:
20(0.33 seconds) - Long boost:
60(1 second)
- Disabled:
quickStartLevel
- Type: Number
- Range: 1-254
- Default: 254 (near full power)
- Description: Level of power output during Quick Start Light time (quickStartTime).
- Home Assistant Entity:
number.[device_name]_quick_start_level - Use cases:
- Ensure LED bulbs receive enough initial power to start
- Match bulb requirements for startup
- Requires: quickStartTime > 0
higherOutputInNonNeutral
- Type: Select
- Values: "Disabled (default)", "Enabled"
- Default: "Disabled (default)"
- Description: Increase output level in non-neutral mode to help bulbs start and operate properly.
- Home Assistant Entity:
select.[device_name]_higher_output_in_non_neutral - Use cases:
- Non-neutral installations with LED bulbs
- Improve dimming range in non-neutral mode
- Help bulbs work better without neutral wire
- Note: Only applies to non-neutral wiring configurations
Power Type Detection
powerType
- Type: Sensor (read-only)
- Values: "Non Neutral", "Neutral"
- Description: Detected power wiring type.
- Home Assistant Entity:
sensor.[device_name]_power_type - Read-only: Cannot be changed by user, automatically detected
- Use cases:
- Diagnostic information
- Verify wiring configuration
- Troubleshooting installation issues
- Note: Automatically detected by switch hardware
Configuration Patterns
Real-Time Power Monitoring
# Sensitive power change detection
service: number.set_value
target:
entity_id: number.bedroom_switch_active_power_reports
data:
value: 5 # Report on 5% power change
# Frequent periodic backup
service: number.set_value
target:
entity_id: number.bedroom_switch_periodic_power_and_energy_reports
data:
value: 300 # Every 5 minutes
# Disable energy threshold reports (focus on power)
service: number.set_value
target:
entity_id: number.bedroom_switch_active_energy_reports
data:
value: 0 # Disabled
Energy Usage Tracking
# Less sensitive power reports
service: number.set_value
target:
entity_id: number.bedroom_switch_active_power_reports
data:
value: 20 # Report on 20% change
# Hourly periodic reports
service: number.set_value
target:
entity_id: number.bedroom_switch_periodic_power_and_energy_reports
data:
value: 3600 # Every hour
# Energy threshold reporting
service: number.set_value
target:
entity_id: number.bedroom_switch_active_energy_reports
data:
value: 10 # Report every 0.1 kWh
Low Network Traffic
# High power change threshold
service: number.set_value
target:
entity_id: number.bedroom_switch_active_power_reports
data:
value: 25 # 25% change
# 2-hour periodic reports
service: number.set_value
target:
entity_id: number.bedroom_switch_periodic_power_and_energy_reports
data:
value: 7200
# High energy threshold
service: number.set_value
target:
entity_id: number.bedroom_switch_active_energy_reports
data:
value: 100 # Every 1 kWh
LED Bulb Quick Start
# Enable quick start with 1/3 second boost
service: number.set_value
target:
entity_id: number.bedroom_switch_quick_start_time
data:
value: 20 # 20/60 = 0.33 seconds
# Full power during quick start
service: number.set_value
target:
entity_id: number.bedroom_switch_quick_start_level
data:
value: 254 # Near maximum
Non-Neutral Optimization
# Enable higher output for non-neutral
service: select.select_option
target:
entity_id: select.bedroom_switch_higher_output_in_non_neutral
data:
option: "Enabled"
# May also need quick start
service: number.set_value
target:
entity_id: number.bedroom_switch_quick_start_time
data:
value: 30 # 0.5 seconds
Disable All Monitoring
# Turn off all automatic reporting
service: number.set_value
target:
entity_id:
- number.bedroom_switch_active_power_reports
- number.bedroom_switch_periodic_power_and_energy_reports
- number.bedroom_switch_active_energy_reports
data:
value: 0
Reporting Behavior
The switch can send reports via three independent mechanisms:
- Active Power Reports: Sent when power changes by threshold percentage
- Active Energy Reports: Sent when accumulated energy reaches threshold
- Periodic Reports: Sent at regular time intervals
All three work independently and can be used together for comprehensive monitoring.
Home Assistant Integration Example
Power-Based Automation
automation:
- alias: "Detect Light On"
trigger:
- platform: numeric_state
entity_id: sensor.bedroom_switch_power
above: 5 # 5W threshold
action:
- service: notify.mobile_app
data:
message: "Bedroom light turned on ({{ states('sensor.bedroom_switch_power') }}W)"
- alias: "Detect Light Off"
trigger:
- platform: numeric_state
entity_id: sensor.bedroom_switch_power
below: 1 # Less than 1W
for:
seconds: 5
action:
- service: notify.mobile_app
data:
message: "Bedroom light turned off"
Energy Cost Tracking
automation:
- alias: "Daily Energy Report"
trigger:
- platform: time
at: "23:59:00"
action:
- service: notify.mobile_app
data:
message: >
Bedroom light energy today: {{ states('sensor.bedroom_switch_energy') }} kWh
Estimated cost: ${{ (states('sensor.bedroom_switch_energy') | float * 0.12) | round(2) }}
Example Calculations
Power Threshold
activePowerReports = 20 → Report when power changes by 20%
- Load at 40W, dims to 35W: Change is 12.5%, no report
- Load at 40W, dims to 30W: Change is 25%, report sent
Energy Threshold
activeEnergyReports = 50 → Report every 0.5 kWh (500 Wh)
- 100W bulb for 5 hours: 500 Wh consumed → Report sent
Periodic Reporting
periodicPowerAndEnergyReports = 1800 → Report every 30 minutes
- Regardless of power/energy changes, status sent every 30min
Important Notes
- All reporting properties work independently
- Power and energy sensors update based on configured thresholds
- quickStartTime/Level only applies to the transition from off to on
- higherOutputInNonNeutral only helps in non-neutral wiring setups
- Sensors are read-only; only configuration properties can be set
- Lower reporting thresholds increase Zigbee network traffic
- Power readings may have ~1W accuracy tolerance