From 92cd511f6a2d165405d80688dcaa484a57f524c1 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Wed, 25 Jan 2023 11:52:00 +0100 Subject: [PATCH 01/28] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 30058f1..48db594 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ jsonschema==3.2.0 singleton-decorator==1.0.0 -websocket-client==0.57.0 +websocket-client==1.4.2 From 41bccd58107257ade825fdf0e812e7f033c46eeb Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Wed, 25 Jan 2023 12:03:50 +0100 Subject: [PATCH 02/28] Update ipc.py --- gateway_addon/ipc.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gateway_addon/ipc.py b/gateway_addon/ipc.py index 3c4c473..e54040a 100644 --- a/gateway_addon/ipc.py +++ b/gateway_addon/ipc.py @@ -86,7 +86,7 @@ def __init__(self, plugin_id, on_message, verbose=False): while not self.registered: time.sleep(0.01) - def on_open(self): + def on_open(self, _): """Event handler for WebSocket opening.""" if self.verbose: print('IpcClient: Connected to server, registering...') @@ -102,7 +102,7 @@ def on_open(self): print('IpcClient: Failed to send message: {}'.format(e)) return - def on_message(self, message): + def on_message(self, _, message): """ Event handler for WebSocket messages. From 46cfd7dd21a1f4c792e0686a91dda7c7004a03c9 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Thu, 26 Jan 2023 00:16:05 +0100 Subject: [PATCH 03/28] Update setup.py --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 7a246aa..a2963a2 100644 --- a/setup.py +++ b/setup.py @@ -24,7 +24,7 @@ requirements = [ 'jsonschema==3.2.0', 'singleton-decorator==1.0.0', - 'websocket-client==0.57.0', + 'websocket-client==1.4.2', ] setup( From 0c90aeff049d5a57ea13908cded4b17c95e1898c Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Wed, 1 Feb 2023 12:22:23 +0100 Subject: [PATCH 04/28] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 48db594..7d0e591 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ jsonschema==3.2.0 singleton-decorator==1.0.0 -websocket-client==1.4.2 +websocket-client==1.5.0 From c13686b2f5ae026c28b331b63e90befce7fb1bc2 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Wed, 1 Feb 2023 12:28:14 +0100 Subject: [PATCH 05/28] Update setup.py --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index a2963a2..0db397e 100644 --- a/setup.py +++ b/setup.py @@ -24,7 +24,7 @@ requirements = [ 'jsonschema==3.2.0', 'singleton-decorator==1.0.0', - 'websocket-client==1.4.2', + 'websocket-client==1.5.0', ] setup( From d08db713e8f8c98027c4bb5c48f3575dd4482f9c Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Thu, 6 Nov 2025 15:20:09 +0100 Subject: [PATCH 06/28] Update property.py --- gateway_addon/property.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gateway_addon/property.py b/gateway_addon/property.py index 353445b..1204ece 100644 --- a/gateway_addon/property.py +++ b/gateway_addon/property.py @@ -122,7 +122,7 @@ def get_value(self): """ return self.value - def set_value(self, value): + def set_value(self, value, origin): """ Set the current value of the property. From 9a71dc958825601590eebc331ca8458b0a542174 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Thu, 18 Dec 2025 14:49:10 +0100 Subject: [PATCH 07/28] Update property.py --- gateway_addon/property.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gateway_addon/property.py b/gateway_addon/property.py index 1204ece..b0809fc 100644 --- a/gateway_addon/property.py +++ b/gateway_addon/property.py @@ -122,7 +122,7 @@ def get_value(self): """ return self.value - def set_value(self, value, origin): + def set_value(self, value, meta): """ Set the current value of the property. From 33d9ef784a77a19f1e84f50c5102d1fb6114b6b8 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Sat, 27 Dec 2025 14:54:14 +0100 Subject: [PATCH 08/28] Update device.py --- gateway_addon/device.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gateway_addon/device.py b/gateway_addon/device.py index 32546ca..8402df3 100644 --- a/gateway_addon/device.py +++ b/gateway_addon/device.py @@ -186,7 +186,7 @@ def connected_notify(self, connected): """ self.adapter.manager_proxy.send_connected_notification(self, connected) - def set_property(self, property_name, value): + def set_property(self, property_name, value, meta): """ Set a property value. @@ -197,7 +197,7 @@ def set_property(self, property_name, value): if not prop: return - prop.set_value(value) + prop.set_value(value, meta) def request_action(self, action_id, action_name, action_input): """ From 1baac43e772bbeacc3105bdd4b7eba821c51af97 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Sat, 27 Dec 2025 15:02:26 +0100 Subject: [PATCH 09/28] Update ipc.py --- gateway_addon/ipc.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gateway_addon/ipc.py b/gateway_addon/ipc.py index e54040a..dc4ce16 100644 --- a/gateway_addon/ipc.py +++ b/gateway_addon/ipc.py @@ -109,6 +109,9 @@ def on_message(self, _, message): message -- the received message """ try: + if os.path.exists('/boot/firmware/developer.txt'): + print('gateway_addon: on_message: \n' + str(message)) + resp = json.loads(message) self.validator.validate({'message': resp}) From 3525041b6e74e55f877af0ebd677f40000fc5ad3 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Wed, 28 Jan 2026 11:00:17 +0100 Subject: [PATCH 10/28] Update ipc.py --- gateway_addon/ipc.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gateway_addon/ipc.py b/gateway_addon/ipc.py index dc4ce16..da433db 100644 --- a/gateway_addon/ipc.py +++ b/gateway_addon/ipc.py @@ -31,6 +31,7 @@ def __init__(self): referrer=None, cache_remote=True, ) + self.developer_mode = os.path.exists('/boot/firmware/developer.txt'): def resolve_remote(self, uri): """ @@ -109,8 +110,8 @@ def on_message(self, _, message): message -- the received message """ try: - if os.path.exists('/boot/firmware/developer.txt'): - print('gateway_addon: on_message: \n' + str(message)) + if self.developer_mode: + print('gateway_addon_python: developer.txt -> on_message: \n' + str(message)) resp = json.loads(message) From 1afe9c15320d6ff8cd49b0e81dada9eb363b4569 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Wed, 28 Jan 2026 22:56:08 +0100 Subject: [PATCH 11/28] Update ipc.py --- gateway_addon/ipc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gateway_addon/ipc.py b/gateway_addon/ipc.py index da433db..f0ec3b3 100644 --- a/gateway_addon/ipc.py +++ b/gateway_addon/ipc.py @@ -31,7 +31,7 @@ def __init__(self): referrer=None, cache_remote=True, ) - self.developer_mode = os.path.exists('/boot/firmware/developer.txt'): + self.developer_mode = os.path.exists('/boot/firmware/developer.txt') def resolve_remote(self, uri): """ From f1ab8769b4d7789b2d5da6ab3f734f656c71ff74 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Thu, 29 Jan 2026 01:00:18 +0100 Subject: [PATCH 12/28] Update ipc.py --- gateway_addon/ipc.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gateway_addon/ipc.py b/gateway_addon/ipc.py index f0ec3b3..97cffac 100644 --- a/gateway_addon/ipc.py +++ b/gateway_addon/ipc.py @@ -31,7 +31,6 @@ def __init__(self): referrer=None, cache_remote=True, ) - self.developer_mode = os.path.exists('/boot/firmware/developer.txt') def resolve_remote(self, uri): """ @@ -67,6 +66,8 @@ def __init__(self, plugin_id, on_message, verbose=False): self.verbose = verbose self.owner_message_handler = on_message + self.developer_mode = os.path.exists('/boot/firmware/developer.txt') + self.validator = jsonschema.Draft7Validator( schema=schema, resolver=Resolver() From 63cb19d832c9d4ab13c95c330cd61b5207be1247 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Thu, 29 Jan 2026 01:27:16 +0100 Subject: [PATCH 13/28] Update ipc.py --- gateway_addon/ipc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gateway_addon/ipc.py b/gateway_addon/ipc.py index 97cffac..bab480c 100644 --- a/gateway_addon/ipc.py +++ b/gateway_addon/ipc.py @@ -67,7 +67,7 @@ def __init__(self, plugin_id, on_message, verbose=False): self.owner_message_handler = on_message self.developer_mode = os.path.exists('/boot/firmware/developer.txt') - + print("ipc.py: self.developer_mode: " + str(self.developer_mode)) self.validator = jsonschema.Draft7Validator( schema=schema, resolver=Resolver() From 5df0dcd1a672aaa16d270991700c02b75d3d1dbf Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Thu, 29 Jan 2026 01:28:10 +0100 Subject: [PATCH 14/28] Update ipc.py --- gateway_addon/ipc.py | 1 + 1 file changed, 1 insertion(+) diff --git a/gateway_addon/ipc.py b/gateway_addon/ipc.py index bab480c..8adfea1 100644 --- a/gateway_addon/ipc.py +++ b/gateway_addon/ipc.py @@ -68,6 +68,7 @@ def __init__(self, plugin_id, on_message, verbose=False): self.developer_mode = os.path.exists('/boot/firmware/developer.txt') print("ipc.py: self.developer_mode: " + str(self.developer_mode)) + self.validator = jsonschema.Draft7Validator( schema=schema, resolver=Resolver() From b3d26fb50bb30bd306880d31672d0b340cb62232 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Thu, 29 Jan 2026 01:35:00 +0100 Subject: [PATCH 15/28] Update ipc.py --- gateway_addon/ipc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gateway_addon/ipc.py b/gateway_addon/ipc.py index 8adfea1..eab4858 100644 --- a/gateway_addon/ipc.py +++ b/gateway_addon/ipc.py @@ -67,7 +67,7 @@ def __init__(self, plugin_id, on_message, verbose=False): self.owner_message_handler = on_message self.developer_mode = os.path.exists('/boot/firmware/developer.txt') - print("ipc.py: self.developer_mode: " + str(self.developer_mode)) + #print("ipc.py: self.developer_mode: " + str(self.developer_mode)) self.validator = jsonschema.Draft7Validator( schema=schema, From 79baa34b16c04d5db08fd1f11c4b5c0531791172 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Thu, 29 Jan 2026 10:41:51 +0100 Subject: [PATCH 16/28] Update addon_manager_proxy.py --- gateway_addon/addon_manager_proxy.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/gateway_addon/addon_manager_proxy.py b/gateway_addon/addon_manager_proxy.py index 9678f41..4ad32a9 100644 --- a/gateway_addon/addon_manager_proxy.py +++ b/gateway_addon/addon_manager_proxy.py @@ -7,6 +7,7 @@ import threading import time import websocket +import inspect from .api_handler_utils import APIRequest, APIResponse from .constants import MessageType @@ -178,6 +179,9 @@ def send_pairing_prompt(self, adapter, prompt, url=None, device=None): url -- URL to site with further explanation or troubleshooting info device -- Device the prompt is associated with """ + if str(adapter.id).endsWth('Adapter'): + adapter.id = adapter.id[:-7] + data = { 'adapterId': adapter.id, 'prompt': prompt, @@ -200,6 +204,8 @@ def send_unpairing_prompt(self, adapter, prompt, url=None, device=None): url -- URL to site with further explanation or troubleshooting info device -- Device the prompt is associated with """ + if str(adapter.id).endsWth('Adapter'): + adapter.id = adapter.id[:-7] data = { 'adapterId': adapter.id, 'prompt': prompt, @@ -477,7 +483,23 @@ def set_prop_fn(proxy, adapter): return try: - prop.set_value(msg['data']['propertyValue']) + if 'meta' in msg['data']: + print("addon_manager_proxy: message has meta") + sig = inspect.signature(prop.set_value) + supports_meta = False + if len(sig.parameters) > 1: + for param in sig.parameters.values(): + if param.name == 'meta' + supports_meta = True + break + + if supports_meta: + print("addon_manager_proxy: addon supports meta") + prop.set_value(msg['data']['propertyValue'],msg['data']['meta']) + else + prop.set_value(msg['data']['propertyValue']) + else: + prop.set_value(msg['data']['propertyValue']) if prop.fire_and_forget: proxy.send_property_changed_notification(prop) except PropertyError: From 585e2d4d19c731c79f79ce5b44c8810f8158cf40 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Thu, 29 Jan 2026 10:43:13 +0100 Subject: [PATCH 17/28] Update addon_manager_proxy.py --- gateway_addon/addon_manager_proxy.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gateway_addon/addon_manager_proxy.py b/gateway_addon/addon_manager_proxy.py index 4ad32a9..12ae61a 100644 --- a/gateway_addon/addon_manager_proxy.py +++ b/gateway_addon/addon_manager_proxy.py @@ -179,8 +179,8 @@ def send_pairing_prompt(self, adapter, prompt, url=None, device=None): url -- URL to site with further explanation or troubleshooting info device -- Device the prompt is associated with """ - if str(adapter.id).endsWth('Adapter'): - adapter.id = adapter.id[:-7] + #if str(adapter.id).endsWth('Adapter'): + # adapter.id = adapter.id[:-7] data = { 'adapterId': adapter.id, @@ -204,8 +204,9 @@ def send_unpairing_prompt(self, adapter, prompt, url=None, device=None): url -- URL to site with further explanation or troubleshooting info device -- Device the prompt is associated with """ - if str(adapter.id).endsWth('Adapter'): - adapter.id = adapter.id[:-7] + #if str(adapter.id).endsWth('Adapter'): + # adapter.id = adapter.id[:-7] + data = { 'adapterId': adapter.id, 'prompt': prompt, From bec6e5c2f5133e0db1824b804abf4a43c8442a14 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Thu, 29 Jan 2026 10:50:11 +0100 Subject: [PATCH 18/28] Update addon_manager_proxy.py --- gateway_addon/addon_manager_proxy.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gateway_addon/addon_manager_proxy.py b/gateway_addon/addon_manager_proxy.py index 12ae61a..14197f7 100644 --- a/gateway_addon/addon_manager_proxy.py +++ b/gateway_addon/addon_manager_proxy.py @@ -484,7 +484,7 @@ def set_prop_fn(proxy, adapter): return try: - if 'meta' in msg['data']: + if 'propertyMeta' in msg['data']: print("addon_manager_proxy: message has meta") sig = inspect.signature(prop.set_value) supports_meta = False @@ -496,7 +496,7 @@ def set_prop_fn(proxy, adapter): if supports_meta: print("addon_manager_proxy: addon supports meta") - prop.set_value(msg['data']['propertyValue'],msg['data']['meta']) + prop.set_value(msg['data']['propertyValue'],msg['data']['propertyMeta']) else prop.set_value(msg['data']['propertyValue']) else: From 7394b289a80731dfb123fe70fee9c2bddec7d170 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Thu, 29 Jan 2026 10:55:37 +0100 Subject: [PATCH 19/28] Update addon_manager_proxy.py --- gateway_addon/addon_manager_proxy.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gateway_addon/addon_manager_proxy.py b/gateway_addon/addon_manager_proxy.py index 14197f7..2cb76c2 100644 --- a/gateway_addon/addon_manager_proxy.py +++ b/gateway_addon/addon_manager_proxy.py @@ -490,7 +490,7 @@ def set_prop_fn(proxy, adapter): supports_meta = False if len(sig.parameters) > 1: for param in sig.parameters.values(): - if param.name == 'meta' + if param.name == 'meta': supports_meta = True break From 9148d2ff2924cbf3254bdcfcbf983330f275c1f9 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Thu, 29 Jan 2026 10:57:42 +0100 Subject: [PATCH 20/28] Update addon_manager_proxy.py --- gateway_addon/addon_manager_proxy.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gateway_addon/addon_manager_proxy.py b/gateway_addon/addon_manager_proxy.py index 2cb76c2..21d461d 100644 --- a/gateway_addon/addon_manager_proxy.py +++ b/gateway_addon/addon_manager_proxy.py @@ -497,7 +497,7 @@ def set_prop_fn(proxy, adapter): if supports_meta: print("addon_manager_proxy: addon supports meta") prop.set_value(msg['data']['propertyValue'],msg['data']['propertyMeta']) - else + else: prop.set_value(msg['data']['propertyValue']) else: prop.set_value(msg['data']['propertyValue']) From e62b77f70d8b8e0567c74bf08980bc65851992e9 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Sun, 1 Mar 2026 02:41:50 +0100 Subject: [PATCH 21/28] Update ipc.py --- gateway_addon/ipc.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gateway_addon/ipc.py b/gateway_addon/ipc.py index eab4858..26757e2 100644 --- a/gateway_addon/ipc.py +++ b/gateway_addon/ipc.py @@ -66,7 +66,7 @@ def __init__(self, plugin_id, on_message, verbose=False): self.verbose = verbose self.owner_message_handler = on_message - self.developer_mode = os.path.exists('/boot/firmware/developer.txt') + self.developer_mode = os.path.exists('/boot/firmware/developer_ipc.txt') #print("ipc.py: self.developer_mode: " + str(self.developer_mode)) self.validator = jsonschema.Draft7Validator( @@ -113,7 +113,7 @@ def on_message(self, _, message): """ try: if self.developer_mode: - print('gateway_addon_python: developer.txt -> on_message: \n' + str(message)) + print('gateway_addon_python: developer_ipc.txt -> on_message: \n' + str(message)) resp = json.loads(message) From 2999aa35669da6713c2b2196eb541b221f4fe82a Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Mon, 6 Apr 2026 22:47:48 +0200 Subject: [PATCH 22/28] Update property.py --- gateway_addon/property.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gateway_addon/property.py b/gateway_addon/property.py index b0809fc..7bd1dbe 100644 --- a/gateway_addon/property.py +++ b/gateway_addon/property.py @@ -122,7 +122,7 @@ def get_value(self): """ return self.value - def set_value(self, value, meta): + def set_value(self, value, meta=None): """ Set the current value of the property. From 445cc1537a7a41b83df6cae9c907bbe82cff02d0 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Mon, 20 Apr 2026 11:55:06 +0200 Subject: [PATCH 23/28] Update addon_manager_proxy.py --- gateway_addon/addon_manager_proxy.py | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/gateway_addon/addon_manager_proxy.py b/gateway_addon/addon_manager_proxy.py index 21d461d..4233a19 100644 --- a/gateway_addon/addon_manager_proxy.py +++ b/gateway_addon/addon_manager_proxy.py @@ -344,12 +344,25 @@ def request_fn(proxy, handler): try: request = APIRequest(**msg['data']['request']) response = handler.handle_request(request) - - proxy.send(MessageType.API_HANDLER_API_RESPONSE, { - 'packageName': package_name, - 'messageId': message_id, - 'response': response.to_json() - }) + if(response){ + proxy.send(MessageType.API_HANDLER_API_RESPONSE, { + 'packageName': package_name, + 'messageId': message_id, + 'response': response.to_json() + }) + } + else{ + proxy.send(MessageType.API_HANDLER_API_RESPONSE, { + 'packageName': package_name, + 'messageId': message_id, + 'response': APIResponse( + status=500, + content_type='text/plain', + content="Error, handler response was null", + ).to_json(), + }) + } + except APIHandlerError as e: proxy.send(MessageType.API_HANDLER_API_RESPONSE, { 'packageName': package_name, From 7b3ad4b16a183edce60d6c5e9c31542c1c8a09c2 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Mon, 20 Apr 2026 11:59:14 +0200 Subject: [PATCH 24/28] Update addon_manager_proxy.py --- gateway_addon/addon_manager_proxy.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gateway_addon/addon_manager_proxy.py b/gateway_addon/addon_manager_proxy.py index 4233a19..bac3830 100644 --- a/gateway_addon/addon_manager_proxy.py +++ b/gateway_addon/addon_manager_proxy.py @@ -344,14 +344,13 @@ def request_fn(proxy, handler): try: request = APIRequest(**msg['data']['request']) response = handler.handle_request(request) - if(response){ + if response: proxy.send(MessageType.API_HANDLER_API_RESPONSE, { 'packageName': package_name, 'messageId': message_id, 'response': response.to_json() }) - } - else{ + else: proxy.send(MessageType.API_HANDLER_API_RESPONSE, { 'packageName': package_name, 'messageId': message_id, @@ -361,7 +360,7 @@ def request_fn(proxy, handler): content="Error, handler response was null", ).to_json(), }) - } + except APIHandlerError as e: proxy.send(MessageType.API_HANDLER_API_RESPONSE, { From 3efd5f0524ae73b7d8802ca43b0d852d5e3fed28 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Wed, 22 Apr 2026 13:35:34 +0200 Subject: [PATCH 25/28] Update setup.py --- setup.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index 0db397e..44ee832 100644 --- a/setup.py +++ b/setup.py @@ -30,11 +30,11 @@ setup( name='gateway_addon', version='1.1.1', - description='Bindings for WebThings Gateway add-ons', + description='Bindings for WebThings Gateway / Candle Controller add-ons', long_description=long_description, - url='https://github.com/WebThingsIO/gateway-addon-python', - author='WebThingsIO', - keywords='webthings gateway addon add-on', + url='https://github.com/createcandle/gateway-addon-python', + author='WebThingsIO + CandleSmartHome.com', + keywords='webthings gateway Candle controller addon add-on', packages=find_packages(exclude=['contrib', 'docs', 'tests']), package_data={'': ['schema/schema.json', 'schema/**/*.json']}, install_requires=requirements, From 434ab93de16a30dc71fc1af7bf411fd4c300c572 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Wed, 22 Apr 2026 13:48:13 +0200 Subject: [PATCH 26/28] Add files via upload --- gateway_addon/addon_manager_proxy.py | 49 ++++------------------------ gateway_addon/device.py | 4 +-- gateway_addon/ipc.py | 6 ---- gateway_addon/property.py | 2 +- 4 files changed, 10 insertions(+), 51 deletions(-) diff --git a/gateway_addon/addon_manager_proxy.py b/gateway_addon/addon_manager_proxy.py index bac3830..9678f41 100644 --- a/gateway_addon/addon_manager_proxy.py +++ b/gateway_addon/addon_manager_proxy.py @@ -7,7 +7,6 @@ import threading import time import websocket -import inspect from .api_handler_utils import APIRequest, APIResponse from .constants import MessageType @@ -179,9 +178,6 @@ def send_pairing_prompt(self, adapter, prompt, url=None, device=None): url -- URL to site with further explanation or troubleshooting info device -- Device the prompt is associated with """ - #if str(adapter.id).endsWth('Adapter'): - # adapter.id = adapter.id[:-7] - data = { 'adapterId': adapter.id, 'prompt': prompt, @@ -204,9 +200,6 @@ def send_unpairing_prompt(self, adapter, prompt, url=None, device=None): url -- URL to site with further explanation or troubleshooting info device -- Device the prompt is associated with """ - #if str(adapter.id).endsWth('Adapter'): - # adapter.id = adapter.id[:-7] - data = { 'adapterId': adapter.id, 'prompt': prompt, @@ -344,24 +337,12 @@ def request_fn(proxy, handler): try: request = APIRequest(**msg['data']['request']) response = handler.handle_request(request) - if response: - proxy.send(MessageType.API_HANDLER_API_RESPONSE, { - 'packageName': package_name, - 'messageId': message_id, - 'response': response.to_json() - }) - else: - proxy.send(MessageType.API_HANDLER_API_RESPONSE, { - 'packageName': package_name, - 'messageId': message_id, - 'response': APIResponse( - status=500, - content_type='text/plain', - content="Error, handler response was null", - ).to_json(), - }) - - + + proxy.send(MessageType.API_HANDLER_API_RESPONSE, { + 'packageName': package_name, + 'messageId': message_id, + 'response': response.to_json() + }) except APIHandlerError as e: proxy.send(MessageType.API_HANDLER_API_RESPONSE, { 'packageName': package_name, @@ -496,23 +477,7 @@ def set_prop_fn(proxy, adapter): return try: - if 'propertyMeta' in msg['data']: - print("addon_manager_proxy: message has meta") - sig = inspect.signature(prop.set_value) - supports_meta = False - if len(sig.parameters) > 1: - for param in sig.parameters.values(): - if param.name == 'meta': - supports_meta = True - break - - if supports_meta: - print("addon_manager_proxy: addon supports meta") - prop.set_value(msg['data']['propertyValue'],msg['data']['propertyMeta']) - else: - prop.set_value(msg['data']['propertyValue']) - else: - prop.set_value(msg['data']['propertyValue']) + prop.set_value(msg['data']['propertyValue']) if prop.fire_and_forget: proxy.send_property_changed_notification(prop) except PropertyError: diff --git a/gateway_addon/device.py b/gateway_addon/device.py index 8402df3..32546ca 100644 --- a/gateway_addon/device.py +++ b/gateway_addon/device.py @@ -186,7 +186,7 @@ def connected_notify(self, connected): """ self.adapter.manager_proxy.send_connected_notification(self, connected) - def set_property(self, property_name, value, meta): + def set_property(self, property_name, value): """ Set a property value. @@ -197,7 +197,7 @@ def set_property(self, property_name, value, meta): if not prop: return - prop.set_value(value, meta) + prop.set_value(value) def request_action(self, action_id, action_name, action_input): """ diff --git a/gateway_addon/ipc.py b/gateway_addon/ipc.py index 26757e2..e54040a 100644 --- a/gateway_addon/ipc.py +++ b/gateway_addon/ipc.py @@ -66,9 +66,6 @@ def __init__(self, plugin_id, on_message, verbose=False): self.verbose = verbose self.owner_message_handler = on_message - self.developer_mode = os.path.exists('/boot/firmware/developer_ipc.txt') - #print("ipc.py: self.developer_mode: " + str(self.developer_mode)) - self.validator = jsonschema.Draft7Validator( schema=schema, resolver=Resolver() @@ -112,9 +109,6 @@ def on_message(self, _, message): message -- the received message """ try: - if self.developer_mode: - print('gateway_addon_python: developer_ipc.txt -> on_message: \n' + str(message)) - resp = json.loads(message) self.validator.validate({'message': resp}) diff --git a/gateway_addon/property.py b/gateway_addon/property.py index 7bd1dbe..353445b 100644 --- a/gateway_addon/property.py +++ b/gateway_addon/property.py @@ -122,7 +122,7 @@ def get_value(self): """ return self.value - def set_value(self, value, meta=None): + def set_value(self, value): """ Set the current value of the property. From 0039ceec4995aaee2209bebe91a0c8cfc31f69f1 Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Wed, 22 Apr 2026 13:58:34 +0200 Subject: [PATCH 27/28] Update setup.py --- setup.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 44ee832..8fbbf4e 100644 --- a/setup.py +++ b/setup.py @@ -32,8 +32,8 @@ version='1.1.1', description='Bindings for WebThings Gateway / Candle Controller add-ons', long_description=long_description, - url='https://github.com/createcandle/gateway-addon-python', - author='WebThingsIO + CandleSmartHome.com', + url='https://github.com/createcandle/gateway-addon-python@no_meta', + author='WebThingsIO and CandleSmartHome.com', keywords='webthings gateway Candle controller addon add-on', packages=find_packages(exclude=['contrib', 'docs', 'tests']), package_data={'': ['schema/schema.json', 'schema/**/*.json']}, From adfa01a799ebb4dc5f2c41cc628f3b440f63e4ed Mon Sep 17 00:00:00 2001 From: flatsiedatsie Date: Wed, 22 Apr 2026 14:04:38 +0200 Subject: [PATCH 28/28] Update setup.cfg Pip says this should now be removed --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index cc78271..421daa0 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,3 +1,3 @@ [bdist_wheel] # This wheel supports both Python 2.x and Python 3.x. -universal=1 +#universal=1