- Remove VALVE_STATE from HmIPW-FALMOT-C12
- Remove support for python 3.9
- Replace old-style union syntax
- Remove to int converter for HmIP-SCTH230 CONCENTRATION
- Remove set_value, put_paramset from central
- Remove put_paramset from custom_entity
- Cleanup code base with ruff
- 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
- Remove LOWBAT from HM-LC-Sw1-DR
- Sort lists in parameter_visibility.py
- Replace custom entity config data structure by CustomConfig
- Allow multiple CustomConfigs for a hm device
- Add ExtendedConfig to custom entities
- Cleanup test imports
- Increase the line length to 99
- Add ExtendedConfig and use for additional_entities
- Remove obsolete ED_ADDITIONAL_ENTITIES_BY_DEVICE_TYPE from entity_definition
- Add LED_STATUS to HM-OU-LED16
- Remove obsolete parse_ccu_sys_var
- Add helper, central tests
- Add more tests and test based refactorings
- Reduce backend calls and logging during lost connection
- Update color_conversion threshold by @guillempages
- Unifiy 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 'week_program_'
- 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 ATTR_HM_* 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 paramters
- Fix HM Blind/Cover custom entity types
- Make connection checker more resilent:
- 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 alread 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 enity 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
- Readd 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 EntityDefinition
- 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), everthing 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