mirror of
https://github.com/home-assistant/developers.home-assistant.git
synced 2025-07-08 18:06:29 +00:00
Version bunmp to 0.92.1
This commit is contained in:
parent
00f767a5d3
commit
78b893e2e1
@ -1406,6 +1406,29 @@
|
||||
"version-0.92.0/version-0.92.0-hassio_hass": {
|
||||
"title": "Hass.io <> Home Assistant integration development",
|
||||
"sidebar_label": "HASS Integration development"
|
||||
},
|
||||
"version-0.92.1/version-0.92.1-creating_integration_manifest": {
|
||||
"title": "Integration Manifest",
|
||||
"sidebar_label": "Manifest"
|
||||
},
|
||||
"version-0.92.1/version-0.92.1-development_checklist": {
|
||||
"title": "Development Checklist",
|
||||
"sidebar_label": "Introduction"
|
||||
},
|
||||
"version-0.92.1/version-0.92.1-entity_fan": {
|
||||
"title": "Fan Entity",
|
||||
"sidebar_label": "Fan"
|
||||
},
|
||||
"version-0.92.1/version-0.92.1-entity_light": {
|
||||
"title": "Light Entity",
|
||||
"sidebar_label": "Light"
|
||||
},
|
||||
"version-0.92.1/version-0.92.1-entity_media_player": {
|
||||
"title": "Media Player Entity",
|
||||
"sidebar_label": "Media Player"
|
||||
},
|
||||
"version-0.92.1/version-0.92.1-internationalization_custom_component_localization": {
|
||||
"title": "Custom Component Localization"
|
||||
}
|
||||
},
|
||||
"links": {
|
||||
|
@ -0,0 +1,79 @@
|
||||
---
|
||||
title: Integration Manifest
|
||||
sidebar_label: Manifest
|
||||
id: version-0.92.1-creating_integration_manifest
|
||||
original_id: creating_integration_manifest
|
||||
---
|
||||
|
||||
Since 0.92.0, every integration has a manifest file to specify basic information about an integration. This file is stored as `manifest.json` in your integration directory. It is required to add such a file, except for custom components.
|
||||
|
||||
```json
|
||||
{
|
||||
"domain": "hue",
|
||||
"name": "Philips Hue",
|
||||
"documentation": "https://www.home-assistant.io/components/hue",
|
||||
"dependencies": ["mqtt"],
|
||||
"codeowners": ["@balloob"],
|
||||
"requirements": ["aiohue==1.9.1"]
|
||||
}
|
||||
```
|
||||
|
||||
Or a minimal example that you can copy into your project:
|
||||
|
||||
```json
|
||||
{
|
||||
"domain": "your_domain_name",
|
||||
"name": "Your Intgration",
|
||||
"documentation": "https://www.example.com",
|
||||
"dependencies": [],
|
||||
"codeowners": [],
|
||||
"requirements": []
|
||||
}
|
||||
```
|
||||
|
||||
## Domain
|
||||
|
||||
The domain is a short name consisting of characters and underscores. This domain has to be unique and cannot be changed. Example of the domain for the mobile app integration: `mobile_app`.
|
||||
|
||||
## Name
|
||||
|
||||
The name of the integration.
|
||||
|
||||
## Documentation
|
||||
|
||||
The website containing documentation on how to use your integration. If this integration is being submitted for inclusion in Home Assistant, it should be `https://www.home-assistant.io/components/<domain>`
|
||||
|
||||
## Dependencies
|
||||
|
||||
Dependencies are other Home Assistant integrations that you want Home Assistant to set up successfully prior to the integration being loaded. This can be necessary in case you want to offer functionality from that other integration, like using webhooks or an MQTT connection.
|
||||
|
||||
## Code Owners
|
||||
|
||||
GitHub usernames or team names of people that are responsible for this integration. You should add at least your GitHub username here, as well as anyone who helped you to write code that is being included.
|
||||
|
||||
## Requirements
|
||||
|
||||
Requirements are Python libraries or modules that you would normally install using `pip` for your component. Home Assistant will try to install the requirements into the `deps` subdirectory of the Home Assistant [configuration directory](https://www.home-assistant.io/docs/configuration/) if you are not using a `venv` or in something like `path/to/venv/lib/python3.6/site-packages` if you running in a virtual environment. This will make sure that all requirements are present at startup. If steps fail, like missing packages for the compilation of a module or other install errors, the component will fail to load.
|
||||
|
||||
Requirements is an array of strings. Each entry is a `pip` compatible string. For example, the media player Cast platform depends on the Python package PyChromecast v3.2.0: `["pychromecast==3.2.0"]`.
|
||||
|
||||
> Because of how Home Assistant installs requirements on demand, actual Python imports of your requirements should be done inside functions instead of at the root level of your Python files.
|
||||
|
||||
### Custom requirements during development & testing
|
||||
|
||||
During the development of a component, it can be useful to test against different versions of a requirement. This can be done in two steps, using `pychromecast` as an example:
|
||||
|
||||
```bash
|
||||
pip install pychromecast==3.2.0 --target ~/.homeassistant/deps
|
||||
hass --skip-pip
|
||||
```
|
||||
|
||||
This will use the specified version, and prevent Home Assistant from trying to override it with what is specified in `requirements`.
|
||||
|
||||
If you need to make changes to a requirement to support your component, it's also possible to install a development version of the requirement using `pip install -e`:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/balloob/pychromecast.git
|
||||
pip install -e ./pychromecast
|
||||
hass --skip-pip
|
||||
```
|
@ -0,0 +1,16 @@
|
||||
---
|
||||
title: Development Checklist
|
||||
sidebar_label: Introduction
|
||||
id: version-0.92.1-development_checklist
|
||||
original_id: development_checklist
|
||||
---
|
||||
|
||||
|
||||
Before you commit any changes, check your work against these requirements:
|
||||
|
||||
- All communication to external devices or services must be wrapped in an external Python library hosted on [pypi](https://pypi.python.org/pypi).
|
||||
- New dependencies are added to `requirements_all.txt` (if applicable), using `python3 -m script.gen_requirements_all`
|
||||
- New codeowners are added to `CODEOWNERS` (if applicable), using `python3 -m script.hassfest`
|
||||
- The `.coveragerc` file is updated to exclude your platform if there are no tests available or your new code uses a third-party library for communication with the device, service, or sensor
|
||||
- Documentation is developed for [home-assistant.io](https://home-assistant.io/)
|
||||
* Visit the [website documentation](https://www.home-assistant.io/developers/documentation/) for more information about contributing to [home-assistant.io](https://github.com/home-assistant/home-assistant.github.io).
|
98
website/versioned_docs/version-0.92.1/entity_fan.md
Normal file
98
website/versioned_docs/version-0.92.1/entity_fan.md
Normal file
@ -0,0 +1,98 @@
|
||||
---
|
||||
title: Fan Entity
|
||||
sidebar_label: Fan
|
||||
id: version-0.92.1-entity_fan
|
||||
original_id: entity_fan
|
||||
---
|
||||
|
||||
A fan entity is a device that controls the different vectors of your fan such as speed, direction and oscillation. Derive enitity platforms from ['homeassistant.components.fan.FanDevice'](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/fan/__init__.py).
|
||||
|
||||
## Properties
|
||||
|
||||
> Properties should always only return information from memory and not do I/O (like network requests). Implement `update()` or `async_update()` to fetch data.
|
||||
|
||||
| Name | Type | Default | Description
|
||||
| ---- | ---- | ------- | -----------
|
||||
| current_direction | str | None | Return the current direction of the fan |
|
||||
|is_on| boolean | None |Return true if the entity is on |
|
||||
| speed | str | None | Return the current speed |
|
||||
| speed_list | list | None| Get the list of available speeds |
|
||||
| state_attributes | dict | None | Return optional state attributes |
|
||||
| supported_features | int | None | Flag supported features |
|
||||
|
||||
|
||||
## Supported Features
|
||||
|
||||
| Constant | Description |
|
||||
|----------|--------------------------------------|
|
||||
| 'SUPPORT_DIRECTION' | The fan supports changing the direction of it.
|
||||
| 'SUPPORT_SET_SPEED' | The fan supports setting the speed.
|
||||
| 'SUPPORT_OSCILLATE' | The fan supports oscillation.
|
||||
|
||||
|
||||
|
||||
## Methods
|
||||
|
||||
### Set direction
|
||||
|
||||
Only implement this method if the flag `SUPPORT_DIRECTION` is set.
|
||||
|
||||
```python
|
||||
class FanEntity(ToggleEntity):
|
||||
# Implement one of these methods.
|
||||
|
||||
def set_direction(self, direction: str) -> None:
|
||||
"""Set the direction of the fan."""
|
||||
|
||||
async def async_set_direction(self, direction: str):
|
||||
"""Set the direction of the fan."""
|
||||
```
|
||||
|
||||
### Set speed
|
||||
|
||||
Only implement this method if the flag `SUPPORT_SET_SPEED` is set.
|
||||
|
||||
```python
|
||||
class FanEntity(ToggleEntity):
|
||||
# Implement one of these methods.
|
||||
|
||||
def set_speed(self, speed: str) -> None:
|
||||
"""Set the speed of the fan."""
|
||||
|
||||
async def async_set_speed(self, speed: str):
|
||||
"""Set the speed of the fan."""
|
||||
```
|
||||
|
||||
### Turn on
|
||||
|
||||
```python
|
||||
class FanEntity(ToggleEntity):
|
||||
# Implement one of these methods.
|
||||
|
||||
def turn_on(self, speed: str = None, **kwargs) -> None:
|
||||
"""Turn on the fan."""
|
||||
|
||||
async def async_turn_on(self, speed: str = None, **kwargs):
|
||||
"""Turn on the fan."""
|
||||
```
|
||||
|
||||
### Oscillate
|
||||
|
||||
Only implement this method if the flag `SUPPORT_OSCILLATE` is set.
|
||||
|
||||
```python
|
||||
class FanEntity(ToggleEntity):
|
||||
# Implement one of these methods.
|
||||
|
||||
def oscillate(self, oscillating: bool) -> None:
|
||||
"""Oscillate the fan."""
|
||||
|
||||
def async_oscillate(self, oscillating: bool):
|
||||
"""Oscillate the fan."""
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
63
website/versioned_docs/version-0.92.1/entity_light.md
Normal file
63
website/versioned_docs/version-0.92.1/entity_light.md
Normal file
@ -0,0 +1,63 @@
|
||||
---
|
||||
title: Light Entity
|
||||
sidebar_label: Light
|
||||
id: version-0.92.1-entity_light
|
||||
original_id: entity_light
|
||||
---
|
||||
|
||||
|
||||
A light entity is a device that controls the brightness, RGB value,color temperature and effects of a light source.
|
||||
|
||||
## Properties
|
||||
|
||||
| Name | Type | Default | Description
|
||||
| ---- | ---- | ---- | ----
|
||||
| brightness | int | None | Return the brightness of this light between 0..255
|
||||
| color_temp | int | None | Return the CT color value in mireds.
|
||||
| effect | String | None | Return the current effect.
|
||||
| effect_list | list | None | Return the list of supported effects.
|
||||
| hs_color | list | None | Return the hue and saturation color value [float, float].
|
||||
| is_on | bool | bool | Returns if the light entity is on or not.
|
||||
| max_minreds | int | int | Return the warmest color_temp that this light supports.
|
||||
| min_mireds | int | int | Return the coldest color_temp that this light supports.
|
||||
| supported_features | int | int | Flag supported features.
|
||||
| white_value | int | None | Return the white value of this light between 0..255.
|
||||
|
||||
|
||||
## Support Feature
|
||||
| Constant | Description
|
||||
|----------|-----------------------
|
||||
| `SUPPORT_BRIGHTNESS` | Controls the brightness of a light source
|
||||
| `SUPPORT_COLOR` | Controls the color a light source shows
|
||||
| `SUPPORT_COLOR_TEMP` | Controls the representation a light source shows based on temperature
|
||||
| `SUPPORT_EFFECT` | Controls the effect a light source shows
|
||||
| `SUPPORT_FLASH` | Controls the duration of a flash a light source shows
|
||||
| `SUPPORT_TRANSITION` | Controls the duration of transitions between color and effects
|
||||
| `SUPPORT_WHITE_VALUE` | Controls the white light a light source shows.
|
||||
|
||||
## Methods
|
||||
|
||||
# Turn on Light Device
|
||||
|
||||
```python
|
||||
class MyLightDevice(LightDevice):
|
||||
def turn_on(self, **kwargs):
|
||||
"""Turn the device on."""
|
||||
|
||||
async def async_turn_on(self, **kwargs):
|
||||
"""Turn device on."""
|
||||
|
||||
```
|
||||
|
||||
# Turn Off Light Device
|
||||
|
||||
```python
|
||||
class MyLightDevice(LightDevice):
|
||||
|
||||
def turn_off(self, **kwargs):
|
||||
"""Turn the device off."""
|
||||
|
||||
async def async_turn_off(self, **kwargs):
|
||||
"""Turn device off."""
|
||||
|
||||
```
|
76
website/versioned_docs/version-0.92.1/entity_media_player.md
Normal file
76
website/versioned_docs/version-0.92.1/entity_media_player.md
Normal file
@ -0,0 +1,76 @@
|
||||
---
|
||||
title: Media Player Entity
|
||||
sidebar_label: Media Player
|
||||
id: version-0.92.1-entity_media_player
|
||||
original_id: entity_media_player
|
||||
---
|
||||
|
||||
> This entry is incomplete. Contribution welcome.
|
||||
|
||||
## Properties
|
||||
|
||||
> Properties should always only return information from memory and not do I/O (like network requests). Implement `update()` or `async_update()` to fetch data.
|
||||
|
||||
| Name | Type | Default | Description
|
||||
| ---- | ---- | ------- | -----------
|
||||
| sound_mode | string | None | The current sound mode of the media player
|
||||
| sound_mode_list | list | None | Dynamic list of available sound modes (set by platform, empty means sound mode not supported)
|
||||
| source | string | None | The currently selected input source for the media player.
|
||||
| source_list | list | None | The list of possible input sources for the media player. (This list should contain human readable names, suitible for frontend display)
|
||||
| media_image_url | string | None | URL that represents the current image.
|
||||
| media_image_remotely_accessible | boolean | False | Return `True` if property `media_image_url` is accessible outside of the home network.
|
||||
| device_class | string | `None` | Type of binary sensor.
|
||||
|
||||
## Methods
|
||||
### Select sound mode
|
||||
Optional. Switch the sound mode of the media player.
|
||||
|
||||
class MyMediaPlayer(MediaPlayerDevice):
|
||||
# Implement one of these methods.
|
||||
|
||||
def select_sound_mode(self, sound_mode):
|
||||
"""Switch the sound mode of the entity."""
|
||||
|
||||
def async_select_sound_mode(self, sound_mode):
|
||||
"""Switch the sound mode of the entity."""
|
||||
|
||||
### Select source
|
||||
Optional. Switch the selected input source for the media player.
|
||||
|
||||
class MyMediaPlayer(MediaPlayerDevice):
|
||||
# Implement one of these methods.
|
||||
|
||||
def select_source(self, source):
|
||||
"""Select input source."""
|
||||
|
||||
def async_select_source(self, source):
|
||||
"""Select input source."""
|
||||
|
||||
### Mediatype
|
||||
Required. Returns one of the defined constants from the below list that matches the mediatype
|
||||
|
||||
| CONST |
|
||||
|-------|
|
||||
|MEDIA_TYPE_MUSIC|
|
||||
|MEDIA_TYPE_TVSHOW|
|
||||
|MEDIA_TYPE_MOVIE|
|
||||
|MEDIA_TYPE_VIDEO|
|
||||
|MEDIA_TYPE_EPISODE|
|
||||
|MEDIA_TYPE_CHANNEL|
|
||||
|MEDIA_TYPE_PLAYLIST|
|
||||
|MEDIA_TYPE_IMAGE|
|
||||
|MEDIA_TYPE_URL|
|
||||
|MEDIA_TYPE_GAME|
|
||||
|
||||
class MyMediaPlayer(MediaPlayerDevice):
|
||||
# Implement the following method.
|
||||
|
||||
def media_content_type(self):
|
||||
"""Content type of current playing media."""
|
||||
|
||||
### Available device classes
|
||||
Optional. What type of media device is this. It will possibly map to google device types.
|
||||
| Value | Description
|
||||
| ----- | -----------
|
||||
| tv | Device is a television type device.
|
||||
| speaker | Device is speakers or stereo type device.
|
@ -0,0 +1,14 @@
|
||||
---
|
||||
title: Custom Component Localization
|
||||
id: version-0.92.1-internationalization_custom_component_localization
|
||||
original_id: internationalization_custom_component_localization
|
||||
---
|
||||
|
||||
## Translation Strings
|
||||
Unlike localized strings merged in the `home-assistant` repository, custom components cannot take advantage of Lokalise for user submitted translations. However, custom component authors can still include translations with their components. These will be read from the `.translations` directory, adjacent to the component source. They are named `<platform name>.<language_code>.json`, e.g., for the German translation of a sensor `sensor.de.json`, unless the translation is for the custom component only, in which case the file is simply named `<language_code>.json` in the `.translations` directory.
|
||||
|
||||
These files follow the same formatting as [backend translation string files](internationalization_backend_localization.md), but a copy will exist for each translated language.
|
||||
|
||||
The language codes follow the [BCP47](https://tools.ietf.org/html/bcp47) format. The [frontend translation files](https://github.com/home-assistant/home-assistant-polymer/tree/master/translations) can also be referred to if you are unsure of the correct language code to use.
|
||||
|
||||
The frontend will serve these files after Home Assistant is restarted.
|
@ -1,4 +1,5 @@
|
||||
[
|
||||
"0.92.1",
|
||||
"0.92.0",
|
||||
"0.91.2",
|
||||
"0.91.0",
|
||||
|
Loading…
x
Reference in New Issue
Block a user