- Add periodic checks for device firmware updates
- Refactor scheduler to use just one task
- Rename marker for extended system variables from hahm to HAHM to better align with other markers
- Rename create methods
- Revert mangled attribute name in json_rpc_client
- Extend element_matches_key search
- Log debug if variable is too long
- Remove default markers from description
- Start json_rpc client only for ccu
- Support markers for sysvar/program selection
- Remove danielperna84 from links after repository transfer to sukramj
- Limit number of concurrent mass operations to json api to 3 parallel executions
- Add missing encoding to unquote
- Ensure default encoding is ISO-8859-1 where needed
- Add method cleanup_text_from_html_tags
- Decode received sysvar/program descriptions
- Replace special character replacement by simple UriEncode() method use by @jens-maus
- Use kelvin instead of mireds for color temp
- Catch orjson.JSONDecodeError on faulthy json script response
- Add description to sysvar and program
- Add BidCos-Wired to list of primary interface candidates
- Remove obsolete try/except in homegear client
- Enable central link management for HmIP-wired
- Reset temporary values before write
- Add TIME_OF_OPERATION to smoke detector
- Switch multiplier from int to float
- Use more constants for cover and light
- Make sysvars eventable
- Add missing @service annotations
- Add performance measurement to @service
- Don't re-raise exception on internal services
- Move @service
- Remove @service from abstract methods
- Set state_uncertain on value write
- Cleanup data point
- Fix returned version of client
- Improve store tmp value
- Store temporary value for sysvar data points
- Add sysvar/program refresh to scheduler
- Run periodic tasks with an individual interval
- Store temporary value for polling client data points
- Add interface(id) to performance log message
- Add interfaces_requiring_periodic_refresh to config
- Add periodic data refresh to CentralUnitChecker for some interfaces
- Add root path for virtual devices
- Maintain data_cache by interface
- Reduce MAX_CACHE_AGE to 10s
- Add get_data_point_path to central
- Allow empty port for some interfaces
- Do reconnect/reload only for affected interfaces
- Ignore unknown interfaces
- Remove clients for not available interfaces
- Add basic support for json clients
- Add data_point_path event
- Add getDeviceDescription, getParamsetDescription, listDevices, getValue, setValue, getParamset, putParamset to json_rpc
- Add option to refresh data by interface
- Add xml_rpc support flag to client
- Extend DP_KEY with interface_id
- Rename event to data_point_event
- Improve on_time usage
- Use enum for json/event keys
- Fire interface event, if data could not be fetched with script from CCU
- Optimize MASTER data load
- Rename model to better distinguish from HA
- Use version from module hahomematic
- Disable climate temperature validation when turning off
- Small tweaks to improve central link management
- Align method parameters with CCU
- Use PRESS_SHORT for reportValueUsage
- Check if channel has programs before deleting links
- Add create_central_links and remove_central_links to device and central
- Add central link methods to click event
- Add reportValueUsage, addLink, removeLink and getLinks to client
- Add version to code
- Fix wrong channel assignment for HmIP-DRBLI4
- Add operation_mode to channel
- Add services to copy climate schedules
- Make validation for climate schedules optional
- Add MIN_MAX_VALUE_NOT_RELEVANT_FOR_MANU_MODE, OPTIMUM_START_STOP and TEMPERATURE_OFFSET to climate
- Improve profile validation
- Use regex to identify schedule profiles
- Export SIMPLE_PROFILE_DICT, SIMPLE_WEEKDAY_LIST
- Add simple climate schedule service to store profiles
- Reuse existing dict types
- Convert schedule time from minutes to hh:mm
- Add basic climate schedule services
- Refactor constants
- Rename climate enums and constants to better distinguish from HA
- Add missing import entries
- Simplify entity imports
- Fix rx_mode lazy_config
- Make DEFAULT optional due to homegear support
- Move context var to own module
- Add config option for max read workers
- Disable collector for stop events
- Improve logging when raising exception
- Log exception at the most outer service
- Make UPDATEABLE optional due to homegear support
- Raise exception on set_value, put_paramset
- Remove command queue
- Add config option for listen ip address and port
- Remove CED for ELV-SH-WUA / HmIP-WUA
- Add name to channel
- Catch bind address errors of xml rpc server
- Refactor get_events, get_new_entities
- Remove unnecessary checks
- Separate enable/disable sysvar and program scan
- Use paramset_description from channel
- Use channel instead of channel_addresses
- Refactor device/entity to extract channel
- Replace device_type by model
- Shorten names
- Add bind_collector to all relevant methods with option to disable it
- Identify bind_collector annotated methods
- Mark externally accessed services with service_call if bind_collector is not appropriate
- Add missing PayloadMixin
- Adjust payload and path
- Rename value_property to state_property
- Improve device_description usage
- Reduce number of required characters for an address identification
- Use validator for local schema
- Improve validation of channel address, device address, password and htmltag
- Allow str for get_paramset
- Improve paramset key check
- Add getLinkPeers XmlRPC method
- Do not create update entities that are not updatable (manually remove obsolete update entities)
- Only try device update refresh if device is updatable
- Refactor update entity
- Add check for link paramsets
- Avoid permanent cache save on remove device
- Check rx_mode
- Ensure only one load/save of cache file at time
- Load all paramsets
- Small definition fix for DALI
- Use TypedDict for device_description
- Use TypedDict for parameter_data
- Add paramset_key to entity_key
- Switch typing of paramset_key from str to ParamsetKey
- Mark only level as relevant entity for DALI
- Check/convert values of manual executed put_paramset/set_value
- Add additional validation on config parameters
- Make HEATING_COOLING visible for thermostats
- Use only relevant IP for XmlRPC Server listening on
- Cleanup ParamsetDescriptionCache
- Cleanup DeviceDescriptionCache
- Avoid excessive memory usage in cache
- Refactor folder handling
- Fix empty channel on get_parameters
- Fix get_parameters
- Add un_ignore_candidates to central
- Make load only relevant paramset descriptions configurable
- Add UN_IGNORE_WILDCARD to get_parameters
- Ignore parameters on un ignore parameter list
- Add CED for ELV-SH-WUA / HmIP-WUA
- Refactor get_parameters for unignore_candidates
- Refactor entity path
- Allow undefined generic entities besides CE
- Reduce data load, if only device description is updated
- Enable button lock for hm devices
- Rename last_updated -> modified_at
- Rename last_refreshed -> refreshed_at
- Add button lock CE
- Add time units to HmIP-RGBW calls
- Catch TypeError on SysVar import
- Fix address for bidcos wired virtual device
- Enable CE visible entities by default
- Fix value assignment to lock enums
- Set open tilt level back to 100%
- Use PEP 695 typing
- Move command_queue handling from device to channel
- Add level sensors to cover/blind
- Allow changing level or tilt while blind is moving by @sleiner
- Improve callback register/unregister
- Make some items from value_property to property
- Rename callbacks
- Fix Homegear reconnect
- Add COLOR_BEHAVIOUR to HmIP-BSL
- Fix missing param in unregister_entity_updated_callback
- Set open tilt level to 50%
- Add command queue
- Move open/close from IpBlind to Blind
- Use central_client_factory fixture
- Ensure central.stop() is called in tests
- Add wait_for_callback to collector
- Wait for target value in wait_for_state_change_or_timeout
- Decompose combined parameter
- Return affected entity keys for service calls
- Add callback to unregister on register return
- Add option to wait for set_value/put_paramset callback
- Make entity event async
- Extract looper from central and reuse for json/xml_rpc
- Move loop_check to async_support
- Record last value send
- Rename loop_safe to loop_check
- Reduce loop_check to minimum
- Update ruff rules / requirements
- Remove unused callback from tests
- Add loop_safe annotation
- Remove entity_data_event_callback
- Make backend_system_callback loop aware
- Align callback naming
- Unify entity update/refresh events
- Restructure check_connection
- Make xml_rpc event async
- Block central stop until tasks are finished
- Adjust cache max size
- Update ruff rules
- Fix register refreshed entity
- Refactor callback naming
- Remove support for python 3.11
- Remove python 3.11 for github tests and pylint
- Use py 3.12 for mypy and pylint
- Use more list comprehension
- Customize HmIP-DRG-DALI
- Add additional parameter to HBW-LC4-IN4-DR
- Add check if init is running in the main thread
- Add HBW-LC4-IN4-DR
- Group entities to sub devices / base channels
- Add mapping for fixed color channel
- Refactor entity name data
- Rename func to make_ce_func
- Add fixed mapping for HBW-LC-RGBWW-IN6-DR
- Fix mapping of HmIP-HDM
- Add option to un ignore mechanism to ignore the automatic creation of custom entities by device type
- Remove incomplete/wrong mapping for HBW-LC-RGBWW-IN6-DR
- Fix mapping of HmIP-HDM
- Accept float as input for int numbers
- Ignore empty unignore line
- All MASTER parameters must be unignored
- Remove deprecation warnings for py3.12
- Fix/improve unignore search
- Remove old complex format for unignore
- Move product group identification to client
- Add new pattern for unignore (parameter:paramset_key@device_type:channel_no)
- Allow all as unignore parameter for device_type and channel_no
- Store old_value in entity model
- Reload master data after config pending event
- Allow direct_call without cache wait time
- Fix unignore doc and improve unignore tests
- Move unignore check to entity
- Remove effects from HmIP-RGBW when in PWM mode
- Fix relevant entities for HmIP-RGBW
- Add duration=111600 when ramp_time used for HmIP-RGBW
- Only consider relevant entities for HmIP-RGBW
- Allow ordered execution of collector paramsets
- Add python 3.12 for github tests and pylint
- Add duration=0 when ramp_time used for HmIP-RGBW
- Add HB-LC-Bl1-Velux to cover
- Set attributes of dataclasses
- Add another reason to ping pong mismatch
- Save all rooms to entity model
- Central name must not contain the identifier separator (@)
- Add support for away_mode and classic homematic thermostats
- Collect config validation errors
- Don't send ts with ping pong if it should not be handled
- Clear ping pong cache on proxy init
- Refactor ping pong, remove semaphore
- Improve ping/pong mechanism. Fire event, if mismatch is 15 within 5 Minutes
- Use last_refreshed for validation check
- Cleanup cover
- Replace last_updated by last_refreshed
- Rename fire events
- Switch formatting from black to ruff-format
- Fix service enable_away_mode_by_calendar
- Add class method default_platform
- Ignore switch to sensor if un ignored
- Update un ignore documentation
- Remove WrapperEntity
- Align method signatures
- Remove get_update_entities
- Fix register_update_callback for update
- Add filter options to device.get_entity*
- Send relevant entities instead of devices in callback
- Register external sources with custom identifier
- Remove subscribed_entity_unique_identifiers
- Rename custom_identifier to custom_id
- Rename unique_identifier to unique_id
- Adjust typing after move to more enums
- Add measure_execution_time to writing methods
- Fix send sysvar #1249
- Add HmIPW-SCTHD
- Add faultCode and faultString to xmlrpc.client.Fault
- Use Mapping/Set for readonly access
- Use enum for CE fields
- Use Parameter for ED
- Add started property to central
- Rename:
- value_list -> values
- effect_list -> effects
- Add more checks to get/set value from/tp values
- Use more tuple instead of list
- Cleanup code
- Collect subscribed entities in central
- Cleanup exception handling
- Reduce log output for InternalBackendException
- Small fix to re raise InternalBackendException
- Catch 'internal error' on _get_auth_enabled. Relevant for for CCU2 users
- Use enum for JsonRPC and XmlRPC methods
- Get supported JsonRPC and XmlRPC methods and check against used methods
- Code cleanup
- Remove Hm prefix from enums
- Use enum for parameters
- Use more existing constants
- Improve caching
- Cleanup cache naming
- Remove max_age from most method signatures
- Simplify data cache
- Rename some cache methods
- Remove attr prefix
- Add check to BaseHomematicException
- Reduce log level to 'warning' for get_all_device_data 'JSONDecodeError' exceptions
- Update requirements
- Use freezegun for climate test
- Update ReGa-Script fetch_all_device_data.fn by @Baxxy13
- Parameterize call to fetch_all_device_data.fn
- Simplify json rpc post code
- Improve for ConnectionProblemIssuer json rpc
- Improve handle_exception_log
- Avoid repeated logs
- Move get_system_information to json_rpc
- Add str to client and central
- Cleanup light code
- Use more enums for climate, cover, lock
- Use TypedDict for light, siren args
- Update requirements
- Use more assignment-expr
- Make _LOGGER final
- Improve typing
- Refactor get_paramset_description
- Cleanup logger
- Refactor client and central modules
- Move bind_collector to platforms.entity
- Move config/value_property to platforms.decorators
- Move measure_execution_time to decorators
- Move definition exporter to device
- Move HM_INTERFACE_EVENT_SCHEMA to central
- Update requirements
- Re add channel 7 for HmIPW-WRC6
- Reduce log level for exceptions in fetch_paramset_description
- Filter SSLErrors by code
- Refactor cover api
- Reduce visibility of local constants
- Convert StrEnum and IntEnum in proxy
- Fix measure_execution_time decorator for sync methods
- Add async support to callback_system_event
- Replace constants enums
- Remove unused const
- Remove dead code
- Optimize get readable entities for MASTER
- Always set color_behaviour for HmIPW-WRC6
- Extend HmIPW-WRC6 implementation
- Add decorator to measure function execution time
- Extend HmIPW-WRC6 implementation
- Fix get_all_system_variables return value
- Add SSLError to XmlRpcProxy and JsonRpcAioHttpClient
- Make integration more robust against json result failures
- Remove use_caches and load_un_ignore from central config
- Remove obsolete comments
- Align sslcontext creation with Home Assistant
- Improve testing:
- Set client_session to None
- Remove unnecessary async from create_central
- Make start_direct a config option
- Improve testing:
- Extract ClientLocal code from production code
- Use own main package for ClientLocal
- Patch permanent till teardown
- Update project setup
- Restructure test helper
- Add ping pong tests
- Avoid multiple central starts
- Improve exception and log handling
- Prepare backend for HA issue usage
- Remove only the starting device name from entity name
- Remove title from program and sysvar names
- Refactor Json error handling / logging
- Use ping pong only for CCU
- Add primary_client attribute to central_unit
- Add SystemInformation to client api
- Send credentials on XmlRPC api only when authentication is enabled in CCU
- Remove support for python 3.10
- Add available_interfaces to SystemInformation
- Update requirements
- Add identifier to device
- Rename ENTITY_NO_CREATE to NO_CREATE
- Extend Channel
- Add channel related attributes to entity
- Add kwargs to update_entity
- Call update_entity for ENTITY_EVENTS
- Ignore click events on plugs
- Add manufacturer to device
- Fire interface event about ping/pong mismatch
- Add message to fire_interface_event
- Add schema for interface event
- Add new Events PRESS_LOCK and PRESS_UNLOCK for HmIP-WKP
- Log an error about the ping/pong count mismatch
- Project file maintenance
- Replace isort with ruff
- Move overlapping pylint rules to ruff, disable mypy overlap
- Fix tunable white support for hmIP-RGBW
- Avoid creating entities that are not usable in selected device operation mode for hmIP-RGBW
- Update requirements
- Update requirements
- Do not create update entities for virtual remotes
- Cleanup FIX_UNIT_BY_PARAM
- Improve update_device_firmware
- Refactor device description cache handling
- Add device firmware update handling
- Make interface an enum
- Add product group to device
- Remove unsupported on_time / refactor HmIP-RGBW
- Update requirements
- Fix division by zero for HmIP-RGBW
- Remove color_temperature from RGBW
- Add missing channel for HmIP-RGBW
- Update requirements
- Add HmIP-RGBW
- Update requirements
- Fix cover (HDM2) no longer working
- Update requirements
- Add log message to negative password check
- Fix 'Cannot parse hex-string value'
- Add name to tasks
- Improve typing
- Move callback calls into exception block
- Remove avoidable usage of deepcopy
- Add dependabot
- Update requirements
- Drop pyupgrade, autoflake, flake8 in favor of ruff
- Refactor cover, add set_combined_position
- Add is_in_multiple_channels to base entity
- Update ruff, adjust module aliases
- Fix spamming CCU logs with errors (#981)
- Update ruff, fix comments
- Switch to orjson
- Fix climate: compare set temperature to target temperature
- Use sets for central callbacks
- Add get_all_entities for device
- Fix property types
- Ensure modules for platforms are loaded
- Use local dicts for device lists
- Clear central data cache if identified as outdated
- Avoid redundant cache loads within init phase
- Extract value preparation from send_value
- Differentiate between input and default parameter type
- Fix asyncio-dangling-task (RUF006)
- Add typed dict for light and siren
- Add project setup script
- Add entity_data event
- Add payload mixin
- Cleanup module dependencies
- Use cache decorators for some high-traffic methods
- Allow that channel_no could be None
- Add and use get_channel_address
- Add HmIP-SWSD as siren
- Raise CALLBACK_WARN_INTERVAL to 10 minutes
- Disable validation of state change for action and button
- Check if entity is writable on send
- Add missing bind_collector
- Add more
Final
typing - Add option to collector to disable put_paramset
- Add on_time Mixin to temporary store on_time
- Add pre-commit check
- Basic linting for tests
- Fix GitHub build/publish
- Add comments to parameter_visibility
- Use
put_paramset
only when there is more than one parameter to sent - Use only one implementation for garage doors (HO/TM)
- Avoid backend calls if value/state doesn't change
- If an entity (e.g.
switch
) has only one parameter that represents its state, then a call to the backend will be made, if the parameter value sent is not identical to the current state. - If an entity (e.g.
cover
,climate
,light
) has multiple parameters that represent its state, then a call to the backend will be made, if one of these parameter values sent is not identical to its current state. - Not covered by this approach:
- platforms: lock and siren.
- services:
stop_cover
,stop_cover_tilt
,enable_away_mode_*
,disable_away_mode
,set_on_time_value
- system variables
- If an entity (e.g.
- Add virtual channels for HmIP cover/blind:
- Channel no as examples from HmIP-BROLL. The implementation of the first actor channel (4) remains unchanged, which means that this channel (4) shows the correct cover position from sensor channel (3). The other actor channels (5+6) are generated as initially deactivated and only use the cover position from their own channel after activation.
- Separate check for parameter is un_ignored based on if it should be hidden or not
- Log validation exceptions in central
- Add typing to decorators
- Add tests for better code coverage
- Cleanup LOGGER messages
- Cleanup code base with ruff
- Ensure the signal handler gets called at most once by @mtdcr
- Fix stop central, if another central is active on the same XmlRPC server
- JsonRpcAioHttpClient: Allow empty password by @mtdcr
- Remove VALVE_STATE from HmIPW-FALMOT-C12
- Remove put_paramset from custom_entity
- Remove set_value, put_paramset from central
- Remove support for python 3.9
- Remove to int converter for HmIP-SCTH230 CONCENTRATION
- Replace old-style union syntax
- Validate password with regex (warning only!)
- Aggregate calls to backend
- Fix HmIP-MOD-TM: inverted direction
- Add a new custom entity type for windows drive
- Return True if sending service calls succeed
- Add ExtendedConfig and use for additional_entities
- Add ExtendedConfig to custom entities
- Add LED_STATUS to HM-OU-LED16
- Allow multiple CustomConfigs for a hm device
- Cleanup test imports
- Increase the line length to 99
- Remove LOWBAT from HM-LC-Sw1-DR
- Remove obsolete ED_ADDITIONAL_ENTITIES_BY_DEVICE_TYPE from entity_definition
- Replace custom entity config data structure by CustomConfig
- Sort lists in parameter_visibility.py
- Add helper, central tests
- Add more tests and test based refactorings
- Reduce backend calls and logging during lost connection
- Remove obsolete parse_ccu_sys_var
- Update color_conversion threshold by @guillempages
- Unify event parameters
- Refactor entity.py for better event support
- Fix wrong warning after set_system_variable
- Add validation to event_data
- Remove OPERATING_VOLTAGE from HmIP-BROLL, HmIP-FROLL
- Remove loop from test signature
- Cleanup ignore/unignore handling and add tests
- No longer create ClientSession in json_rpc_client for tests
- Add backend tests
- Use mocked local client to check method_calls
- Remove sleep after connection_checker stops
- Remove LOWBAT from HM-LC-Sw1-Pl, HM-LC-Sw2-FM
- Simplify entity de-/registration
- Refactor add/delete device and add tests
- Add un_ignore_list to test config
- Allow unignore for DEVICE_ERROR_EVENTS
- API Cleanup
- Allow to disable cache
- Allow to disable un_ignore load
- Add local client
- Use local client in tests
- Move event() code to central_unit
- Move listDevices() code to central_unit
- Add un_ignore list to central config
- Fix entity_definition schema
- Rename cache_dict to persistent_cache
- Reduce access to internal complex objects for custom_component
- Rename climate presets from 'Profile ' to 'weekprogram'
- Add support for python 3.11
- Make constant assignment final
- Fix native device units
- Remove empty unit for numeric sysvars
- Add enable_default to entity
- Remove some warn level parameters from ignore list
- Reformat code / check with flake8
- Refactor entity inheritance
- Send ERROR_* parameters as homematic.device_error event
- Add additional checks for custom entities
- Code Cleanup
- Code Cleanup
- Remove sub_type from model to simplify code
- Remove obsolete methods
- Refactor binary_sensor check
- Convert value_list to tuple
- Use tuple for immutable lists
- Fix disable away_mode in climate. Now goes back to the origin control_mode.
- Disable temperature validation for setting to off for HM heating group HM-CC-VG-1
- Add HM-LC-AO-SM as light
- Remove hub from HmPlatform
- Hub is no longer an entity
- Improve naming of modules
- Add new platform for text sysvars
- Add transition to light turn_off
- Remove min brightness of 10 for lights
- Generalize some collection helpers
- Rename protected attributes to _attr*
- Code cleanup
- Add option to wrap entities to a different platform
- Wrap LEVEL of HmIP-TRV*, HmIP-HEATING to sensor
- Rename ATTRHM_ to HM_
- Use generic property implementation
- Use min_temp if target_temp < min_temp
- Remove event_loop from signatures
- Refactor central_config, create xml_rpc server in central_unit
- Fix don't hide unignored parameters
- Refactor refesh_entity_data. Allow restriction to paramset and cache age.
- Add semaphore to fetch sysvar and programs from backend
- Accept some existing prefix for sysvars and programs to avoid additional prefixing with Sv* / P*
- accepted sysvar prefixes: V*, Sv*
- accepted program prefixes: P*, Prg*
- Read min/max temperature for climate devices
- Min set temperature for thermostats is now 5.0 degree. 4.5. degree is only off
- Replace data_* by HmDataOperationResult
- Use HmHvacMode HEAT instead of AUTO for simple thermostats
- Add HUMIDITY and ACTUAL_TEMPERATURE to heating groups
- Set Hm Thermostat to manual mode before switching off
- Allow entity creation for some internal parameters
- Fix HM Blind/Cover custom entity types
- Make connection checker more resilient:
- Reduce connection checker interval to 15s
- Connection is not connected, if three consecutive checks fail.
- Ignore OPERATING_VOLTAGE for HmIP-PMFS
- Add ALPHA-IP-RBG
- Rename hub event
- Remove "Servicemeldungen" from sysvars. It's already included in the hub_entity (sensor.{instance_name})
- Improve XmlServer shutdown
- Add name to threads and executors
- Improve ThreadPoolExecutor shutdown
- Exclude value from event_data if None
- Fix select entity detection
- Exclude STRING sysvar from extended check
- Allow three states for a forced availability of a device
- Add device_type to device availability event
- Code deduplication and small fixes
- Adjust logging (level and message)
- Delete sysvar if type changes
- Improve readability of XmlRpc server
- Remove module data
- Fix check if thread is started
- Remove unused local_ip from XmlRPCServer
- Create all XmlRpc server by requested port(s)
- Fix hs_color for CeColorDimmer(HM-LC-RGBW-WM)
- Reduce api calls for light
- Add cache for rega script files
- Add platform as field and remove obsolete constructors
- Reduce member
- Remove CHANNEL_OPERATION_MODE from cover ce
- Refactor get_value/set_value
- Remove domain from model
- Rename unique_id to unique_identifier
- Remove should_poll from model
- Remove obsolete methods
- Remove obsolete device_address parameter
- Rename sysvar to hub entity
- Add program buttons
- Fix pylint, mypy issues due to newer versions
- Remove properties of final members
- Add types to Final
- Init entity fields in init method
- Remove device_info from model
- Remove attributes from model
- Add HmIP-BS2 to custom entities
- Remove force and add call_source for getValue
- Cleanup API
- Limit init cache time usage
- Avoid repetitive calls to CCU within max_age_seconds
- Add ELV-SH-BS2 to custom entities
- Code Cleanup
- Rearrange validity check
- Cleanup entity code
- Raise interval for alive checks
- Use entities instead of values inside custom entities
- Fix _check_connection for Homegear/CCU
- Remove state_uncertain from default attributes
- Fix entity update
- Fix naming of custom entity
- Fix last_state handling for custom entities
- Rename value_uncertain to state_uncertain
- Add state_uncertain to custom entity
- Set value_uncertain to True if no data could be loaded from CCU
- Set default value for hub entity to None
- Align entity naming to HA entity name
- Ensure entity value refresh after reconnect
- Ignore further parameters by device
- Better distinguish between NO_CACHE_ENTRY and None
- Switch to calendar versioning for hahomematic
- Load MASTER data on initial load
- Fix export of device definitions
- Use CHANNEL_OPERATION_MODE for devices with MULTI_MODE_INPUT_TRANSMITTER, KEY_TRANSCEIVER channels
- Re-Add HmIPW-FIO6 to custom device handling
- Remove HmIPW-FIO6 from custom device handling
- Refactor entity name creation
- Cleanup entity selection
- Add button to virtual remote
- Code cleanup
- Remove sysvars if deleted from CCU
- Add check for sysvar type in sensor
- Remove unused sysvar attributes
- Refactor HmEntityDefinition
- Refactor all sysvar script
- Use ext_marker script in combination with SysVar.getAll
- Refactor sysvar creation eventing
- Fix build
- Use marker in sysvar description for extended sysvars
- Enable additional sysvar entity types
- Add more debug logging
- Better differentiate between float and int for sysvars
- Switch from # as unit placeholder for sysvars to ' '
- Move sysvar length check to sensor
- Rename parameter channel_address to address for put/get_paramset
- Refactor system variables
- Add more types for sysvar entities
- Add more options for boolean conversions
- Fix entity definition for HMIP-HEATING
- Add impulse event
- Add LEVEL and STATE to HmIP-Heating group to display hvac_action
- Add device_type as model to attributes
- Add function attribute only if set
- Rename subsection to function
- Add subsection to attributes
- Use parser for internal sysvars
- Add option to replace too technical parameter name by friendly parameter name
- Ignore more parameters by device
- Use dataclass for sysvars
- Limit sysvar length to 255 chars due to HA limitations
- Block parameters by device_type that should not create entities in HA
- Fix remove instance on shutdown
- Increase connection timeout(30s->60s) and reconnect interval(90s->120s) to better support slower hardware
- Use unit for vars, if available
- Remove special handling for pydevccu
- Remove set boost mode to false, when preset is none for bidcos climate entities
- Fix light channel for multi dimmer
- Fix callback alive check
- Reconnect clients based on outstanding xml callback events
- Cleanup build
- Reorg light attributes
- Add on_time to light and switch
- Use min as default if default is unset for parameter_data
- Add CeColorDimmer
- Fix interface_event
- Add extra_params to _post_script
- Add set_system_variable with string value
- Disallow html tags in string system variable
- Read # Version and serial in get_client
- Add BATTERY_STATE to DEFAULT_ENTITIES
- Migrate device_info to dataclass
- Add rega script (provided by @baxxy13) to get serial from CCU
- Add method to clean up cache dirs
- Revert to XmlRPC getValue and getParamset for CCU
- Limit hub_state to ccu only
- Use max # Version of interfaces for backend version
- Remove device as parameter from parameter_availability
- Add XmlRPC.listDevice to Client
- Add start_direct for starts without waiting for events (only for temporary usage)
- Revert to XmlRPC get# Version for CCU
- Revert to XmlRPC getParamsetDescription for CCU
- Add central_id for uniqueness of heating groups, sysvars and hub
- Simplify json usage
- Move json methods to json client
- Make json client independent from central config
- Add get_serial to validate
- Use serial for sysvar unique_ids
- Rename domain for test and example from hahm to homematicip_local
- Use interface_id for interface events
- Add support for color temp dimmer
- Fix interface name for BidCos-Wired
- Add check for available API method to identify BidCos Wired
- Cleanup backend identification
- Catch SysVar parsing exceptions
- Fix lock/unlock for HM-Sec-Key
- Add central validation
- Add jso_rpc.post_script
- Add additional system_listMethods to avoid errors on CCU
- Add JsonRPC.Session.logout before central stop to avoid warn logs at CCU.
- Add api for available interfaces
- Send event if interface is not available
- Don't block available interfaces
- Fix reload paramset
- Fix value converter
- Cleanup caching code
- Use homematic script to fetch initial data for CCU/HM
- Add semaphore(1) to improve cache usage (less api calls)
- Avoid unnecessary prefetches
- Fix JsonRPC Session handling
- Rename NamesCache to DeviceDetailsCache
- Move RoomCache to DeviceDetailsCache
- Move hm value converter to helpers
- Use JSON RPC for get_value, get_paramset, get_paramset_description
- Use default for binary_sensor
- Add hub property
- Add check if callback is already registered
- Use callback when hub is created
- Fix cover device mapping
- Small climate fix
- Make more devices custom_entities
- Remove HA constants
- Use enums own constants
- Move xmlrpc credentials to header
- Remove password from Exceptions
- Fix IpBlind
- Fix parameter visibility
- Fix usage of async_add_executor_job
- Improve local_ip identification
- Add is_locking/is_unlocking to lock
- Fix siren definition
- Use backported StrEnum
- Sort constants to identify HA constants
- Add new platform siren
- Make parameter availability more robust
- Add hvac_action to IP Thermostats
- Add hvac_action to some HM Thermostats
- add opening/closing to IPGarage
- Add state to HmIP-MOD-HO
- Use enum value for actions
- Fix HmIP-MOD-HO
- Update to pydevccu 0.1.3
- Priotize detection of devices for custom entities (e.g. HmIP-PCBS2)
- Add HmIPW-FIO6 as CE
- Move create_devices to central
- Move parameter visibility relevant data to own module
- Add HmIP-HDM2 to cover
- Fix unignore filename
- Improve naming
- Add multiplier to entity
- Substitute device_type of HB devices for usage in custom_entities
- Add missing return statement
- Add last_update to every value_cache_entry
- Rename init_entity_value to load_entity_value
- move (un)ignore methods to device
- Add support for unignore file
- Make PROCESS a binary_sensor
- Add DIRECTION & ACTIVITY_STATE to cover (is_opening, is_closing)
- Start hub earlier
- Add paramset to entity
- Add CHANNEL_OPERATION_MODE for HmIP(W)-DRBL4
- Fix DLD lock_state
- Add is_jammed to locks
- Add support for blacklisting a custom entity
- Add HmIP-STH to climate custom entities
- Check if interface callback is alive
- Add class for HomeamaticIP Blinds
- Make device availability dependent on the client
- Fire event about interface availability
- Add additional check to reconnect
- Optimize get_value caching
- Extend device cache to use get_value
- Limit read proxy workers to 1
- Rename RawDevicesCache to DeviceDescriptionCache
- Make names cache non persistent
- Bump pydevccu to 0.1.2
- Update hub.py to match GenericEntity
- Cleanup central API
- Use dedicated proxy for mass read operations, to avoid blocking of connection checker
- Try create client after init failure
- Reduce CCU calls
- Optimize data_load
- Fix naming paramset -> paramset_description pt2
- Optimize data_load by using get_paramset
- Fix naming paramset -> paramset_description
- Add get_value and get_paramset to central
- Add hmcli.py as command line script
- Make whitelist for parameter depend on the device_type/sub_type
- Add additional params for HM-SEC-Win (DIRECTION, ERROR, WORKING, STATUS)
- Add additional params for HM-SEC-Key (DIRECTION, ERROR)
- Assign secondary channels for HM dimmers
- Remove explicit wildcard in entity_definition
- Remove SpecialEvents
- Make UNREACH, STICKY_UNREACH, CONFIG_PENDING generic entities
- init UNREACH ... on init
- only poll sysvars when central is available
-
Improve logging
-
Generic schema for entities is name(str):channel(int), everything else is custom.
-
Fix sysvar unique_id
-
Slugify sysvar name
-
Kill executor on shutdown
-
Catch ValueError on conversion
-
Add more data to logging
- Improve exception handling
- Update fix_rssi according to doc
- Add more logging to reconnect
- Add doc link for RSSI fix
- Make ["DRY", "RAIN"] sensor a binary_sensor
- Add converter to sensor value
- HmIP-SCTH230 CONCENTRATION to int
- Fix RSSI
- raise connection_checker interval to 60s
- Add sleep interval(120s) to wait with reconnect after successful connection check
- Rename hub extra_state_attributes to attributes
- Add VALVE_STATE for hm climate
- Add entity_type to attributes
- Accept LOWBAT only on channel 0
- Move client management to central
- Add rooms
- Move calls to create_devices and start_connection_checker
- Add ERROR_LOCK form HmIP-DLD
- Remove ALARM_EVENTS
- Fix event identification and generation
- Remove typecast for text, binary_sensor and number
- Don't exclude Servicemeldungen from sysvars
- Use Servicemeldungen sysvar for hub state
- Add test for HM-CC-VG-1 (HM-Heatinggroup)
- Remove additional typecasts for number
- Add converter to BaseParameterEntity/GenericEntity
- Fix number entities returning None when 0
- Mark secondary channels name with a V --> Vch
- Reduce some log_level
- Fix callback to notify un_reach
- Add config option to specify storage directory
- Move Exceptions to own module
- Add binary_sensor platform for SVs
- Add config check
- Add hub_entities_by_platform
- Remove option_enable_sensors_for_system_variables
- Fix naming for multi channel custom entities
- Refactor entity definition
- improve naming
- classify entities (primary, secondary, sensor, Generic, Event)
- remove option_enable_virtual_channels from central
- remove entity.create_in_ha. Replaced by HmEntityUsage
- Fix enum str in entity definition
- Use helper for device_name
- Add logging to show usage of unique_id in name
- Add HmIPW-WRC6 to custom entities
- Add HmIP-SCTH230 to custom entities
- Refactor entity definition
- Remove unnecessary field names from additional entity definitions
- Add additional entity definitions by device type
- Return unique_id if name is not in cache
- Remove no longer needed press_virtual_remote_key
- Add devices to CustomEntity
- HmIP-WGC
- HmIP-WHS
- Update to pydevccu 0.1.0
- Identify virtual remote by device type
- Fix Device Exporter / format output
- Use actions instead of buttons for virtual remotes
- Remove SVs from EXCLUDED_FROM_SENSOR
- Switch some HM-LC-Bl1 to cover
- Use decorators on central methods
- Make decorators async aware
- Don't exclude DutyCycle, needed for old rf-modules
- Don't exclude Watchdog from SV sensor
- Ignore mypy error
- HM cover fix: check level for None
- Only device_address is required for HA callback
- Fix: max_temp issue for hm thermostats
- Fix: hm const are str instead of int
- Fix cover state
- Move delete_devices from RPCFunctions to central
- Move new_devices from RPCFunctions to central
- Add method to delete a single device to central
- Use generic climate profiles list
- Remove dedicated json tls option
- Fix unique_id for heating_groups
- Use domain name as base folder name
- Remove domain const from hahomematic
- Split number to integer and float
- Precise entity definitions
- Improve detection of multi channel devices
- Add positional arguments
- Add missing channel no
- Set ED_PHY_CHANNEL min_length to 1
- Add platform zu hub entities
- Use entities in properties
- Add transition to dimmer
- Rename entity.state to entity.value
- Remove channel no, if channel is the only_primary_channel
- Make reset_motion, reset_presence a button
- add check to device_name / Fixes
- Load and clear caches async
- Extend naming strategy to use device name if channel name is not customized
- Add new helper for event_name
- Add channel to click_event payload
- Use base class for file cache
- Rename primary_client to client
- Add export for device definition
- Remove deleted entities from device and central collections
- use datetime for last_events
- Climate IP: use calendar for duration away
- Display profiles only when hvac_mode auto is enabled
- Fix binary sensor state update for hmip 2-state sensors
- Add climate methods for away mode
- Fix HVAC_MODE_OFF for climate
- Fix hm_light turn_off
- Fix Select Entity
- Remove internal device temperature (ACTUAL_TEMPERATURE CH0)
- Support Cool Mode for IPThermostats
- Display if AWAY_MODE is set on thermostat
- Separate device_address and channel_address
- Use datetime for last_updated (time_initialized)
- Fix example
- Add ACTUAL_TEMPERATURE as separate entity by @towo
- Add HEATING_COOLING to IPThermostat and Group
- Add ()HUMIDITY and ()TEMPERATURE as separate entities for Bidcos thermostats
- use ACTIVE_PROFILE in climate presets
- Make HmIP-BSM a switch (only dimable devices should be lights)
- Cleanup API, device/entity
- Add ACTIVE_PROFILE to IPThermostat
- Cleanup API, reduce visibility
- Add setValue to client
- Rotate device identifier
- Remove unnecessary async
- Removed unused helper
- Add interface_id to identifiers in device_info
- Bump # Version to 0.1.0
- Remove interface_id from get_entity_name and get_custom_entity_name
- Add initial test
- Add coverage config
- Resolve names without interface
- Fix device.entities for virtual remotes
- Remove unused const
- Cache model and primary_client
- Fix number set_state
- Update ignore list
- Fix select entity
- Move caches to classes
- Add helper for address
- Fixes for Hub init
- Add type hints based on HA coding guidelines
- Rename device_description to entity_definition
- Send alarm event on value change
- Rename impulse to special events
- reduce event_callbacks
- Remove variables that are covered by other sensors (CCU only)
- Remove dummy from service message (HmIP-RF always sends 0001D3C98DD4B6:3 unreach)
- Rename Bidcos thermostats to SimpleRfThermostat and RfThermostat
- Use more Enums (like HA does): HmPlatform, HmEventType
- Use assignment expressions
- Add more type hints (fix most mypy errors)
- Don't use default entities for climate groups (already included in device)
- Fix: remove wildcard for HmIP-STHD
- Add unit to hub entities
- Add KeyMatic
- Add HmIP-MOD-OC8
- Add HmIP-PCBS, HmIP-PCBS2, HmIP-PCBS-BAT, HmIP-USBSM
- Remove xmlrpc calls related to ccu system variables (not supported by api)
- Update hub sensor excludes
- Add HmIP-MOD-HO, HmIP-MOD-TM
- Add sub_type to device/entity
- Add PRESET_NONE to climate
- Add level und state as additional entities for climate
- Add more type converter
- Move get_tls_context to helper
- Update requirements
- Cleanup constants
- Use flags from parameter_data
- Add wildcard start to exclude parameters that start with word
- Fix channel assignment for dimmers
- Fix entity name: add channel only if a parameter name exists is in multiple channels of the device.
- Fix: cover open/close default values to float
- Fix: add missing async/await
- make get_primary_client public
- Fix TLS handling
- Don't start connection checker for pydevccu
- Use a dummy hub for pydevccu
- Convert min, max, default values (fix for cover)
- Add button platform. This allows to use the virtual remotes of a ccu in automations.
- Cleanup entity inheritance.
- Switch to a non-permanent session for jsonrpc calls The json capabilities of a ccu are limited (3 parallel session!?!). So we no longer us a persisted session. (like pyhomematic)
- Enable write-only params as HMAction(solves a problem with climate writing CONTROL_MODE)
- Rename server to central_unit (after the extraction of the XMLRPC-Server server has not been a server anymore).
- Rename json_rpc to json_rpc_client
- Move json_rpc from client to central_unit to remove number of active sessions
- Add hub with option to enable own system variables as sensors
- Add method for virtual remote
- Update entity availability based on connection status
- Fix action_event for ha device trigger
- Use one XMLRPC-Server for all backends
- Reduce back to parameters with events
- Rewrite climate-entity creation
- Refactor to Async
- Remove entity_id and replace by unique_id
- Reorg Client/Server/Caches
- Use One Server per backend (CCU/Homegear) with multiple clients/interfaces
- Define device_description for custom_entities
- Create custom_entities for climate, cover, light, lock and switch
- Maintain ignored parameters
- Add collection with wildcard parameters to ignore
- Enable click, impulse and alarm events
- Add connection checker
- Use input_select for ENUM actors (Issue #8)
- Added
DEVICE_IN_BOOTLOADER
andINSTALL_TEST
to ignored parameters - Create
switch
for typeACTION
for parameters with only write-flag - Create
number
for typeFLOAT
for parameters with only write-flag - Add exceptions to abort startup under certain conditions
- Refactoring, introduce
Device
class - Allow to fetch single paramset on demand
- Renew JSON-RPC sessions instead of logging in and out all the time
- Initial testing release