1 """Support for Mythic Beasts Dynamic DNS service."""
3 from datetime
import timedelta
6 import voluptuous
as vol
20 DOMAIN =
"mythicbeastsdns"
24 CONFIG_SCHEMA = vol.Schema(
28 vol.Required(CONF_DOMAIN): cv.string,
29 vol.Required(CONF_HOST): cv.string,
30 vol.Required(CONF_PASSWORD): cv.string,
31 vol.Optional(CONF_SCAN_INTERVAL, default=DEFAULT_INTERVAL): vol.All(
32 cv.time_period, cv.positive_timedelta
37 extra=vol.ALLOW_EXTRA,
41 async
def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
42 """Initialize the Mythic Beasts component."""
43 domain = config[DOMAIN][CONF_DOMAIN]
44 password = config[DOMAIN][CONF_PASSWORD]
45 host = config[DOMAIN][CONF_HOST]
46 update_interval = config[DOMAIN][CONF_SCAN_INTERVAL]
50 result = await mbddns.update(domain, password, host, session=session)
55 async
def update_domain_interval(now):
56 """Update the DNS entry."""
57 await mbddns.update(domain, password, host, session=session)
bool async_setup(HomeAssistant hass, ConfigType config)
aiohttp.ClientSession async_get_clientsession(HomeAssistant hass, bool verify_ssl=True, socket.AddressFamily family=socket.AF_UNSPEC, ssl_util.SSLCipherList ssl_cipher=ssl_util.SSLCipherList.PYTHON_DEFAULT)
CALLBACK_TYPE async_track_time_interval(HomeAssistant hass, Callable[[datetime], Coroutine[Any, Any, None]|None] action, timedelta interval, *str|None name=None, bool|None cancel_on_shutdown=None)