diff --git a/custom_components/jablotron100/alarm_control_panel.py b/custom_components/jablotron100/alarm_control_panel.py index 3abe156..f1e5472 100644 --- a/custom_components/jablotron100/alarm_control_panel.py +++ b/custom_components/jablotron100/alarm_control_panel.py @@ -44,10 +44,16 @@ class JablotronAlarmControlPanelEntity(JablotronEntity, AlarmControlPanelEntity) _attr_supported_features = AlarmControlPanelEntityFeature.ARM_AWAY | AlarmControlPanelEntityFeature.ARM_NIGHT + def __init__( + self, + jablotron: Jablotron, + control: JablotronAlarmControlPanel, + ) -> None: + super().__init__(jablotron, control) + def _update_attributes(self) -> None: super()._update_attributes() - self._attr_name = self._control.name self._attr_state = self._get_state() self._attr_changed_by = self._changed_by self._attr_code_format = self._detect_code_format() diff --git a/custom_components/jablotron100/binary_sensor.py b/custom_components/jablotron100/binary_sensor.py index a85dd11..f58ab08 100644 --- a/custom_components/jablotron100/binary_sensor.py +++ b/custom_components/jablotron100/binary_sensor.py @@ -28,83 +28,72 @@ class JablotronBinarySensorEntityDescription(BinarySensorEntityDescription): icon_func: Callable | None = None BINARY_SENSOR_TYPES: Dict[EntityType, JablotronBinarySensorEntityDescription] = { + EntityType.BATTERY_PROBLEM: JablotronBinarySensorEntityDescription( + key=EntityType.BATTERY_PROBLEM, + device_class=BinarySensorDeviceClass.PROBLEM, + entity_category=EntityCategory.DIAGNOSTIC, + ), EntityType.DEVICE_STATE_MOTION: JablotronBinarySensorEntityDescription( key=EntityType.DEVICE_STATE_MOTION, device_class=BinarySensorDeviceClass.MOTION, - name="Motion", ), EntityType.DEVICE_STATE_WINDOW: JablotronBinarySensorEntityDescription( key=EntityType.DEVICE_STATE_WINDOW, device_class=BinarySensorDeviceClass.WINDOW, - name="Window", ), EntityType.DEVICE_STATE_DOOR: JablotronBinarySensorEntityDescription( key=EntityType.DEVICE_STATE_DOOR, device_class=BinarySensorDeviceClass.DOOR, - name="Door", ), EntityType.DEVICE_STATE_GARAGE_DOOR: JablotronBinarySensorEntityDescription( key=EntityType.DEVICE_STATE_GARAGE_DOOR, device_class=BinarySensorDeviceClass.GARAGE_DOOR, - name="Garage door", ), EntityType.DEVICE_STATE_GLASS: JablotronBinarySensorEntityDescription( key=EntityType.DEVICE_STATE_GLASS, - name="Glass", icon_func=lambda is_on: "mdi:image-broken-variant" if is_on else "mdi:square-outline" ), EntityType.DEVICE_STATE_MOISTURE: JablotronBinarySensorEntityDescription( key=EntityType.DEVICE_STATE_MOISTURE, device_class=BinarySensorDeviceClass.MOISTURE, - name="Moisture", ), EntityType.DEVICE_STATE_GAS: JablotronBinarySensorEntityDescription( key=EntityType.DEVICE_STATE_GAS, device_class=BinarySensorDeviceClass.GAS, - name="Gas", ), EntityType.DEVICE_STATE_SMOKE: JablotronBinarySensorEntityDescription( key=EntityType.DEVICE_STATE_SMOKE, device_class=BinarySensorDeviceClass.SMOKE, - name="Smoke", ), EntityType.DEVICE_STATE_LOCK: JablotronBinarySensorEntityDescription( key=EntityType.DEVICE_STATE_LOCK, device_class=BinarySensorDeviceClass.LOCK, - name="Lock", ), EntityType.DEVICE_STATE_TAMPER: JablotronBinarySensorEntityDescription( key=EntityType.DEVICE_STATE_TAMPER, device_class=BinarySensorDeviceClass.TAMPER, - name="Tamper", ), EntityType.DEVICE_STATE_THERMOSTAT: JablotronBinarySensorEntityDescription( key=EntityType.DEVICE_STATE_THERMOSTAT, - name="Thermostat", icon_func=lambda is_on: "mdi:thermometer" if is_on else "mdi:thermometer-off", ), EntityType.DEVICE_STATE_THERMOMETER: JablotronBinarySensorEntityDescription( key=EntityType.DEVICE_STATE_THERMOMETER, - name="Thermometer", ), EntityType.DEVICE_STATE_INDOOR_SIREN_BUTTON: JablotronBinarySensorEntityDescription( key=EntityType.DEVICE_STATE_INDOOR_SIREN_BUTTON, - name="Button", icon_func=lambda is_on: "mdi:gesture-tap-box" if is_on else "mdi:circle-box-outline", ), EntityType.DEVICE_STATE_BUTTON: JablotronBinarySensorEntityDescription( key=EntityType.DEVICE_STATE_BUTTON, - name="Button", icon_func=lambda is_on: "mdi:gesture-double-tap" if is_on else "mdi:circle-double" ), EntityType.DEVICE_STATE_VALVE: JablotronBinarySensorEntityDescription( key=EntityType.DEVICE_STATE_VALVE, - name="Valve", icon_func=lambda is_on: "mdi:valve-open" if is_on else "mdi:valve-closed", ), EntityType.DEVICE_STATE_CUSTOM: JablotronBinarySensorEntityDescription( key=EntityType.DEVICE_STATE_CUSTOM, - name="Custom", ), EntityType.FIRE: JablotronBinarySensorEntityDescription( key=EntityType.FIRE, @@ -121,6 +110,11 @@ class JablotronBinarySensorEntityDescription(BinarySensorEntityDescription): device_class=BinarySensorDeviceClass.CONNECTIVITY, entity_category=EntityCategory.DIAGNOSTIC, ), + EntityType.POWER_SUPPLY: JablotronBinarySensorEntityDescription( + key=EntityType.POWER_SUPPLY, + device_class=BinarySensorDeviceClass.PROBLEM, + entity_category=EntityCategory.DIAGNOSTIC, + ), EntityType.PROBLEM: JablotronBinarySensorEntityDescription( key=EntityType.PROBLEM, device_class=BinarySensorDeviceClass.PROBLEM, @@ -171,6 +165,7 @@ def __init__( description: JablotronBinarySensorEntityDescription, ) -> None: self.entity_description = description + self._attr_translation_key = description.key super().__init__(jablotron, control) @@ -179,7 +174,5 @@ def _update_attributes(self) -> None: self._attr_is_on = self._get_state() == STATE_ON - self._attr_name = self.entity_description.name - if self.entity_description.icon_func is not None: self._attr_icon = self.entity_description.icon_func(self._attr_is_on) diff --git a/custom_components/jablotron100/const.py b/custom_components/jablotron100/const.py index e89ee2f..f3c5ddf 100644 --- a/custom_components/jablotron100/const.py +++ b/custom_components/jablotron100/const.py @@ -90,7 +90,11 @@ def get_name(self) -> str: class EntityType(StrEnum): ALARM_CONTROL_PANEL = "alarm_control_panel" BATTERY_LEVEL = "battery_level" - CURRENT = "current" + BATTERY_PROBLEM = "battery_problem" + BATTERY_LOAD_VOLTAGE = "battery_load_voltage" + BATTERY_STANDBY_VOLTAGE = "battery_standby_voltage" + BUS_DEVICES_CURRENT = "bus_devices_current" + BUS_VOLTAGE = "bus_voltage" DEVICE_STATE_MOTION = "device_state_motion" DEVICE_STATE_WINDOW = "device_state_window" DEVICE_STATE_DOOR = "device_state_door" @@ -109,14 +113,15 @@ class EntityType(StrEnum): DEVICE_STATE_CUSTOM = "device_state_custom" FIRE = "fire" GSM_SIGNAL = "gsm_signal" - IP = "ip" + GSM_SIGNAL_STRENGTH = "gsm_signal_strength" LAN_CONNECTION = "lan_connection" - PULSE = "pulse" + LAN_IP = "lan_ip" + POWER_SUPPLY = "power_supple" PROBLEM = "problem" + PULSES = "pulses" PROGRAMMABLE_OUTPUT = "programmable_output" SIGNAL_STRENGTH = "signal_strength" TEMPERATURE = "temperature" - VOLTAGE = "voltage" CODE_MIN_LENGTH: Final = 4 CODE_MAX_LENGTH: Final = 8 diff --git a/custom_components/jablotron100/jablotron.py b/custom_components/jablotron100/jablotron.py index 79b8246..b0c628a 100644 --- a/custom_components/jablotron100/jablotron.py +++ b/custom_components/jablotron100/jablotron.py @@ -562,7 +562,6 @@ def _create_section(self, section: int, section_state: JablotronSectionState) -> section_hass_device, EntityType.PROBLEM, section_problem_sensor_id, - "Problem", self._convert_jablotron_section_state_to_problem_sensor_state(section_state), ) @@ -571,7 +570,6 @@ def _create_section(self, section: int, section_state: JablotronSectionState) -> section_hass_device, EntityType.FIRE, section_fire_sensor_id, - "Fire", self._convert_jablotron_section_state_to_fire_sensor_state(section_state), ) @@ -734,7 +732,6 @@ async def _create_devices(self) -> None: hass_device, EntityType.PROBLEM, device_problem_sensor_id, - "Problem", STATE_OFF, ) @@ -744,7 +741,6 @@ async def _create_devices(self) -> None: hass_device, self._get_device_state_entity_type(device_type), self._get_device_state_sensor_id(device_number), - self._get_device_sensor_name(device_number), STATE_OFF, ) @@ -755,7 +751,6 @@ async def _create_devices(self) -> None: hass_device, EntityType.SIGNAL_STRENGTH, device_signal_strength_sensor_id, - "Signal strength", self._devices_data[device_id][DeviceData.SIGNAL_STRENGTH], ) else: @@ -767,7 +762,7 @@ async def _create_devices(self) -> None: if self.is_device_with_battery(device_number): self._add_battery_entities(device_number, JablotronBatteryState(True, self._devices_data[device_id][DeviceData.BATTERY_LEVEL])) else: - await self._remove_entity(EntityType.PROBLEM, device_battery_problem_sensor_id) + await self._remove_entity(EntityType.BATTERY_PROBLEM, device_battery_problem_sensor_id) await self._remove_entity(EntityType.BATTERY_LEVEL, device_battery_level_sensor_id) # Battery voltage sensors @@ -779,8 +774,8 @@ async def _create_devices(self) -> None: ): self._add_battery_voltage_entities(device_number) else: - await self._remove_entity(EntityType.VOLTAGE, device_battery_standby_voltage_sensor_id) - await self._remove_entity(EntityType.VOLTAGE, device_battery_load_voltage_sensor_id) + await self._remove_entity(EntityType.BATTERY_STANDBY_VOLTAGE, device_battery_standby_voltage_sensor_id) + await self._remove_entity(EntityType.BATTERY_LOAD_VOLTAGE, device_battery_load_voltage_sensor_id) # Temperature sensor device_temperature_sensor_id = self._get_device_temperature_sensor_id(device_number) @@ -789,7 +784,6 @@ async def _create_devices(self) -> None: hass_device, EntityType.TEMPERATURE, device_temperature_sensor_id, - "Temperature", ) else: await self._remove_entity(EntityType.TEMPERATURE, device_temperature_sensor_id) @@ -799,8 +793,8 @@ async def _create_devices(self) -> None: self._add_pulse_to_electricity_meter(device_number) else: # We can add only two sensors currently - await self._remove_entity(EntityType.PULSE, self._get_device_pulse_sensor_id(device_number)) - await self._remove_entity(EntityType.PULSE, self._get_device_pulse_sensor_id(device_number, 1)) + await self._remove_entity(EntityType.PULSES, self._get_device_pulse_sensor_id(device_number)) + await self._remove_entity(EntityType.PULSES, self._get_device_pulse_sensor_id(device_number, 1)) def _create_central_unit_sensors(self) -> None: if CentralUnitData.BATTERY not in self._central_unit_data: @@ -811,39 +805,34 @@ def _create_central_unit_sensors(self) -> None: self._add_entity( None, - EntityType.PROBLEM, + EntityType.POWER_SUPPLY, self._get_device_power_supply_sensor_id(DeviceNumber.CENTRAL_UNIT.value), - "Power supply", STATE_OFF, ) if self._central_unit_data[CentralUnitData.BATTERY]: self._add_entity( None, - EntityType.PROBLEM, + EntityType.BATTERY_PROBLEM, self._get_device_battery_problem_sensor_id(DeviceNumber.CENTRAL_UNIT.value), - "Battery problem", ) self._add_entity( None, EntityType.BATTERY_LEVEL, self._get_device_battery_level_sensor_id(DeviceNumber.CENTRAL_UNIT.value), - "Battery level", ) self._add_entity( None, - EntityType.VOLTAGE, + EntityType.BATTERY_STANDBY_VOLTAGE, self._get_device_battery_standby_voltage_sensor_id(DeviceNumber.CENTRAL_UNIT.value), - "Battery standby voltage", ) self._add_entity( None, - EntityType.VOLTAGE, + EntityType.BATTERY_LOAD_VOLTAGE, self._get_device_battery_load_voltage_sensor_id(DeviceNumber.CENTRAL_UNIT.value), - "Battery load voltage", ) for bus_number in self._central_unit_data[CentralUnitData.BUSES]: @@ -857,16 +846,14 @@ def _create_central_unit_sensors(self) -> None: None, EntityType.LAN_CONNECTION, self._get_lan_connection_id(), - "LAN connection", STATE_ON, ) if self._central_unit_data[CentralUnitData.LAN_IP]: self._add_entity( None, - EntityType.IP, + EntityType.LAN_IP, self._get_lan_connection_ip_id(), - "LAN IP", ) if self._get_central_unit_gsm_device_number() is not None: @@ -874,15 +861,13 @@ def _create_central_unit_sensors(self) -> None: None, EntityType.GSM_SIGNAL, self._get_gsm_signal_sensor_id(), - "GMS signal", STATE_ON, ) self._add_entity( None, - EntityType.SIGNAL_STRENGTH, + EntityType.GSM_SIGNAL_STRENGTH, self._get_gsm_signal_strength_sensor_id(), - "GSM signal strength", 100, ) @@ -1894,7 +1879,7 @@ def _create_device_hass_device(self, device_number: int) -> JablotronHassDevice: def _add_lan_connection_ip(self) -> None: lan_connection_ip_id = self._get_lan_connection_ip_id() - if lan_connection_ip_id in self.entities[EntityType.IP]: + if lan_connection_ip_id in self.entities[EntityType.LAN_IP]: return self._central_unit_data[CentralUnitData.LAN_IP] = True @@ -1902,9 +1887,8 @@ def _add_lan_connection_ip(self) -> None: self._add_entity( None, - EntityType.IP, + EntityType.LAN_IP, lan_connection_ip_id, - "LAN IP", ) async_dispatcher_send(self._hass, self.signal_entities_added()) @@ -1954,15 +1938,13 @@ def _add_battery_entities(self, device_number: int, battery_state: JablotronBatt hass_device, EntityType.BATTERY_LEVEL, self._get_device_battery_level_sensor_id(device_number), - "Battery level", battery_state.level, ) self._add_entity( hass_device, - EntityType.PROBLEM, + EntityType.BATTERY_PROBLEM, self._get_device_battery_problem_sensor_id(device_number), - "Battery problem", STATE_OFF if battery_state.ok else STATE_ON, ) @@ -1972,37 +1954,37 @@ def _add_battery_voltage_entities(self, device_number: int) -> None: self._add_entity( hass_device, - EntityType.VOLTAGE, + EntityType.BATTERY_STANDBY_VOLTAGE, self._get_device_battery_standby_voltage_sensor_id(device_number), - "Battery standby voltage", ) self._add_entity( hass_device, - EntityType.VOLTAGE, + EntityType.BATTERY_LOAD_VOLTAGE, self._get_device_battery_load_voltage_sensor_id(device_number), - "Battery load voltage", ) def _add_central_unit_bus_entities(self, bus_number: int) -> None: self._add_entity( None, - EntityType.VOLTAGE, + EntityType.BUS_VOLTAGE, self._get_central_unit_bus_voltage_sensor_id(bus_number), + None, self._get_central_unit_bus_voltage_sensor_name(bus_number), ) self._add_entity( None, - EntityType.CURRENT, + EntityType.BUS_DEVICES_CURRENT, self._get_central_unit_bus_devices_loss_sensor_id(bus_number), + None, self._get_central_unit_bus_devices_loss_sensor_name(bus_number), ) def _add_pulse_to_electricity_meter(self, device_number: int, pulse_number: int = 0) -> None: pulse_sensor_id = self._get_device_pulse_sensor_id(device_number, pulse_number) - if pulse_sensor_id in self.entities[EntityType.PULSE]: + if pulse_sensor_id in self.entities[EntityType.PULSES]: # May be already added return @@ -2011,14 +1993,13 @@ def _add_pulse_to_electricity_meter(self, device_number: int, pulse_number: int self._add_entity( hass_device, - EntityType.PULSE, + EntityType.PULSES, pulse_sensor_id, - "Pulses", ) async_dispatcher_send(self._hass, self.signal_entities_added()) - def _add_entity(self, hass_device: JablotronHassDevice | None, entity_type: EntityType, entity_id: str, entity_name: str, initial_state: StateType = None) -> None: + def _add_entity(self, hass_device: JablotronHassDevice | None, entity_type: EntityType, entity_id: str, initial_state: StateType = None, entity_name: str | None = None) -> None: if entity_id in self.entities[entity_type]: return @@ -2427,14 +2408,7 @@ def _get_central_unit_bus_voltage_sensor_id(bus_number: int) -> str: @staticmethod def _get_central_unit_bus_voltage_sensor_name(bus_number: int) -> str: - sensor_name = "BUS" - - if bus_number != 1: - sensor_name += " {}".format(bus_number) - - sensor_name += " voltage" - - return sensor_name + return "BUS {} voltage".format(bus_number) @staticmethod def _get_central_unit_bus_devices_loss_sensor_id(bus_number: int) -> str: @@ -2447,14 +2421,7 @@ def _get_central_unit_bus_devices_loss_sensor_id(bus_number: int) -> str: @staticmethod def _get_central_unit_bus_devices_loss_sensor_name(bus_number: int) -> str: - sensor_name = "BUS" - - if bus_number != 1: - sensor_name += " {}".format(bus_number) - - sensor_name += " devices loss" - - return sensor_name + return "BUS {} devices loss".format(bus_number) @staticmethod def _get_device_pulse_sensor_id(device_number: int, pulse_number: int = 0) -> str: diff --git a/custom_components/jablotron100/sensor.py b/custom_components/jablotron100/sensor.py index b0fe003..f074197 100644 --- a/custom_components/jablotron100/sensor.py +++ b/custom_components/jablotron100/sensor.py @@ -36,6 +36,14 @@ entity_category=EntityCategory.DIAGNOSTIC, icon="mdi:wifi", ), + EntityType.GSM_SIGNAL_STRENGTH: SensorEntityDescription( + key=EntityType.GSM_SIGNAL_STRENGTH, + state_class=SensorStateClass.MEASUREMENT, + native_unit_of_measurement=PERCENTAGE, + suggested_display_precision=0, + entity_category=EntityCategory.DIAGNOSTIC, + icon="mdi:wifi", + ), EntityType.BATTERY_LEVEL: SensorEntityDescription( key=EntityType.BATTERY_LEVEL, state_class=SensorStateClass.MEASUREMENT, @@ -44,36 +52,52 @@ device_class=SensorDeviceClass.BATTERY, entity_category=EntityCategory.DIAGNOSTIC, ), - EntityType.TEMPERATURE: SensorEntityDescription( - key=EntityType.TEMPERATURE, + EntityType.BATTERY_STANDBY_VOLTAGE: SensorEntityDescription( + key=EntityType.BATTERY_STANDBY_VOLTAGE, state_class=SensorStateClass.MEASUREMENT, - native_unit_of_measurement=UnitOfTemperature.CELSIUS, + native_unit_of_measurement=UnitOfElectricPotential.VOLT, suggested_display_precision=1, - device_class=SensorDeviceClass.TEMPERATURE, + device_class=SensorDeviceClass.VOLTAGE, + entity_category=EntityCategory.DIAGNOSTIC, ), - EntityType.VOLTAGE: SensorEntityDescription( - key=EntityType.VOLTAGE, + EntityType.BATTERY_LOAD_VOLTAGE: SensorEntityDescription( + key=EntityType.BATTERY_LOAD_VOLTAGE, state_class=SensorStateClass.MEASUREMENT, native_unit_of_measurement=UnitOfElectricPotential.VOLT, suggested_display_precision=1, device_class=SensorDeviceClass.VOLTAGE, entity_category=EntityCategory.DIAGNOSTIC, ), - EntityType.CURRENT: SensorEntityDescription( - key=EntityType.CURRENT, + EntityType.TEMPERATURE: SensorEntityDescription( + key=EntityType.TEMPERATURE, + state_class=SensorStateClass.MEASUREMENT, + native_unit_of_measurement=UnitOfTemperature.CELSIUS, + suggested_display_precision=1, + device_class=SensorDeviceClass.TEMPERATURE, + ), + EntityType.BUS_DEVICES_CURRENT: SensorEntityDescription( + key=EntityType.BUS_DEVICES_CURRENT, state_class=SensorStateClass.MEASUREMENT, native_unit_of_measurement=UnitOfElectricCurrent.MILLIAMPERE, suggested_display_precision=0, device_class=SensorDeviceClass.CURRENT, entity_category=EntityCategory.DIAGNOSTIC, ), - EntityType.PULSE: SensorEntityDescription( - key=EntityType.PULSE, + EntityType.BUS_VOLTAGE: SensorEntityDescription( + key=EntityType.BUS_VOLTAGE, + state_class=SensorStateClass.MEASUREMENT, + native_unit_of_measurement=UnitOfElectricPotential.VOLT, + suggested_display_precision=1, + device_class=SensorDeviceClass.VOLTAGE, + entity_category=EntityCategory.DIAGNOSTIC, + ), + EntityType.PULSES: SensorEntityDescription( + key=EntityType.PULSES, state_class=SensorStateClass.TOTAL_INCREASING, suggested_display_precision=0, ), - EntityType.IP: SensorEntityDescription( - key=EntityType.IP, + EntityType.LAN_IP: SensorEntityDescription( + key=EntityType.LAN_IP, entity_category=EntityCategory.DIAGNOSTIC, ), } @@ -108,11 +132,11 @@ def __init__( description: SensorEntityDescription, ) -> None: self.entity_description = description + self._attr_translation_key = description.key if control.name is None else control.name.lower().replace(" ", "_") super().__init__(jablotron, control) def _update_attributes(self) -> None: super()._update_attributes() - self._attr_name = self._control.name self._attr_native_value = self._get_state() diff --git a/custom_components/jablotron100/strings.json b/custom_components/jablotron100/strings.json index 2350105..cc01917 100644 --- a/custom_components/jablotron100/strings.json +++ b/custom_components/jablotron100/strings.json @@ -339,5 +339,119 @@ "empty": "Empty" } } + }, + "entity": { + "binary_sensor": { + "battery_problem": { + "name": "Battery problem" + }, + "device_state_motion": { + "name": "Motion" + }, + "device_state_window": { + "name": "Window" + }, + "device_state_door": { + "name": "Door" + }, + "device_state_garage_door": { + "name": "Garage door" + }, + "device_state_glass": { + "name": "Glass" + }, + "device_state_moisture": { + "name": "Moisture" + }, + "device_state_gas": { + "name": "Gas" + }, + "device_state_smoke": { + "name": "Smoke" + }, + "device_state_lock": { + "name": "Lock" + }, + "device_state_tamper": { + "name": "Tamper" + }, + "device_state_thermostat": { + "name": "Thermostat" + }, + "device_state_thermometer": { + "name": "Thermometer" + }, + "device_state_indoor_siren_button": { + "name": "Button" + }, + "device_state_button": { + "name": "Button" + }, + "device_state_valve": { + "name": "Valve" + }, + "device_state_custom": { + "name": "Custom" + }, + "fire": { + "name": "Fire" + }, + "gsm_signal": { + "name": "GSM signal" + }, + "lan_connection": { + "name": "LAN connection" + }, + "power_supple": { + "name": "Power supply" + }, + "problem": { + "name": "Problem" + } + }, + "sensor": { + "battery_level": { + "name": "Battery level" + }, + "battery_standby_voltage": { + "name": "Battery standby voltage" + }, + "battery_load_voltage": { + "name": "Battery load voltage" + }, + "bus_1_devices_loss": { + "name": "BUS 1 devices loss" + }, + "bus_2_devices_loss": { + "name": "BUS 2 devices loss" + }, + "bus_3_devices_loss": { + "name": "BUS 3 devices loss" + }, + "bus_1_voltage": { + "name": "BUS 1 voltage" + }, + "bus_2_voltage": { + "name": "BUS 2 voltage" + }, + "bus_3_voltage": { + "name": "BUS 3 voltage" + }, + "gsm_signal_strength": { + "name": "GSM signal strength" + }, + "lan_ip": { + "name": "LAN IP" + }, + "pulses": { + "name": "Pulses" + }, + "signal_strength": { + "name": "Signal strength" + }, + "temperature": { + "name": "Temperature" + } + } } } diff --git a/custom_components/jablotron100/translations/cs.json b/custom_components/jablotron100/translations/cs.json index d3df34a..55e34b2 100644 --- a/custom_components/jablotron100/translations/cs.json +++ b/custom_components/jablotron100/translations/cs.json @@ -339,5 +339,119 @@ "empty": "Prázdné" } } + }, + "entity": { + "binary_sensor": { + "battery_problem": { + "name": "Problém baterie" + }, + "device_state_motion": { + "name": "Pohyb" + }, + "device_state_window": { + "name": "Okno" + }, + "device_state_door": { + "name": "Dveře" + }, + "device_state_garage_door": { + "name": "Garážová vrata" + }, + "device_state_glass": { + "name": "Sklo" + }, + "device_state_moisture": { + "name": "Vlhkost" + }, + "device_state_gas": { + "name": "Plyn" + }, + "device_state_smoke": { + "name": "Kouř" + }, + "device_state_lock": { + "name": "Zámek" + }, + "device_state_tamper": { + "name": "Tamper" + }, + "device_state_thermostat": { + "name": "Termostat" + }, + "device_state_thermometer": { + "name": "Teploměr" + }, + "device_state_indoor_siren_button": { + "name": "Tlačítko" + }, + "device_state_button": { + "name": "Tlačítko" + }, + "device_state_valve": { + "name": "Ventil" + }, + "device_state_custom": { + "name": "Vlastní" + }, + "fire": { + "name": "Oheň" + }, + "gsm_signal": { + "name": "GSM signál" + }, + "lan_connection": { + "name": "Připojení k LAN" + }, + "power_supple": { + "name": "Napájení" + }, + "problem": { + "name": "Problém" + } + }, + "sensor": { + "battery_level": { + "name": "Úroveň baterie" + }, + "battery_standby_voltage": { + "name": "Napětí baterie v klidu" + }, + "battery_load_voltage": { + "name": "Napětí baterie při zátěži" + }, + "bus_1_devices_loss": { + "name": "Odebíraný proud na sběrnici 1" + }, + "bus_2_devices_loss": { + "name": "Odebíraný proud na sběrnici 2" + }, + "bus_3_devices_loss": { + "name": "Odebíraný proud na sběrnici 3" + }, + "bus_1_voltage": { + "name": "Napětí na sběrnici 1" + }, + "bus_2_voltage": { + "name": "Napětí na sběrnici 2" + }, + "bus_3_voltage": { + "name": "Napětí na sběrnici 3" + }, + "gsm_signal_strength": { + "name": "Síla GSM signálu" + }, + "lan_ip": { + "name": "IP adresa LAN" + }, + "pulses": { + "name": "Pulsy" + }, + "signal_strength": { + "name": "Síla signálu" + }, + "temperature": { + "name": "Teplota" + } + } } }