diff --git a/Gemfile b/Gemfile index 0a47dbe1fbd..829cdbdb704 100644 --- a/Gemfile +++ b/Gemfile @@ -11,7 +11,7 @@ group :development do # > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189 gem 'sassc', '2.1.0' gem 'sass-embedded', '1.85.1' - gem 'rubocop', '1.72.2' + gem 'rubocop', '1.73.2' gem 'ruby-lsp', '0.23.11' gem 'rackup', '2.2.1' end diff --git a/Gemfile.lock b/Gemfile.lock index fa575c0acdf..e19b175e918 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -30,10 +30,10 @@ GEM ffi (1.17.1-arm64-darwin) ffi (1.17.1-x86_64-linux-gnu) forwardable-extended (2.6.0) - google-protobuf (4.29.3-arm64-darwin) + google-protobuf (4.30.0-arm64-darwin) bigdecimal rake (>= 13) - google-protobuf (4.29.3-x86_64-linux) + google-protobuf (4.30.0-x86_64-linux) bigdecimal rake (>= 13) http_parser.rb (0.8.0) @@ -99,7 +99,7 @@ GEM prism (1.3.0) public_suffix (6.0.1) racc (1.8.1) - rack (3.1.10) + rack (3.1.11) rack-protection (4.1.1) base64 (>= 0.1.0) logger (>= 1.6.0) @@ -119,7 +119,7 @@ GEM regexp_parser (2.10.0) rexml (3.4.1) rouge (4.5.1) - rubocop (1.72.2) + rubocop (1.73.2) json (~> 2.3) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.1.0) @@ -157,7 +157,7 @@ GEM rack-protection (= 4.1.1) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) - sorbet-runtime (0.5.11862) + sorbet-runtime (0.5.11888) stringex (2.8.6) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) @@ -183,7 +183,7 @@ DEPENDENCIES nokogiri (= 1.18.3) rackup (= 2.2.1) rake (= 13.2.1) - rubocop (= 1.72.2) + rubocop (= 1.73.2) ruby-lsp (= 0.23.11) sass-embedded (= 1.85.1) sass-globbing (= 1.1.5) diff --git a/source/_dashboards/energy.markdown b/source/_dashboards/energy.markdown index d0ce5b5fc86..411d6611fc2 100644 --- a/source/_dashboards/energy.markdown +++ b/source/_dashboards/energy.markdown @@ -235,6 +235,28 @@ type: energy-devices-detail-graph max_devices: 5 ``` +## Sankey energy graph + +

+ Screenshot of the sankey energy graph card + Screenshot of the sankey energy graph card. +

+ +The sankey energy graph shows the flow of energy in your home. It starts with sources and flows into the various consumers. Devices are grouped into floors and areas if these are configured. + +### Examples + +```yaml +type: energy-sankey +``` + +The following example orients the flow from top to bottom: + +```yaml +type: energy-sankey +layout: vertical +``` + ## Using Multiple Collections By default, all energy cards are linked to any `energy-date-selection` card on the view, and all `energy-date-selection` cards are linked to the same period. To enable multiple different date selections on the same view, it is necessary to link them to different collections. This is done by adding the variable `collection_key` to the card YAML, and giving this a value of any custom string that begins with `energy_`. (strings that do not start with `energy_` will generate an error). diff --git a/source/_data/people.yml b/source/_data/people.yml index 120f86f5ecb..16043925a3d 100644 --- a/source/_data/people.yml +++ b/source/_data/people.yml @@ -92,4 +92,8 @@ Missy Quarry: Annika Schulz: name: Annika Schulz - github: anakinsbrna \ No newline at end of file + github: anakinsbrna + +Miranda Bishop: + name: Miranda Bishop + github: miranda-gb \ No newline at end of file diff --git a/source/_data/products.yml b/source/_data/products.yml index 4eafcce2285..b7f99fa9aaf 100644 --- a/source/_data/products.yml +++ b/source/_data/products.yml @@ -17,6 +17,11 @@ green: ship_to: America url: https://cloudfree.shop/product/home-assistant-green/ logo: /images/distributors/cloudfree.webp + - name: Seeed Studio + ship_from: US + ship_to: America + url: https://www.seeedstudio.com/Home-Assistant-Green-p-5792.html + logo: /images/distributors/seeed-studio.webp # Asia - name: Seeed Studio ship_from: China diff --git a/source/_docs/blueprint.markdown b/source/_docs/blueprint.markdown index 177da2b68f2..436b4eae550 100644 --- a/source/_docs/blueprint.markdown +++ b/source/_docs/blueprint.markdown @@ -18,7 +18,7 @@ This section gives a high-level introduction to blueprints. To view a descriptio ## What is a blueprint? -A blueprint is a {% term script %}, {% term automation %} or [template entity](/docs/integrations/template/) configuration with certain parts marked as configurable. This allows you to create different scripts, automations or template entities based on the same blueprint. +A blueprint is a {% term script %}, {% term automation %} or [template entity](/integrations/template/) configuration with certain parts marked as configurable. This allows you to create different scripts, automations or template entities based on the same blueprint. Imagine you want to control lights based on motion. A blueprint provides the generic {% term automation %} framework, while letting you select one specific motion sensor as a {% term trigger %}, and the exact light to control. This blueprint makes it possible to create two automations. Each automation has their own configuration and act completely independently. Yet, they share some basic automation configuration so that you do not have to set this up every time. diff --git a/source/_docs/glossary.html b/source/_docs/glossary.html deleted file mode 100644 index 112024e72b0..00000000000 --- a/source/_docs/glossary.html +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Glossary" -description: "Home Assistant's Glossary." ---- - -{% assign entries = site.data.glossary | sort: 'term' %} - -The glossary covers terms which are used around Home Assistant. - -
- -{% for entry in entries %} - -
-
- - {{ entry.term }} -
-
- - {{ entry.definition | markdownify | newline_to_br }} - {%- if entry.link -%} - Read more about: {{ entry.term }} - {%- endif -%} - -
-
- -{% endfor %} - -
diff --git a/source/_docs/glossary.markdown b/source/_docs/glossary.markdown new file mode 100644 index 00000000000..cdd270c7081 --- /dev/null +++ b/source/_docs/glossary.markdown @@ -0,0 +1,33 @@ +--- +title: "Glossary" +description: "Home Assistant's Glossary." +--- + +The glossary covers terms which are used around Home Assistant. + +{% assign entries = site.data.glossary | sort: 'term' %} +{% assign current_letter = '' %} + +{% for entry in entries %} + +{% assign first_letter = entry.term | slice: 0 %} +{% if first_letter != current_letter %} +{% assign current_letter = first_letter | upcase %} + +## {{ current_letter }} + +--- + +{% endif %} + +### {{ entry.term }} + +{{ entry.definition | markdownify }} + +{%- if entry.link -%} + +{{ "[Read more about " | append: "_" | append: entry.term | append: "_](" | append: entry.link | append: ")" | markdownify }} + +{%- endif -%} + +{% endfor %} diff --git a/source/_docs/tools/dev-tools.markdown b/source/_docs/tools/dev-tools.markdown index c83eb0534ab..bc2000d9149 100644 --- a/source/_docs/tools/dev-tools.markdown +++ b/source/_docs/tools/dev-tools.markdown @@ -149,7 +149,7 @@ Another use of the {% my developer_statistics title="statistics developer tool" icon. Use date & time to search for the incorrect data point and adjust the value. -![Screenshot showing adjusting the long-term statistic history value](/images/blog/2022-04/adjust-statistics.png) +![Screenshot showing adjusting the long-term statistic history value](/images/docs/developer-tools/adjust-statistics.png) ## Assist tab diff --git a/source/_includes/asides/component_navigation.html b/source/_includes/asides/component_navigation.html index 316971e2dc9..b9af18dbe20 100644 --- a/source/_includes/asides/component_navigation.html +++ b/source/_includes/asides/component_navigation.html @@ -3,7 +3,7 @@ {% assign percentage = 100.0 | times: active_installations | divided_by: site.data.analytics_data.reports_integrations | round: 1 %}
- + {%- if page.ha_config_flow and domain -%} {% my config_flow_start badge domain=domain %} diff --git a/source/_integrations/_integration_docs_template.markdown b/source/_integrations/_integration_docs_template.markdown new file mode 100644 index 00000000000..f8b33a17150 --- /dev/null +++ b/source/_integrations/_integration_docs_template.markdown @@ -0,0 +1,208 @@ +--- +title: My integration +description: Example document structure and text blocks for integration documentation. +ha_release: 2025.3 +ha_iot_class: Local Push +ha_codeowners: + - '@home-assistant/core' +ha_domain: my_integration +ha_integration_type: integration +related: + - url: https://developers.home-assistant.io/docs/documenting/standards + title: Documentation standard + - url: https://developers.home-assistant.io/docs/core/integration-quality-scale/rules/ + title: Integration Quality Scale - Rules + - docs: /docs/glossary/ + title: Glossary + - docs: /docs/tools/quick-bar/#my-links + title: My link +--- + + + + + +The **My integration** {% term integration %} is used to integrate with the devices of [MyCompany](https://www.mycompany.com). MyCompany creates various smart home appliances and devices and are known for their MyProduct. +Use case: When you combine it with their other device you can do x. + +## Supported devices + +The following devices are known to be supported by the integration: + +- Device 1 +- Device 2 +- Every appliance that runs MyOS + +## Unsupported devices + +The following devices are not supported by the integration: + +- Device 3 +- Appliances built before 2010 + +## Prerequisites + +1. Open the app store and install the **MyProduct** app. +2. Create an account. +3. Add a device to the app. +4. Open the app and go to the **Settings** page. +5. Select **Expose API**. + +{% include integrations/config_flow.md %} + + + + + +{% configuration_basic %} +Host: + description: "The IP address of your bridge. You can find it in your router or in the Integration app under **Bridge Settings** > **Local API**." +Local access token: + description: "The local access token for your bridge. You can find it in the Integration app under **Bridge Settings** > **Local API**." +{% endconfiguration_basic %} + + + +{% configuration %} +Host: + description: "The IP address of your bridge. You can find it in your router or in the Integration app under **Bridge Settings** > **Local API**." + required: false + type: string +Local access token: + description: "The local access token for your bridge. You can find it in the Integration app under **Bridge Settings** > **Local API**." + required: false + type: string +{% endconfiguration %} + +## Configuration options + +The integration provides the following configuration options: + +{% configuration_basic %} +Country code: + description: You can specify the country code (NL or BE) of the country to display on the camera. +Timeframe: + description: Minutes to look ahead for precipitation forecast sensors (minimum 5, maximum 120). +{% endconfiguration_basic %} + +## Supported functionality + +### Entities + +The **My integration** integration provides the following entities. + +#### Buttons + +- **Start backflush** + - **Description**: Starts the backflush process on your machine. You got 15 seconds to turn the paddle after activation. + - **Available for machines**: all + +#### Numbers + +- **Dose** + - **Description**: Dosage (in ticks) for each key + - **Available for machines**: GS3 AV, Linea Mini. + - **Remarks**: GS3 has this multiple times, one for each physical key (1-4), and the entities are disabled by default. + +#### Sensors + +- **Current coffee temperature** + - **Description**: Current temperature of the coffee boiler. + - **Available for machines**: all + - **Remarks**: When the machine reaches temperature, this will be approximately 3 degrees higher than the `Coffee target temperature`, due to different measurement points. + +- **Current steam temperature** + - **Description**: Current temperature of the steam boiler. + - **Available for machines**: Linea Micra, GS3 AV, GS3 MP. + - **Remarks**: - + +#### Selects + +- **Prebrew/-infusion mode** + - **Description**: Whether to use prebrew, preinfusion, or neither. + - **Options**: Disabled, Prebrew, Preinfusion + - **Available for machines**: Linea Micra, Linea Mini, GS3 AV + +- **Steam level** + - **Description**: The level your steam boiler should run at. + - **Options**: 1, 2, 3 + - **Available for machines**: Linea Micra + +#### Updates + +- **Gateway firmware** + - **Description**: Firmware status of the gateway. + - **Available for machines**: all + +## Actions + +The integration provides the following actions. + +### Action: Get schedule + +The `my_integration.get_schedule` action is used to fetch a schedule from the integration. + +- **Data attribute**: `config_entry_id` + - **Description**: The ID of the config entry to get the schedule from. + - **Optional**: No + +## Examples + +### Turning off the LEDs during the night + +The status LEDs on the device can be quite bright. +To tackle this, you can use this blueprint to easily automate the LEDs turning off when the sun goes down. + +link to the blueprint on the [blueprints + exchange](https://community.home-assistant.io/c/blueprints-exchange/53) + +## Data updates + +The **My integration** integration fetches data from the device every 5 minutes by default. +Newer devices (the ones running MyOS) have the possibility to push data. +In this case, pushing data is enabled when the integration is started. If enabling data push fails, the integration uses data {% term polling %}. + +## Known limitations + +The integration does not provide the ability to reboot, which can instead be done via the manufacturer's app. + +## Troubleshooting + +### Can’t set up the device + +#### Symptom: “This device can’t be reached” + +When trying to set up the integration, the form shows the message “This device can’t be reached”. + +##### Description + +This means the settings on the device are incorrect, since the device needs to be enabled for local communication. + +##### Resolution + +To resolve this issue, try the following steps: + +1. Make sure your device is powered up (LEDs are on). +2. Make sure your device is connected to the internet: + - Make sure the app of the manufacturer can see the device. +3. Make sure the device has the local communication enabled: + - Check the device’s settings. + - Check the device’s manual. +... + +### I can't see my devices + +Make sure the devices are visible and controllable via the manufacturer's app. +If they are not, check the device's power and network connection. + +### The device goes unavailable after a day + +Make sure you turned off the device's power-saving mode. + +## Removing the integration + +This integration follows standard integration removal. + +{% include integrations/remove_device_service.md %} + +After deleting the integration, go to the app of the manufacturer and remove the Home Assistant integration from there as well. diff --git a/source/_integrations/device_tracker.markdown b/source/_integrations/device_tracker.markdown index 4695ebd93c4..0d8a4841115 100644 --- a/source/_integrations/device_tracker.markdown +++ b/source/_integrations/device_tracker.markdown @@ -55,6 +55,7 @@ device_tracker: - platform: netgear host: IP_ADDRESS username: YOUR_USERNAME + password: YOUR_PASSWORD interval_seconds: 10 consider_home: 180 new_device_defaults: diff --git a/source/_integrations/enphase_envoy.markdown b/source/_integrations/enphase_envoy.markdown index 098b90bba20..a49140c17ba 100644 --- a/source/_integrations/enphase_envoy.markdown +++ b/source/_integrations/enphase_envoy.markdown @@ -142,8 +142,8 @@ House consumption data requires an Envoy Metered equipped and configured with at - **Envoy SN Current power consumption**: Current power consumption in W. - **Envoy SN Lifetime energy consumption**: Lifetime energy consumption in Wh, default display scaled to MWh. -- **Envoy SN Energy production last seven days**: Energy consumption in previous 7 days, not including today's, in Wh, display scaled to kWh. This entity is not logged in statistics. -- **Envoy SN Energy consumption today**: Energy consumption since midnight in Wh, default display scaled to kWh. +- **Envoy SN Energy consumption last seven days**: Energy consumption in previous 7 days, not including today's, in Wh, display scaled to kWh. (See known limitations [Energy Incorrect](#energy-incorrect)) This entity is not logged in statistics. +- **Envoy SN Energy consumption today**: Energy consumption since midnight in Wh, default display scaled to kWh. (See known limitations [Energy Incorrect](#energy-incorrect))
consumption entities @@ -683,8 +683,8 @@ When using Envoy Metered with CT, not When using Envoy Metered with CT -- not all firmware versions report `Energy production today` correctly. Zero data and unexpected spikes have been reported. In this case, best use a utility meter with the `Lifetime energy production` entity for daily reporting. -- not all firmware versions report `Energy production last seven days` correctly. Zero and unexpected values have been reported. +- not all firmware versions report `Energy production today` and/or `Energy consumption today` correctly. Zero data and unexpected spikes have been reported. In this case, best use a utility meter with the `Lifetime energy production` or `Lifetime energy consumption` entity for daily reporting. +- not all firmware versions report `Energy production last seven days` and/or `Energy consumption last seven days` correctly. Zero and unexpected values have been reported. ### Lifetime reset diff --git a/source/_integrations/group.markdown b/source/_integrations/group.markdown index 3930bb47ed8..0e73ffb8cf4 100644 --- a/source/_integrations/group.markdown +++ b/source/_integrations/group.markdown @@ -118,10 +118,12 @@ In short, when any group member entity is `unlocked`, the group will also be `un - The group state is `unavailable` if all group members are `unavailable`. - Otherwise, the group state is `unknown` if all group members are `unknown` or `unavailable`. - Otherwise, the group state is `jammed` if at least one group member is `jammed`. +- Otherwise, the group state is `opening` if at least one group member is `opening`. - Otherwise, the group state is `locking` if at least one group member is `locking`. +- Otherwise, the group state is `open` if at least one group member is `open`. - Otherwise, the group state is `unlocking` if at least one group member is `unlocking`. -- Otherwise, the group state is `unlocked` if at least one group member is `unlocked`. -- Otherwise, the group state is `locked`. +- Otherwise, the group state is `locked` if all group members are `locked`. +- Otherwise, the group state is `unlocked`. ### Notify entity groups diff --git a/source/_integrations/heos.markdown b/source/_integrations/heos.markdown index 609fb8325a6..956cb00c9fd 100644 --- a/source/_integrations/heos.markdown +++ b/source/_integrations/heos.markdown @@ -218,6 +218,11 @@ data: | `entity_id` | yes | Remove this media player from any player groups. | +{% note %} + +Actions may fail if they cannot be processed by the HEOS device. For example, attempting to call `media_player.clear_playlist` when the queue is empty will result in an error. To prevent this from halting a script or automation, set [`continue_on_error: true`](/docs/scripts/#continuing-on-error) in the action call. +{% endnote %} + ## Supported devices Denon and Marantz do not currently publish an inventory of HEOS-enabled devices, however, many receiver and hi-fi products began including HEOS since 2013. Consult your product model to confirm support: diff --git a/source/_integrations/here_travel_time.markdown b/source/_integrations/here_travel_time.markdown index 22f420aaa82..145df81eef8 100644 --- a/source/_integrations/here_travel_time.markdown +++ b/source/_integrations/here_travel_time.markdown @@ -20,7 +20,9 @@ The `here_travel_time` sensor provides travel time from the [HERE Routing API](h You need to register for an API key by following the instructions in the [API Developer Guide](https://www.here.com/docs/bundle/routing-api-developer-guide-v8/page/topics/send-request.html). -HERE offers a Limited Plan which includes 1000 free transactions per day. If you are not [updating sensors on demand](#updating-sensors-on-demand-using-automation), you can track 3 routes without exceeding the limit. You can provide payment details to increase this to 5000 free transactions per day. More information can be found [on the pricing page](https://www.here.com/get-started/pricing) +HERE offers a Limited Plan which includes 1000 free transactions per day. If you are not [updating sensors on demand](#updating-sensors-on-demand-using-automation), you can track 3 routes without exceeding the limit. + +You can provide payment details if you want to pay for unlimited transactions. Be aware that the amount of transactions included for free in the paid plan might be _less_ than the 1000 transactions per day in the free plan. More information can be found [on the pricing page](https://www.here.com/get-started/pricing) {% include integrations/config_flow.md %} diff --git a/source/_integrations/lg_thinq.markdown b/source/_integrations/lg_thinq.markdown index ca0b16d2e00..e85966c9f89 100644 --- a/source/_integrations/lg_thinq.markdown +++ b/source/_integrations/lg_thinq.markdown @@ -127,29 +127,30 @@ The properties for controlling both the temperature and wind strength of the app | Device | Property | | ------ | -------- | -| Air Conditioner | Current temperature
Fan mode
HVAC mode
Preset mode
Temperature
Temperature cool
Temperature heat
Unit | +| Air Conditioner | Current temperature
Fan mode
Swing mode
Swing horizontal mode
HVAC mode
Preset mode
Temperature
Temperature cool
Temperature heat
Unit | | System Boiler | Current temperature
HVAC mode
Temperature
Temperature cool
Temperature heat
Unit | ### Event -A notification message pushed from the server is represented as an event platform. +A notification message pushed from the server is represented as an event platform. The **Notification codes** shows the full support range, and you can check the range of your device through the developer tools. -| Device | Property | -| ------ | -------- | -| Air Conditioner | Notification | -| Air Purifier| Notification | -| Air Purifier Fan | Notification | -| Dehumidifier | Notification | -| Dish Washer | Error
Notification | -| Humidifier | Notification | -| Kimchi Refrigerator | Notification | -| Microwave Oven | Notification | -| Oven | Notification | -| Refrigerator | Notification | -| Robot Cleaner | Error
Notification | -| Stick Cleaner | Notification | -| Dryer
Styler
Washer
Washcombo Main
Washcombo Mini
Washtower
Washtower Dryer
Washtower Washer | Error
Notification | -| Wine Cellar | Notification | +| Device | Property | Notification codes | +| ------ | -------- | ---------- | +| Air Conditioner | Notification | water_is_full | +| Air Purifier| Notification | lack_of_water, time_to_clean_filter, pollution_is_high, time_to_change_filter | +| Air Purifier Fan | Notification | time_to_change_filter | +| Dehumidifier | Notification | water_is_full | +| Dish Washer | Error
Notification | cleaning_is_complete, error_during_cleaning, water_leak_has_occurred, rinse_is_not_enough, salt_refill_is_needed | +| Humidifier | Notification | time_to_change_filter, lack_of_water | +| Kimchi Refrigerator | Notification | door_is_open | +| Microwave Oven | Notification | none | +| Oven | Notification | preheating_is_complete, cooking_is_complete, time_to_clean, error_has_occurred | +| Refrigerator | Notification | time_to_change_filter, time_to_change_water_filter, frozen_is_complete, door_is_open | +| Robot Cleaner | Error
Notification | - | +| Stick Cleaner | Notification | charging_is_complete, time_to_clean_filter | +| Washer
Dryer
Washcombo Main
Washcombo Mini
Washtower
Washtower Dryer
Washtower Washer | Error
Notification | washing_is_complete, error_during_washing, drying_is_complete, drying_failed | +| Styler | Error
Notification | styling_is_complete, error_has_occurred | +| Wine Cellar | Notification | door_is_open | ### Fan @@ -172,7 +173,7 @@ A read-write property which has a numeric value is represented as a number platf | Microwave Oven | Fan
Light | | Oven | Temperature | | Refrigerator | Temperature | -| Dryer
Styler
Washer
Washcombo Main
Washcombo Mini
Washtower
Washtower Dryer
Washtower Washer | Delay ends in | +| Dryer
Styler
Washer
Washcombo Main
Washcombo Mini
Washtower
Washtower Dryer
Washtower Washer | Delayed start/end | | Water Heater | Temperature | | Wine Cellar | Light
Temperature | @@ -200,13 +201,13 @@ A read-write property which has only two states that can be toggled is represent | Device | Property | | ------ | -------- | -| Air Conditioner | Energy saving | +| Air Conditioner | Power
Lighting
Energy saving | | Air Purifier | Power | | Air Purifier Fan | Heating
Power
UVnano | | Dehumidifier | Power | | Humidifier | Auto mode
Heating
Mood light
Power
Sleep mode | -| Refrigerator | Ice plus
Quick freeze | -| System Boiler | Hot water | +| Refrigerator | Express mode
Express cool
Quick freeze | +| System Boiler | Power
Hot water | | Wine Cellar | Ventilation | ### Vacuum @@ -217,6 +218,14 @@ The properties for controlling the clean operations of the appliance are represe | ------ | -------- | | Robot Cleaner | Battery
Current status
Operation | +### Water heater + +The properties for controlling the operating mode and temperature are represented as a water_heater platform. + +| Device | Property | +| ------ | -------- | +| Water heater | Mode
Current temperature
Temperature | + ### Sensor A read-only property which has states is represented as a sensor platform. @@ -228,8 +237,8 @@ A read-only property which has states is represented as a sensor platform. | Air Purifier Fan | Air quality sensor
Humidity
Odor
Overall air quality
PM1
PM10
PM2.5
Sleep timer
Temperature
Schedule turn-off
Schedule turn-on | | Cooktop | Current status
Power level | | Dehumidifier | Humidity
Operating mode | -| Dish Washer | Current cycle
Current status
Rinse aid dispenser level
Softening level
Delay in
Remaining time
Total time | -| Home Brew| Brewing duration
Brewing period
Current status
Flavor
Homebrew recipe
Hops
Recipe progress
Wort
Yeast | +| Dish Washer | Current cycle
Current status
Rinse aid dispenser level
Softening level
Delayed start
Remaining time
Total time | +| Home Brew| Brewing duration
Brewing period
Current status
First flavor
Second flavor
Homebrew recipe
First hop
Second hop
Recipe progress
Wort
Yeast | | Humidifier | Air quality sensor
Humidity
Overall air quality
PM1
PM10
PM2.5
Schedule turn-off
Schedule turn-on
Sleep timer
Temperature | | Kimchi Refrigerator | Fresh air filter
Temperature | | Microwave Oven | Current status | @@ -238,16 +247,16 @@ A read-only property which has states is represented as a sensor platform. | Refrigerator | Fresh air filter
Water filter used | | Robot Cleaner | Current status
Operating mode
Running time | | Stick Cleaner | Battery
Current status
Operating mode | -| Water Heater | Temperature | +| System Boiler | Indoor temperature
Inlet temperature
Outlet temperature | | Water Purifier | High-temp sterilization
Type
UVnano| -| Dryer
Styler
Washer
Washcombo Main
Washcombo Mini
Washtower
Washtower Dryer
Washtower Washer | Current status
Delay in
Remaining time
Total time | +| Dryer
Styler
Washer
Washcombo Main
Washcombo Mini
Washtower
Washtower Dryer
Washtower Washer | Current status
Delayed start/end
Remaining time
Total time
Cycles | -### Custom card configuration +## User guide +### 1. Custom card configuration (HACS) -#### Timer Bar Card - -- Supported devices: Washer, Dryer, Styler, Dish washer -- Entities: sensor.washer_current_status, sensor.washer_remaining_time, sensor.washer_total_time +**- Timer Bar Card** +> - Supported devices: Washer, Dryer, Styler, Dish washer +> - Used entities: sensor.washer_**current_status**, sensor.washer_**remaining_time**, sensor.washer_**total_time** ```yaml type: custom:timer-bar-card @@ -274,6 +283,29 @@ entities: invert: true ``` +### 2. Automation +**- Notification, Error event** +> - Guide: [Automating on event](https://www.home-assistant.io/integrations/event/#automating-on-a-button-press) +> - Important: guide's step 3, 4 +> - You can select the state change you want to act as trigger in step 4 +```yaml +alias: lack of water example +description: Toggle switch when air purifier's lack_of_water +triggers: + - trigger: state + entity_id: + - event.purifier_notification +actions: + - condition: state + entity_id: event.purifier_notification + attribute: event_type + state: lack_of_water + - type: toggle + device_id: xxxxxxxx + entity_id: xxxxxxxx + domain: switch +``` + ## Troubleshooting ### Setup @@ -293,5 +325,9 @@ The LG ThinQ integration will work properly after some time. ## Debugging / Issue report The LG ThinQ integration will show additional information by enabling log configuration. -1. Enable debug logging in /config/integrations/integration/lg_thinq, -2. Please report your device info (screenshot including name, device type, entities) and logs. +1. [Enable debug logging](/docs/configuration/troubleshooting/#enabling-debug-logging). + - If you change **Enable** to **Disable**, the log will be saved to the download folder. +2. When reporting an issue: + - Provide screenshots of your device configuration (including device name, type, and entities). + - Include the debug logs. + - Describe the expected behavior and what's not working. diff --git a/source/_integrations/lock.markdown b/source/_integrations/lock.markdown index 7116ff7c587..bbe95579d75 100644 --- a/source/_integrations/lock.markdown +++ b/source/_integrations/lock.markdown @@ -27,6 +27,7 @@ A lock entity can have the following states: - **Opening**: Indication of whether the lock is currently opening. - **Locked**: The lock is currently locked. - **Locking**: The lock is in the process of being locked. +- **Unlocked**: The lock is currently unlocked. - **Unlocking**: The lock is in the process of being unlocked. - **Unavailable**: The entity is currently unavailable. - **Unknown**: The state is not yet known. diff --git a/source/_integrations/opower.markdown b/source/_integrations/opower.markdown index 95f234fd8f4..55aee7a54c9 100644 --- a/source/_integrations/opower.markdown +++ b/source/_integrations/opower.markdown @@ -142,3 +142,16 @@ Your **Configure gas consumption** should now look like this: With the above changes your (**{% my config_energy title="Settings > Dashboards > Energy" %}**) page should now look like this: ![Screenshot Energy Configuration](/images/integrations/opower/energy_config.png) + +## Known limitations + +- There is a delay, often for up to a few days, for sensors and statistics to have up-to-date data. +- For some utilities, there are no sensors added by this integration. +- For some utilities, the sensors might disappear or become unavailable at the beginning of your bill period. +- Sensors for typical monthly usage and cost are not populated for accounts younger than a year. +- Many utilities provide granular usage (for example, daily or hourly) but not cost. They only provide cost for billing periods (for example, month). This results in showing 0 for cost. + +## Troubleshooting + +- Before opening an issue, ensure you can access the energy usage section/dashboard on your utility website and verify that the data is up-to-date there. +- In your energy dashboard in Home Assistant, make sure you use the statistics and not the sensors. diff --git a/source/_integrations/tplink.markdown b/source/_integrations/tplink.markdown index b5d988401fb..bddd5efe8f8 100644 --- a/source/_integrations/tplink.markdown +++ b/source/_integrations/tplink.markdown @@ -204,6 +204,7 @@ If required, you can manually trigger an update via **Developer tools** > **Acti - Ensure you have enabled **Tapo Lab** > **Third-Party Compatibility** in the Tapo app. You may need to factory reset and re-add to the Tapo app after this step. - Disable or remove any custom integrations that interact with TPLink devices supported by this integration. - Ensure stable network connectivity between Home Assistant and the device. +- Unplug existing TP-Link/Tapo devices on your network before onboarding a new device. The TP-Link Simple Setup (TSS) protocol, which shares credentials from existing devices, can break authentication. If issues persist, factory reset the new device and re-add it without other TP-Link devices active. - Check the [reported connection solutions](#reported-connection-solutions) section below. - Check the [supported device list](#supported-devices) to see if the device is tested to work with the integration. - Try running the [kasa tool](https://github.com/python-kasa/python-kasa) to connect to the device. An easy way to do this is to [install uv](https://docs.astral.sh/uv/getting-started/installation/) and run `uvx --from python-kasa kasa --username --password ` diff --git a/source/_posts/2025-02-27-apollo-joins-wwha.markdown b/source/_posts/2025-02-27-apollo-joins-wwha.markdown new file mode 100644 index 00000000000..17e9c60d45d --- /dev/null +++ b/source/_posts/2025-02-27-apollo-joins-wwha.markdown @@ -0,0 +1,50 @@ +--- +layout: post +title: "Apollo joins the Works With Home Assistant Program" +description: "Adding three devices, including their community favorite presence and air quality multisensors." +date: 2025-02-27 00:00:01 +date_formatted: "February 27, 2025" +author: Miranda Bishop +comments: true +categories: Announcements +og_image: /images/blog/2025-02-apollo/art.jpg +--- + +Apollo wwha logo + +[Apollo Automation](https://apolloautomation.com/) has joined the [Works with Home Assistant](https://partner.home-assistant.io/) program. Certifying three of their newest devices, including their community favorite presence and air quality multisensors, giving users the best possible experience when using these devices with Home Assistant. + +Notably, these are the first [ESPHome](https://esphome.io/index.html)-based devices to receive Works with Home Assistant certification. Apollo is one of the first movers in an important trend that we're very excited about: Home Assistant community members turning their open projects into viable businesses that support a thriving Open Home ecosystem. + + + +## Background + +Apollo Automation is a growing family-run business rooted in the Home Assistant and ESPHome communities. And yes, they're named after their German Shepherd, Apollo 🐕. + +
+

Apollo Automation is built by and for the Home Assistant community. We believe in open smart home technology that gives users control, privacy, and flexibility. Joining the Works With Home Assistant program is a natural step for us, ensuring our devices integrate seamlessly while supporting the ecosystem we love. Home Assistant allows users to create powerful smart homes, and we are excited to contribute by making high-quality, reliable hardware that enhances the experience for everyone.

+ - Justin Bunton, Co-Founder, Apollo Automation +
+ +Two years ago, they started sharing their designs for a new impressively small ESPHome-powered multisensor with the community. Getting feedback, sharing iterations, and working collaboratively, they turned that sensor into a full-fledged product, which was built to work with Home Assistant. They have continued this open, community-first approach and have now built several even more refined multisensors. + +

Apollo MSR-2 multisensor +A multisensor for ants? 🐜

+ +Home Assistant is the [only true smart home platform](https://newsletter.openhomefoundation.org/true-platforms-let-you-create/) because it gives everyone full control to build and create. [ESPHome](/integrations/esphome/) is the ultimate smart device platform, and it is fostering an entirely new ecosystem of Open Home projects. ESPHome works fully locally, and it's a modder's paradise, allowing users to build DIY smart home devices (check out the [getting started with ESPHome guide](https://esphome.io/guides/getting_started_hassio.html)). + +Creators can also use it to build pre-built, plug-and-play products that give users a really seamless experience. With devices being discovered and easily added to your Wi-Fi network and Home Assistant, along with a one-click update within Home Assistant. + +ESPHome and Home Assistant allows anyone to turn their passion for building cool things into a career, and the things they build help support a more vibrant Open Home. Apollo is an exciting new partner for the Works with Home Assistant program and should serve as an inspiration to all aspiring makers in our community. + +## Devices +Works with Home Assistant differs from other certification programs as products are rigorously tested in-house to ensure they work seamlessly out of the box. Any company joining also commits to providing long-term support and firmware updates, while being a positive force in the Home Assistant community. Works with Home Assistant is operated by the [Open Home Foundation](https://www.openhomefoundation.org/), and it is the support of [Home Assistant Cloud](/cloud/) subscribers that funds this work. + +Apollo has chosen first to certify three products, which include: + +- [MTR-1 Multi-Target Radar Multisensor For Home Assistant (LD2450)](https://apolloautomation.com/products/mtr-1) - A tiny, but powerful radar-based (mmWave) presence sensor that can pack in many other sensors. +- [MSR-2 mmWave Multisensor For Home Assistant (LD2410B)](https://apolloautomation.com/products/msr-2) - An even smaller multisensor that is the successor of the initial community feedback-driven design. +- [AIR-1 Air Quality Sensor For Home Assistant](https://apolloautomation.com/products/air-1) - A small air quality multisensor that can be extended to incorporate a huge variety of sensors. + +We anticipate that Apollo will bring more of their lineup into the program, and we are excited to see their new innovations going forward! This is just the start of a year of many new Works with Home Assistant announcements, so please stay tuned! diff --git a/source/getting-started/onboarding.markdown b/source/getting-started/onboarding.markdown index ea89826e8b2..15fba1c3dad 100644 --- a/source/getting-started/onboarding.markdown +++ b/source/getting-started/onboarding.markdown @@ -21,7 +21,7 @@ After Home Assistant has been [installed](/installation/) on your device, there ![Home Assistant preparation](/images/getting-started/onboarding_preparing_02.png) - Enter a name, username, and password. - Make sure the username is lowercase and contains no whitespace. - - {% icon "mdi:info" %} **Info**: The **Name** is the name of the person the is shown in the UI. The username is used for login. + - {% icon "mdi:info" %} **Info**: The **Name** is the name of the person that is shown in the UI. The username is used for login. ![Set your username and password.](/images/getting-started/onboarding_username.png) - Store the name, username, and password somewhere safe. There is no way to recover the owner credentials. diff --git a/source/images/blog/2025-02-apollo/art.jpg b/source/images/blog/2025-02-apollo/art.jpg new file mode 100644 index 00000000000..fcfd0408d8b Binary files /dev/null and b/source/images/blog/2025-02-apollo/art.jpg differ diff --git a/source/images/blog/2025-02-apollo/multisensor.jpg b/source/images/blog/2025-02-apollo/multisensor.jpg new file mode 100644 index 00000000000..aa2fe0d6249 Binary files /dev/null and b/source/images/blog/2025-02-apollo/multisensor.jpg differ diff --git a/source/images/dashboards/energy/sankey.png b/source/images/dashboards/energy/sankey.png new file mode 100644 index 00000000000..d6d43f81bae Binary files /dev/null and b/source/images/dashboards/energy/sankey.png differ diff --git a/source/images/docs/developer-tools/Assist.png b/source/images/docs/developer-tools/Assist.png index 61bd212c468..8533ae3ad71 100644 Binary files a/source/images/docs/developer-tools/Assist.png and b/source/images/docs/developer-tools/Assist.png differ diff --git a/source/images/docs/developer-tools/adjust-statistics.png b/source/images/docs/developer-tools/adjust-statistics.png new file mode 100644 index 00000000000..8473ab053e5 Binary files /dev/null and b/source/images/docs/developer-tools/adjust-statistics.png differ diff --git a/source/images/docs/developer-tools/statistics_issue.png b/source/images/docs/developer-tools/statistics_issue.png index 653c14a7a6d..34f46d85266 100644 Binary files a/source/images/docs/developer-tools/statistics_issue.png and b/source/images/docs/developer-tools/statistics_issue.png differ