1 """Support for Blockchain.com sensors."""
3 from __future__
import annotations
5 from datetime
import timedelta
8 from pyblockchain
import get_balance, validate_address
9 import voluptuous
as vol
12 PLATFORM_SCHEMA
as SENSOR_PLATFORM_SCHEMA,
21 _LOGGER = logging.getLogger(__name__)
23 CONF_ADDRESSES =
"addresses"
25 DEFAULT_NAME =
"Bitcoin Balance"
29 PLATFORM_SCHEMA = SENSOR_PLATFORM_SCHEMA.extend(
31 vol.Required(CONF_ADDRESSES): [cv.string],
32 vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
40 add_entities: AddEntitiesCallback,
41 discovery_info: DiscoveryInfoType |
None =
None,
43 """Set up the Blockchain.com sensors."""
45 addresses: list[str] = config[CONF_ADDRESSES]
46 name: str = config[CONF_NAME]
48 for address
in addresses:
49 if not validate_address(address):
50 _LOGGER.error(
"Bitcoin address is not valid: %s", address)
57 """Representation of a Blockchain.com sensor."""
59 _attr_attribution =
"Data provided by blockchain.com"
60 _attr_icon =
"mdi:currency-btc"
61 _attr_native_unit_of_measurement =
"BTC"
63 def __init__(self, name: str, addresses: list[str]) ->
None:
64 """Initialize the sensor."""
69 """Get the latest state of the sensor."""
None __init__(self, str name, list[str] addresses)
None setup_platform(HomeAssistant hass, ConfigType config, AddEntitiesCallback add_entities, DiscoveryInfoType|None discovery_info=None)
def add_entities(account, async_add_entities, tracked)