diff --git a/thingsboard_gateway/gateway/tb_gateway_service.py b/thingsboard_gateway/gateway/tb_gateway_service.py index 88c8ab35..5c5c5730 100644 --- a/thingsboard_gateway/gateway/tb_gateway_service.py +++ b/thingsboard_gateway/gateway/tb_gateway_service.py @@ -112,6 +112,7 @@ class TBGatewayService: "stats": self.__form_statistics, "devices": self.__rpc_devices, "update": self.__rpc_update, + "version": self.__rpc_version, } self.__sheduled_rpc_calls = [] self.__self_rpc_sheduled_methods_functions = { @@ -523,6 +524,17 @@ class TBGatewayService: } return result + def __rpc_version(self, *args): + try: + result = {"resp": self.__updater.get_version(), + "code": 200, + } + except Exception as e: + result = {"error": str(e), + "code": 500 + } + return result + def rpc_with_reply_processing(self, topic, content): req_id = self.__rpc_requests_in_progress[topic][0]["data"]["id"] device = self.__rpc_requests_in_progress[topic][0]["device"] diff --git a/thingsboard_gateway/gateway/tb_updater.py b/thingsboard_gateway/gateway/tb_updater.py index cc9ef6f8..5824d3eb 100644 --- a/thingsboard_gateway/gateway/tb_updater.py +++ b/thingsboard_gateway/gateway/tb_updater.py @@ -33,7 +33,7 @@ class TBUpdater(Thread): def __init__(self): super().__init__() self.__version = {"current_version": get_distribution('thingsboard_gateway').version, - "latest_version": None} + "latest_version": get_distribution('thingsboard_gateway').version} self.__instance_id = str(uuid1()) self.__platform = "deb" self.__os_version = platform() @@ -94,7 +94,7 @@ class TBUpdater(Thread): return request_args def update(self): - if self.__version["latest_version"] is not None: + if self.__version["latest_version"] != self.__version["current_version"]: result = TBUtility.install_package("thingsboard-gateway", self.__version["latest_version"]) else: result = "Congratulations! You have the latest version."