add yaml deprecation

This commit is contained in:
Andrey
2021-01-04 09:59:44 +03:00
parent d56cffa68f
commit f19d3daeff
7 changed files with 12 additions and 77 deletions

View File

@@ -1,13 +1,10 @@
"""The mega integration.""" """The mega integration."""
import asyncio import asyncio
import logging import logging
import typing
from functools import partial
import voluptuous as vol import voluptuous as vol
from homeassistant.const import CONF_HOST, CONF_PASSWORD, CONF_PLATFORM, CONF_SCAN_INTERVAL, CONF_ID from homeassistant.const import CONF_HOST, CONF_PASSWORD, CONF_SCAN_INTERVAL, CONF_ID
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_component import EntityComponent
from homeassistant.helpers.service import bind_hass from homeassistant.helpers.service import bind_hass
from homeassistant.components import mqtt from homeassistant.components import mqtt
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
@@ -74,9 +71,10 @@ async def async_setup(hass: HomeAssistant, config: dict):
if CONF_HOST in conf: if CONF_HOST in conf:
conf = {DEF_ID: conf} conf = {DEF_ID: conf}
for id, data in conf.items(): for id, data in conf.items():
_LOGGER.warning('YAML configuration is deprecated, please use web-interface')
await _add_mega(hass, id, data) await _add_mega(hass, id, data)
for id, hub in hass.data[DOMAIN].__items__(): for id, hub in hass.data[DOMAIN].items():
_POLL_TASKS[id] = asyncio.create_task(hub.poll()) _POLL_TASKS[id] = asyncio.create_task(hub.poll())
return True return True

View File

@@ -1,6 +1,4 @@
"""Platform for light integration.""" """Platform for light integration."""
import asyncio
import json
import logging import logging
import voluptuous as vol import voluptuous as vol
@@ -18,7 +16,6 @@ from homeassistant.const import (
CONF_ID CONF_ID
) )
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.restore_state import RestoreEntity
from .entities import BaseMegaEntity from .entities import BaseMegaEntity
from .hub import MegaD from .hub import MegaD

View File

@@ -9,7 +9,7 @@ from homeassistant.components import mqtt
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_HOST, CONF_ID, CONF_PASSWORD, CONF_SCAN_INTERVAL from homeassistant.const import CONF_HOST, CONF_ID, CONF_PASSWORD, CONF_SCAN_INTERVAL
from homeassistant.core import callback from homeassistant.core import callback
from .const import DOMAIN, CONF_PORT_TO_SCAN, CONF_RELOAD, CONF_INVERT # pylint:disable=unused-import from .const import DOMAIN, CONF_PORT_TO_SCAN, CONF_RELOAD # pylint:disable=unused-import
from .hub import MegaD from .hub import MegaD
from . import exceptions from . import exceptions

View File

@@ -1,6 +1,4 @@
"""Platform for light integration.""" """Platform for light integration."""
import asyncio
import json
import logging import logging
import voluptuous as vol import voluptuous as vol
@@ -19,7 +17,6 @@ from homeassistant.const import (
CONF_ID CONF_ID
) )
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.restore_state import RestoreEntity
from .entities import BaseMegaEntity from .entities import BaseMegaEntity
from .hub import MegaD from .hub import MegaD

View File

@@ -1,7 +1,5 @@
"""Platform for light integration.""" """Platform for light integration."""
import logging import logging
import typing
import voluptuous as vol import voluptuous as vol
from homeassistant.components.sensor import ( from homeassistant.components.sensor import (

View File

@@ -1,5 +1,4 @@
"""Platform for light integration.""" """Platform for light integration."""
import json
import logging import logging
import voluptuous as vol import voluptuous as vol
@@ -13,11 +12,7 @@ from homeassistant.const import (
CONF_PLATFORM, CONF_PLATFORM,
CONF_PORT, CONF_PORT,
) )
from homeassistant.core import HomeAssistant
from homeassistant.helpers.restore_state import RestoreEntity
from .entities import BaseMegaEntity from .entities import BaseMegaEntity
from .hub import MegaD
from .const import CONF_DIMMER, CONF_SWITCH from .const import CONF_DIMMER, CONF_SWITCH
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)

View File

@@ -3,15 +3,17 @@
Интеграция с [MegaD-2561](https://www.ab-log.ru/smart-house/ethernet/megad-2561) Интеграция с [MegaD-2561](https://www.ab-log.ru/smart-house/ethernet/megad-2561)
## Основные особенности: ## Основные особенности:
- Настройка как из yaml так и из веб-интерфейса - Все порты автоматически добавляются как устройства (для обычных релейных выходов создается
- При настройки из веба все порты автоматически добавляются как устройства (для обычных релейных выходов создается
`light`, для шим - `light` с поддержкой яркости, для цифровых входов `binary_sensor`, для температурных датчиков `light`, для шим - `light` с поддержкой яркости, для цифровых входов `binary_sensor`, для температурных датчиков
`sensor`) `sensor`)
- Возможность работы с несколькими megad - Возможность работы с несколькими megad
- Обратная связь по mqtt - Обратная связь по mqtt
- Команды выполняются друг за другом без конкурентного доступа к ресурсам megad - Команды выполняются друг за другом без конкурентного доступа к ресурсам megad
- Поддержка температурных датчиков в режиме шины
## Устройства ## Устройства
Поддерживаются устройства: light, switch, binary_sensor, sensor. light может работать как диммер Поддерживаются устройства: light, switch, binary_sensor, sensor. light может работать как диммер
## Установка ## Установка
Рекомендованнй способ - через [HACS](https://hacs.xyz/docs/installation/installation). Рекомендованнй способ - через [HACS](https://hacs.xyz/docs/installation/installation).
После установки HACS, нужно перейти в меню hacs -> integrations, далее в верхнем правом углу После установки HACS, нужно перейти в меню hacs -> integrations, далее в верхнем правом углу
@@ -25,61 +27,13 @@ wget -q -O - https://raw.githubusercontent.com/andvikt/mega_hacs/master/install.
Перезагрузить HA Перезагрузить HA
Для обновления повторить Для обновления повторить
## Зависимости ## Зависимости
Перед использованием необходимо настроить интеграцию mqtt в HomeAssistant Перед использованием необходимо настроить интеграцию mqtt в HomeAssistant
## Настройка из веб-интерфейса ## Настройка из веб-интерфейса
`Настройки` -> `Интеграции` -> `Добавить интеграцию` в поиске ищем mega `Настройки` -> `Интеграции` -> `Добавить интеграцию` в поиске ищем mega
## Пример настройки с помощью yaml:
```yaml
mega:
mega1:
host: 192.168.0.14
name: hello
password: sec
mqtt_id: mega # это id в конфиге меги
light:
- platform: mega
mega1:
switch:
- 1 # можно просто перечислить порты
- 2
- 3
dimmer:
- port: 7
name: hello # можно использовать расширенный вариант с названиями
- 9
- 10
binary_sensor:
- platform: mega
mega1:
- port: 16
name: sensor1
- port: 18
name: sensor2
sensor:
- platform: mega
mega1:
- port: 10
name: some temp
type: w1
key: temp
- port: 10
name: some hum
type: w1
key: hum
switch:
- platform: mega
mega1:
- 11
```
## Сервисы ## Сервисы
```yaml ```yaml
save: save:
@@ -94,7 +48,7 @@ get_port:
description: Запросить текущий статус порта (или всех) description: Запросить текущий статус порта (или всех)
fields: fields:
mega_id: mega_id:
description: ID меги, можно оставить пустым, тогда будут сохранены все зарегистрированные меги description: ID меги, можно оставить пустым, тогда будут порты всех зарегистрированных мег
example: "mega" example: "mega"
port: port:
description: Номер порта (если не заполнять, будут запрошены все порты сразу) description: Номер порта (если не заполнять, будут запрошены все порты сразу)
@@ -105,7 +59,7 @@ run_cmd:
fields: fields:
mega_id: mega_id:
description: ID меги, можно оставить пустым, тогда будут сохранены все зарегистрированные меги description: ID меги
example: "mega" example: "mega"
port: port:
description: Номер порта (это не порт, которым мы управляем, а порт с которого шлем команду) description: Номер порта (это не порт, которым мы управляем, а порт с которого шлем команду)
@@ -116,10 +70,6 @@ run_cmd:
``` ```
## Состояния
Так же каждое устройство megad опрашивается на предмет работоспособности, текущий статус
хранится в mega.<id>
## Отладка ## Отладка
Если возникают проблемы, можно включить детальный лог, для этого в конфиг добавить: Если возникают проблемы, можно включить детальный лог, для этого в конфиг добавить:
```yaml ```yaml
@@ -127,4 +77,4 @@ logger:
default: info default: info
logs: logs:
custom_components.mega: debug custom_components.mega: debug
``` ```