Compare commits
	
		
			6 Commits
		
	
	
		
			v0.5.0-bet
			...
			test
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 593842144a | |||
| 9a6e1155f9 | |||
| 365a3af171 | |||
| 6de6ff375c | |||
| 89d2fd4af1 | |||
| 92add01a59 | 
							
								
								
									
										25
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,25 @@ | |||||||
|  | name: Release | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   release: | ||||||
|  |     types: [published] | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   release-zip: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - uses: actions/checkout@v2 | ||||||
|  |  | ||||||
|  |       - name: ZIP Component Dir | ||||||
|  |         run: | | ||||||
|  |           cd ${{ github.workspace }}/custom_components/hon | ||||||
|  |           zip -r haier_hon.zip ./ | ||||||
|  |  | ||||||
|  |       - name: Upload zip to release | ||||||
|  |         uses: svenstaro/upload-release-action@v2 | ||||||
|  |         with: | ||||||
|  |           repo_token: ${{ secrets.GITHUB_TOKEN }} | ||||||
|  |           file: ${{ github.workspace }}/custom_components/hon/haier_hon.zip | ||||||
|  |           asset_name: haier_hon.zip | ||||||
|  |           tag: ${{ github.ref }} | ||||||
|  |           overwrite: true | ||||||
							
								
								
									
										27
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								README.md
									
									
									
									
									
								
							| @ -10,6 +10,7 @@ Home Assistant integration for Haier hOn: support for Haier/Candy/Hoover home ap | |||||||
| - Washing Machine | - Washing Machine | ||||||
| - Oven | - Oven | ||||||
|  |  | ||||||
|  |  | ||||||
| ## Installation | ## Installation | ||||||
| **Method 1:** [](https://my.home-assistant.io/redirect/hacs_repository/?owner=Andre0512&repository=hon&category=integration) | **Method 1:** [](https://my.home-assistant.io/redirect/hacs_repository/?owner=Andre0512&repository=hon&category=integration) | ||||||
|  |  | ||||||
| @ -26,14 +27,34 @@ _Restart Home Assistant_ | |||||||
| **Method 2**: Settings > Devices & Services > Add Integration > **Haier hOn**   | **Method 2**: Settings > Devices & Services > Add Integration > **Haier hOn**   | ||||||
| _If the integration is not in the list, you need to clear the browser cache._ | _If the integration is not in the list, you need to clear the browser cache._ | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ## Contribute | ## Contribute | ||||||
| Any kind of contribution is welcome! | Any kind of contribution is welcome! | ||||||
| #### Add appliances or additional attributes | ### Read out device data | ||||||
|  | If you want to make a request for adding new appliances or additional attributes and don't want to use the command line, here is how you can read out your device data. | ||||||
|  | For every device exists a hidden button which can be used to log all info of your appliance. | ||||||
|  | 1. Enable the "Log Device Info" button   | ||||||
|  |    _This button can be found in the diagnostic section of your device or in the entity overview if "show disabled entities" is enabled._ | ||||||
|  | 2. Press the button | ||||||
|  | 3. Go to Settings > System > Logs, click _load full logs_ and scroll down   | ||||||
|  |    _The formatting is messy if you not load full logs_ | ||||||
|  | 4. Here you can find all data which can be read out via the api | ||||||
|  |    ```yaml | ||||||
|  |    data: | ||||||
|  |      appliance: | ||||||
|  |        applianceId: 12-34-56-78-90-ab#2022-10-25T19:47:11Z | ||||||
|  |        applianceModelId: 1569  | ||||||
|  |        ... | ||||||
|  |    ``` | ||||||
|  | 5. Copy this data and create a [new issue](https://github.com/Andre0512/hon/issues/new) with your request | ||||||
|  |  | ||||||
|  | ### Add appliances or additional attributes | ||||||
| 1. Install [pyhOn](https://github.com/Andre0512/pyhOn) | 1. Install [pyhOn](https://github.com/Andre0512/pyhOn) | ||||||
|    ```commandline |    ```commandline | ||||||
|     $ pip install pyhOn |     $ pip install pyhOn | ||||||
|     ``` |     ``` | ||||||
| 2. Use the commandline tool to read out all appliance data from your account | 2. Use the command line tool to read out all appliance data from your account | ||||||
|     ```commandline |     ```commandline | ||||||
|     $ pyhOn |     $ pyhOn | ||||||
|     User for hOn account: user.name@example.com |     User for hOn account: user.name@example.com | ||||||
| @ -70,7 +91,7 @@ Any kind of contribution is welcome! | |||||||
| #### Tips and Tricks | #### Tips and Tricks | ||||||
| - If you want to have some states humanreadable, have a look at the `translation_key` parameter of the `EntityDescription`. | - If you want to have some states humanreadable, have a look at the `translation_key` parameter of the `EntityDescription`. | ||||||
| - If you need to implement some more logic, create a pull request to the underlying library. There we collect special requirements in the `appliances` directory. | - If you need to implement some more logic, create a pull request to the underlying library. There we collect special requirements in the `appliances` directory. | ||||||
| - Use [pyhOn](https://github.com/Andre0512/pyhOn)s translate command to read out the official translations  | - Use [pyhOn's translate command](https://github.com/Andre0512/pyhOn#translation) to read out the official translations  | ||||||
|  |  | ||||||
| ## Tested Devices | ## Tested Devices | ||||||
| - Haier WD90-B14TEAM5 | - Haier WD90-B14TEAM5 | ||||||
|  | |||||||
| @ -1,11 +1,18 @@ | |||||||
|  | import logging | ||||||
|  | import urllib | ||||||
|  | from urllib.parse import quote | ||||||
|  |  | ||||||
| from homeassistant.components.button import ButtonEntityDescription, ButtonEntity | from homeassistant.components.button import ButtonEntityDescription, ButtonEntity | ||||||
| from homeassistant.config_entries import ConfigEntry | from homeassistant.config_entries import ConfigEntry | ||||||
| from pyhon import Hon | from pyhon import Hon | ||||||
| from pyhon.appliance import HonAppliance | from pyhon.appliance import HonAppliance | ||||||
|  |  | ||||||
|  | from homeassistant.const import EntityCategory | ||||||
| from .const import DOMAIN | from .const import DOMAIN | ||||||
| from .hon import HonCoordinator, HonEntity | from .hon import HonCoordinator, HonEntity | ||||||
|  |  | ||||||
|  | _LOGGER = logging.getLogger(__name__) | ||||||
|  |  | ||||||
| BUTTONS: dict[str, tuple[ButtonEntityDescription, ...]] = { | BUTTONS: dict[str, tuple[ButtonEntityDescription, ...]] = { | ||||||
|     "OV": ( |     "OV": ( | ||||||
|         ButtonEntityDescription( |         ButtonEntityDescription( | ||||||
| @ -41,6 +48,7 @@ async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> Non | |||||||
|                 appliances.extend( |                 appliances.extend( | ||||||
|                     [HonButtonEntity(hass, coordinator, entry, device, description)] |                     [HonButtonEntity(hass, coordinator, entry, device, description)] | ||||||
|                 ) |                 ) | ||||||
|  |         appliances.extend([HonFeatureRequestButton(hass, coordinator, entry, device)]) | ||||||
|  |  | ||||||
|     async_add_entities(appliances) |     async_add_entities(appliances) | ||||||
|  |  | ||||||
| @ -58,3 +66,18 @@ class HonButtonEntity(HonEntity, ButtonEntity): | |||||||
|  |  | ||||||
|     async def async_press(self) -> None: |     async def async_press(self) -> None: | ||||||
|         await self._device.commands[self.entity_description.key].send() |         await self._device.commands[self.entity_description.key].send() | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class HonFeatureRequestButton(HonEntity, ButtonEntity): | ||||||
|  |     def __init__(self, hass, coordinator, entry, device: HonAppliance) -> None: | ||||||
|  |         super().__init__(hass, entry, coordinator, device) | ||||||
|  |  | ||||||
|  |         self._device = device | ||||||
|  |         self._attr_unique_id = f"{super().unique_id}_log_device_info" | ||||||
|  |         self._attr_icon = "mdi:information" | ||||||
|  |         self._attr_name = "Log Device Info" | ||||||
|  |         self._attr_entity_category = EntityCategory.DIAGNOSTIC | ||||||
|  |         self._attr_entity_registry_enabled_default = False | ||||||
|  |  | ||||||
|  |     async def async_press(self) -> None: | ||||||
|  |         _LOGGER.error("Device Info:\n" + self._device.diagnose) | ||||||
|  | |||||||
| @ -6,6 +6,6 @@ | |||||||
|   "documentation": "https://github.com/Andre0512/hon/", |   "documentation": "https://github.com/Andre0512/hon/", | ||||||
|   "iot_class": "cloud_polling", |   "iot_class": "cloud_polling", | ||||||
|   "issue_tracker": "https://github.com/Andre0512/hon/issues", |   "issue_tracker": "https://github.com/Andre0512/hon/issues", | ||||||
|   "requirements": ["pyhOn==0.6.3"], |   "requirements": ["pyhOn==0.7.3"], | ||||||
|   "version": "0.5.0-beta.4" |   "version": "0.5.1-beta.1" | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,4 +1,6 @@ | |||||||
| { | { | ||||||
|     "name": "Haier hOn", |     "name": "Haier hOn", | ||||||
|     "homeassistant": "2023.2.0" |     "homeassistant": "2023.2.0", | ||||||
|  |     "zip_release": true, | ||||||
|  |     "filename": "haier_hon.zip" | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										11
									
								
								info.md
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								info.md
									
									
									
									
									
								
							| @ -26,11 +26,14 @@ _If the integration is not in the list, you need to clear the browser cache._ | |||||||
|  |  | ||||||
|  |  | ||||||
| ## Contribute | ## Contribute | ||||||
| Want to help us to support more appliances?  | Want to help us to support more appliances? Or add more sensors? Or help with translating? Or beautify some icons or captions?  | ||||||
| Or add more sensors? |  | ||||||
| Or help with translating?  |  | ||||||
| Or beautify some icons or captions?  |  | ||||||
| Check out the [project on GitHub](https://github.com/Andre0512/hon), every contribution is welcome! | Check out the [project on GitHub](https://github.com/Andre0512/hon), every contribution is welcome! | ||||||
|  |  | ||||||
|  | ## Useful Links | ||||||
|  |  | ||||||
|  | * [GitHub repository](https://github.com/Andre0512/hon) (please add a star if you like this integration!) | ||||||
|  | * [pyhOn library](https://github.com/Andre0512/pyhOn) | ||||||
|  | * [Release notes](https://github.com/Andre0512/hon/releases) | ||||||
|  | * [Discussion and help](https://github.com/Andre0512/hon/discussions) | ||||||
|  | * [Issues](https://github.com/Andre0512/hon/issues) | ||||||
|  |  | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	