From 6d084c11a0c9aede01638eaa2c9e110e7c551d99 Mon Sep 17 00:00:00 2001 From: Shocker Date: Thu, 11 Dec 2025 10:58:20 +0200 Subject: [PATCH] Implement Regular Expressions data extraction --- README.md | 12 ++++- custom_components/http_agent/coordinator.py | 45 +++++++++++++++++++ custom_components/http_agent/strings.json | 42 ++++++++--------- .../http_agent/translations/da.json | 42 ++++++++--------- .../http_agent/translations/de.json | 42 ++++++++--------- .../http_agent/translations/en.json | 42 ++++++++--------- .../http_agent/translations/fi.json | 42 ++++++++--------- .../http_agent/translations/no.json | 42 ++++++++--------- .../http_agent/translations/sv.json | 42 ++++++++--------- 9 files changed, 202 insertions(+), 149 deletions(-) diff --git a/README.md b/README.md index e329efd..7e8ce0d 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ # HTTP Agent for Home Assistant -HTTP Agent is a powerful Home Assistant custom integration that creates individual HTTP sensor instances with advanced data extraction capabilities supporting both JSON, XML and even HTML/CSS-Selectors. Unlike traditional hub-based integrations, each HTTP endpoint becomes its own integration instance and then you can define multiple sensors for that request. +HTTP Agent is a powerful Home Assistant custom integration that creates individual HTTP sensor instances with advanced data extraction capabilities supporting JSON, XML, HTML/CSS-Selectors and Regular Expressions. Unlike traditional hub-based integrations, each HTTP endpoint becomes its own integration instance and then you can define multiple sensors for that request. ## Installation @@ -55,7 +55,7 @@ Configure request body with content type selection. The field supports templates ### Step 4: Sensors Define sensors to extract data from the response: - **Name**: Sensor name -- **Extraction Method**: JSON, XML or CSS selectors. +- **Extraction Method**: JSON, XML, CSS selectors or Regular Expression. - **State**: Main sensor value selector/template - **Icon**: Icon selector/template (auto-prefixed with `mdi:`) - **Color**: Color selector/template @@ -86,6 +86,14 @@ Use CSS selectors for HTML content: div[data-sensor="temp"] # Attribute selector ``` +### Regular Expressions +Use regular expressions for text content, use PCRE-format delimiters `/pattern/flags`: +``` +/Some Text: ([0-9]+)/ # single group +/some text: ([0-9]+)/i # case insensitive +/Some Text: ([0-9]+) other text ([a-z]+) # multiple groups, result will be merged "group 1|group 2" +``` + ## Template Support All configuration fields support Home Assistant templates: diff --git a/custom_components/http_agent/coordinator.py b/custom_components/http_agent/coordinator.py index dd108f1..4731cb8 100644 --- a/custom_components/http_agent/coordinator.py +++ b/custom_components/http_agent/coordinator.py @@ -11,6 +11,7 @@ import aiohttp from bs4 import BeautifulSoup +import re from homeassistant.core import HomeAssistant from homeassistant.helpers.template import Template @@ -243,6 +244,9 @@ def _extract_value_auto(self, response: HTTPResponse, selector: str) -> Any: if "html" in content_type or response.soup is not None: methods_to_try.append(("css", self._extract_css_value, response.soup)) + if response.text is not None: + methods_to_try.append(("regex", self._extract_regex_value, response.text)) + # If no content type match, try all available methods if not methods_to_try: if response.json is not None: @@ -333,6 +337,47 @@ def _extract_css_value(self, soup: BeautifulSoup, selector: str) -> Any: return None + def _extract_regex_value(self, text: str, selector: str) -> Any: + """Extract value from text using regular expressions.""" + if not (selector.startswith("/") or selector.count("/") < 2): + return None + + last_slash = selector.rfind("/") + pattern = selector[1:last_slash] + flags_str = selector[last_slash + 1:] + + flag_map = { + "i": re.I, + "m": re.M, + "s": re.S, + "x": re.X, + "a": re.A, + "l": re.L, + } + + re_flags = 0 + for f in flags_str: + if f.lower() in flag_map: + re_flags |= flag_map[f.lower()] + else: + _LOGGER.debug( + "Unhandled regex flag '%s'", + f, + ) + return None + + try: + match = re.search(pattern, text, re_flags) + if match: + if match.lastindex == 1: + return match.group(1) + elif match.lastindex > 1: + return "|".join(match.group(i) for i in range(1, match.lastindex + 1)) + except Exception: + pass + + return None + async def async_close(self) -> None: """Close the HTTP session.""" if self.session: diff --git a/custom_components/http_agent/strings.json b/custom_components/http_agent/strings.json index 83a0681..2ec7f08 100644 --- a/custom_components/http_agent/strings.json +++ b/custom_components/http_agent/strings.json @@ -58,16 +58,16 @@ }, "sensor_config": { "title": "Sensor Configuration", - "description": "Configure the sensor settings. The extraction method (JSON/XPath/CSS) will be automatically detected based on the response content type.", + "description": "Configure the sensor settings. The extraction method (JSON/XPath/CSS/RegEx) will be automatically detected based on the response content type.", "data": { - "sensor_state": "State Selector (JSON/XPath/CSS - auto-detected)", - "sensor_icon": "Icon Selector (JSON/XPath/CSS - auto-detected)", - "sensor_color": "Color Selector (JSON/XPath/CSS - auto-detected)", + "sensor_state": "State Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "sensor_icon": "Icon Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "sensor_color": "Color Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", "sensor_device_class": "Device Class", "sensor_unit": "Unit of Measurement", - "tracker_latitude": "Latitude Selector (JSON/XPath/CSS - auto-detected)", - "tracker_longitude": "Longitude Selector (JSON/XPath/CSS - auto-detected)", - "tracker_location_name": "Location Name Selector (JSON/XPath/CSS - auto-detected)", + "tracker_latitude": "Latitude Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "tracker_longitude": "Longitude Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "tracker_location_name": "Location Name Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", "tracker_source_type": "Source Type" } } @@ -159,17 +159,17 @@ }, "modify_sensor": { "title": "Modify Sensor", - "description": "Edit sensor configuration. The extraction method (JSON/XPath/CSS) will be automatically detected based on the response content type.", + "description": "Edit sensor configuration. The extraction method (JSON/XPath/CSS/RegEx) will be automatically detected based on the response content type.", "data": { "sensor_name": "Sensor Name", - "sensor_state": "State Selector (JSON/XPath/CSS - auto-detected)", - "sensor_icon": "Icon Selector (JSON/XPath/CSS - auto-detected)", - "sensor_color": "Color Selector (JSON/XPath/CSS - auto-detected)", + "sensor_state": "State Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "sensor_icon": "Icon Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "sensor_color": "Color Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", "sensor_device_class": "Device Class", "sensor_unit": "Unit of Measurement", - "tracker_latitude": "Latitude Selector (JSON/XPath/CSS - auto-detected)", - "tracker_longitude": "Longitude Selector (JSON/XPath/CSS - auto-detected)", - "tracker_location_name": "Location Name Selector (JSON/XPath/CSS - auto-detected)", + "tracker_latitude": "Latitude Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "tracker_longitude": "Longitude Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "tracker_location_name": "Location Name Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", "tracker_source_type": "Source Type" } }, @@ -183,16 +183,16 @@ }, "sensor_config": { "title": "Sensor Configuration", - "description": "Configure the sensor settings. The extraction method (JSON/XPath/CSS) will be automatically detected based on the response content type.", + "description": "Configure the sensor settings. The extraction method (JSON/XPath/CSS/RegEx) will be automatically detected based on the response content type.", "data": { - "sensor_state": "State Selector (JSON/XPath/CSS - auto-detected)", - "sensor_icon": "Icon Selector (JSON/XPath/CSS - auto-detected)", - "sensor_color": "Color Selector (JSON/XPath/CSS - auto-detected)", + "sensor_state": "State Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "sensor_icon": "Icon Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "sensor_color": "Color Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", "sensor_device_class": "Device Class", "sensor_unit": "Unit of Measurement", - "tracker_latitude": "Latitude Selector (JSON/XPath/CSS - auto-detected)", - "tracker_longitude": "Longitude Selector (JSON/XPath/CSS - auto-detected)", - "tracker_location_name": "Location Name Selector (JSON/XPath/CSS - auto-detected)", + "tracker_latitude": "Latitude Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "tracker_longitude": "Longitude Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "tracker_location_name": "Location Name Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", "tracker_source_type": "Source Type" } } diff --git a/custom_components/http_agent/translations/da.json b/custom_components/http_agent/translations/da.json index 8ed945a..299461c 100644 --- a/custom_components/http_agent/translations/da.json +++ b/custom_components/http_agent/translations/da.json @@ -58,16 +58,16 @@ }, "sensor_config": { "title": "Sensor-konfiguration", - "description": "Konfigurer sensorindstillingerne. Udvindingsmetoden (JSON/XPath/CSS) vil automatisk blive registreret baseret på svarets indholdstype.", + "description": "Konfigurer sensorindstillingerne. Udvindingsmetoden (JSON/XPath/CSS/RegEx) vil automatisk blive registreret baseret på svarets indholdstype.", "data": { - "sensor_state": "Tilstandsvælger (JSON/XPath/CSS - auto-registreret)", - "sensor_icon": "Ikonvælger (JSON/XPath/CSS - auto-registreret)", - "sensor_color": "Farvevælger (JSON/XPath/CSS - auto-registreret)", + "sensor_state": "Tilstandsvælger (JSON\/XPath\/CSS\/RegEx - auto-registreret)", + "sensor_icon": "Ikonvælger (JSON\/XPath\/CSS\/RegEx - auto-registreret)", + "sensor_color": "Farvevælger (JSON\/XPath\/CSS\/RegEx - auto-registreret)", "sensor_device_class": "Enhedsklasse", "sensor_unit": "Måleenhed", - "tracker_latitude": "Breddegradvælger (JSON/XPath/CSS - auto-registreret)", - "tracker_longitude": "Længdegradvælger (JSON/XPath/CSS - auto-registreret)", - "tracker_location_name": "Lokationsnavnvælger (JSON/XPath/CSS - auto-registreret)", + "tracker_latitude": "Breddegradvælger (JSON\/XPath\/CSS\/RegEx - auto-registreret)", + "tracker_longitude": "Længdegradvælger (JSON\/XPath\/CSS\/RegEx - auto-registreret)", + "tracker_location_name": "Lokationsnavnvælger (JSON\/XPath\/CSS\/RegEx - auto-registreret)", "tracker_source_type": "Kildetype" } } @@ -159,17 +159,17 @@ }, "modify_sensor": { "title": "Modificer sensor", - "description": "Rediger sensor-konfiguration. Udvindingsmetoden (JSON/XPath/CSS) vil automatisk blive registreret baseret på svarets indholdstype.", + "description": "Rediger sensor-konfiguration. Udvindingsmetoden (JSON/XPath/CSS/RegEx) vil automatisk blive registreret baseret på svarets indholdstype.", "data": { "sensor_name": "Sensornavn", - "sensor_state": "Tilstandsvælger (JSON/XPath/CSS - auto-registreret)", - "sensor_icon": "Ikonvælger (JSON/XPath/CSS - auto-registreret)", - "sensor_color": "Farvevælger (JSON/XPath/CSS - auto-registreret)", + "sensor_state": "Tilstandsvælger (JSON\/XPath\/CSS\/RegEx - auto-registreret)", + "sensor_icon": "Ikonvælger (JSON\/XPath\/CSS\/RegEx - auto-registreret)", + "sensor_color": "Farvevælger (JSON\/XPath\/CSS\/RegEx - auto-registreret)", "sensor_device_class": "Enhedsklasse", "sensor_unit": "Måleenhed", - "tracker_latitude": "Breddegradvælger (JSON/XPath/CSS - auto-registreret)", - "tracker_longitude": "Længdegradvælger (JSON/XPath/CSS - auto-registreret)", - "tracker_location_name": "Lokationsnavnvælger (JSON/XPath/CSS - auto-registreret)", + "tracker_latitude": "Breddegradvælger (JSON\/XPath\/CSS\/RegEx - auto-registreret)", + "tracker_longitude": "Længdegradvælger (JSON\/XPath\/CSS\/RegEx - auto-registreret)", + "tracker_location_name": "Lokationsnavnvælger (JSON\/XPath\/CSS\/RegEx - auto-registreret)", "tracker_source_type": "Kildetype" } }, @@ -183,16 +183,16 @@ }, "sensor_config": { "title": "Sensor-konfiguration", - "description": "Konfigurer sensorindstillingerne. Udvindingsmetoden (JSON/XPath/CSS) vil automatisk blive registreret baseret på svarets indholdstype.", + "description": "Konfigurer sensorindstillingerne. Udvindingsmetoden (JSON/XPath/CSS/RegEx) vil automatisk blive registreret baseret på svarets indholdstype.", "data": { - "sensor_state": "Tilstandsvælger (JSON/XPath/CSS - auto-registreret)", - "sensor_icon": "Ikonvælger (JSON/XPath/CSS - auto-registreret)", - "sensor_color": "Farvevælger (JSON/XPath/CSS - auto-registreret)", + "sensor_state": "Tilstandsvælger (JSON\/XPath\/CSS\/RegEx - auto-registreret)", + "sensor_icon": "Ikonvælger (JSON\/XPath\/CSS\/RegEx - auto-registreret)", + "sensor_color": "Farvevælger (JSON\/XPath\/CSS\/RegEx - auto-registreret)", "sensor_device_class": "Enhedsklasse", "sensor_unit": "Måleenhed", - "tracker_latitude": "Breddegradvælger (JSON/XPath/CSS - auto-registreret)", - "tracker_longitude": "Længdegradvælger (JSON/XPath/CSS - auto-registreret)", - "tracker_location_name": "Lokationsnavnvælger (JSON/XPath/CSS - auto-registreret)", + "tracker_latitude": "Breddegradvælger (JSON\/XPath\/CSS\/RegEx - auto-registreret)", + "tracker_longitude": "Længdegradvælger (JSON\/XPath\/CSS\/RegEx - auto-registreret)", + "tracker_location_name": "Lokationsnavnvælger (JSON\/XPath\/CSS\/RegEx - auto-registreret)", "tracker_source_type": "Kildetype" } } diff --git a/custom_components/http_agent/translations/de.json b/custom_components/http_agent/translations/de.json index fc17971..5f553ce 100644 --- a/custom_components/http_agent/translations/de.json +++ b/custom_components/http_agent/translations/de.json @@ -58,16 +58,16 @@ }, "sensor_config": { "title": "Sensor-Konfiguration", - "description": "Sensor-Einstellungen konfigurieren. Die Extraktionsmethode (JSON/XPath/CSS) wird automatisch basierend auf dem Antwort-Inhaltstyp erkannt.", + "description": "Sensor-Einstellungen konfigurieren. Die Extraktionsmethode (JSON/XPath/CSS/RegEx) wird automatisch basierend auf dem Antwort-Inhaltstyp erkannt.", "data": { - "sensor_state": "Zustandswähler (JSON/XPath/CSS - automatisch erkannt)", - "sensor_icon": "Symbol-Wähler (JSON/XPath/CSS - automatisch erkannt)", - "sensor_color": "Farb-Wähler (JSON/XPath/CSS - automatisch erkannt)", + "sensor_state": "Zustandswähler (JSON\/XPath\/CSS\/RegEx - automatisch erkannt)", + "sensor_icon": "Symbol-Wähler (JSON\/XPath\/CSS\/RegEx - automatisch erkannt)", + "sensor_color": "Farb-Wähler (JSON\/XPath\/CSS\/RegEx - automatisch erkannt)", "sensor_device_class": "Geräteklasse", "sensor_unit": "Maßeinheit", - "tracker_latitude": "Breitengrad-Wähler (JSON/XPath/CSS - automatisch erkannt)", - "tracker_longitude": "Längengrad-Wähler (JSON/XPath/CSS - automatisch erkannt)", - "tracker_location_name": "Standortname-Wähler (JSON/XPath/CSS - automatisch erkannt)", + "tracker_latitude": "Breitengrad-Wähler (JSON\/XPath\/CSS\/RegEx - automatisch erkannt)", + "tracker_longitude": "Längengrad-Wähler (JSON\/XPath\/CSS\/RegEx - automatisch erkannt)", + "tracker_location_name": "Standortname-Wähler (JSON\/XPath\/CSS\/RegEx - automatisch erkannt)", "tracker_source_type": "Quellentyp" } } @@ -159,17 +159,17 @@ }, "modify_sensor": { "title": "Sensor ändern", - "description": "Sensor-Konfiguration bearbeiten. Die Extraktionsmethode (JSON/XPath/CSS) wird automatisch basierend auf dem Antwort-Inhaltstyp erkannt.", + "description": "Sensor-Konfiguration bearbeiten. Die Extraktionsmethode (JSON/XPath/CSS/RegEx) wird automatisch basierend auf dem Antwort-Inhaltstyp erkannt.", "data": { "sensor_name": "Sensor-Name", - "sensor_state": "Zustandswähler (JSON/XPath/CSS - automatisch erkannt)", - "sensor_icon": "Symbol-Wähler (JSON/XPath/CSS - automatisch erkannt)", - "sensor_color": "Farb-Wähler (JSON/XPath/CSS - automatisch erkannt)", + "sensor_state": "Zustandswähler (JSON\/XPath\/CSS\/RegEx - automatisch erkannt)", + "sensor_icon": "Symbol-Wähler (JSON\/XPath\/CSS\/RegEx - automatisch erkannt)", + "sensor_color": "Farb-Wähler (JSON\/XPath\/CSS\/RegEx - automatisch erkannt)", "sensor_device_class": "Geräteklasse", "sensor_unit": "Maßeinheit", - "tracker_latitude": "Breitengrad-Wähler (JSON/XPath/CSS - automatisch erkannt)", - "tracker_longitude": "Längengrad-Wähler (JSON/XPath/CSS - automatisch erkannt)", - "tracker_location_name": "Standortname-Wähler (JSON/XPath/CSS - automatisch erkannt)", + "tracker_latitude": "Breitengrad-Wähler (JSON\/XPath\/CSS\/RegEx - automatisch erkannt)", + "tracker_longitude": "Längengrad-Wähler (JSON\/XPath\/CSS\/RegEx - automatisch erkannt)", + "tracker_location_name": "Standortname-Wähler (JSON\/XPath\/CSS\/RegEx - automatisch erkannt)", "tracker_source_type": "Quellentyp" } }, @@ -183,16 +183,16 @@ }, "sensor_config": { "title": "Sensor-Konfiguration", - "description": "Sensor-Einstellungen konfigurieren. Die Extraktionsmethode (JSON/XPath/CSS) wird automatisch basierend auf dem Antwort-Inhaltstyp erkannt.", + "description": "Sensor-Einstellungen konfigurieren. Die Extraktionsmethode (JSON/XPath/CSS/RegEx) wird automatisch basierend auf dem Antwort-Inhaltstyp erkannt.", "data": { - "sensor_state": "Zustandswähler (JSON/XPath/CSS - automatisch erkannt)", - "sensor_icon": "Symbol-Wähler (JSON/XPath/CSS - automatisch erkannt)", - "sensor_color": "Farb-Wähler (JSON/XPath/CSS - automatisch erkannt)", + "sensor_state": "Zustandswähler (JSON\/XPath\/CSS\/RegEx - automatisch erkannt)", + "sensor_icon": "Symbol-Wähler (JSON\/XPath\/CSS\/RegEx - automatisch erkannt)", + "sensor_color": "Farb-Wähler (JSON\/XPath\/CSS\/RegEx - automatisch erkannt)", "sensor_device_class": "Geräteklasse", "sensor_unit": "Maßeinheit", - "tracker_latitude": "Breitengrad-Wähler (JSON/XPath/CSS - automatisch erkannt)", - "tracker_longitude": "Längengrad-Wähler (JSON/XPath/CSS - automatisch erkannt)", - "tracker_location_name": "Standortname-Wähler (JSON/XPath/CSS - automatisch erkannt)", + "tracker_latitude": "Breitengrad-Wähler (JSON\/XPath\/CSS\/RegEx - automatisch erkannt)", + "tracker_longitude": "Längengrad-Wähler (JSON\/XPath\/CSS\/RegEx - automatisch erkannt)", + "tracker_location_name": "Standortname-Wähler (JSON\/XPath\/CSS\/RegEx - automatisch erkannt)", "tracker_source_type": "Quellentyp" } } diff --git a/custom_components/http_agent/translations/en.json b/custom_components/http_agent/translations/en.json index a35cfe1..4ad5dee 100644 --- a/custom_components/http_agent/translations/en.json +++ b/custom_components/http_agent/translations/en.json @@ -58,16 +58,16 @@ }, "sensor_config": { "title": "Sensor Configuration", - "description": "Configure the sensor settings. The extraction method (JSON/XPath/CSS) will be automatically detected based on the response content type.", + "description": "Configure the sensor settings. The extraction method (JSON/XPath/CSS/RegEx) will be automatically detected based on the response content type.", "data": { - "sensor_state": "State Selector (JSON/XPath/CSS - auto-detected)", - "sensor_icon": "Icon Selector (JSON/XPath/CSS - auto-detected)", - "sensor_color": "Color Selector (JSON/XPath/CSS - auto-detected)", + "sensor_state": "State Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "sensor_icon": "Icon Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "sensor_color": "Color Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", "sensor_device_class": "Device Class", "sensor_unit": "Unit of Measurement", - "tracker_latitude": "Latitude Selector (JSON/XPath/CSS - auto-detected)", - "tracker_longitude": "Longitude Selector (JSON/XPath/CSS - auto-detected)", - "tracker_location_name": "Location Name Selector (JSON/XPath/CSS - auto-detected)", + "tracker_latitude": "Latitude Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "tracker_longitude": "Longitude Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "tracker_location_name": "Location Name Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", "tracker_source_type": "Source Type" } } @@ -159,17 +159,17 @@ }, "modify_sensor": { "title": "Modify Sensor", - "description": "Edit sensor configuration. The extraction method (JSON/XPath/CSS) will be automatically detected based on the response content type.", + "description": "Edit sensor configuration. The extraction method (JSON/XPath/CSS/RegEx) will be automatically detected based on the response content type.", "data": { "sensor_name": "Sensor Name", - "sensor_state": "State Selector (JSON/XPath/CSS - auto-detected)", - "sensor_icon": "Icon Selector (JSON/XPath/CSS - auto-detected)", - "sensor_color": "Color Selector (JSON/XPath/CSS - auto-detected)", + "sensor_state": "State Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "sensor_icon": "Icon Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "sensor_color": "Color Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", "sensor_device_class": "Device Class", "sensor_unit": "Unit of Measurement", - "tracker_latitude": "Latitude Selector (JSON/XPath/CSS - auto-detected)", - "tracker_longitude": "Longitude Selector (JSON/XPath/CSS - auto-detected)", - "tracker_location_name": "Location Name Selector (JSON/XPath/CSS - auto-detected)", + "tracker_latitude": "Latitude Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "tracker_longitude": "Longitude Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "tracker_location_name": "Location Name Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", "tracker_source_type": "Source Type" } }, @@ -183,16 +183,16 @@ }, "sensor_config": { "title": "Sensor Configuration", - "description": "Configure the sensor settings. The extraction method (JSON/XPath/CSS) will be automatically detected based on the response content type.", + "description": "Configure the sensor settings. The extraction method (JSON/XPath/CSS/RegEx) will be automatically detected based on the response content type.", "data": { - "sensor_state": "State Selector (JSON/XPath/CSS - auto-detected)", - "sensor_icon": "Icon Selector (JSON/XPath/CSS - auto-detected)", - "sensor_color": "Color Selector (JSON/XPath/CSS - auto-detected)", + "sensor_state": "State Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "sensor_icon": "Icon Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "sensor_color": "Color Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", "sensor_device_class": "Device Class", "sensor_unit": "Unit of Measurement", - "tracker_latitude": "Latitude Selector (JSON/XPath/CSS - auto-detected)", - "tracker_longitude": "Longitude Selector (JSON/XPath/CSS - auto-detected)", - "tracker_location_name": "Location Name Selector (JSON/XPath/CSS - auto-detected)", + "tracker_latitude": "Latitude Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "tracker_longitude": "Longitude Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", + "tracker_location_name": "Location Name Selector (JSON\/XPath\/CSS\/RegEx - auto-detected)", "tracker_source_type": "Source Type" } } diff --git a/custom_components/http_agent/translations/fi.json b/custom_components/http_agent/translations/fi.json index 89aa8bf..ef68d2e 100644 --- a/custom_components/http_agent/translations/fi.json +++ b/custom_components/http_agent/translations/fi.json @@ -58,16 +58,16 @@ }, "sensor_config": { "title": "Anturikonfigurointi", - "description": "Konfiguroi anturin asetukset. Poimimismenetelmä (JSON/XPath/CSS) tunnistetaan automaattisesti vastauksen sisältötyypin perusteella.", + "description": "Konfiguroi anturin asetukset. Poimimismenetelmä (JSON/XPath/CSS/RegEx) tunnistetaan automaattisesti vastauksen sisältötyypin perusteella.", "data": { - "sensor_state": "Tilavalitsin (JSON/XPath/CSS - automaattisesti tunnistettu)", - "sensor_icon": "Kuvatunnusten valitsin (JSON/XPath/CSS - automaattisesti tunnistettu)", - "sensor_color": "Värin valitsin (JSON/XPath/CSS - automaattisesti tunnistettu)", + "sensor_state": "Tilavalitsin (JSON\/XPath\/CSS\/RegEx - automaattisesti tunnistettu)", + "sensor_icon": "Kuvatunnusten valitsin (JSON\/XPath\/CSS\/RegEx - automaattisesti tunnistettu)", + "sensor_color": "Värin valitsin (JSON\/XPath\/CSS\/RegEx - automaattisesti tunnistettu)", "sensor_device_class": "Laitteen luokka", "sensor_unit": "Mittayksikkö", - "tracker_latitude": "Leveysasteen valitsin (JSON/XPath/CSS - automaattisesti tunnistettu)", - "tracker_longitude": "Pituusasteen valitsin (JSON/XPath/CSS - automaattisesti tunnistettu)", - "tracker_location_name": "Sijainnin nimen valitsin (JSON/XPath/CSS - automaattisesti tunnistettu)", + "tracker_latitude": "Leveysasteen valitsin (JSON\/XPath\/CSS\/RegEx - automaattisesti tunnistettu)", + "tracker_longitude": "Pituusasteen valitsin (JSON\/XPath\/CSS\/RegEx - automaattisesti tunnistettu)", + "tracker_location_name": "Sijainnin nimen valitsin (JSON\/XPath\/CSS\/RegEx - automaattisesti tunnistettu)", "tracker_source_type": "Lähdetyyppi" } } @@ -159,17 +159,17 @@ }, "modify_sensor": { "title": "Muuta anturia", - "description": "Muokkaa anturikonfiguraatiota. Poimimismenetelmä (JSON/XPath/CSS) tunnistetaan automaattisesti vastauksen sisältötyypin perusteella.", + "description": "Muokkaa anturikonfiguraatiota. Poimimismenetelmä (JSON/XPath/CSS/RegEx) tunnistetaan automaattisesti vastauksen sisältötyypin perusteella.", "data": { "sensor_name": "Anturin nimi", - "sensor_state": "Tilavalitsin (JSON/XPath/CSS - automaattisesti tunnistettu)", - "sensor_icon": "Kuvatunnusten valitsin (JSON/XPath/CSS - automaattisesti tunnistettu)", - "sensor_color": "Värin valitsin (JSON/XPath/CSS - automaattisesti tunnistettu)", + "sensor_state": "Tilavalitsin (JSON\/XPath\/CSS\/RegEx - automaattisesti tunnistettu)", + "sensor_icon": "Kuvatunnusten valitsin (JSON\/XPath\/CSS\/RegEx - automaattisesti tunnistettu)", + "sensor_color": "Värin valitsin (JSON\/XPath\/CSS\/RegEx - automaattisesti tunnistettu)", "sensor_device_class": "Laitteen luokka", "sensor_unit": "Mittayksikkö", - "tracker_latitude": "Leveysasteen valitsin (JSON/XPath/CSS - automaattisesti tunnistettu)", - "tracker_longitude": "Pituusasteen valitsin (JSON/XPath/CSS - automaattisesti tunnistettu)", - "tracker_location_name": "Sijainnin nimen valitsin (JSON/XPath/CSS - automaattisesti tunnistettu)", + "tracker_latitude": "Leveysasteen valitsin (JSON\/XPath\/CSS\/RegEx - automaattisesti tunnistettu)", + "tracker_longitude": "Pituusasteen valitsin (JSON\/XPath\/CSS\/RegEx - automaattisesti tunnistettu)", + "tracker_location_name": "Sijainnin nimen valitsin (JSON\/XPath\/CSS\/RegEx - automaattisesti tunnistettu)", "tracker_source_type": "Lähdetyyppi" } }, @@ -183,16 +183,16 @@ }, "sensor_config": { "title": "Anturikonfigurointi", - "description": "Konfiguroi anturin asetukset. Poimimismenetelmä (JSON/XPath/CSS) tunnistetaan automaattisesti vastauksen sisältötyypin perusteella.", + "description": "Konfiguroi anturin asetukset. Poimimismenetelmä (JSON/XPath/CSS/RegEx) tunnistetaan automaattisesti vastauksen sisältötyypin perusteella.", "data": { - "sensor_state": "Tilavalitsin (JSON/XPath/CSS - automaattisesti tunnistettu)", - "sensor_icon": "Kuvatunnusten valitsin (JSON/XPath/CSS - automaattisesti tunnistettu)", - "sensor_color": "Värin valitsin (JSON/XPath/CSS - automaattisesti tunnistettu)", + "sensor_state": "Tilavalitsin (JSON\/XPath\/CSS\/RegEx - automaattisesti tunnistettu)", + "sensor_icon": "Kuvatunnusten valitsin (JSON\/XPath\/CSS\/RegEx - automaattisesti tunnistettu)", + "sensor_color": "Värin valitsin (JSON\/XPath\/CSS\/RegEx - automaattisesti tunnistettu)", "sensor_device_class": "Laitteen luokka", "sensor_unit": "Mittayksikkö", - "tracker_latitude": "Leveysasteen valitsin (JSON/XPath/CSS - automaattisesti tunnistettu)", - "tracker_longitude": "Pituusasteen valitsin (JSON/XPath/CSS - automaattisesti tunnistettu)", - "tracker_location_name": "Sijainnin nimen valitsin (JSON/XPath/CSS - automaattisesti tunnistettu)", + "tracker_latitude": "Leveysasteen valitsin (JSON\/XPath\/CSS\/RegEx - automaattisesti tunnistettu)", + "tracker_longitude": "Pituusasteen valitsin (JSON\/XPath\/CSS\/RegEx - automaattisesti tunnistettu)", + "tracker_location_name": "Sijainnin nimen valitsin (JSON\/XPath\/CSS\/RegEx - automaattisesti tunnistettu)", "tracker_source_type": "Lähdetyyppi" } } diff --git a/custom_components/http_agent/translations/no.json b/custom_components/http_agent/translations/no.json index 3ae5caf..765f963 100644 --- a/custom_components/http_agent/translations/no.json +++ b/custom_components/http_agent/translations/no.json @@ -58,16 +58,16 @@ }, "sensor_config": { "title": "Sensorkonfigurasjon", - "description": "Konfigurer sensorinnstillingene. Utvinningsmetoden (JSON/XPath/CSS) vil automatisk bli oppdaget basert på responsinnholdstypen.", + "description": "Konfigurer sensorinnstillingene. Utvinningsmetoden (JSON/XPath/CSS/RegEx) vil automatisk bli oppdaget basert på responsinnholdstypen.", "data": { - "sensor_state": "Tilstandsvelger (JSON/XPath/CSS - auto-oppdaget)", - "sensor_icon": "Ikonvelger (JSON/XPath/CSS - auto-oppdaget)", - "sensor_color": "Fargevelger (JSON/XPath/CSS - auto-oppdaget)", + "sensor_state": "Tilstandsvelger (JSON\/XPath\/CSS\/RegEx - auto-oppdaget)", + "sensor_icon": "Ikonvelger (JSON\/XPath\/CSS\/RegEx - auto-oppdaget)", + "sensor_color": "Fargevelger (JSON\/XPath\/CSS\/RegEx - auto-oppdaget)", "sensor_device_class": "Enhetsklasse", "sensor_unit": "Måleenhet", - "tracker_latitude": "Breddegradvelger (JSON/XPath/CSS - auto-oppdaget)", - "tracker_longitude": "Lengdegradvelger (JSON/XPath/CSS - auto-oppdaget)", - "tracker_location_name": "Stedsnavnvelger (JSON/XPath/CSS - auto-oppdaget)", + "tracker_latitude": "Breddegradvelger (JSON\/XPath\/CSS\/RegEx - auto-oppdaget)", + "tracker_longitude": "Lengdegradvelger (JSON\/XPath\/CSS\/RegEx - auto-oppdaget)", + "tracker_location_name": "Stedsnavnvelger (JSON\/XPath\/CSS\/RegEx - auto-oppdaget)", "tracker_source_type": "Kildetype" } } @@ -159,17 +159,17 @@ }, "modify_sensor": { "title": "Endre sensor", - "description": "Rediger sensorkonfigurasjon. Utvinningsmetoden (JSON/XPath/CSS) vil automatisk bli oppdaget basert på responsinnholdstypen.", + "description": "Rediger sensorkonfigurasjon. Utvinningsmetoden (JSON/XPath/CSS/RegEx) vil automatisk bli oppdaget basert på responsinnholdstypen.", "data": { "sensor_name": "Sensornavn", - "sensor_state": "Tilstandsvelger (JSON/XPath/CSS - auto-oppdaget)", - "sensor_icon": "Ikonvelger (JSON/XPath/CSS - auto-oppdaget)", - "sensor_color": "Fargevelger (JSON/XPath/CSS - auto-oppdaget)", + "sensor_state": "Tilstandsvelger (JSON\/XPath\/CSS\/RegEx - auto-oppdaget)", + "sensor_icon": "Ikonvelger (JSON\/XPath\/CSS\/RegEx - auto-oppdaget)", + "sensor_color": "Fargevelger (JSON\/XPath\/CSS\/RegEx - auto-oppdaget)", "sensor_device_class": "Enhetsklasse", "sensor_unit": "Måleenhet", - "tracker_latitude": "Breddegradvelger (JSON/XPath/CSS - auto-oppdaget)", - "tracker_longitude": "Lengdegradvelger (JSON/XPath/CSS - auto-oppdaget)", - "tracker_location_name": "Stedsnavnvelger (JSON/XPath/CSS - auto-oppdaget)", + "tracker_latitude": "Breddegradvelger (JSON\/XPath\/CSS\/RegEx - auto-oppdaget)", + "tracker_longitude": "Lengdegradvelger (JSON\/XPath\/CSS\/RegEx - auto-oppdaget)", + "tracker_location_name": "Stedsnavnvelger (JSON\/XPath\/CSS\/RegEx - auto-oppdaget)", "tracker_source_type": "Kildetype" } }, @@ -183,16 +183,16 @@ }, "sensor_config": { "title": "Sensorkonfigurasjon", - "description": "Konfigurer sensorinnstillingene. Utvinningsmetoden (JSON/XPath/CSS) vil automatisk bli oppdaget basert på responsinnholdstypen.", + "description": "Konfigurer sensorinnstillingene. Utvinningsmetoden (JSON/XPath/CSS/RegEx) vil automatisk bli oppdaget basert på responsinnholdstypen.", "data": { - "sensor_state": "Tilstandsvelger (JSON/XPath/CSS - auto-oppdaget)", - "sensor_icon": "Ikonvelger (JSON/XPath/CSS - auto-oppdaget)", - "sensor_color": "Fargevelger (JSON/XPath/CSS - auto-oppdaget)", + "sensor_state": "Tilstandsvelger (JSON\/XPath\/CSS\/RegEx - auto-oppdaget)", + "sensor_icon": "Ikonvelger (JSON\/XPath\/CSS\/RegEx - auto-oppdaget)", + "sensor_color": "Fargevelger (JSON\/XPath\/CSS\/RegEx - auto-oppdaget)", "sensor_device_class": "Enhetsklasse", "sensor_unit": "Måleenhet", - "tracker_latitude": "Breddegradvelger (JSON/XPath/CSS - auto-oppdaget)", - "tracker_longitude": "Lengdegradvelger (JSON/XPath/CSS - auto-oppdaget)", - "tracker_location_name": "Stedsnavnvelger (JSON/XPath/CSS - auto-oppdaget)", + "tracker_latitude": "Breddegradvelger (JSON\/XPath\/CSS\/RegEx - auto-oppdaget)", + "tracker_longitude": "Lengdegradvelger (JSON\/XPath\/CSS\/RegEx - auto-oppdaget)", + "tracker_location_name": "Stedsnavnvelger (JSON\/XPath\/CSS\/RegEx - auto-oppdaget)", "tracker_source_type": "Kildetype" } } diff --git a/custom_components/http_agent/translations/sv.json b/custom_components/http_agent/translations/sv.json index 6a903bc..a1c4cca 100644 --- a/custom_components/http_agent/translations/sv.json +++ b/custom_components/http_agent/translations/sv.json @@ -58,16 +58,16 @@ }, "sensor_config": { "title": "Sensorkonfiguration", - "description": "Konfigurera sensorinställningarna. Extraktionsmetoden (JSON/XPath/CSS) kommer automatiskt att detekteras baserat på svarsinnehållstypen.", + "description": "Konfigurera sensorinställningarna. Extraktionsmetoden (JSON/XPath/CSS/RegEx) kommer automatiskt att detekteras baserat på svarsinnehållstypen.", "data": { - "sensor_state": "Tillståndsväljare (JSON/XPath/CSS - auto-detekterad)", - "sensor_icon": "Ikonväljare (JSON/XPath/CSS - auto-detekterad)", - "sensor_color": "Färgväljare (JSON/XPath/CSS - auto-detekterad)", + "sensor_state": "Tillståndsväljare (JSON\/XPath\/CSS\/RegEx - auto-detekterad)", + "sensor_icon": "Ikonväljare (JSON\/XPath\/CSS\/RegEx - auto-detekterad)", + "sensor_color": "Färgväljare (JSON\/XPath\/CSS\/RegEx - auto-detekterad)", "sensor_device_class": "Enhetsklass", "sensor_unit": "Mätenhet", - "tracker_latitude": "Latitudväljare (JSON/XPath/CSS - auto-detekterad)", - "tracker_longitude": "Longitudväljare (JSON/XPath/CSS - auto-detekterad)", - "tracker_location_name": "Platsnamnsväljare (JSON/XPath/CSS - auto-detekterad)", + "tracker_latitude": "Latitudväljare (JSON\/XPath\/CSS\/RegEx - auto-detekterad)", + "tracker_longitude": "Longitudväljare (JSON\/XPath\/CSS\/RegEx - auto-detekterad)", + "tracker_location_name": "Platsnamnsväljare (JSON\/XPath\/CSS\/RegEx - auto-detekterad)", "tracker_source_type": "Källtyp" } } @@ -159,17 +159,17 @@ }, "modify_sensor": { "title": "Ändra sensor", - "description": "Redigera sensorkonfiguration. Extraktionsmetoden (JSON/XPath/CSS) kommer automatiskt att detekteras baserat på svarsinnehållstypen.", + "description": "Redigera sensorkonfiguration. Extraktionsmetoden (JSON/XPath/CSS/RegEx) kommer automatiskt att detekteras baserat på svarsinnehållstypen.", "data": { "sensor_name": "Sensornamn", - "sensor_state": "Tillståndsväljare (JSON/XPath/CSS - auto-detekterad)", - "sensor_icon": "Ikonväljare (JSON/XPath/CSS - auto-detekterad)", - "sensor_color": "Färgväljare (JSON/XPath/CSS - auto-detekterad)", + "sensor_state": "Tillståndsväljare (JSON\/XPath\/CSS\/RegEx - auto-detekterad)", + "sensor_icon": "Ikonväljare (JSON\/XPath\/CSS\/RegEx - auto-detekterad)", + "sensor_color": "Färgväljare (JSON\/XPath\/CSS\/RegEx - auto-detekterad)", "sensor_device_class": "Enhetsklass", "sensor_unit": "Mätenhet", - "tracker_latitude": "Latitudväljare (JSON/XPath/CSS - auto-detekterad)", - "tracker_longitude": "Longitudväljare (JSON/XPath/CSS - auto-detekterad)", - "tracker_location_name": "Platsnamnsväljare (JSON/XPath/CSS - auto-detekterad)", + "tracker_latitude": "Latitudväljare (JSON\/XPath\/CSS\/RegEx - auto-detekterad)", + "tracker_longitude": "Longitudväljare (JSON\/XPath\/CSS\/RegEx - auto-detekterad)", + "tracker_location_name": "Platsnamnsväljare (JSON\/XPath\/CSS\/RegEx - auto-detekterad)", "tracker_source_type": "Källtyp" } }, @@ -183,16 +183,16 @@ }, "sensor_config": { "title": "Sensorkonfiguration", - "description": "Konfigurera sensorinställningarna. Extraktionsmetoden (JSON/XPath/CSS) kommer automatiskt att detekteras baserat på svarsinnehållstypen.", + "description": "Konfigurera sensorinställningarna. Extraktionsmetoden (JSON/XPath/CSS/RegEx) kommer automatiskt att detekteras baserat på svarsinnehållstypen.", "data": { - "sensor_state": "Tillståndsväljare (JSON/XPath/CSS - auto-detekterad)", - "sensor_icon": "Ikonväljare (JSON/XPath/CSS - auto-detekterad)", - "sensor_color": "Färgväljare (JSON/XPath/CSS - auto-detekterad)", + "sensor_state": "Tillståndsväljare (JSON\/XPath\/CSS\/RegEx - auto-detekterad)", + "sensor_icon": "Ikonväljare (JSON\/XPath\/CSS\/RegEx - auto-detekterad)", + "sensor_color": "Färgväljare (JSON\/XPath\/CSS\/RegEx - auto-detekterad)", "sensor_device_class": "Enhetsklass", "sensor_unit": "Mätenhet", - "tracker_latitude": "Latitudväljare (JSON/XPath/CSS - auto-detekterad)", - "tracker_longitude": "Longitudväljare (JSON/XPath/CSS - auto-detekterad)", - "tracker_location_name": "Platsnamnsväljare (JSON/XPath/CSS - auto-detekterad)", + "tracker_latitude": "Latitudväljare (JSON\/XPath\/CSS\/RegEx - auto-detekterad)", + "tracker_longitude": "Longitudväljare (JSON\/XPath\/CSS\/RegEx - auto-detekterad)", + "tracker_location_name": "Platsnamnsväljare (JSON\/XPath\/CSS\/RegEx - auto-detekterad)", "tracker_source_type": "Källtyp" } }