From 7fdaba55c9873d84f8ade650240caa6cdf9ee870 Mon Sep 17 00:00:00 2001 From: Torsten Dreyer Date: Tue, 19 Mar 2019 20:02:17 +0000 Subject: [PATCH 01/47] Initial commit for shjq plugin --- shjq/README.md | 5 +++ shjq/__init__.py | 76 +++++++++++++++++++++++++++++++++++++++++++ shjq/plugin.yaml | 34 +++++++++++++++++++ shjq/requirements.txt | 4 +++ 4 files changed, 119 insertions(+) create mode 100644 shjq/README.md create mode 100644 shjq/__init__.py create mode 100755 shjq/plugin.yaml create mode 100644 shjq/requirements.txt diff --git a/shjq/README.md b/shjq/README.md new file mode 100644 index 000000000..9f5bc2436 --- /dev/null +++ b/shjq/README.md @@ -0,0 +1,5 @@ +# shjq + +Version 0.0.1 + + diff --git a/shjq/__init__.py b/shjq/__init__.py new file mode 100644 index 000000000..73d80bc66 --- /dev/null +++ b/shjq/__init__.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python3 +# +######################################################################### +# Copyright 2019 Torsten Dreyer torsten (at) t3r (dot) de +# Version 0.0.1 +######################################################################### +# +# This file is part of SmartHomeNG. +# +# SmartHomeNG is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# SmartHomeNG is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with SmartHomeNG. If not, see . +# +######################################################################### + +import logging +import requests +from requests_file import FileAdapter +import pyjq +from lib.model.smartplugin import SmartPlugin + + +class SHJQ(SmartPlugin): + ALLOW_MULTIINSTANCE = True + PLUGIN_VERSION = "0.0.1" + + def __init__(self, sh, *args, **kwargs): + """ + Initializes the plugin + @param url: URL of the json data to fetch + """ + self.logger = logging.getLogger(__name__) + self._url = self.get_parameter_value('url') + self._cycle = 30 + self._session = requests.Session() + self._session.mount('file://', FileAdapter()) + self._items = {} + + def run(self): + self.alive = True + self.scheduler_add(__name__, self.poll_device, cycle=self._cycle) + + def stop(self): + self.alive = False + + def parse_item(self, item): + if self.has_iattr(item.conf, 'shjq_source'): + attr_value = self.get_iattr_value(item.conf, 'shjq_source') + self._items[item] = attr_value + + def poll_device(self): + try: + response = self._session.get(self._url) + + except Exception as ex: + self.logger.error("Exception when sending GET request for {}: {}".format(self._url,str(ex))) + return + + if response.status_code != 200: + self.logger.error("Bad response code when GETting {}".format(self._url)) + return + + json_obj = response.json() + for k in self._items.keys(): + jqres = pyjq.first(self._items[k], json_obj) + k(jqres) + diff --git a/shjq/plugin.yaml b/shjq/plugin.yaml new file mode 100755 index 000000000..8fa2ac9fb --- /dev/null +++ b/shjq/plugin.yaml @@ -0,0 +1,34 @@ +# Metadata for the Smart-Plugin +plugin: + # Global plugin attributes + type: interface # plugin type (gateway, interface, protocol, system, web) + description: + de: 'jq json parser plugin' + en: 'jq json parser plugin' + maintainer: t3r + tester: none (yet) + keywords: solar power + documentation: http://smarthomeng.de/user/plugins_doc/config/not-yet.html + support: https://knx-user-forum.de/forum/supportforen/smarthome-py/not-yet + + version: 0.0.1 # Plugin version + sh_minversion: 1.4 # minimum shNG version to use this plugin +# sh_maxversion: # maximum shNG version to use this plugin (leave empty if latest) + multi_instance: True # plugin supports multi instance + classname: SHJQ # class containing the plugin + +parameters: + # Definition of parameters to be configured in etc/plugin.yaml + url: + type: str + mandatory: True + description: + de: 'URL of the json input (e.g. http://foo.bar/input.json or file:///path/to/data.json)' + en: 'URL of the json input (e.g. http://foo.bar/input.json or file:///path/to/data.json)' + + +item_attributes: + # Definition of item attributes defined by this plugin + shjq_source: + type: str + diff --git a/shjq/requirements.txt b/shjq/requirements.txt new file mode 100644 index 000000000..76728880f --- /dev/null +++ b/shjq/requirements.txt @@ -0,0 +1,4 @@ +requests>=2.9.1;python_version>'3.2' +requests==2.5.1;python_version=='3.2' +requests-file +pyjq From 49ab7cf2901a34fc7d9eb8827ee048b8e99b82d7 Mon Sep 17 00:00:00 2001 From: Torsten Dreyer Date: Wed, 20 Mar 2019 21:37:20 +0000 Subject: [PATCH 02/47] start with README --- shjq/README.md | 111 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 110 insertions(+), 1 deletion(-) diff --git a/shjq/README.md b/shjq/README.md index 9f5bc2436..5019a9e54 100644 --- a/shjq/README.md +++ b/shjq/README.md @@ -1,5 +1,114 @@ # shjq -Version 0.0.1 +This is a generic JSON to smarthome plugin. Fetch any JSON encoded +data via http(s) or from a file, extract the interesting data and feed +the values to smarthome items. +It uses the lightweight and flexible JSON processor jq [https://stedolan.github.io/jq/] +# Dependencies + +This plugin requires +- requests +- requests-file +- pyjq + +# Configuration + +## Enable the plugin in etc/plugin.yaml + +You can add as many instances as you have JSON sources to process. Make sure to add a +unique instance name to each instance if you configure more than on instance. Those +instance name will serve as a key to the item configuration further down. + +### Plugin specific attributes +#### url + +The address of the json data. Currently http://, https:// and file:// schemes are supported. +Note: using absolute file paths for the file:// schema yields in tripple forward slashes. This +might look funny but it is not an error. + +#### cycle + +The repetitive polling interval in seconds. Defaults to 30 seconds. + +### Example + +The following examples uses openweathermap and it's sample API Key. Don't use this key for anything else +but testing. Examples were taken from +[https://openweathermap.org/current]. + +### http client + + shjq: + class_name: SHJQ + class_path: plugins.shjq + url: https://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22 + cycle: 30 + +### file client + + shjq: + class_name: SHJQ + class_path: plugins.shjq + url: file:///path/to/data.json + cycle: 30 + +### multi instance + shjquk: + class_name: SHJQ + class_path: plugins.shjq + url: https://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22 + instance: london + + shjquk: + class_name: SHJQ + class_path: plugins.shjq + url: https://samples.openweathermap.org/data/2.5/weather?id=2172797&appid=b6907d289e10d714a6e88b30761fae22 + instance: cairns + + +## item configuration in items/myitem.yaml +This is the fun part. This is a sample item. Notice the special attribute shjq_source. + +### Single instance +just use the shjq_source attribute + + temperature: + type: num + shjq_source: .main.temp + +### Multi instance +Use the shjq_source@instance attribute syntax + + temperature: + london: + type: num + shjq_source@london: .main.temp + cairns: + type: num + shjq_source@cairns: .main.temp + +The value for the shjq_source attribute is a jq filter, passed directly to jq itself +Use any kind of jq filter that suites your needs. Make sure your filter returns a single value. +Jq filters can be tricky to develop for complex json structures. Getting them straight might be easier +outside of smarthome by using the commandline version of jq and curl like this + + curl https://json.server.org/data.json | jq -f '.object' + +Look at [https://stedolan.github.io/jq/tutorial/] to get startet with jq filters. + +# Disclaimer and License +This document and the shjq plugin for smarthome.py is free software: +you can redistribute it and/or modify it under the terms of the +GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +smjq is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with shjq. If not, see . From 1a2f5f32213228e337cc74d2f71567f24506a006 Mon Sep 17 00:00:00 2001 From: Torsten Dreyer Date: Thu, 21 Mar 2019 08:57:23 +0000 Subject: [PATCH 03/47] introduce 'cycle' property, exception handling --- shjq/__init__.py | 26 ++++++++++++++++++++++---- shjq/plugin.yaml | 6 ++++++ 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/shjq/__init__.py b/shjq/__init__.py index 73d80bc66..fb8ce582e 100644 --- a/shjq/__init__.py +++ b/shjq/__init__.py @@ -37,10 +37,17 @@ def __init__(self, sh, *args, **kwargs): """ Initializes the plugin @param url: URL of the json data to fetch + @param cycle: the polling interval in seconds """ self.logger = logging.getLogger(__name__) self._url = self.get_parameter_value('url') - self._cycle = 30 + try: + self._cycle = int(self.get_parameter_value('cycle')) + except Exception: + self._cycle = 0 + if self._cycle <= 0: + self._cycle = 30 + self.logger.error("Bad or missing value for 'cycle', using {}".format(self._cycle)) self._session = requests.Session() self._session.mount('file://', FileAdapter()) self._items = {} @@ -66,11 +73,22 @@ def poll_device(self): return if response.status_code != 200: - self.logger.error("Bad response code when GETting {}".format(self._url)) + self.logger.error("Bad response code from GET '{}': {}".format(self._url, response.status_code)) + return + + try: + json_obj = response.json() + except Exception as ex: + self.logger.error("Response from '{}' doesn't look like json '{}'".format(self._url, str(response.content)[:30])) return - json_obj = response.json() for k in self._items.keys(): - jqres = pyjq.first(self._items[k], json_obj) + try: + jqres = pyjq.first(self._items[k], json_obj) + + except Exception as ex: + self.logger.error("jq filter failed: {}'".format(str(ex))) + continue + k(jqres) diff --git a/shjq/plugin.yaml b/shjq/plugin.yaml index 8fa2ac9fb..5df9f3062 100755 --- a/shjq/plugin.yaml +++ b/shjq/plugin.yaml @@ -25,6 +25,12 @@ parameters: description: de: 'URL of the json input (e.g. http://foo.bar/input.json or file:///path/to/data.json)' en: 'URL of the json input (e.g. http://foo.bar/input.json or file:///path/to/data.json)' + cycle: + type: num + mandatory: False + description: + de: 'The polling interval for the given url in seconds' + en: 'The polling interval for the given url in seconds' item_attributes: From 086c4a24cc1948aca304a424404accd32d332fc4 Mon Sep 17 00:00:00 2001 From: Torsten Dreyer Date: Thu, 21 Mar 2019 09:01:05 +0000 Subject: [PATCH 04/47] Fix typo in docs --- shjq/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/shjq/README.md b/shjq/README.md index 5019a9e54..7cbbd978b 100644 --- a/shjq/README.md +++ b/shjq/README.md @@ -18,7 +18,7 @@ This plugin requires ## Enable the plugin in etc/plugin.yaml You can add as many instances as you have JSON sources to process. Make sure to add a -unique instance name to each instance if you configure more than on instance. Those +unique instance name to each instance if you configure more than on instance. That instance name will serve as a key to the item configuration further down. ### Plugin specific attributes @@ -55,13 +55,13 @@ but testing. Examples were taken from cycle: 30 ### multi instance - shjquk: + shjqlon: class_name: SHJQ class_path: plugins.shjq url: https://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22 instance: london - shjquk: + shjqcair: class_name: SHJQ class_path: plugins.shjq url: https://samples.openweathermap.org/data/2.5/weather?id=2172797&appid=b6907d289e10d714a6e88b30761fae22 @@ -94,7 +94,7 @@ Use any kind of jq filter that suites your needs. Make sure your filter returns Jq filters can be tricky to develop for complex json structures. Getting them straight might be easier outside of smarthome by using the commandline version of jq and curl like this - curl https://json.server.org/data.json | jq -f '.object' + curl https://json.server.org/data.json | jq '.object' Look at [https://stedolan.github.io/jq/tutorial/] to get startet with jq filters. From 47cdc5cef51acd06b177f28fd4b8bf43b5a68f60 Mon Sep 17 00:00:00 2001 From: Torsten Dreyer Date: Sat, 23 Mar 2019 09:51:40 +0000 Subject: [PATCH 05/47] Use default/valid_min properties for the cycle parameter --- shjq/__init__.py | 8 +------- shjq/plugin.yaml | 2 ++ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/shjq/__init__.py b/shjq/__init__.py index fb8ce582e..d6c615e12 100644 --- a/shjq/__init__.py +++ b/shjq/__init__.py @@ -41,13 +41,7 @@ def __init__(self, sh, *args, **kwargs): """ self.logger = logging.getLogger(__name__) self._url = self.get_parameter_value('url') - try: - self._cycle = int(self.get_parameter_value('cycle')) - except Exception: - self._cycle = 0 - if self._cycle <= 0: - self._cycle = 30 - self.logger.error("Bad or missing value for 'cycle', using {}".format(self._cycle)) + self._cycle = int(self.get_parameter_value('cycle')) self._session = requests.Session() self._session.mount('file://', FileAdapter()) self._items = {} diff --git a/shjq/plugin.yaml b/shjq/plugin.yaml index 5df9f3062..325e08082 100755 --- a/shjq/plugin.yaml +++ b/shjq/plugin.yaml @@ -28,6 +28,8 @@ parameters: cycle: type: num mandatory: False + default: 30 + valid_min: 0 description: de: 'The polling interval for the given url in seconds' en: 'The polling interval for the given url in seconds' From b83fc241dbf9222b4fc50a4b5b6169006c1121f7 Mon Sep 17 00:00:00 2001 From: Torsten Dreyer Date: Sat, 23 Mar 2019 09:54:28 +0000 Subject: [PATCH 06/47] remove our task from the scheduler upon stop() --- shjq/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/shjq/__init__.py b/shjq/__init__.py index d6c615e12..d383dccce 100644 --- a/shjq/__init__.py +++ b/shjq/__init__.py @@ -51,6 +51,7 @@ def run(self): self.scheduler_add(__name__, self.poll_device, cycle=self._cycle) def stop(self): + self.scheduler_remove(__name__ ) self.alive = False def parse_item(self, item): From 20bb0de2818c50e31ade53442dd8a52c596a3d0e Mon Sep 17 00:00:00 2001 From: Torsten Dreyer Date: Sat, 23 Mar 2019 09:56:16 +0000 Subject: [PATCH 07/47] better keyword, correct type for cycle --- shjq/plugin.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shjq/plugin.yaml b/shjq/plugin.yaml index 325e08082..3c675f5e5 100755 --- a/shjq/plugin.yaml +++ b/shjq/plugin.yaml @@ -7,7 +7,7 @@ plugin: en: 'jq json parser plugin' maintainer: t3r tester: none (yet) - keywords: solar power + keywords: json documentation: http://smarthomeng.de/user/plugins_doc/config/not-yet.html support: https://knx-user-forum.de/forum/supportforen/smarthome-py/not-yet @@ -26,7 +26,7 @@ parameters: de: 'URL of the json input (e.g. http://foo.bar/input.json or file:///path/to/data.json)' en: 'URL of the json input (e.g. http://foo.bar/input.json or file:///path/to/data.json)' cycle: - type: num + type: int mandatory: False default: 30 valid_min: 0 From b7026fb568e66e0ae5c7daf9d317887c7ef3e37c Mon Sep 17 00:00:00 2001 From: Torsten Dreyer Date: Sat, 23 Mar 2019 09:59:36 +0000 Subject: [PATCH 08/47] Avoid unnecessary variable assignment --- shjq/__init__.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/shjq/__init__.py b/shjq/__init__.py index d383dccce..121697f10 100644 --- a/shjq/__init__.py +++ b/shjq/__init__.py @@ -56,8 +56,7 @@ def stop(self): def parse_item(self, item): if self.has_iattr(item.conf, 'shjq_source'): - attr_value = self.get_iattr_value(item.conf, 'shjq_source') - self._items[item] = attr_value + self._items[item] = self.get_iattr_value(item.conf, 'shjq_source') def poll_device(self): try: From 57abb960708697ffff3e204a10767ab27829e608 Mon Sep 17 00:00:00 2001 From: Torsten Dreyer Date: Sat, 23 Mar 2019 10:04:13 +0000 Subject: [PATCH 09/47] Add german translation --- shjq/plugin.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/shjq/plugin.yaml b/shjq/plugin.yaml index 3c675f5e5..986f9c1c2 100755 --- a/shjq/plugin.yaml +++ b/shjq/plugin.yaml @@ -3,8 +3,8 @@ plugin: # Global plugin attributes type: interface # plugin type (gateway, interface, protocol, system, web) description: - de: 'jq json parser plugin' - en: 'jq json parser plugin' + de: 'json parser plugin basierend auf jq' + en: 'json parser plugin based on jq' maintainer: t3r tester: none (yet) keywords: json @@ -23,7 +23,7 @@ parameters: type: str mandatory: True description: - de: 'URL of the json input (e.g. http://foo.bar/input.json or file:///path/to/data.json)' + de: 'URL der json Eingabe-Daten (z.B. http://foo.bar/input.json oder file:///pfad/zu/data.json)' en: 'URL of the json input (e.g. http://foo.bar/input.json or file:///path/to/data.json)' cycle: type: int @@ -31,7 +31,7 @@ parameters: default: 30 valid_min: 0 description: - de: 'The polling interval for the given url in seconds' + de: 'Das Abfrage-Intervall für die gegebene URL in Sekunden' en: 'The polling interval for the given url in seconds' From fdfd66a7ffa09f279b84a7e039dd8e493c7cfcac Mon Sep 17 00:00:00 2001 From: Torsten Dreyer Date: Sat, 23 Mar 2019 10:42:22 +0000 Subject: [PATCH 10/47] Add examples to README --- shjq/README.md | 113 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 110 insertions(+), 3 deletions(-) diff --git a/shjq/README.md b/shjq/README.md index 7cbbd978b..06943036a 100644 --- a/shjq/README.md +++ b/shjq/README.md @@ -11,13 +11,13 @@ It uses the lightweight and flexible JSON processor jq [https://stedolan.github. This plugin requires - requests - requests-file -- pyjq +- pyjq # Configuration ## Enable the plugin in etc/plugin.yaml -You can add as many instances as you have JSON sources to process. Make sure to add a +You can add as many instances as you have JSON sources to process. Make sure to add a unique instance name to each instance if you configure more than on instance. That instance name will serve as a key to the item configuration further down. @@ -98,9 +98,116 @@ outside of smarthome by using the commandline version of jq and curl like this Look at [https://stedolan.github.io/jq/tutorial/] to get startet with jq filters. +# Example +## Fetch data from a SolarWatt Energy Manager and MyReserve +Note: this example uses the mutli-instance feature as it fetches data from two +sources. + +### Sample input data +#### BMSData.shtml +This file gets generated by SolarWatt's receiveBLE.py process on their raspi. The interesting +part looks like this: + + { + "FData": { + "IPV": 5.17, + "VBat": 170.1, + "VPV": 418.5, + "PGrid": 18, + "IBat": -9.91 + }, + "SData": { + "ACS": { + "U_L2": 239, + "f": 49.98 + }, + "SoC": 10 + } + } + +#### energy-manager json data +The energy manager produces a fairly huge JSON dataset, more than 4500 lines on my system. +This is an example, stripped down to what we use in this document + + { + "result": { + "items": [ + { + "guid": "urn:your-inverter-guid", + "tagValues": { + "PowerACOut": { + "value": 2419, + "tagName": "PowerACOut" + } + } + } + ] + } + } + +### etc/plugin.yaml + + swem: + class_name: SHJQ + class_path: plugins.shjq + # Replace with the ip address or hostname of your energy-manager + url: http://192.168.x.y/rest/kiwigrid/wizard/devices + instance: swem + cycle: 30 + + myreserve: + class_name: SHJQ + class_path: plugins.shjq + # Replace with the path to your BMSData-file + url: file:///tmp/BMSData.shtml + instance: myreserve + cycle: 10 + + +### items/myenergy.yaml + +Get the batteries voltage, charge current and charge power. + + battery: + u: + # note: we are fetching from the 'myreserve' plugin instance + # easy: get attribute VBat of the FData object + type: num + shjq_source@myreserve: .FData.VBat + i: + # easy: get attribute IBat of the FData object + type: num + shjq_source@myreserve: .FData.IBat + power: + # doing simple math is also straightforward + type: num + shjq_source@myreserve: (.FData.VBat * .FData.IBat * -1) + +Get the current inverter AC out power + + inverter: + type: num + # note: we are fetching from the 'swem' plugin instance + # from the items array in the result object, fetch the object where the guid matches our given guid + # from the resulting object, walk down the tree and fetch the "value" attribute + shjq_source@swem: (.result.items[] | select(.guid == "urn:your-inverter-guid").tagValues.PowerACOut.value) + # all standard attributes work as expected + visu_acl: r + sqlite: yes + +Compute the grid power, use yaml's block style feature (https://yaml-multiline.info/) to wrap long lines + + grid: + type: num + shjq_source@swem: > + (.result.items[] | + select(.deviceModel[].deviceClass == "com.kiwigrid.devices.solarwatt.MyReservePowermeter").tagValues.PowerOut.value) - + (.result.items[] | + select(.deviceModel[].deviceClass == "com.kiwigrid.devices.solarwatt.MyReservePowermeter").tagValues.PowerIn.value) + # Disclaimer and License This document and the shjq plugin for smarthome.py is free software: -you can redistribute it and/or modify it under the terms of the +you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. From 02429e9a71614a45649e6ed99e08760ad74df233 Mon Sep 17 00:00:00 2001 From: Torsten Dreyer Date: Sun, 24 Mar 2019 08:20:48 +0000 Subject: [PATCH 11/47] A little cleanup and make it 1.0.0 --- shjq/__init__.py | 6 +++--- shjq/plugin.yaml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/shjq/__init__.py b/shjq/__init__.py index 121697f10..7f081d3c9 100644 --- a/shjq/__init__.py +++ b/shjq/__init__.py @@ -2,7 +2,7 @@ # ######################################################################### # Copyright 2019 Torsten Dreyer torsten (at) t3r (dot) de -# Version 0.0.1 +# Version 1.0.0 ######################################################################### # # This file is part of SmartHomeNG. @@ -31,7 +31,7 @@ class SHJQ(SmartPlugin): ALLOW_MULTIINSTANCE = True - PLUGIN_VERSION = "0.0.1" + PLUGIN_VERSION = "1.0.0" def __init__(self, sh, *args, **kwargs): """ @@ -41,7 +41,7 @@ def __init__(self, sh, *args, **kwargs): """ self.logger = logging.getLogger(__name__) self._url = self.get_parameter_value('url') - self._cycle = int(self.get_parameter_value('cycle')) + self._cycle = self.get_parameter_value('cycle') self._session = requests.Session() self._session.mount('file://', FileAdapter()) self._items = {} diff --git a/shjq/plugin.yaml b/shjq/plugin.yaml index 986f9c1c2..61e8c2c3c 100755 --- a/shjq/plugin.yaml +++ b/shjq/plugin.yaml @@ -5,13 +5,13 @@ plugin: description: de: 'json parser plugin basierend auf jq' en: 'json parser plugin based on jq' - maintainer: t3r + maintainer: Torsten Dreyer tester: none (yet) keywords: json documentation: http://smarthomeng.de/user/plugins_doc/config/not-yet.html support: https://knx-user-forum.de/forum/supportforen/smarthome-py/not-yet - version: 0.0.1 # Plugin version + version: 1.0.0 # Plugin version sh_minversion: 1.4 # minimum shNG version to use this plugin # sh_maxversion: # maximum shNG version to use this plugin (leave empty if latest) multi_instance: True # plugin supports multi instance From 099797a0b2bd980c1929e45776c1bd00ae432f6d Mon Sep 17 00:00:00 2001 From: Torsten Dreyer Date: Sun, 24 Mar 2019 08:26:32 +0000 Subject: [PATCH 12/47] Renamed plugin to jsonread and filter attribute to jsonread_filter --- {shjq => jsonread}/README.md | 62 ++++++++++++++--------------- {shjq => jsonread}/__init__.py | 6 +-- {shjq => jsonread}/plugin.yaml | 4 +- {shjq => jsonread}/requirements.txt | 0 4 files changed, 36 insertions(+), 36 deletions(-) rename {shjq => jsonread}/README.md (81%) rename {shjq => jsonread}/__init__.py (96%) rename {shjq => jsonread}/plugin.yaml (94%) rename {shjq => jsonread}/requirements.txt (100%) diff --git a/shjq/README.md b/jsonread/README.md similarity index 81% rename from shjq/README.md rename to jsonread/README.md index 06943036a..db32150f8 100644 --- a/shjq/README.md +++ b/jsonread/README.md @@ -1,4 +1,4 @@ -# shjq +# The jsonread plugin This is a generic JSON to smarthome plugin. Fetch any JSON encoded data via http(s) or from a file, extract the interesting data and feed @@ -40,56 +40,56 @@ but testing. Examples were taken from ### http client - shjq: - class_name: SHJQ - class_path: plugins.shjq + jsonread: + class_name: JSONREAD + class_path: plugins.jsonread url: https://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22 cycle: 30 ### file client - shjq: - class_name: SHJQ - class_path: plugins.shjq + jsonread: + class_name: JSONREAD + class_path: plugins.jsonread url: file:///path/to/data.json cycle: 30 ### multi instance - shjqlon: - class_name: SHJQ - class_path: plugins.shjq + jsonreadlon: + class_name: JSONREAD + class_path: plugins.jsonread url: https://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22 instance: london - shjqcair: - class_name: SHJQ - class_path: plugins.shjq + jsonreadcair: + class_name: JSONREAD + class_path: plugins.jsonread url: https://samples.openweathermap.org/data/2.5/weather?id=2172797&appid=b6907d289e10d714a6e88b30761fae22 instance: cairns ## item configuration in items/myitem.yaml -This is the fun part. This is a sample item. Notice the special attribute shjq_source. +This is the fun part. This is a sample item. Notice the special attribute jsonread_filter. ### Single instance -just use the shjq_source attribute +just use the jsonread_filter attribute temperature: type: num - shjq_source: .main.temp + jsonread_filter: .main.temp ### Multi instance -Use the shjq_source@instance attribute syntax +Use the jsonread_filter@instance attribute syntax temperature: london: type: num - shjq_source@london: .main.temp + jsonread_filter@london: .main.temp cairns: type: num - shjq_source@cairns: .main.temp + jsonread_filter@cairns: .main.temp -The value for the shjq_source attribute is a jq filter, passed directly to jq itself +The value for the jsonread_filter attribute is a jq filter, passed directly to jq itself Use any kind of jq filter that suites your needs. Make sure your filter returns a single value. Jq filters can be tricky to develop for complex json structures. Getting them straight might be easier outside of smarthome by using the commandline version of jq and curl like this @@ -148,16 +148,16 @@ This is an example, stripped down to what we use in this document ### etc/plugin.yaml swem: - class_name: SHJQ - class_path: plugins.shjq + class_name: JSONREAD + class_path: plugins.jsonread # Replace with the ip address or hostname of your energy-manager url: http://192.168.x.y/rest/kiwigrid/wizard/devices instance: swem cycle: 30 myreserve: - class_name: SHJQ - class_path: plugins.shjq + class_name: JSONREAD + class_path: plugins.jsonread # Replace with the path to your BMSData-file url: file:///tmp/BMSData.shtml instance: myreserve @@ -173,15 +173,15 @@ Get the batteries voltage, charge current and charge power. # note: we are fetching from the 'myreserve' plugin instance # easy: get attribute VBat of the FData object type: num - shjq_source@myreserve: .FData.VBat + jsonread_filter@myreserve: .FData.VBat i: # easy: get attribute IBat of the FData object type: num - shjq_source@myreserve: .FData.IBat + jsonread_filter@myreserve: .FData.IBat power: # doing simple math is also straightforward type: num - shjq_source@myreserve: (.FData.VBat * .FData.IBat * -1) + jsonread_filter@myreserve: (.FData.VBat * .FData.IBat * -1) Get the current inverter AC out power @@ -190,7 +190,7 @@ Get the current inverter AC out power # note: we are fetching from the 'swem' plugin instance # from the items array in the result object, fetch the object where the guid matches our given guid # from the resulting object, walk down the tree and fetch the "value" attribute - shjq_source@swem: (.result.items[] | select(.guid == "urn:your-inverter-guid").tagValues.PowerACOut.value) + jsonread_filter@swem: (.result.items[] | select(.guid == "urn:your-inverter-guid").tagValues.PowerACOut.value) # all standard attributes work as expected visu_acl: r sqlite: yes @@ -199,14 +199,14 @@ Compute the grid power, use yaml's block style feature (https://yaml-multiline.i grid: type: num - shjq_source@swem: > + jsonread_filter@swem: > (.result.items[] | select(.deviceModel[].deviceClass == "com.kiwigrid.devices.solarwatt.MyReservePowermeter").tagValues.PowerOut.value) - (.result.items[] | select(.deviceModel[].deviceClass == "com.kiwigrid.devices.solarwatt.MyReservePowermeter").tagValues.PowerIn.value) # Disclaimer and License -This document and the shjq plugin for smarthome.py is free software: +This document and the jsonread plugin for smarthome.py is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or @@ -218,4 +218,4 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with shjq. If not, see . +along with jsonread. If not, see . diff --git a/shjq/__init__.py b/jsonread/__init__.py similarity index 96% rename from shjq/__init__.py rename to jsonread/__init__.py index 7f081d3c9..fa29ec54a 100644 --- a/shjq/__init__.py +++ b/jsonread/__init__.py @@ -29,7 +29,7 @@ from lib.model.smartplugin import SmartPlugin -class SHJQ(SmartPlugin): +class JSONREAD(SmartPlugin): ALLOW_MULTIINSTANCE = True PLUGIN_VERSION = "1.0.0" @@ -55,8 +55,8 @@ def stop(self): self.alive = False def parse_item(self, item): - if self.has_iattr(item.conf, 'shjq_source'): - self._items[item] = self.get_iattr_value(item.conf, 'shjq_source') + if self.has_iattr(item.conf, 'jsonread_filter'): + self._items[item] = self.get_iattr_value(item.conf, 'jsonread_filter') def poll_device(self): try: diff --git a/shjq/plugin.yaml b/jsonread/plugin.yaml similarity index 94% rename from shjq/plugin.yaml rename to jsonread/plugin.yaml index 61e8c2c3c..b58fd55f3 100755 --- a/shjq/plugin.yaml +++ b/jsonread/plugin.yaml @@ -15,7 +15,7 @@ plugin: sh_minversion: 1.4 # minimum shNG version to use this plugin # sh_maxversion: # maximum shNG version to use this plugin (leave empty if latest) multi_instance: True # plugin supports multi instance - classname: SHJQ # class containing the plugin + classname: JSONREAD # class containing the plugin parameters: # Definition of parameters to be configured in etc/plugin.yaml @@ -37,6 +37,6 @@ parameters: item_attributes: # Definition of item attributes defined by this plugin - shjq_source: + jsonread_filter: type: str diff --git a/shjq/requirements.txt b/jsonread/requirements.txt similarity index 100% rename from shjq/requirements.txt rename to jsonread/requirements.txt From 826c6f9f1375f267c038e9aec8cff41d19652c1e Mon Sep 17 00:00:00 2001 From: Torsten Dreyer Date: Sun, 24 Mar 2019 14:45:27 +0000 Subject: [PATCH 13/47] Remove requests from requirementsZ --- jsonread/requirements.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/jsonread/requirements.txt b/jsonread/requirements.txt index 76728880f..de5b5f3aa 100644 --- a/jsonread/requirements.txt +++ b/jsonread/requirements.txt @@ -1,4 +1,2 @@ -requests>=2.9.1;python_version>'3.2' -requests==2.5.1;python_version=='3.2' requests-file pyjq From 2688a0b167d34dcc7316a62be3fa3bdd3ab0eb3d Mon Sep 17 00:00:00 2001 From: msinn Date: Tue, 26 Mar 2019 09:44:34 +0100 Subject: [PATCH 14/47] Revert "shjq - a generic json plugin based on 'jq'" --- jsonread/README.md | 221 -------------------------------------- jsonread/__init__.py | 88 --------------- jsonread/plugin.yaml | 42 -------- jsonread/requirements.txt | 2 - 4 files changed, 353 deletions(-) delete mode 100644 jsonread/README.md delete mode 100644 jsonread/__init__.py delete mode 100755 jsonread/plugin.yaml delete mode 100644 jsonread/requirements.txt diff --git a/jsonread/README.md b/jsonread/README.md deleted file mode 100644 index db32150f8..000000000 --- a/jsonread/README.md +++ /dev/null @@ -1,221 +0,0 @@ -# The jsonread plugin - -This is a generic JSON to smarthome plugin. Fetch any JSON encoded -data via http(s) or from a file, extract the interesting data and feed -the values to smarthome items. - -It uses the lightweight and flexible JSON processor jq [https://stedolan.github.io/jq/] - -# Dependencies - -This plugin requires -- requests -- requests-file -- pyjq - -# Configuration - -## Enable the plugin in etc/plugin.yaml - -You can add as many instances as you have JSON sources to process. Make sure to add a -unique instance name to each instance if you configure more than on instance. That -instance name will serve as a key to the item configuration further down. - -### Plugin specific attributes -#### url - -The address of the json data. Currently http://, https:// and file:// schemes are supported. -Note: using absolute file paths for the file:// schema yields in tripple forward slashes. This -might look funny but it is not an error. - -#### cycle - -The repetitive polling interval in seconds. Defaults to 30 seconds. - -### Example - -The following examples uses openweathermap and it's sample API Key. Don't use this key for anything else -but testing. Examples were taken from -[https://openweathermap.org/current]. - -### http client - - jsonread: - class_name: JSONREAD - class_path: plugins.jsonread - url: https://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22 - cycle: 30 - -### file client - - jsonread: - class_name: JSONREAD - class_path: plugins.jsonread - url: file:///path/to/data.json - cycle: 30 - -### multi instance - jsonreadlon: - class_name: JSONREAD - class_path: plugins.jsonread - url: https://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22 - instance: london - - jsonreadcair: - class_name: JSONREAD - class_path: plugins.jsonread - url: https://samples.openweathermap.org/data/2.5/weather?id=2172797&appid=b6907d289e10d714a6e88b30761fae22 - instance: cairns - - -## item configuration in items/myitem.yaml -This is the fun part. This is a sample item. Notice the special attribute jsonread_filter. - -### Single instance -just use the jsonread_filter attribute - - temperature: - type: num - jsonread_filter: .main.temp - -### Multi instance -Use the jsonread_filter@instance attribute syntax - - temperature: - london: - type: num - jsonread_filter@london: .main.temp - cairns: - type: num - jsonread_filter@cairns: .main.temp - -The value for the jsonread_filter attribute is a jq filter, passed directly to jq itself -Use any kind of jq filter that suites your needs. Make sure your filter returns a single value. -Jq filters can be tricky to develop for complex json structures. Getting them straight might be easier -outside of smarthome by using the commandline version of jq and curl like this - - curl https://json.server.org/data.json | jq '.object' - -Look at [https://stedolan.github.io/jq/tutorial/] to get startet with jq filters. - -# Example -## Fetch data from a SolarWatt Energy Manager and MyReserve -Note: this example uses the mutli-instance feature as it fetches data from two -sources. - -### Sample input data -#### BMSData.shtml -This file gets generated by SolarWatt's receiveBLE.py process on their raspi. The interesting -part looks like this: - - { - "FData": { - "IPV": 5.17, - "VBat": 170.1, - "VPV": 418.5, - "PGrid": 18, - "IBat": -9.91 - }, - "SData": { - "ACS": { - "U_L2": 239, - "f": 49.98 - }, - "SoC": 10 - } - } - -#### energy-manager json data -The energy manager produces a fairly huge JSON dataset, more than 4500 lines on my system. -This is an example, stripped down to what we use in this document - - { - "result": { - "items": [ - { - "guid": "urn:your-inverter-guid", - "tagValues": { - "PowerACOut": { - "value": 2419, - "tagName": "PowerACOut" - } - } - } - ] - } - } - -### etc/plugin.yaml - - swem: - class_name: JSONREAD - class_path: plugins.jsonread - # Replace with the ip address or hostname of your energy-manager - url: http://192.168.x.y/rest/kiwigrid/wizard/devices - instance: swem - cycle: 30 - - myreserve: - class_name: JSONREAD - class_path: plugins.jsonread - # Replace with the path to your BMSData-file - url: file:///tmp/BMSData.shtml - instance: myreserve - cycle: 10 - - -### items/myenergy.yaml - -Get the batteries voltage, charge current and charge power. - - battery: - u: - # note: we are fetching from the 'myreserve' plugin instance - # easy: get attribute VBat of the FData object - type: num - jsonread_filter@myreserve: .FData.VBat - i: - # easy: get attribute IBat of the FData object - type: num - jsonread_filter@myreserve: .FData.IBat - power: - # doing simple math is also straightforward - type: num - jsonread_filter@myreserve: (.FData.VBat * .FData.IBat * -1) - -Get the current inverter AC out power - - inverter: - type: num - # note: we are fetching from the 'swem' plugin instance - # from the items array in the result object, fetch the object where the guid matches our given guid - # from the resulting object, walk down the tree and fetch the "value" attribute - jsonread_filter@swem: (.result.items[] | select(.guid == "urn:your-inverter-guid").tagValues.PowerACOut.value) - # all standard attributes work as expected - visu_acl: r - sqlite: yes - -Compute the grid power, use yaml's block style feature (https://yaml-multiline.info/) to wrap long lines - - grid: - type: num - jsonread_filter@swem: > - (.result.items[] | - select(.deviceModel[].deviceClass == "com.kiwigrid.devices.solarwatt.MyReservePowermeter").tagValues.PowerOut.value) - - (.result.items[] | - select(.deviceModel[].deviceClass == "com.kiwigrid.devices.solarwatt.MyReservePowermeter").tagValues.PowerIn.value) - -# Disclaimer and License -This document and the jsonread plugin for smarthome.py is free software: -you can redistribute it and/or modify it under the terms of the -GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -smjq is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with jsonread. If not, see . diff --git a/jsonread/__init__.py b/jsonread/__init__.py deleted file mode 100644 index fa29ec54a..000000000 --- a/jsonread/__init__.py +++ /dev/null @@ -1,88 +0,0 @@ -#!/usr/bin/env python3 -# -######################################################################### -# Copyright 2019 Torsten Dreyer torsten (at) t3r (dot) de -# Version 1.0.0 -######################################################################### -# -# This file is part of SmartHomeNG. -# -# SmartHomeNG is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# SmartHomeNG is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with SmartHomeNG. If not, see . -# -######################################################################### - -import logging -import requests -from requests_file import FileAdapter -import pyjq -from lib.model.smartplugin import SmartPlugin - - -class JSONREAD(SmartPlugin): - ALLOW_MULTIINSTANCE = True - PLUGIN_VERSION = "1.0.0" - - def __init__(self, sh, *args, **kwargs): - """ - Initializes the plugin - @param url: URL of the json data to fetch - @param cycle: the polling interval in seconds - """ - self.logger = logging.getLogger(__name__) - self._url = self.get_parameter_value('url') - self._cycle = self.get_parameter_value('cycle') - self._session = requests.Session() - self._session.mount('file://', FileAdapter()) - self._items = {} - - def run(self): - self.alive = True - self.scheduler_add(__name__, self.poll_device, cycle=self._cycle) - - def stop(self): - self.scheduler_remove(__name__ ) - self.alive = False - - def parse_item(self, item): - if self.has_iattr(item.conf, 'jsonread_filter'): - self._items[item] = self.get_iattr_value(item.conf, 'jsonread_filter') - - def poll_device(self): - try: - response = self._session.get(self._url) - - except Exception as ex: - self.logger.error("Exception when sending GET request for {}: {}".format(self._url,str(ex))) - return - - if response.status_code != 200: - self.logger.error("Bad response code from GET '{}': {}".format(self._url, response.status_code)) - return - - try: - json_obj = response.json() - except Exception as ex: - self.logger.error("Response from '{}' doesn't look like json '{}'".format(self._url, str(response.content)[:30])) - return - - for k in self._items.keys(): - try: - jqres = pyjq.first(self._items[k], json_obj) - - except Exception as ex: - self.logger.error("jq filter failed: {}'".format(str(ex))) - continue - - k(jqres) - diff --git a/jsonread/plugin.yaml b/jsonread/plugin.yaml deleted file mode 100755 index b58fd55f3..000000000 --- a/jsonread/plugin.yaml +++ /dev/null @@ -1,42 +0,0 @@ -# Metadata for the Smart-Plugin -plugin: - # Global plugin attributes - type: interface # plugin type (gateway, interface, protocol, system, web) - description: - de: 'json parser plugin basierend auf jq' - en: 'json parser plugin based on jq' - maintainer: Torsten Dreyer - tester: none (yet) - keywords: json - documentation: http://smarthomeng.de/user/plugins_doc/config/not-yet.html - support: https://knx-user-forum.de/forum/supportforen/smarthome-py/not-yet - - version: 1.0.0 # Plugin version - sh_minversion: 1.4 # minimum shNG version to use this plugin -# sh_maxversion: # maximum shNG version to use this plugin (leave empty if latest) - multi_instance: True # plugin supports multi instance - classname: JSONREAD # class containing the plugin - -parameters: - # Definition of parameters to be configured in etc/plugin.yaml - url: - type: str - mandatory: True - description: - de: 'URL der json Eingabe-Daten (z.B. http://foo.bar/input.json oder file:///pfad/zu/data.json)' - en: 'URL of the json input (e.g. http://foo.bar/input.json or file:///path/to/data.json)' - cycle: - type: int - mandatory: False - default: 30 - valid_min: 0 - description: - de: 'Das Abfrage-Intervall für die gegebene URL in Sekunden' - en: 'The polling interval for the given url in seconds' - - -item_attributes: - # Definition of item attributes defined by this plugin - jsonread_filter: - type: str - diff --git a/jsonread/requirements.txt b/jsonread/requirements.txt deleted file mode 100644 index de5b5f3aa..000000000 --- a/jsonread/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -requests-file -pyjq From c53581990609812697d2686a8fac403380cc1724 Mon Sep 17 00:00:00 2001 From: msinn Date: Sat, 11 May 2019 14:25:59 +0200 Subject: [PATCH 15/47] setting develop branch to "after release" --- __init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/__init__.py b/__init__.py index f3e6a9d8e..61a79a1b3 100644 --- a/__init__.py +++ b/__init__.py @@ -1,5 +1,5 @@ def plugin_release(): - return '1.6' + return '1.6a' def plugin_branch(): From 1e3090b6262d9466b875735723799b31d5a8aa98 Mon Sep 17 00:00:00 2001 From: msinn Date: Sat, 11 May 2019 14:26:41 +0200 Subject: [PATCH 16/47] setting release version number --- __init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/__init__.py b/__init__.py index 61a79a1b3..99e2bafb2 100644 --- a/__init__.py +++ b/__init__.py @@ -1,7 +1,7 @@ def plugin_release(): - return '1.6a' + return '1.6' def plugin_branch(): - return 'develop' + return 'master' From 16420ef41f7532c7f86ce10930a9054ce20042e4 Mon Sep 17 00:00:00 2001 From: msinn Date: Sat, 11 May 2019 14:30:02 +0200 Subject: [PATCH 17/47] Removed rpi1wire from release (to be converted to SmartPlugin first) --- rpi1wire/README.md | 181 ------------------------------------ rpi1wire/__init__.py | 217 ------------------------------------------- 2 files changed, 398 deletions(-) delete mode 100644 rpi1wire/README.md delete mode 100644 rpi1wire/__init__.py diff --git a/rpi1wire/README.md b/rpi1wire/README.md deleted file mode 100644 index fa88af17c..000000000 --- a/rpi1wire/README.md +++ /dev/null @@ -1,181 +0,0 @@ -# Raspberry Pi 1-Wire plugin - -# Requirements - -This plugin has been developed for the Raspberry Pi. It allows easy access to 1-Wire - sensors. -We tested the plugin with the Raspberry Pi B and the temperature sensor DS18B20. - -## Supported Hardware - -Tested width: -Raspberry Pi Model B -1-Wire - Sensor DS18B20 - -# Configuration - -## Raspberry Pi - - see also: http://www.kompf.de/weather/pionewiremini.html - -### /boot/config.txt -
-   # activating 1-wire without pullup (3-wire-Version)
-   dtoverlay=w1-gpio,gpiopin=4,pullup=off
-
-### /etc/modules - -
-   #(3-wire-Version)
-   w1-gpio pullup=0  
-   w1-therm
-
- -# Smarthome - -## plugin.conf - -
-[rpi1wire]
-   class_name = Rpi1Wire
-   class_path = plugins.rpi1wire
-#   dirname = "/sys/bus/w1/devices"
-#   cycle = 120
-
- -## plugin.yaml - -
-rpi1wire:
-   class_name: Rpi1Wire
-   class_path: plugins.rpi1wire
-#   dirname: "/sys/bus/w1/devices"
-#   cycle: 120
-
- -dirname -
-   is the path where the Raspberry provides the values of the 1-wire - sensors
-   default "/sys/bus/w1/devices"
-
-cycle -
-   is the period in which the values are updated
-   default 120 seconds
-
- - -## items -# .conf - -
-   [rpi1wire]
-       [[sensor_list]]
-           name = Sensor-List
-           type = str
-           visu_acl = ro
-       [[sensors]]
-          name = Sensors
-          type = num
-          visu_acl = ro
-
- -# .yaml - -
-   rpi1wire:
-       sensor_list:
-           name: Sensor-List
-           type: str
-           visu_acl: ro
-       sensors:
-          name: Sensors
-          type: num
-          visu_acl: ro
-
-sh.rpi1wire.sensor_list() -
-   - contains a list of all found sensors
-
-sh.rpi1wire.sensors() -
-   - contains the number of sensors found
-
-### rpi1wire_name -
   
-   The name of the 1-wire - sensor
-    - rpi1wire_name or rpi1wire_id are possible
-
-### rpi1wire_id -
   
-   The id of the 1-wire - sensor
-    - rpi1wire_name or rpi1wire_id are possible
-
-### rpi1wire_update -
   
-   If you trigger this item, the sensors are re-searched without restart the server
-
- -### Example - - -
-# items/my.conf
-
-[someroom]
-    [[mytemperature]]
-        name = my Name
-        type = num
-        visu_acl = ro
-        rpi1wire_name = rpi_temp1
-        sqlite = yes
-
-#or
-
-[someroom]
-    [[mytemperature]]
-        name = my Name
-        name = Wohnzimme Raumtemperatur
-        type = num
-        visu_acl = ro
-        rpi1wire_id = 28-0215018970ff
-        sqlite = yes
-
-[rpi1wire]
-    [[update]]
-        name = Update Sensor-List
-        type = bool
-        visu_acl = rw
-        rpi1wire_update = 1
-
-
-# or in YAML -
-# items/my.yaml
-
-someroom:
-     mytemperature:
-        name: my Name
-        type: num
-        visu_acl: ro
-        rpi1wire_name: rpi_temp1
-        sqlite: yes
-
-#or
-
-someroom:
-     mytemperature:
-        name: my Name
-        name: Wohnzimme Raumtemperatur
-        type: num
-        visu_acl: ro
-        rpi1wire_id: 28-0215018970ff
-        sqlite: yes
-
-rpi1wire:
-     update:
-        name: Update Sensor-List
-        type: bool
-        visu_acl: rw
-        rpi1wire_update: 1
-
-
diff --git a/rpi1wire/__init__.py b/rpi1wire/__init__.py deleted file mode 100644 index cd0b70592..000000000 --- a/rpi1wire/__init__.py +++ /dev/null @@ -1,217 +0,0 @@ -#!/usr/bin/env python3 -# vim: set encoding=utf-8 tabstop=4 softtabstop=4 shiftwidth=4 expandtab -######################################################################### -# Copyright 2015 R.Rauer software@rrauer.de -######################################################################### -# This file is part of SmartHome.py. http://mknx.github.io/smarthome/ -# -# SmartHome.py is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# SmartHome.py is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with SmartHome.py. If not, see . -######################################################################### - -import logging -import os - -class Rpi1Wire(): - def __init__(self, smarthome, dirname="/sys/bus/w1/devices",cycle = 120): - self.logger = logging.getLogger(__name__) - self.logger.info('Init rpi1wire') - self._sh = smarthome - self.dirname = dirname - self.cycle = cycle - self.sensors = {} - self._sensordaten = {} - self.values = {} - self.update = False - self.get_sensors() - self.anz_sensors = len(self.sensors) - self.logger.info("rpi1wire find {0} sensors".format(self.anz_sensors)) - self.logger.info(self.sensors) - self._sh.scheduler.add('rpi1wire', self.update_values, prio=3, cycle=self.cycle) - - - - def run(self): - self.alive = True - self.update_values() - self.update_basics() - - def update_basics(self): - anz = self._sh.return_item("rpi1wire.sensors") - ids = self._sh.return_item("rpi1wire.sensor_list") - if anz != None: - anz(int(self.anz_sensors),'rpi1wire') - self.logger.debug("rpi1wire-item sensors value = {0}".format(self.anz_sensors)) - if ids != None: - ids(str(self.sensors),'rpi1wire') - self.logger.debug("rpi1wire-item sensor_list value = {0}".format(self.sensors)) - - def stop(self): - self.alive = False - - def parse_item(self, item): - if 'rpi1wire_update' in item.conf: - ad=item.conf['rpi1wire_update'] - return self.update_item - if 'rpi1wire_id' not in item.conf: - if 'rpi1wire_name' not in item.conf: - return None - if 'rpi1wire_unit' not in item.conf: - self.logger.warning("rpi1wire_unit for {0} not defined".format(item.id())) - return None - not_found = False - if 'rpi1wire_id'in item.conf: - addr = item.conf['rpi1wire_id'] - try: - for sn, sid in self.sensors.items(): - if sid == item.conf['rpi1wire_id']: - name = sn - break - except: - self.logger.warning("Sensor {0} Hardware not found".format(item.conf['rpi1wire_id'])) - not_found = True - else: - if 'rpi1wire_name'in item.conf: - name = item.conf['rpi1wire_name'] - try: - addr = self.sensors[item.conf['rpi1wire_name']] - except: - self.logger.warning("Sensor {0} Hardware not found".format(item.conf['rpi1wire_name'])) - not_found = True - if not_found == False: - self._sensordaten[addr]['item'] = item - - def parse_logic(self, logic): - pass - - def update_item(self, item, caller=None, source=None, dest=None): - if self.update == True: - return None - if 'rpi1wire_update' in item.conf: - self.logger.info("rpi1wire_update wurde angefordert") - self.update_sensors() - return None - if caller != 'plugin': - self.logger.info("update item: {0}".format(item.id())) - - def update_values(self): - for sensor in self.sensors: - id = self.sensors[sensor] - value = self.getvalue(id) - #if value != 99999: - text = sensor +"=" + sensor[0] +": " + str(round(value/float(1000),1)) + " (" + str(value)+")" - self.logger.debug(text) - self.values[sensor] = round(value/float(1000),1) - try: - rpix = self._sensordaten[id] - temp = rpix['item'] - temp(round(value/float(1000),1), "rpi1wire") - self._sensordaten[id]['value'] = round(value/float(1000),1) - except: - self.logger.info("sensor {0} has no item".format(id)) - - def get_sensors(self): - objects = self.folder_objects(self.dirname) - i=1 - for sensor in objects: - if 'w1_bus' in sensor: - continue - typ = sensor.rsplit("-",1) - if typ[0] in ['10', '22', '28']: - value = self.getvalue(sensor) - if value == 99999: - self.logger.warning("rpi1wire {0} - has no value".format(sensor)) - else: - text = "rpi_temp"+str(i)+"=" + sensor +": " + str(round(value/float(1000),1)) + " (" + str(value)+")" - self.logger.info(text) - self.sensors["rpi_temp"+str(i)] = sensor - self.values["rpi_temp"+str(i)] = round(value/float(1000),1) - self._sensordaten[sensor]= {'name' : "rpi_temp"+str(i), 'value' : round(value/float(1000),1)} - i+=1 - - def folder_objects(self, dirname, otype="all"): - if (os.path.exists(dirname) == False or - os.path.isdir(dirname) == False or - os.access(dirname, os.R_OK) == False): - return False - else: - objects = os.listdir(dirname) - result = [] - for objectname in objects: - objectpath = dirname + "/" + objectname - if (otype == "all" or - (otype == "dir" and os.path.isdir(objectpath) == True) or - (otype == "file" and os.path.isfile(objectpath) == True) or - (otype == "link" and os.path.islink(objectpath) == True)): - result.append(objectname) - result.sort() - return result - - - def getvalue(self, id): - try: - mytemp = '' - filename = 'w1_slave' - f = open('/' + self.dirname + '/' + id + '/' + filename, 'r') - line = f.readline() # read 1st line - crc = line.rsplit(' ',1) - crc = crc[1].replace('\n', '') - if crc=='YES': - line = f.readline() # read 2nd line - mytemp = line.rsplit('t=',1) - else: - self.logger.warning("rpi1wire {0} - return no value".format(id)) - mytemp = '99999' - f.close() - return int(mytemp[1]) - except: - self.logger.warning("can not read sensor {}".format(id)) - return 99999 - - def update_sensors(self): - self.update = True - self.sensors = {} - self.anz_sensors = 0 - self.get_sensors() - self.anz_sensors = len(self.sensors) - self.search_item() - self.update_basics() - self.update_values() - upd = self._sh.return_item("rpi1wire.update") - if upd != None: - upd(False,'rpi1wire') - self.logger.info("rpi1wire-item update value done, {0} sensors found".format(self.anz_sensors)) - self.update = False - - def search_item(self): - items = self._sh.return_items() - for item in items: - if 'rpi1wire_id'in item.conf: - addr = item.conf['rpi1wire_id'] - try: - for sn, sid in self.sensors.items(): - if sid == item.conf['rpi1wire_id']: - name = sn - self._sensordaten[addr]['item'] = item - break - except: - self.logger.warning("Sensor {0} Hardware not found".format(item.conf['rpi1wire_id'])) - not_found = True - if 'rpi1wire_name'in item.conf: - name = item.conf['rpi1wire_name'] - try: - addr = self.sensors[item.conf['rpi1wire_name']] - self._sensordaten[addr]['item'] = item - except: - self.logger.warning("Sensor {0} Hardware not found".format(item.conf['rpi1wire_name'])) - self.logger.info("{0} rpi1wire-items registriert".format(len(self._sensordaten))) From cea2548a8f0735a62dd056d18e495141d37916b1 Mon Sep 17 00:00:00 2001 From: Tom Bombadil Date: Sat, 11 May 2019 21:01:10 +0200 Subject: [PATCH 18/47] Update plugin.yaml Changed 'cycle' parameter from num to int (caused error in 1.6 as num). --- helios/plugin.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helios/plugin.yaml b/helios/plugin.yaml index 7fd7ad5b4..2a8d76488 100755 --- a/helios/plugin.yaml +++ b/helios/plugin.yaml @@ -24,7 +24,7 @@ parameters: # Definition of parameters to be configured i en: 'Port for communication' cycle: - type: num + type: int # used to be num until 1.6, then caused error default: 60 description: de: 'Abfrage-Intervall in Sekunden' From b39e0c74d2537dfb00beef62f272cc0fa5a25c73 Mon Sep 17 00:00:00 2001 From: Tom Bombadil Date: Sat, 11 May 2019 21:06:43 +0200 Subject: [PATCH 19/47] Update __init__.py - Changed cycle time from 70 to 7 ms according to Standard (now data come 10 times faster) - Changed log level when invalid values are received (e.g. due to white noise on bus) --- helios/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/helios/__init__.py b/helios/__init__.py index 2c7f30779..ff7e14bd7 100755 --- a/helios/__init__.py +++ b/helios/__init__.py @@ -147,7 +147,7 @@ def _waitForSilence(self): gotSlot = False backupTimeout = self._port.timeout end = time.time() + 3 - self._port.timeout = 0.07 + self._port.timeout = 0.007 # Changed from 0.07 --> 0.007 (7ms) according to Standard while end > time.time(): chars = self._port.read(1) # nothing received so we got a slot of silence...hopefully @@ -409,8 +409,8 @@ def readValue(self,varname): .format(varname, '0x%0*X' % (2, CONST_MAP_VARIABLES_TO_ID[varname]["varid"]), '0x%0*X' % (2,raw_value), "{0:08b}".format(raw_value), raw_value, value) ) - else: # logging in debug only, so we stop spamming log file (noise on the bus seems to be normal) - self.logger.debug("Helios: No valid value for '{0}' from ventilation system received." + else: # logging as info only, so we stop spamming log file as some noise on the bus seems to be normal + self.logger.info("Helios: No valid value for '{0}' from ventilation system received." .format(varname) ) else: From 79c8fe189457c71ecac1ccfbcb3c5edf61a08673 Mon Sep 17 00:00:00 2001 From: Tom Bombadil Date: Sat, 11 May 2019 21:15:58 +0200 Subject: [PATCH 20/47] Update helios.yaml Added several further options. Still interpret efficiency and power calculations with care. --- helios/files/helios.yaml | 555 +++++++++++++++++++++------------------ 1 file changed, 304 insertions(+), 251 deletions(-) diff --git a/helios/files/helios.yaml b/helios/files/helios.yaml index bf3c4113e..6ebc05269 100644 --- a/helios/files/helios.yaml +++ b/helios/files/helios.yaml @@ -1,83 +1,89 @@ -# smarthome/items/helios.yaml, version 1.0a -# Item file for smarthome.py - Helios/Vallox ventilation unit control & visualization through RS485 +%YAML 1.1 +--- + +# smarthome/items/helios.conf, version 0.95 +# Item file for smarthome.py - Helios/Vallox ventilation unit control & visualization through RS485. # Use at own risk - ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. + ventilation: # Settings - by default for Helios EC/ET 300 Pro; adjust as necessary + # ============================================================================================== + parameters: - # '============================================================================================ #' house_volume: name: Volumen des Hauses in m³ ("umbauter Raum", der von der Lüftung durchströmt wird) type: num - # "value: 546 # Original 'umbauter Raum' = 546; gem. Helios-Rechner aber nur 384" + # value = 546 # umbauter Raum (546m³); gem. Helios-Rechner nur 384 m³ belüftet (???) value: 384 visu_acl: r + Ane: + name: 'DIN: Fläche (A) der Nutzungseinheit (ne) in m² (=belüftete Fläche, Wohnfläche)' + type: num + # value = 143 + value: 143 + visu_acl: r + + fWS: + name: 'DIN: Wärmeschutzfaktor (0,3 für Haus mit aktueller Wärmedämmung, sonst 0,4)' + type: num + # value = 0.3 + value: '0.3' + visu_acl: r + + daemmung: + name: Haustyp gem. Wärmeschutzdämmung # nicht ändern, wird automatisch gesetzt + type: str + visu_acl: r + eval: '"gedämmt" if (sh.ventilation.parameters.fWS()<0.4) else "teil-/ungedämmt"' + eval_trigger: ventilation.parameters.fWS + max_airflow: name: Maximaler Volumenstrom der KWL in m³ (siehe Anlagendoku) type: num - # 'value: 360 # Default Helios EC/ET 300 Pro' + # value = 360 # Default Helios EC/ET 300 Pro value: 360 visu_acl: r fanspeed_levels: name: Anzahl der Schaltstufen der KWL (siehe Anlagendoku); wird z.Z. nicht verwendet type: num - # 'value: 8 # Default Helios EC/ET 300 Pro' + # value = 8 # Default Helios EC/ET 300 Pro value: 8 visu_acl: r airflow_per_mode: name: Volumenstrom je Stufe in m³/h (siehe Anlagendoku); F7-Filter = jeweils -10%! type: str - # 'value: "0 105 165 195 240 270 305 335 360" # Default Helios EC/ET 300 Pro' + # value = "0 105 165 195 240 270 305 335 360" # Default Helios EC/ET 300 Pro value: 0 105 165 195 240 270 305 335 360 visu_acl: r consumption_per_mode: name: Verbrauch _beider_ Ventilatoren je Stufe in W (siehe Anlagendoku) type: str - # 'value: "0 20 36 50 72 92 130 160 194" # Default Helios EC/ET 300 Pro' + # value = "0 20 36 50 72 92 130 160 194" # Default Helios EC/ET 300 Pro value: 0 20 36 50 72 92 130 160 194 visu_acl: r preheating_consumption: name: Stromverbrauch der Vorheizung in W (siehe Anlagendoku) type: num - # 'value: 1000 # Default Helios EC/ET 300 Pro' + # value = 1000 # Default Helios EC/ET 300 Pro value: 1000 visu_acl: r - fWS: - name: DIN - Wärmeschutzfaktor; 0,3 für Haus mit Wärmeschutzdämmung, sonst 0,4 - type: num - # value: 0.3 - value: '0.3' - visu_acl: r - - daemmung: - name: Haustyp gem. Wärmeschutzdämmung # nicht ändern, wird automatisch gesetzt - type: str - visu_acl: r - eval: '"gedämmt" if (sh.ventilation.parameters.fWS()<0.4) else "teil-/ungedämmt"' - eval_trigger: ventilation.parameters.fWS - - Ane: - name: DIN - Fläche (A) der Nutzungseinheit (ne) in m² - type: num - # 'value: 143 # Lüftungsrelevante Nutzfläche des Hauses' - value: 143 - visu_acl: r - # sh.py/logics/helios_logics.py - Booster ("Stoßlüftung") settings + # ============================================================================================== + logics_settings: - # ============================================================================================ # - # 1=Helios default, 2=Logic with fixed values, 3=Logic (interactive Popup) boost_mode: name: Setting for booster type: num + # value: 1=Helios default, 2=Logic with fixed values, 3=Logic (interactive Popup) value: 3 visu_acl: r @@ -90,17 +96,19 @@ ventilation: boost_time: name: Setting for booster - duration for logic with fixed values (only for boost_mode 2) type: num - # 'value: 2700 # 45 minutes * 60 seconds = 2700 seconds' + # value = 2700 ---> 45 minutes * 60 seconds = 2700 seconds value: 2700 visu_acl: r - # ============================================================================================ # - # Don't modify items below unless you know what you're doing # - # ============================================================================================ # + # ============================================================================================== + # Don't modify the items below unless you know what you're doing + # ============================================================================================== + # UZSU - Universelle Zeit Schalt Uhr + # ============================================================================================== + uzsu: - # '============================================================================================ #' fanspeed_uzsu: name: 'Zeitschaltuhr: Hilfsitem für Tests' type: num @@ -114,101 +122,105 @@ ventilation: visu_acl: rw # Connectors to the plugin values + # ============================================================================================ # + rs485: - # '============================================================================================ #' - _power_state: + _powerstate: name: Anlage an / aus type: num helios_var: power_state visu_acl: rw _bypass_disabled: - name: Sommerbypass an / aus + name: 0 = Sommermodus (aut. Bypass), 1= Wintermodus (Bypass deakt., LED an FBD ist an) type: num helios_var: bypass_disabled visu_acl: rw _bypass_setpoint: - name: Temperatur für automatische Umschaltung des Sommerbypasses + name: Temperatur für automatische Umschaltung des Sommerbypasses, Standard = 10°C + # Siehe Handbuch - der Bypass wird aktiviert wenn: + # - die Aussentemperatur über dem hier eingestellten Wert liegt *UND* + # - die Raumtemperatur > Aussentemperatur ist + # ToDo: Macht Wert 18...20°C hier eher Sinn? type: num helios_var: bypass_temp visu_acl: r _outside_temp: name: 'DIN/EN: Außenluft, outdoor air / ODA, grün; Luft von draussen' + # Achtung: Bei starkem Frost wird der Zuluftventilator automatisch gestoppt. + # In diesem Fall weicht die 'outside_temp' von der tatsächlichen Außentemperatur + # stark ab, da keine Frischluft mehr in die Anlage geführt wird. + # (Erwärmung des WT Anlage durch die Raumtemperatur sowie durch die ggf. gerade + # abkühlende Vorheizung verfälschen dann die Werte) type: num helios_var: outside_temp visu_acl: r - sqlite: 'yes' - - # rrd: yes - # rrd_min: yes - # rrd_max: yes - # Achtung: Bei starkem Frost wird der Zuluftventilator automatisch gestoppt. - # In diesem Fall weicht die 'outside_temp' von der tatsächlichen Außentemperatur - # stark ab, da keine Frischluft mehr in die Anlage geführt wird. - # (Erwärmung des WT Anlage durch die Raumtemperatur sowie durch die ggf. gerade - # abkühlende Vorheizung verfälschen dann die Werte) + # sqlite = yes + database: 'init' + _incoming_temp: name: 'DIN/EN: Zuluft, supply air / SUP, blau; Luft in die Räume' type: num helios_var: incoming_temp visu_acl: r - sqlite: 'yes' + # sqlite = yes + database: 'init' - # rrd: yes - # rrd_min: yes - # rrd_max: yes _inside_temp: name: 'DIN/EN: Abluft, extract air / ETA, gelb; Luft aus den Räumen' type: num - cache: true # schmeisst sonst beim Start Fehler div/0 bei Berechnungen + cache: true + # cache = true --> sonst beim Start Fehler div/0 bei Berechnungen helios_var: inside_temp visu_acl: r - sqlite: 'yes' + # sqlite = yes + database: 'init' - # rrd: yes - # rrd_min: yes - # rrd_max: yes _exhaust_temp: name: 'DIN/EN: Fortluft, exhaust air, braun; Luft nach draussen' type: num helios_var: exhaust_temp visu_acl: r - sqlite: 'yes' - - # rrd: yes - # rrd_min: yes - # rrd_max: yes - _heating_on_off: - name: Vorheizung ein - type: num - visu_acl: rw - helios_var: heating_on_off - sqlite: 'yes' + # sqlite = yes + database: 'init' - # rrd: yes - # rrd_min: yes - # rrd_max: yes _heating_setpoint: name: Einschalttemperatur Vorheizung type: num visu_acl: rw helios_var: heating_setpoint - _frost_setpoint: + _heating_on_off: + name: Vorheizung ein + type: num + visu_acl: rw + helios_var: heating_on_off + # sqlite = yes + database: 'true' + + _defrost_setpoint: name: Frostschutztemperatur - Zuluft aus unter dieser Temperatur type: num visu_acl: rw helios_var: frost_stop - _frost_hysteresis: + _defrost_hysteresis: name: Hysteresetemperatur Frostschutz, 0x03 ~ 1°C type: num visu_acl: rw helios_var: cell_defrost + _fanspeed: + name: 'Aktuelle Lüftungsstufe (EC300Pro: 1..8)' + type: num + helios_var: fanspeed + visu_acl: rw + # sqlite = yes + database: 'true' + _min_fanspeed: name: 'Lüftungerstufe min (EC300Pro: 1..8)' type: num @@ -221,16 +233,6 @@ ventilation: helios_var: max_fanspeed visu_acl: rw - _fanspeed: - name: 'Aktuelle Lüftungsstufe (EC300Pro: 1..8)' - type: num - helios_var: fanspeed - visu_acl: rw - sqlite: 'yes' - - # rrd: yes - # rrd_min: yes - # rrd_max: yes _fan_in_on_off: name: Ausschaltregister (1=aus); u.a. vom Frostschutz benutzt; ggf zweifach beschreiben type: num @@ -242,11 +244,7 @@ ventilation: type: num helios_var: fan_in_percent visu_acl: rw - sqlite: 'yes' - # rrd: yes - # rrd_min: yes - # rrd_max: yes _fan_out_on_off: name: Ausschaltregister (1=aus); ggf zweifach beschreiben type: num @@ -258,16 +256,6 @@ ventilation: type: num helios_var: fan_out_percent visu_acl: rw - sqlite: 'yes' - - # rrd: yes - # rrd_min: yes - # rrd_max: yes - _boost_on: - name: Stoßlüftung ein (Anlage setzt selbstständig zurück) - type: bool - helios_var: boost_on - visu_acl: rw _boost_mode: name: 'Grundeinstellung: 0=Kaminlüftung ("Anheizen"), 1=Stoßlüftung' @@ -275,7 +263,13 @@ ventilation: helios_var: boost_mode visu_acl: rw - # Wird in den Logiken nicht verwendet???? --> prüfen + _boost_on: + name: Einschalter für Stoßlüftung (Anlage setzt selbstständig zurück) + type: bool + helios_var: boost_on + visu_acl: rw + + # ToDo: Wird in den Logiken nicht verwendet???? --> prüfen _boost_status: name: Aktueller Status type: bool @@ -299,35 +293,36 @@ ventilation: type: num helios_var: device_error visu_acl: r - e0: 0:Kein Fehler:Kein Fehlertext:Keine Fehlerbehebung # Format = ErrNo:Name:Description:Countermeasures - e1: 1:?:?:? - e2: 2:?:?:? - e3: 3:?:?:? - e4: 4:?:?:? - e5: 5:Zuluftsensor defekt:Fühler lose, Kurzschluss
oder Temperatur >90°C gemessen:Gerätestecker ziehen (ausschalten), kurz warten und wieder einstecken - e6: 6:CO2-Alarm:CO2-Wert >5.000 ppm seit mehr als 3 Minuten:Ursache ermitteln oder ggf. Sensor überprüfen lassen. - e7: 7:Außenluftsensor defekt:Fühler lose, Kurzschluss oder Temperatur >90°C gemessen:Gerätestecker ziehen (ausschalten), kurz warten und wieder einstecken - e8: 8:Abluftsensor defekt:Fühler lose, Kurzschluss oder Temperatur >90°C gemessen:Gerätestecker ziehen (ausschalten), kurz warten und wieder einstecken - e9: 9:Frostwarnung:Außenluft <0°C und Zuluft <8°C - Frostgefahr am Wärmetauscher:Der Alarm verschwindet automatisch bei normalisierten Temperaturen + # Konstanten für Fehleranzeige in der Visu --> ErrNo:Name:Description:Countermeasures + e0: 0:Kein Fehler:Kein Fehlertext:Keine Fehlerbehebung + e1: 1:?:?:? + e2: 2:?:?:? + e3: 3:?:?:? + e4: 4:?:?:? + e5: 5:Zuluftsensor defekt:Fühler lose, Kurzschluss
oder Temperatur >90°C gemessen:Gerätestecker ziehen (ausschalten), kurz warten und wieder einstecken + e6: 6:CO2-Alarm:CO2-Wert >5.000 ppm seit mehr als 3 Minuten:Ursache ermitteln oder ggf. Sensor überprüfen lassen. + e7: 7:Außenluftsensor defekt:Fühler lose, Kurzschluss oder Temperatur >90°C gemessen:Gerätestecker ziehen (ausschalten), kurz warten und wieder einstecken + e8: 8:Abluftsensor defekt:Fühler lose, Kurzschluss oder Temperatur >90°C gemessen:Gerätestecker ziehen (ausschalten), kurz warten und wieder einstecken + e9: 9:Frostwarnung:Außenluft <0°C und Zuluft <8°C - Frostgefahr am Wärmetauscher:Der Alarm verschwindet automatisch bei normalisierten Temperaturen e10: 10:Fortluftsensor defekt:Fühler lose, Kurzschluss oder Temperatur >90°C gemessen:Gerätestecker ziehen (ausschalten), kurz warten und wieder einstecken # Fresh air heating ("pre-heating") + # ============================================================================================== + heating: - # ============================================================================================ # - # hier noch prüfen, was passiert, wenn der Frostschutz greift (angeblich Motor aus = Heizung aus) is_on: name: Pre-heating on --> 1 type: num - eval: (sh.ventilation.rs485._heating_on_off() and sh.ventilation.rs485._power_state()) + eval: (sh.ventilation.rs485._heating_on_off() and sh.ventilation.rs485._powerstate()) eval_trigger: - ventilation.rs485._heating_on_off - - ventilation.rs485._power_state + - ventilation.rs485._powerstate as_text: name: Item als formatierter Text type: str - eval: "'An' if sh.ventilation.heating.is_on() else 'Aus'" + eval: "'an' if sh.ventilation.heating.is_on() else 'aus'" eval_trigger: ventilation.heating.is_on setpoint: @@ -335,47 +330,50 @@ ventilation: as_text: name: Item als formatierter Text type: str + # ToDo: alle as_text noch umstellen, Beispiel: eval: '{0},{1},{2}'.format(sh...Hue(), sh...Sat(), sh...Bright()) + # also hier: eval: '{0}°C'.format(sh..()) (Anzahl Punkte noch prüfen) eval: str(int(sh.ventilation.rs485._heating_setpoint())) + '°C' eval_trigger: ventilation.rs485._heating_setpoint - # Fresh air fan auto-stop (frost) + # Fresh air fan auto-stop (frost) - measured at EXHAUST temperature (!) + # ============================================================================================== + frost_protection: - # ============================================================================================ # - # hier evtl. noch Logikfehler --> wird wieder 1, wenn setpoint überschritten, aber hysterese noch nicht erreicht ist; Test mit neuem eval_trigger is_on: - name: Frost-protection on --> 1 + name: Defrost eingeschaltet --> 1 type: num - eval: 1 if ((sh.ventilation.rs485._exhaust_temp()<=sh.ventilation.rs485._frost_setpoint()) and not sh.ventilation.fans.supply.is_on()) else 0 - - # eval_trigger: ventilation.rs485._exhaust_temp | ventilation.rs485._frost_setpoint | ventilation.fans.supply.is_on + eval: 1 if ((sh.ventilation.rs485._exhaust_temp()<=sh.ventilation.frost_protection.defrost_end()) and not sh.ventilation.fans.supply.is_on()) else 0 eval_trigger: - - ventilation.rs485._frost_setpoint + - ventilation.rs485._exhaust_temp + - ventilation.rs485._defrost_setpoint - ventilation.fans.supply.is_on as_text: name: Item als formatierter Text type: str - eval: "'An' if sh.ventilation.frost_protection.is_on() else 'Aus'" + eval: "'an' if sh.ventilation.frost_protection.is_on() else 'aus'" eval_trigger: ventilation.frost_protection.is_on - # '---> ventilation.rs485._frost_setpoint' + # '---> ventilation.rs485._defrost_setpoint' setpoint: + name: 'Temperatur der Fortluft in °C - 1°C = Zuluft aus (Frost-/Vereisungsschutz)' as_text: name: Item als formatierter Text type: str - eval: str(int(sh.ventilation.rs485._frost_setpoint())) + '°C' - eval_trigger: ventilation.rs485._frost_setpoint + eval: str(int(sh.ventilation.rs485._defrost_setpoint())) + '°C' + eval_trigger: ventilation.rs485._defrost_setpoint - # '---> ventilation.rs485._frost_hysteresis' + # '---> ventilation.rs485._defrost_hysteresis' hysteresis: + name: Setpoint °C + Hysterese °C + 1°C = Zuluft wieder an celsius: name: Umrechnung # 03h ~ 1°C type: num - eval: sh.ventilation.rs485._frost_hysteresis() / 3 - eval_trigger: ventilation.rs485._frost_hysteresis + eval: sh.ventilation.rs485._defrost_hysteresis() / 3 + eval_trigger: ventilation.rs485._defrost_hysteresis as_text: name: Item als formatierter Text @@ -383,50 +381,49 @@ ventilation: eval: str(int(sh.ventilation.frost_protection.hysteresis.celsius())) + '°C' eval_trigger: ventilation.frost_protection.hysteresis.celsius - end_setpoint: - name: Ausschalttemperatur Fostschutz + defrost_end: + name: Ausschalttemperatur Fostschutz nach Erwärmung type: num - eval: sh.ventilation.rs485._frost_setpoint() + (sh.ventilation.rs485._frost_hysteresis() / 3) + eval: sh.ventilation.rs485._defrost_setpoint() + (sh.ventilation.rs485._defrost_hysteresis() / 3) eval_trigger: - - sh.ventilation.frost_protection.setpoint - - ventilation.frost_protection.hysteresis.celsius + - ventilation.rs485._defrost_setpoint + - ventilation.rs485._defrost_hysteresis as_text: name: Item als formatierter Text type: str - eval: str(int(sh.ventilation.frost_protection.end_setpoint())) + '°C' - eval_trigger: ventilation.frost_protection.end_setpoint + eval: str(int(sh.ventilation.frost_protection.defrost_end())) + '°C' + eval_trigger: ventilation.frost_protection.defrost_end # Fans + # ============================================================================================== + # Hinweis: Für 0..10V-Signal sollten in den evals entsprechende Formeln gesetzt werden. + # Die anliegende Spannung ist im Register 2EH als Wert 0..FFh gespeichert. + fans: - # ============================================================================================ # - # Hinweis: Für 0..10V-Signal sollten in den evals entsprechende Formeln gesetzt werden. - # Die anliegende Spannung ist im Register 2EH als Wert 0..FFh gespeichert. - # Fresh air supply: - + # Fresh air + is_on: name: Lüfter ist wirklich an - # type: num ## rene 12/2016: Diagramme falsch + # type = num --> in bool gewandelt, Diagramme falsch type: bool - eval: 0 if (sh.ventilation.rs485._fan_in_on_off()==1 or sh.ventilation.rs485._power_state()==0) else 1 + eval: 0 if (sh.ventilation.rs485._fan_in_on_off()==1 or not sh.ventilation.rs485._powerstate()) else 1 eval_trigger: - ventilation.rs485._fan_in_on_off - - ventilation.rs485._power_state - sqlite: 'yes' + - ventilation.rs485._powerstate + # sqlite = yes + # database: 'init' + database: 'true' - # rrd: yes - # rrd_min: yes - # rrd_max: yes as_text: name: Item als formatierter Text type: str - # eval: "'An' if sh.ventilation.fans.supply.is_on()==1 else 'Aus'" - eval: "'An' if sh.ventilation.fans.supply.is_on() else 'Aus'" + eval: "'an' if sh.ventilation.fans.supply.is_on() else 'aus'" eval_trigger: ventilation.fans.supply.is_on - # '---> ventilation.rs485._fan_in_percent' + # ---> ventilation.rs485._fan_in_percent percent: as_text: @@ -436,12 +433,10 @@ ventilation: eval_trigger: ventilation.rs485._fan_in_percent effective: - name: Tatsächliche Drehzahl in % unter Berücksichtigung von an/aus + name: Tatsächliche Leistung in % unter Berücksichtigung von an/aus type: num visu_acl: rw - eval: sh.ventilation.rs485._fan_in_percent() * int(sh.ventilation.fans.supply.is_on()) # # int hinzugefügt - - # 'eval_trigger: | ventilation.rs485._fanspeed | ventilation.rs485._exhaust_temp' + eval: sh.ventilation.rs485._fan_in_percent() * int(sh.ventilation.fans.supply.is_on()) eval_trigger: - ventilation.rs485._fan_in_percent - ventilation.fans.supply.is_on @@ -457,8 +452,6 @@ ventilation: visu_acl: r type: str eval: sh.ventilation.fans.supply.is_on.as_text() + ', ' + sh.ventilation.power.supply_fan.effective.as_text() - - # eval_trigger: ventilation.rs485._fanspeed | ventilation.rs485._fan_in_percent | ventilation.fans.supply.is_on eval_trigger: - ventilation.fans.supply.is_on.as_text - ventilation.power.supply_fan.effective.as_text @@ -468,8 +461,6 @@ ventilation: visu_acl: r type: str eval: sh.ventilation.airflow.supply_fan.effective.as_text() + ' (' + sh.ventilation.fans.supply.percent.effective.as_text() + ')' - - # eval_trigger: ventilation.rs485._fanspeed ventilation.rs485._fan_in_percent | ventilation.fans.supply.is_on eval_trigger: - ventilation.airflow.supply_fan.effective.as_text - ventilation.fans.supply.percent.effective.as_text @@ -480,19 +471,16 @@ ventilation: is_on: name: Lüfter ist wirklich an type: num - eval: 0 if (sh.ventilation.rs485._fan_out_on_off()==1 or sh.ventilation.rs485._power_state()==0) else 1 + eval: 0 if (sh.ventilation.rs485._fan_out_on_off()==1 or not sh.ventilation.rs485._powerstate()) else 1 eval_trigger: - ventilation.rs485._fan_out_on_off - - ventilation.rs485._power_state - sqlite: 'yes' + - ventilation.rs485._powerstate + # sqlite = yes - # rrd: yes - # rrd_min: yes - # rrd_max: yes as_text: name: Item als formatierter Text type: str - eval: "'An' if sh.ventilation.fans.exhaust.is_on()==1 else 'Aus'" + eval: "'an' if sh.ventilation.fans.exhaust.is_on()==1 else 'aus'" eval_trigger: ventilation.fans.exhaust.is_on # '---> ventilation.rs485._fan_out_percent' @@ -509,8 +497,6 @@ ventilation: type: num visu_acl: rw eval: sh.ventilation.rs485._fan_out_percent() * sh.ventilation.fans.exhaust.is_on() - - # 'eval_trigger: | ventilation.rs485._fanspeed' eval_trigger: - ventilation.rs485._fan_out_percent - ventilation.fans.exhaust.is_on @@ -567,9 +553,10 @@ ventilation: - ventilation.rs485._max_fanspeed # Booster (built-in and logic-triggered) + # ============================================================================================== + booster: - # '============================================================================================ #' built_in: name: Original-Stoßlueftung der Anlagen-Firmware type: num @@ -618,17 +605,19 @@ ventilation: value: 10 visu_acl: r + # ToDo boost_remaining_a: - # name: Verbleibende Stosslüftungszeit - Logik 1 + # name = Verbleibende Stosslüftungszeit - Logik 1 type: num - # eval_trigger: ventilation.booster.logics.boost_duration # muss was anderes sein + # eval_trigger = ventilation.booster.logics.boost_duration # muss was anderes sein # eval: funktioniert, aber item noch korrigieren --> nur bei boost true eval: __import__('math').ceil(sh.ventilation.booster.logics.boost_duration()/60) # Summer bypass + # ============================================================================================== + bypass: - # '============================================================================================ #' is_on: name: Summer bypass on --> 1 type: num @@ -641,7 +630,7 @@ ventilation: eval: "'an' if sh.ventilation.bypass.is_on() else 'aus'" eval_trigger: ventilation.bypass.is_on - # '---> ventilation.rs485._frost_setpoint' + # 'ToDo: rs485-variable prüfen' setpoint: as_text: @@ -663,9 +652,10 @@ ventilation: eval_trigger: ventilation.bypass.heat_recovery # Device errors, alarms, filter change + # ============================================================================================== + alarms: - # '============================================================================================ #' last_error: name: Aktueller Fehler type: str @@ -704,9 +694,10 @@ ventilation: filter_warning: # Input / output air flow and air exchange rate + # ============================================================================================== + airflow: - # '============================================================================================ #' supply_fan: name: Luftdurchsatz in m³ gem. Messung oder Ventilatorkurve type: num @@ -725,11 +716,7 @@ ventilation: eval_trigger: - ventilation.airflow.supply_fan - ventilation.fans.supply.percent.effective - sqlite: 'yes' - # rrd: yes - # rrd_min: yes - # rrd_max: yes as_text: name: Item als formatierter Text type: str @@ -754,11 +741,7 @@ ventilation: eval_trigger: - ventilation.airflow.exhaust_fan - ventilation.fans.exhaust.percent.effective - sqlite: 'yes' - # rrd: yes - # rrd_min: yes - # rrd_max: yes as_text: name: Item als formatierter Text type: str @@ -773,30 +756,32 @@ ventilation: eval_trigger: ventilation.airflow.supply_fan.effective # Recommended air echange volumes for your house in m³/h as per DIN 1946-6 + # ========================================================================================== + # + # Die KWL sollte so ausgelegt sein, dass sie einen Luftaustausch zwischen + # Feuchteschutz (min) und Intensivlüftung (max) gewährleistet. + # + # Beispiel für eine Gebäudefläche von 280 m² in einem gedämmten Gebäude: + # Feuchteschutz = 0,3 *(-0,001*280² + 1,15*280+20) = 0,3*(-78,4+322+20) = 79,08 + # Nennlüftung = -0,001*280² + 1,15*280+20 = 263,6 + # Reduzierte Lüftung = 0,7 *(-0,001*280² + 1,15*280+20) = 184,52 + # Intensivlüftung = 1,15 *(-0,001*280² + 1,15*280+20) = 303,14 + # Für Auslegung nach DIN wird also KWL benötigt, die zwischen 80m³/h und 300 m³/h liefert. + # + # Die errechneten Werte wurden mit denen des Helios Auslegungsprogramms verglichen. + # Die beiden wichtigsten Werte (Feuchteschutz, Intensivlüftung) sind zu 100% identisch. + # Die beiden anderen Werte (reduzierte Lüftung, Nennlüftung) weichen leicht ab (~10%). + # Grund ist vermutlich, dass das Helios-Auslegungsprogramm sowohl Volumina als auch + # Hausgeometrie berücksichtigt, die DIN-Formeln aber nur pauschale Flächen. 10% sind für die + # Gesamtbetrachtung aber unwesentlich (ergibt ~10...15 m³/h mehr Luftaustausch als Helios). + # + # Eigene Berechnungen im Auslegungsassistenten unter: + # https://www.kwleasyplan.de/Erstellen-Sie-Ihr-Angebot/2.html?lang=de&stland=de&nav=auslegung + # + # unklar ist --> Wieso berechnet die DIN nach Fläche statt Volumen??? + DIN: - # ======================================================================================== # - # Die KWL sollte so ausgelegt sein, dass sie einen Luftaustausch zwischen - # Feuchteschutz (min) und Intensivlüftung (max) gewährleistet. - # - # Beispiel für eine Gebäudefläche von 280 m² in einem gedämmten Gebäude: - # Feuchteschutz = 0,3 *(-0,001*280² + 1,15*280+20) = 0,3*(-78,4+322+20) = 79,08 - # Nennlüftung = -0,001*280² + 1,15*280+20 = 263,6 - # Reduzierte Lüftung = 0,7 *(-0,001*280² + 1,15*280+20) = 184,52 - # Intensivlüftung = 1,15 *(-0,001*280² + 1,15*280+20) = 303,14 - # Für Auslegung nach DIN wird also KWL benötigt, die zwischen 80m³/h und 300 m³/h liefert. - # - # Die errechneten Werte wurden mit denen des Helios Auslegungsprogramms verglichen. - # Die beiden wichtigsten Werte (Feuchteschutz, Intensivlüftung) sind zu 100% identisch. - # Die beiden anderen Werte (reduzierte Lüftung, Nennlüftung) weichen leicht ab (~10%). - # Grund ist vermutlich, dass das Helios-Auslegungsprogramm sowohl Volumina als auch - # Hausgeometrie berücksichtigt, die DIN-Formeln aber nur pauschale Flächen. Die Abweichungen - # waren aber unwesentlich (dieses Plugin errechnet ~15 m³/h mehr Luftaustausch als Helios). - # - # Eigene Berechnungen im Auslegungsassistenten unter: - # https://www.kwleasyplan.de/Erstellen-Sie-Ihr-Angebot/2.html?lang=de&stland=de&nav=auslegung - # - # unklar ist --> Wieso berechnet die DIN nach Fläche statt Volumen??? # Mindestlüftung für Feuchteschutz in m³/h (nach DIN) moisture_protection: name: Feuchteschutz # fWS * (-0,001 * Ane² + 1,15 * Ane + 20) @@ -804,7 +789,7 @@ ventilation: visu_acl: r eval: round(sh.ventilation.parameters.fWS() * (-0.001 * (sh.ventilation.parameters.Ane()*sh.ventilation.parameters.Ane()) + 1.15 * sh.ventilation.parameters.Ane() + 20)) eval_trigger: - - ventilation.parameter.ane + - ventilation.parameters.Ane - ventilation.parameters.fWS air_exchange_rate: @@ -820,7 +805,7 @@ ventilation: type: num visu_acl: r eval: round(0.7 * (-0.001 * (sh.ventilation.parameters.Ane()*sh.ventilation.parameters.Ane()) + 1.15 * sh.ventilation.parameters.Ane() + 20)) - eval_trigger: ventilation.parameter.ane + eval_trigger: ventilation.parameters.Ane air_exchange_rate: name: Luftaustauschrate bei reduzierter Lüftung @@ -835,7 +820,7 @@ ventilation: type: num visu_acl: r eval: round(-0.001 * (sh.ventilation.parameters.Ane()*sh.ventilation.parameters.Ane()) + 1.15 * sh.ventilation.parameters.Ane() + 20) - eval_trigger: ventilation.parameter.ane + eval_trigger: ventilation.parameters.Ane air_exchange_rate: name: Luftaustauschrate bei Nennlüftung @@ -850,7 +835,7 @@ ventilation: type: num visu_acl: r eval: round(1.15 * (-0.001 * (sh.ventilation.parameters.Ane()*sh.ventilation.parameters.Ane()) + 1.15 * sh.ventilation.parameters.Ane() + 20)) - eval_trigger: ventilation.parameter.ane + eval_trigger: ventilation.parameters.Ane air_exchange_rate: name: Luftaustauschrate bei Intensivlüftung @@ -860,92 +845,160 @@ ventilation: eval_trigger: ventilation.airflow.DIN.boost_air_exchange # Efficiency calculations - interpret with care - thermal_efficiency: + # ============================================================================================== + thermal_energy: - # '============================================================================================ #' - energy_lost: - name: Verlustwärme + total_outgoing: + name: Energiegehalt der Abluft type: num visu_acl: r - eval: round(1.005 * 1.024 / 3.6 * sh.ventilation.airflow.exhaust_fan.effective() * (sh.ventilation.rs485._inside_temp() - sh.ventilation.rs485._incoming_temp())) + cache: 'true' + # 'cache = true # otherwise often div/0 at startup; cache not working for some reason' + # database: 'init' + database: 'true' + eval: round(1.005 * 1.204 / 3.6 * sh.ventilation.airflow.exhaust_fan.effective() * (sh.ventilation.rs485._inside_temp() - sh.ventilation.rs485._outside_temp())) eval_trigger: - ventilation.airflow.exhaust_fan.effective - ventilation.rs485._inside_temp - - ventilation.rs485._incoming_temp - sqlite: 'yes' + - ventilation.rs485._outside_temp + + as_text: + name: Wärmeenergie + 'W' + type: str + visu_acl: r + eval: "'%sW' % (sh.ventilation.thermal_energy.total_outgoing())" + eval_trigger: ventilation.thermal_energy.total_outgoing + + loss: + name: Restenrgiegehalt der Fortluft (=Verlustwärme) + eval: round(1.005 * 1.204 / 3.6 * sh.ventilation.airflow.exhaust_fan.effective() * (sh.ventilation.rs485._exhaust_temp() - sh.ventilation.rs485._outside_temp())) + eval_trigger: + - ventilation.airflow.exhaust_fan.effective + - ventilation.rs485._exhaust_temp + - ventilation.rs485._outside_temp + type: num + visu_acl: r + # sqlite = yes + # database: 'init' + database: 'true' - # rrd: yes - # rrd_min: yes - # rrd_max: yes as_text: name: Verlustwärme + 'W' type: str visu_acl: r - eval: "'%sW' % (sh.ventilation.thermal_efficiency.energy_lost())" - eval_trigger: ventilation.thermal_efficiency.energy_lost + eval: "'%sW' % (sh.ventilation.thermal_energy.loss())" + eval_trigger: ventilation.thermal_energy.loss - energy_recovered: + recovery: name: Rückgewonnene Wärme type: num visu_acl: r - eval: round(1.005 * 1.024 / 3.6 * sh.ventilation.airflow.supply_fan.effective() * (sh.ventilation.rs485._incoming_temp() - sh.ventilation.rs485._outside_temp())) + eval: round(1.005 * 1.204 / 3.6 * sh.ventilation.airflow.supply_fan.effective() * (sh.ventilation.rs485._incoming_temp() - sh.ventilation.rs485._outside_temp())) eval_trigger: - ventilation.airflow.supply_fan.effective - ventilation.rs485._incoming_temp - ventilation.rs485._outside_temp - sqlite: 'yes' + # sqlite = yes + # database: 'init' + database: 'true' - # rrd: yes - # rrd_min: yes - # rrd_max: yes as_text: name: Rückgewonnene Wärme + 'W' type: str visu_acl: r - eval: "'%sW' % (sh.ventilation.thermal_efficiency.energy_recovered())" - eval_trigger: ventilation.thermal_efficiency.energy_recovered + eval: "'%sW' % (sh.ventilation.thermal_energy.recovery())" + eval_trigger: ventilation.thermal_energy.recovery - energy_total: - name: Summe rückgewonnen + verloren (=Wärmeenergie der Abluft aus den Räumen) + # = total - loss - recovery + defrost: + name: Verlustwärme durch Aufheizen des Wärmetauschers type: num visu_acl: r - eval: sh.ventilation.thermal_efficiency.energy_lost() + sh.ventilation.thermal_efficiency.energy_recovered() + eval: sh.ventilation.thermal_energy.total_outgoing() - sh.ventilation.thermal_energy.loss() - sh.ventilation.thermal_energy.recovery() eval_trigger: - - ventilation.thermal_efficiency.energy_lost - - ventilation.thermal_efficiency.energy_recovered + - ventilation.thermal_energy.total_outgoing + - ventilation.thermal_energy.loss + - ventilation.thermal_energy.recovery + # sqlite = yes + # database: 'init' + database: 'true' as_text: - name: Wärmeenergie + 'W' + name: Verlustwärme durch Aufheizen + 'W' type: str visu_acl: r - eval: "'%sW' % (sh.ventilation.thermal_efficiency.energy_total())" - eval_trigger: ventilation.thermal_efficiency.energy_total + eval: "'%sW' % (sh.ventilation.thermal_energy.defrost())" + eval_trigger: ventilation.thermal_energy.defrost efficiency: name: Wirkungsgrad in % type: num visu_acl: r - eval: round((sh.ventilation.rs485._incoming_temp() - sh.ventilation.rs485._outside_temp()) / (sh.ventilation.rs485._inside_temp() - sh.ventilation.rs485._outside_temp()) * 100) + # 0.000001 addieren, sonst beim Start DIV/0 + eval: round(sh.ventilation.thermal_energy.recovery() / (sh.ventilation.thermal_energy.total_outgoing()+0.000001) * 100) eval_trigger: - - ventilation.rs485._incoming_temp - - ventilation.rs485._outside_temp - - ventilation.rs485._inside_temp - sqlite: 'yes' + - ventilation.thermal_energy.recovery + - ventilation.thermal_energy.total_outgoing + # sqlite = yes + # database: 'init' + database: 'true' - # rrd: yes - # rrd_min: yes - # rrd_max: yes as_text: name: Wirkungsgrad + '%' type: str visu_acl: r - eval: str(int(sh.ventilation.thermal_efficiency.efficiency())) + '%' - eval_trigger: ventilation.thermal_efficiency.efficiency + eval: str(int(sh.ventilation.thermal_energy.efficiency())) + '%' + eval_trigger: ventilation.thermal_energy.efficiency + + # =========== alternative calculations ======================# + alt_total_outgoing: + name: Energieverlust Abluft total + type: num + visu_acl: r + eval: round(1.005 * 101325 / ( 287.05 * (sh.ventilation.rs485._inside_temp() - sh.ventilation.rs485._outside_temp() + 273.15)) / 3.6 * sh.ventilation.airflow.exhaust_fan.effective() * (sh.ventilation.rs485._inside_temp() - sh.ventilation.rs485._outside_temp())) + eval_trigger: + - ventilation.airflow.exhaust_fan.effective + - ventilation.rs485._inside_temp + - ventilation.rs485._outside_temp + + alt_loss: + name: Restenrgiegehalt der Fortluft (=Verlustwärme) + eval: round(1.005 * (101325 / (287.05 * (sh.ventilation.rs485._exhaust_temp() - sh.ventilation.rs485._outside_temp() + 273.15))) / 3.6 * sh.ventilation.airflow.exhaust_fan.effective() * (sh.ventilation.rs485._exhaust_temp() - sh.ventilation.rs485._outside_temp())) + eval_trigger: + - ventilation.airflow.exhaust_fan.effective + - ventilation.rs485._exhaust_temp + - ventilation.rs485._outside_temp + type: num + visu_acl: r + + alt_recovery: + name: Rückgewonnene Wärme + type: num + visu_acl: r + eval: round(1.005 * (101325 / (287.05 * (sh.ventilation.rs485._incoming_temp() - sh.ventilation.rs485._outside_temp() + 273.15))) / 3.6 * sh.ventilation.airflow.supply_fan.effective() * (sh.ventilation.rs485._incoming_temp() - sh.ventilation.rs485._outside_temp())) + eval_trigger: + - ventilation.airflow.supply_fan.effective + - ventilation.rs485._incoming_temp + - ventilation.rs485._outside_temp + + alt_defrost: + name: Verlustwärme durch Aufheizen des Wärmetauschers + type: num + visu_acl: r + eval: sh.ventilation.thermal_energy.alt_total_outgoing() - sh.ventilation.thermal_energy.alt_loss() - sh.ventilation.thermal_energy.alt_recovery() + eval_trigger: + - ventilation.thermal_energy.total_outgoing + - ventilation.thermal_energy.loss + - ventilation.thermal_energy.recovery + + # sqlite = yes + # 101325/(287,05*(temp+273,15)) + # 101325/(287,05*(sh.ventilation.rs485._exhaust_temp()+273,15)) # Electrical power consumption + # ============================================================================================== power: - # '============================================================================================ #' heating: name: Aktueller Stromverbrauch der Vorheizung in W type: num @@ -1026,9 +1079,9 @@ ventilation: eval_trigger: ventilation.power.total # Helper items for testing + # ============================================================================================== testing: - # '============================================================================================ #' a_num: name: Numerisches Testitem type: num From 7842068b515760347d51c03a957ecb8431f78b98 Mon Sep 17 00:00:00 2001 From: msinn Date: Sat, 11 May 2019 21:35:06 +0200 Subject: [PATCH 21/47] Revert "Helios plugin error fix for 1.6 and some additional changes" --- helios/__init__.py | 6 +- helios/files/helios.yaml | 555 ++++++++++++++++++--------------------- helios/plugin.yaml | 2 +- 3 files changed, 255 insertions(+), 308 deletions(-) diff --git a/helios/__init__.py b/helios/__init__.py index ff7e14bd7..2c7f30779 100755 --- a/helios/__init__.py +++ b/helios/__init__.py @@ -147,7 +147,7 @@ def _waitForSilence(self): gotSlot = False backupTimeout = self._port.timeout end = time.time() + 3 - self._port.timeout = 0.007 # Changed from 0.07 --> 0.007 (7ms) according to Standard + self._port.timeout = 0.07 while end > time.time(): chars = self._port.read(1) # nothing received so we got a slot of silence...hopefully @@ -409,8 +409,8 @@ def readValue(self,varname): .format(varname, '0x%0*X' % (2, CONST_MAP_VARIABLES_TO_ID[varname]["varid"]), '0x%0*X' % (2,raw_value), "{0:08b}".format(raw_value), raw_value, value) ) - else: # logging as info only, so we stop spamming log file as some noise on the bus seems to be normal - self.logger.info("Helios: No valid value for '{0}' from ventilation system received." + else: # logging in debug only, so we stop spamming log file (noise on the bus seems to be normal) + self.logger.debug("Helios: No valid value for '{0}' from ventilation system received." .format(varname) ) else: diff --git a/helios/files/helios.yaml b/helios/files/helios.yaml index 6ebc05269..bf3c4113e 100644 --- a/helios/files/helios.yaml +++ b/helios/files/helios.yaml @@ -1,89 +1,83 @@ -%YAML 1.1 ---- - -# smarthome/items/helios.conf, version 0.95 -# Item file for smarthome.py - Helios/Vallox ventilation unit control & visualization through RS485. +# smarthome/items/helios.yaml, version 1.0a +# Item file for smarthome.py - Helios/Vallox ventilation unit control & visualization through RS485 # Use at own risk - ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. - ventilation: # Settings - by default for Helios EC/ET 300 Pro; adjust as necessary - # ============================================================================================== - parameters: + # '============================================================================================ #' house_volume: name: Volumen des Hauses in m³ ("umbauter Raum", der von der Lüftung durchströmt wird) type: num - # value = 546 # umbauter Raum (546m³); gem. Helios-Rechner nur 384 m³ belüftet (???) + # "value: 546 # Original 'umbauter Raum' = 546; gem. Helios-Rechner aber nur 384" value: 384 visu_acl: r - Ane: - name: 'DIN: Fläche (A) der Nutzungseinheit (ne) in m² (=belüftete Fläche, Wohnfläche)' - type: num - # value = 143 - value: 143 - visu_acl: r - - fWS: - name: 'DIN: Wärmeschutzfaktor (0,3 für Haus mit aktueller Wärmedämmung, sonst 0,4)' - type: num - # value = 0.3 - value: '0.3' - visu_acl: r - - daemmung: - name: Haustyp gem. Wärmeschutzdämmung # nicht ändern, wird automatisch gesetzt - type: str - visu_acl: r - eval: '"gedämmt" if (sh.ventilation.parameters.fWS()<0.4) else "teil-/ungedämmt"' - eval_trigger: ventilation.parameters.fWS - max_airflow: name: Maximaler Volumenstrom der KWL in m³ (siehe Anlagendoku) type: num - # value = 360 # Default Helios EC/ET 300 Pro + # 'value: 360 # Default Helios EC/ET 300 Pro' value: 360 visu_acl: r fanspeed_levels: name: Anzahl der Schaltstufen der KWL (siehe Anlagendoku); wird z.Z. nicht verwendet type: num - # value = 8 # Default Helios EC/ET 300 Pro + # 'value: 8 # Default Helios EC/ET 300 Pro' value: 8 visu_acl: r airflow_per_mode: name: Volumenstrom je Stufe in m³/h (siehe Anlagendoku); F7-Filter = jeweils -10%! type: str - # value = "0 105 165 195 240 270 305 335 360" # Default Helios EC/ET 300 Pro + # 'value: "0 105 165 195 240 270 305 335 360" # Default Helios EC/ET 300 Pro' value: 0 105 165 195 240 270 305 335 360 visu_acl: r consumption_per_mode: name: Verbrauch _beider_ Ventilatoren je Stufe in W (siehe Anlagendoku) type: str - # value = "0 20 36 50 72 92 130 160 194" # Default Helios EC/ET 300 Pro + # 'value: "0 20 36 50 72 92 130 160 194" # Default Helios EC/ET 300 Pro' value: 0 20 36 50 72 92 130 160 194 visu_acl: r preheating_consumption: name: Stromverbrauch der Vorheizung in W (siehe Anlagendoku) type: num - # value = 1000 # Default Helios EC/ET 300 Pro + # 'value: 1000 # Default Helios EC/ET 300 Pro' value: 1000 visu_acl: r + fWS: + name: DIN - Wärmeschutzfaktor; 0,3 für Haus mit Wärmeschutzdämmung, sonst 0,4 + type: num + # value: 0.3 + value: '0.3' + visu_acl: r + + daemmung: + name: Haustyp gem. Wärmeschutzdämmung # nicht ändern, wird automatisch gesetzt + type: str + visu_acl: r + eval: '"gedämmt" if (sh.ventilation.parameters.fWS()<0.4) else "teil-/ungedämmt"' + eval_trigger: ventilation.parameters.fWS + + Ane: + name: DIN - Fläche (A) der Nutzungseinheit (ne) in m² + type: num + # 'value: 143 # Lüftungsrelevante Nutzfläche des Hauses' + value: 143 + visu_acl: r + # sh.py/logics/helios_logics.py - Booster ("Stoßlüftung") settings - # ============================================================================================== - logics_settings: + # ============================================================================================ # + # 1=Helios default, 2=Logic with fixed values, 3=Logic (interactive Popup) boost_mode: name: Setting for booster type: num - # value: 1=Helios default, 2=Logic with fixed values, 3=Logic (interactive Popup) value: 3 visu_acl: r @@ -96,19 +90,17 @@ ventilation: boost_time: name: Setting for booster - duration for logic with fixed values (only for boost_mode 2) type: num - # value = 2700 ---> 45 minutes * 60 seconds = 2700 seconds + # 'value: 2700 # 45 minutes * 60 seconds = 2700 seconds' value: 2700 visu_acl: r - # ============================================================================================== - # Don't modify the items below unless you know what you're doing - # ============================================================================================== - + # ============================================================================================ # + # Don't modify items below unless you know what you're doing # + # ============================================================================================ # # UZSU - Universelle Zeit Schalt Uhr - # ============================================================================================== - uzsu: + # '============================================================================================ #' fanspeed_uzsu: name: 'Zeitschaltuhr: Hilfsitem für Tests' type: num @@ -122,105 +114,101 @@ ventilation: visu_acl: rw # Connectors to the plugin values - # ============================================================================================ # - rs485: - _powerstate: + # '============================================================================================ #' + _power_state: name: Anlage an / aus type: num helios_var: power_state visu_acl: rw _bypass_disabled: - name: 0 = Sommermodus (aut. Bypass), 1= Wintermodus (Bypass deakt., LED an FBD ist an) + name: Sommerbypass an / aus type: num helios_var: bypass_disabled visu_acl: rw _bypass_setpoint: - name: Temperatur für automatische Umschaltung des Sommerbypasses, Standard = 10°C - # Siehe Handbuch - der Bypass wird aktiviert wenn: - # - die Aussentemperatur über dem hier eingestellten Wert liegt *UND* - # - die Raumtemperatur > Aussentemperatur ist - # ToDo: Macht Wert 18...20°C hier eher Sinn? + name: Temperatur für automatische Umschaltung des Sommerbypasses type: num helios_var: bypass_temp visu_acl: r _outside_temp: name: 'DIN/EN: Außenluft, outdoor air / ODA, grün; Luft von draussen' - # Achtung: Bei starkem Frost wird der Zuluftventilator automatisch gestoppt. - # In diesem Fall weicht die 'outside_temp' von der tatsächlichen Außentemperatur - # stark ab, da keine Frischluft mehr in die Anlage geführt wird. - # (Erwärmung des WT Anlage durch die Raumtemperatur sowie durch die ggf. gerade - # abkühlende Vorheizung verfälschen dann die Werte) type: num helios_var: outside_temp visu_acl: r - # sqlite = yes - database: 'init' - + sqlite: 'yes' + + # rrd: yes + # rrd_min: yes + # rrd_max: yes + # Achtung: Bei starkem Frost wird der Zuluftventilator automatisch gestoppt. + # In diesem Fall weicht die 'outside_temp' von der tatsächlichen Außentemperatur + # stark ab, da keine Frischluft mehr in die Anlage geführt wird. + # (Erwärmung des WT Anlage durch die Raumtemperatur sowie durch die ggf. gerade + # abkühlende Vorheizung verfälschen dann die Werte) _incoming_temp: name: 'DIN/EN: Zuluft, supply air / SUP, blau; Luft in die Räume' type: num helios_var: incoming_temp visu_acl: r - # sqlite = yes - database: 'init' + sqlite: 'yes' + # rrd: yes + # rrd_min: yes + # rrd_max: yes _inside_temp: name: 'DIN/EN: Abluft, extract air / ETA, gelb; Luft aus den Räumen' type: num - cache: true - # cache = true --> sonst beim Start Fehler div/0 bei Berechnungen + cache: true # schmeisst sonst beim Start Fehler div/0 bei Berechnungen helios_var: inside_temp visu_acl: r - # sqlite = yes - database: 'init' + sqlite: 'yes' + # rrd: yes + # rrd_min: yes + # rrd_max: yes _exhaust_temp: name: 'DIN/EN: Fortluft, exhaust air, braun; Luft nach draussen' type: num helios_var: exhaust_temp visu_acl: r - # sqlite = yes - database: 'init' - - _heating_setpoint: - name: Einschalttemperatur Vorheizung - type: num - visu_acl: rw - helios_var: heating_setpoint + sqlite: 'yes' + # rrd: yes + # rrd_min: yes + # rrd_max: yes _heating_on_off: name: Vorheizung ein type: num visu_acl: rw helios_var: heating_on_off - # sqlite = yes - database: 'true' + sqlite: 'yes' + + # rrd: yes + # rrd_min: yes + # rrd_max: yes + _heating_setpoint: + name: Einschalttemperatur Vorheizung + type: num + visu_acl: rw + helios_var: heating_setpoint - _defrost_setpoint: + _frost_setpoint: name: Frostschutztemperatur - Zuluft aus unter dieser Temperatur type: num visu_acl: rw helios_var: frost_stop - _defrost_hysteresis: + _frost_hysteresis: name: Hysteresetemperatur Frostschutz, 0x03 ~ 1°C type: num visu_acl: rw helios_var: cell_defrost - _fanspeed: - name: 'Aktuelle Lüftungsstufe (EC300Pro: 1..8)' - type: num - helios_var: fanspeed - visu_acl: rw - # sqlite = yes - database: 'true' - _min_fanspeed: name: 'Lüftungerstufe min (EC300Pro: 1..8)' type: num @@ -233,6 +221,16 @@ ventilation: helios_var: max_fanspeed visu_acl: rw + _fanspeed: + name: 'Aktuelle Lüftungsstufe (EC300Pro: 1..8)' + type: num + helios_var: fanspeed + visu_acl: rw + sqlite: 'yes' + + # rrd: yes + # rrd_min: yes + # rrd_max: yes _fan_in_on_off: name: Ausschaltregister (1=aus); u.a. vom Frostschutz benutzt; ggf zweifach beschreiben type: num @@ -244,7 +242,11 @@ ventilation: type: num helios_var: fan_in_percent visu_acl: rw + sqlite: 'yes' + # rrd: yes + # rrd_min: yes + # rrd_max: yes _fan_out_on_off: name: Ausschaltregister (1=aus); ggf zweifach beschreiben type: num @@ -256,6 +258,16 @@ ventilation: type: num helios_var: fan_out_percent visu_acl: rw + sqlite: 'yes' + + # rrd: yes + # rrd_min: yes + # rrd_max: yes + _boost_on: + name: Stoßlüftung ein (Anlage setzt selbstständig zurück) + type: bool + helios_var: boost_on + visu_acl: rw _boost_mode: name: 'Grundeinstellung: 0=Kaminlüftung ("Anheizen"), 1=Stoßlüftung' @@ -263,13 +275,7 @@ ventilation: helios_var: boost_mode visu_acl: rw - _boost_on: - name: Einschalter für Stoßlüftung (Anlage setzt selbstständig zurück) - type: bool - helios_var: boost_on - visu_acl: rw - - # ToDo: Wird in den Logiken nicht verwendet???? --> prüfen + # Wird in den Logiken nicht verwendet???? --> prüfen _boost_status: name: Aktueller Status type: bool @@ -293,36 +299,35 @@ ventilation: type: num helios_var: device_error visu_acl: r - # Konstanten für Fehleranzeige in der Visu --> ErrNo:Name:Description:Countermeasures - e0: 0:Kein Fehler:Kein Fehlertext:Keine Fehlerbehebung - e1: 1:?:?:? - e2: 2:?:?:? - e3: 3:?:?:? - e4: 4:?:?:? - e5: 5:Zuluftsensor defekt:Fühler lose, Kurzschluss
oder Temperatur >90°C gemessen:Gerätestecker ziehen (ausschalten), kurz warten und wieder einstecken - e6: 6:CO2-Alarm:CO2-Wert >5.000 ppm seit mehr als 3 Minuten:Ursache ermitteln oder ggf. Sensor überprüfen lassen. - e7: 7:Außenluftsensor defekt:Fühler lose, Kurzschluss oder Temperatur >90°C gemessen:Gerätestecker ziehen (ausschalten), kurz warten und wieder einstecken - e8: 8:Abluftsensor defekt:Fühler lose, Kurzschluss oder Temperatur >90°C gemessen:Gerätestecker ziehen (ausschalten), kurz warten und wieder einstecken - e9: 9:Frostwarnung:Außenluft <0°C und Zuluft <8°C - Frostgefahr am Wärmetauscher:Der Alarm verschwindet automatisch bei normalisierten Temperaturen + e0: 0:Kein Fehler:Kein Fehlertext:Keine Fehlerbehebung # Format = ErrNo:Name:Description:Countermeasures + e1: 1:?:?:? + e2: 2:?:?:? + e3: 3:?:?:? + e4: 4:?:?:? + e5: 5:Zuluftsensor defekt:Fühler lose, Kurzschluss
oder Temperatur >90°C gemessen:Gerätestecker ziehen (ausschalten), kurz warten und wieder einstecken + e6: 6:CO2-Alarm:CO2-Wert >5.000 ppm seit mehr als 3 Minuten:Ursache ermitteln oder ggf. Sensor überprüfen lassen. + e7: 7:Außenluftsensor defekt:Fühler lose, Kurzschluss oder Temperatur >90°C gemessen:Gerätestecker ziehen (ausschalten), kurz warten und wieder einstecken + e8: 8:Abluftsensor defekt:Fühler lose, Kurzschluss oder Temperatur >90°C gemessen:Gerätestecker ziehen (ausschalten), kurz warten und wieder einstecken + e9: 9:Frostwarnung:Außenluft <0°C und Zuluft <8°C - Frostgefahr am Wärmetauscher:Der Alarm verschwindet automatisch bei normalisierten Temperaturen e10: 10:Fortluftsensor defekt:Fühler lose, Kurzschluss oder Temperatur >90°C gemessen:Gerätestecker ziehen (ausschalten), kurz warten und wieder einstecken # Fresh air heating ("pre-heating") - # ============================================================================================== - heating: + # ============================================================================================ # + # hier noch prüfen, was passiert, wenn der Frostschutz greift (angeblich Motor aus = Heizung aus) is_on: name: Pre-heating on --> 1 type: num - eval: (sh.ventilation.rs485._heating_on_off() and sh.ventilation.rs485._powerstate()) + eval: (sh.ventilation.rs485._heating_on_off() and sh.ventilation.rs485._power_state()) eval_trigger: - ventilation.rs485._heating_on_off - - ventilation.rs485._powerstate + - ventilation.rs485._power_state as_text: name: Item als formatierter Text type: str - eval: "'an' if sh.ventilation.heating.is_on() else 'aus'" + eval: "'An' if sh.ventilation.heating.is_on() else 'Aus'" eval_trigger: ventilation.heating.is_on setpoint: @@ -330,50 +335,47 @@ ventilation: as_text: name: Item als formatierter Text type: str - # ToDo: alle as_text noch umstellen, Beispiel: eval: '{0},{1},{2}'.format(sh...Hue(), sh...Sat(), sh...Bright()) - # also hier: eval: '{0}°C'.format(sh..()) (Anzahl Punkte noch prüfen) eval: str(int(sh.ventilation.rs485._heating_setpoint())) + '°C' eval_trigger: ventilation.rs485._heating_setpoint - # Fresh air fan auto-stop (frost) - measured at EXHAUST temperature (!) - # ============================================================================================== - + # Fresh air fan auto-stop (frost) frost_protection: + # ============================================================================================ # + # hier evtl. noch Logikfehler --> wird wieder 1, wenn setpoint überschritten, aber hysterese noch nicht erreicht ist; Test mit neuem eval_trigger is_on: - name: Defrost eingeschaltet --> 1 + name: Frost-protection on --> 1 type: num - eval: 1 if ((sh.ventilation.rs485._exhaust_temp()<=sh.ventilation.frost_protection.defrost_end()) and not sh.ventilation.fans.supply.is_on()) else 0 + eval: 1 if ((sh.ventilation.rs485._exhaust_temp()<=sh.ventilation.rs485._frost_setpoint()) and not sh.ventilation.fans.supply.is_on()) else 0 + + # eval_trigger: ventilation.rs485._exhaust_temp | ventilation.rs485._frost_setpoint | ventilation.fans.supply.is_on eval_trigger: - - ventilation.rs485._exhaust_temp - - ventilation.rs485._defrost_setpoint + - ventilation.rs485._frost_setpoint - ventilation.fans.supply.is_on as_text: name: Item als formatierter Text type: str - eval: "'an' if sh.ventilation.frost_protection.is_on() else 'aus'" + eval: "'An' if sh.ventilation.frost_protection.is_on() else 'Aus'" eval_trigger: ventilation.frost_protection.is_on - # '---> ventilation.rs485._defrost_setpoint' + # '---> ventilation.rs485._frost_setpoint' setpoint: - name: 'Temperatur der Fortluft in °C - 1°C = Zuluft aus (Frost-/Vereisungsschutz)' as_text: name: Item als formatierter Text type: str - eval: str(int(sh.ventilation.rs485._defrost_setpoint())) + '°C' - eval_trigger: ventilation.rs485._defrost_setpoint + eval: str(int(sh.ventilation.rs485._frost_setpoint())) + '°C' + eval_trigger: ventilation.rs485._frost_setpoint - # '---> ventilation.rs485._defrost_hysteresis' + # '---> ventilation.rs485._frost_hysteresis' hysteresis: - name: Setpoint °C + Hysterese °C + 1°C = Zuluft wieder an celsius: name: Umrechnung # 03h ~ 1°C type: num - eval: sh.ventilation.rs485._defrost_hysteresis() / 3 - eval_trigger: ventilation.rs485._defrost_hysteresis + eval: sh.ventilation.rs485._frost_hysteresis() / 3 + eval_trigger: ventilation.rs485._frost_hysteresis as_text: name: Item als formatierter Text @@ -381,49 +383,50 @@ ventilation: eval: str(int(sh.ventilation.frost_protection.hysteresis.celsius())) + '°C' eval_trigger: ventilation.frost_protection.hysteresis.celsius - defrost_end: - name: Ausschalttemperatur Fostschutz nach Erwärmung + end_setpoint: + name: Ausschalttemperatur Fostschutz type: num - eval: sh.ventilation.rs485._defrost_setpoint() + (sh.ventilation.rs485._defrost_hysteresis() / 3) + eval: sh.ventilation.rs485._frost_setpoint() + (sh.ventilation.rs485._frost_hysteresis() / 3) eval_trigger: - - ventilation.rs485._defrost_setpoint - - ventilation.rs485._defrost_hysteresis + - sh.ventilation.frost_protection.setpoint + - ventilation.frost_protection.hysteresis.celsius as_text: name: Item als formatierter Text type: str - eval: str(int(sh.ventilation.frost_protection.defrost_end())) + '°C' - eval_trigger: ventilation.frost_protection.defrost_end + eval: str(int(sh.ventilation.frost_protection.end_setpoint())) + '°C' + eval_trigger: ventilation.frost_protection.end_setpoint # Fans - # ============================================================================================== - # Hinweis: Für 0..10V-Signal sollten in den evals entsprechende Formeln gesetzt werden. - # Die anliegende Spannung ist im Register 2EH als Wert 0..FFh gespeichert. - fans: - supply: + # ============================================================================================ # + # Hinweis: Für 0..10V-Signal sollten in den evals entsprechende Formeln gesetzt werden. + # Die anliegende Spannung ist im Register 2EH als Wert 0..FFh gespeichert. # Fresh air - + supply: + is_on: name: Lüfter ist wirklich an - # type = num --> in bool gewandelt, Diagramme falsch + # type: num ## rene 12/2016: Diagramme falsch type: bool - eval: 0 if (sh.ventilation.rs485._fan_in_on_off()==1 or not sh.ventilation.rs485._powerstate()) else 1 + eval: 0 if (sh.ventilation.rs485._fan_in_on_off()==1 or sh.ventilation.rs485._power_state()==0) else 1 eval_trigger: - ventilation.rs485._fan_in_on_off - - ventilation.rs485._powerstate - # sqlite = yes - # database: 'init' - database: 'true' + - ventilation.rs485._power_state + sqlite: 'yes' + # rrd: yes + # rrd_min: yes + # rrd_max: yes as_text: name: Item als formatierter Text type: str - eval: "'an' if sh.ventilation.fans.supply.is_on() else 'aus'" + # eval: "'An' if sh.ventilation.fans.supply.is_on()==1 else 'Aus'" + eval: "'An' if sh.ventilation.fans.supply.is_on() else 'Aus'" eval_trigger: ventilation.fans.supply.is_on - # ---> ventilation.rs485._fan_in_percent + # '---> ventilation.rs485._fan_in_percent' percent: as_text: @@ -433,10 +436,12 @@ ventilation: eval_trigger: ventilation.rs485._fan_in_percent effective: - name: Tatsächliche Leistung in % unter Berücksichtigung von an/aus + name: Tatsächliche Drehzahl in % unter Berücksichtigung von an/aus type: num visu_acl: rw - eval: sh.ventilation.rs485._fan_in_percent() * int(sh.ventilation.fans.supply.is_on()) + eval: sh.ventilation.rs485._fan_in_percent() * int(sh.ventilation.fans.supply.is_on()) # # int hinzugefügt + + # 'eval_trigger: | ventilation.rs485._fanspeed | ventilation.rs485._exhaust_temp' eval_trigger: - ventilation.rs485._fan_in_percent - ventilation.fans.supply.is_on @@ -452,6 +457,8 @@ ventilation: visu_acl: r type: str eval: sh.ventilation.fans.supply.is_on.as_text() + ', ' + sh.ventilation.power.supply_fan.effective.as_text() + + # eval_trigger: ventilation.rs485._fanspeed | ventilation.rs485._fan_in_percent | ventilation.fans.supply.is_on eval_trigger: - ventilation.fans.supply.is_on.as_text - ventilation.power.supply_fan.effective.as_text @@ -461,6 +468,8 @@ ventilation: visu_acl: r type: str eval: sh.ventilation.airflow.supply_fan.effective.as_text() + ' (' + sh.ventilation.fans.supply.percent.effective.as_text() + ')' + + # eval_trigger: ventilation.rs485._fanspeed ventilation.rs485._fan_in_percent | ventilation.fans.supply.is_on eval_trigger: - ventilation.airflow.supply_fan.effective.as_text - ventilation.fans.supply.percent.effective.as_text @@ -471,16 +480,19 @@ ventilation: is_on: name: Lüfter ist wirklich an type: num - eval: 0 if (sh.ventilation.rs485._fan_out_on_off()==1 or not sh.ventilation.rs485._powerstate()) else 1 + eval: 0 if (sh.ventilation.rs485._fan_out_on_off()==1 or sh.ventilation.rs485._power_state()==0) else 1 eval_trigger: - ventilation.rs485._fan_out_on_off - - ventilation.rs485._powerstate - # sqlite = yes + - ventilation.rs485._power_state + sqlite: 'yes' + # rrd: yes + # rrd_min: yes + # rrd_max: yes as_text: name: Item als formatierter Text type: str - eval: "'an' if sh.ventilation.fans.exhaust.is_on()==1 else 'aus'" + eval: "'An' if sh.ventilation.fans.exhaust.is_on()==1 else 'Aus'" eval_trigger: ventilation.fans.exhaust.is_on # '---> ventilation.rs485._fan_out_percent' @@ -497,6 +509,8 @@ ventilation: type: num visu_acl: rw eval: sh.ventilation.rs485._fan_out_percent() * sh.ventilation.fans.exhaust.is_on() + + # 'eval_trigger: | ventilation.rs485._fanspeed' eval_trigger: - ventilation.rs485._fan_out_percent - ventilation.fans.exhaust.is_on @@ -553,10 +567,9 @@ ventilation: - ventilation.rs485._max_fanspeed # Booster (built-in and logic-triggered) - # ============================================================================================== - booster: + # '============================================================================================ #' built_in: name: Original-Stoßlueftung der Anlagen-Firmware type: num @@ -605,19 +618,17 @@ ventilation: value: 10 visu_acl: r - # ToDo boost_remaining_a: - # name = Verbleibende Stosslüftungszeit - Logik 1 + # name: Verbleibende Stosslüftungszeit - Logik 1 type: num - # eval_trigger = ventilation.booster.logics.boost_duration # muss was anderes sein + # eval_trigger: ventilation.booster.logics.boost_duration # muss was anderes sein # eval: funktioniert, aber item noch korrigieren --> nur bei boost true eval: __import__('math').ceil(sh.ventilation.booster.logics.boost_duration()/60) # Summer bypass - # ============================================================================================== - bypass: + # '============================================================================================ #' is_on: name: Summer bypass on --> 1 type: num @@ -630,7 +641,7 @@ ventilation: eval: "'an' if sh.ventilation.bypass.is_on() else 'aus'" eval_trigger: ventilation.bypass.is_on - # 'ToDo: rs485-variable prüfen' + # '---> ventilation.rs485._frost_setpoint' setpoint: as_text: @@ -652,10 +663,9 @@ ventilation: eval_trigger: ventilation.bypass.heat_recovery # Device errors, alarms, filter change - # ============================================================================================== - alarms: + # '============================================================================================ #' last_error: name: Aktueller Fehler type: str @@ -694,10 +704,9 @@ ventilation: filter_warning: # Input / output air flow and air exchange rate - # ============================================================================================== - airflow: + # '============================================================================================ #' supply_fan: name: Luftdurchsatz in m³ gem. Messung oder Ventilatorkurve type: num @@ -716,7 +725,11 @@ ventilation: eval_trigger: - ventilation.airflow.supply_fan - ventilation.fans.supply.percent.effective + sqlite: 'yes' + # rrd: yes + # rrd_min: yes + # rrd_max: yes as_text: name: Item als formatierter Text type: str @@ -741,7 +754,11 @@ ventilation: eval_trigger: - ventilation.airflow.exhaust_fan - ventilation.fans.exhaust.percent.effective + sqlite: 'yes' + # rrd: yes + # rrd_min: yes + # rrd_max: yes as_text: name: Item als formatierter Text type: str @@ -756,32 +773,30 @@ ventilation: eval_trigger: ventilation.airflow.supply_fan.effective # Recommended air echange volumes for your house in m³/h as per DIN 1946-6 - # ========================================================================================== - # - # Die KWL sollte so ausgelegt sein, dass sie einen Luftaustausch zwischen - # Feuchteschutz (min) und Intensivlüftung (max) gewährleistet. - # - # Beispiel für eine Gebäudefläche von 280 m² in einem gedämmten Gebäude: - # Feuchteschutz = 0,3 *(-0,001*280² + 1,15*280+20) = 0,3*(-78,4+322+20) = 79,08 - # Nennlüftung = -0,001*280² + 1,15*280+20 = 263,6 - # Reduzierte Lüftung = 0,7 *(-0,001*280² + 1,15*280+20) = 184,52 - # Intensivlüftung = 1,15 *(-0,001*280² + 1,15*280+20) = 303,14 - # Für Auslegung nach DIN wird also KWL benötigt, die zwischen 80m³/h und 300 m³/h liefert. - # - # Die errechneten Werte wurden mit denen des Helios Auslegungsprogramms verglichen. - # Die beiden wichtigsten Werte (Feuchteschutz, Intensivlüftung) sind zu 100% identisch. - # Die beiden anderen Werte (reduzierte Lüftung, Nennlüftung) weichen leicht ab (~10%). - # Grund ist vermutlich, dass das Helios-Auslegungsprogramm sowohl Volumina als auch - # Hausgeometrie berücksichtigt, die DIN-Formeln aber nur pauschale Flächen. 10% sind für die - # Gesamtbetrachtung aber unwesentlich (ergibt ~10...15 m³/h mehr Luftaustausch als Helios). - # - # Eigene Berechnungen im Auslegungsassistenten unter: - # https://www.kwleasyplan.de/Erstellen-Sie-Ihr-Angebot/2.html?lang=de&stland=de&nav=auslegung - # - # unklar ist --> Wieso berechnet die DIN nach Fläche statt Volumen??? - DIN: + # ======================================================================================== # + # Die KWL sollte so ausgelegt sein, dass sie einen Luftaustausch zwischen + # Feuchteschutz (min) und Intensivlüftung (max) gewährleistet. + # + # Beispiel für eine Gebäudefläche von 280 m² in einem gedämmten Gebäude: + # Feuchteschutz = 0,3 *(-0,001*280² + 1,15*280+20) = 0,3*(-78,4+322+20) = 79,08 + # Nennlüftung = -0,001*280² + 1,15*280+20 = 263,6 + # Reduzierte Lüftung = 0,7 *(-0,001*280² + 1,15*280+20) = 184,52 + # Intensivlüftung = 1,15 *(-0,001*280² + 1,15*280+20) = 303,14 + # Für Auslegung nach DIN wird also KWL benötigt, die zwischen 80m³/h und 300 m³/h liefert. + # + # Die errechneten Werte wurden mit denen des Helios Auslegungsprogramms verglichen. + # Die beiden wichtigsten Werte (Feuchteschutz, Intensivlüftung) sind zu 100% identisch. + # Die beiden anderen Werte (reduzierte Lüftung, Nennlüftung) weichen leicht ab (~10%). + # Grund ist vermutlich, dass das Helios-Auslegungsprogramm sowohl Volumina als auch + # Hausgeometrie berücksichtigt, die DIN-Formeln aber nur pauschale Flächen. Die Abweichungen + # waren aber unwesentlich (dieses Plugin errechnet ~15 m³/h mehr Luftaustausch als Helios). + # + # Eigene Berechnungen im Auslegungsassistenten unter: + # https://www.kwleasyplan.de/Erstellen-Sie-Ihr-Angebot/2.html?lang=de&stland=de&nav=auslegung + # + # unklar ist --> Wieso berechnet die DIN nach Fläche statt Volumen??? # Mindestlüftung für Feuchteschutz in m³/h (nach DIN) moisture_protection: name: Feuchteschutz # fWS * (-0,001 * Ane² + 1,15 * Ane + 20) @@ -789,7 +804,7 @@ ventilation: visu_acl: r eval: round(sh.ventilation.parameters.fWS() * (-0.001 * (sh.ventilation.parameters.Ane()*sh.ventilation.parameters.Ane()) + 1.15 * sh.ventilation.parameters.Ane() + 20)) eval_trigger: - - ventilation.parameters.Ane + - ventilation.parameter.ane - ventilation.parameters.fWS air_exchange_rate: @@ -805,7 +820,7 @@ ventilation: type: num visu_acl: r eval: round(0.7 * (-0.001 * (sh.ventilation.parameters.Ane()*sh.ventilation.parameters.Ane()) + 1.15 * sh.ventilation.parameters.Ane() + 20)) - eval_trigger: ventilation.parameters.Ane + eval_trigger: ventilation.parameter.ane air_exchange_rate: name: Luftaustauschrate bei reduzierter Lüftung @@ -820,7 +835,7 @@ ventilation: type: num visu_acl: r eval: round(-0.001 * (sh.ventilation.parameters.Ane()*sh.ventilation.parameters.Ane()) + 1.15 * sh.ventilation.parameters.Ane() + 20) - eval_trigger: ventilation.parameters.Ane + eval_trigger: ventilation.parameter.ane air_exchange_rate: name: Luftaustauschrate bei Nennlüftung @@ -835,7 +850,7 @@ ventilation: type: num visu_acl: r eval: round(1.15 * (-0.001 * (sh.ventilation.parameters.Ane()*sh.ventilation.parameters.Ane()) + 1.15 * sh.ventilation.parameters.Ane() + 20)) - eval_trigger: ventilation.parameters.Ane + eval_trigger: ventilation.parameter.ane air_exchange_rate: name: Luftaustauschrate bei Intensivlüftung @@ -845,160 +860,92 @@ ventilation: eval_trigger: ventilation.airflow.DIN.boost_air_exchange # Efficiency calculations - interpret with care - # ============================================================================================== - thermal_energy: + thermal_efficiency: - total_outgoing: - name: Energiegehalt der Abluft + # '============================================================================================ #' + energy_lost: + name: Verlustwärme type: num visu_acl: r - cache: 'true' - # 'cache = true # otherwise often div/0 at startup; cache not working for some reason' - # database: 'init' - database: 'true' - eval: round(1.005 * 1.204 / 3.6 * sh.ventilation.airflow.exhaust_fan.effective() * (sh.ventilation.rs485._inside_temp() - sh.ventilation.rs485._outside_temp())) + eval: round(1.005 * 1.024 / 3.6 * sh.ventilation.airflow.exhaust_fan.effective() * (sh.ventilation.rs485._inside_temp() - sh.ventilation.rs485._incoming_temp())) eval_trigger: - ventilation.airflow.exhaust_fan.effective - ventilation.rs485._inside_temp - - ventilation.rs485._outside_temp - - as_text: - name: Wärmeenergie + 'W' - type: str - visu_acl: r - eval: "'%sW' % (sh.ventilation.thermal_energy.total_outgoing())" - eval_trigger: ventilation.thermal_energy.total_outgoing - - loss: - name: Restenrgiegehalt der Fortluft (=Verlustwärme) - eval: round(1.005 * 1.204 / 3.6 * sh.ventilation.airflow.exhaust_fan.effective() * (sh.ventilation.rs485._exhaust_temp() - sh.ventilation.rs485._outside_temp())) - eval_trigger: - - ventilation.airflow.exhaust_fan.effective - - ventilation.rs485._exhaust_temp - - ventilation.rs485._outside_temp - type: num - visu_acl: r - # sqlite = yes - # database: 'init' - database: 'true' + - ventilation.rs485._incoming_temp + sqlite: 'yes' + # rrd: yes + # rrd_min: yes + # rrd_max: yes as_text: name: Verlustwärme + 'W' type: str visu_acl: r - eval: "'%sW' % (sh.ventilation.thermal_energy.loss())" - eval_trigger: ventilation.thermal_energy.loss + eval: "'%sW' % (sh.ventilation.thermal_efficiency.energy_lost())" + eval_trigger: ventilation.thermal_efficiency.energy_lost - recovery: + energy_recovered: name: Rückgewonnene Wärme type: num visu_acl: r - eval: round(1.005 * 1.204 / 3.6 * sh.ventilation.airflow.supply_fan.effective() * (sh.ventilation.rs485._incoming_temp() - sh.ventilation.rs485._outside_temp())) + eval: round(1.005 * 1.024 / 3.6 * sh.ventilation.airflow.supply_fan.effective() * (sh.ventilation.rs485._incoming_temp() - sh.ventilation.rs485._outside_temp())) eval_trigger: - ventilation.airflow.supply_fan.effective - ventilation.rs485._incoming_temp - ventilation.rs485._outside_temp - # sqlite = yes - # database: 'init' - database: 'true' + sqlite: 'yes' + # rrd: yes + # rrd_min: yes + # rrd_max: yes as_text: name: Rückgewonnene Wärme + 'W' type: str visu_acl: r - eval: "'%sW' % (sh.ventilation.thermal_energy.recovery())" - eval_trigger: ventilation.thermal_energy.recovery + eval: "'%sW' % (sh.ventilation.thermal_efficiency.energy_recovered())" + eval_trigger: ventilation.thermal_efficiency.energy_recovered - # = total - loss - recovery - defrost: - name: Verlustwärme durch Aufheizen des Wärmetauschers + energy_total: + name: Summe rückgewonnen + verloren (=Wärmeenergie der Abluft aus den Räumen) type: num visu_acl: r - eval: sh.ventilation.thermal_energy.total_outgoing() - sh.ventilation.thermal_energy.loss() - sh.ventilation.thermal_energy.recovery() + eval: sh.ventilation.thermal_efficiency.energy_lost() + sh.ventilation.thermal_efficiency.energy_recovered() eval_trigger: - - ventilation.thermal_energy.total_outgoing - - ventilation.thermal_energy.loss - - ventilation.thermal_energy.recovery - # sqlite = yes - # database: 'init' - database: 'true' + - ventilation.thermal_efficiency.energy_lost + - ventilation.thermal_efficiency.energy_recovered as_text: - name: Verlustwärme durch Aufheizen + 'W' + name: Wärmeenergie + 'W' type: str visu_acl: r - eval: "'%sW' % (sh.ventilation.thermal_energy.defrost())" - eval_trigger: ventilation.thermal_energy.defrost + eval: "'%sW' % (sh.ventilation.thermal_efficiency.energy_total())" + eval_trigger: ventilation.thermal_efficiency.energy_total efficiency: name: Wirkungsgrad in % type: num visu_acl: r - # 0.000001 addieren, sonst beim Start DIV/0 - eval: round(sh.ventilation.thermal_energy.recovery() / (sh.ventilation.thermal_energy.total_outgoing()+0.000001) * 100) + eval: round((sh.ventilation.rs485._incoming_temp() - sh.ventilation.rs485._outside_temp()) / (sh.ventilation.rs485._inside_temp() - sh.ventilation.rs485._outside_temp()) * 100) eval_trigger: - - ventilation.thermal_energy.recovery - - ventilation.thermal_energy.total_outgoing - # sqlite = yes - # database: 'init' - database: 'true' + - ventilation.rs485._incoming_temp + - ventilation.rs485._outside_temp + - ventilation.rs485._inside_temp + sqlite: 'yes' + # rrd: yes + # rrd_min: yes + # rrd_max: yes as_text: name: Wirkungsgrad + '%' type: str visu_acl: r - eval: str(int(sh.ventilation.thermal_energy.efficiency())) + '%' - eval_trigger: ventilation.thermal_energy.efficiency - - # =========== alternative calculations ======================# - alt_total_outgoing: - name: Energieverlust Abluft total - type: num - visu_acl: r - eval: round(1.005 * 101325 / ( 287.05 * (sh.ventilation.rs485._inside_temp() - sh.ventilation.rs485._outside_temp() + 273.15)) / 3.6 * sh.ventilation.airflow.exhaust_fan.effective() * (sh.ventilation.rs485._inside_temp() - sh.ventilation.rs485._outside_temp())) - eval_trigger: - - ventilation.airflow.exhaust_fan.effective - - ventilation.rs485._inside_temp - - ventilation.rs485._outside_temp - - alt_loss: - name: Restenrgiegehalt der Fortluft (=Verlustwärme) - eval: round(1.005 * (101325 / (287.05 * (sh.ventilation.rs485._exhaust_temp() - sh.ventilation.rs485._outside_temp() + 273.15))) / 3.6 * sh.ventilation.airflow.exhaust_fan.effective() * (sh.ventilation.rs485._exhaust_temp() - sh.ventilation.rs485._outside_temp())) - eval_trigger: - - ventilation.airflow.exhaust_fan.effective - - ventilation.rs485._exhaust_temp - - ventilation.rs485._outside_temp - type: num - visu_acl: r - - alt_recovery: - name: Rückgewonnene Wärme - type: num - visu_acl: r - eval: round(1.005 * (101325 / (287.05 * (sh.ventilation.rs485._incoming_temp() - sh.ventilation.rs485._outside_temp() + 273.15))) / 3.6 * sh.ventilation.airflow.supply_fan.effective() * (sh.ventilation.rs485._incoming_temp() - sh.ventilation.rs485._outside_temp())) - eval_trigger: - - ventilation.airflow.supply_fan.effective - - ventilation.rs485._incoming_temp - - ventilation.rs485._outside_temp - - alt_defrost: - name: Verlustwärme durch Aufheizen des Wärmetauschers - type: num - visu_acl: r - eval: sh.ventilation.thermal_energy.alt_total_outgoing() - sh.ventilation.thermal_energy.alt_loss() - sh.ventilation.thermal_energy.alt_recovery() - eval_trigger: - - ventilation.thermal_energy.total_outgoing - - ventilation.thermal_energy.loss - - ventilation.thermal_energy.recovery - - # sqlite = yes - # 101325/(287,05*(temp+273,15)) - # 101325/(287,05*(sh.ventilation.rs485._exhaust_temp()+273,15)) + eval: str(int(sh.ventilation.thermal_efficiency.efficiency())) + '%' + eval_trigger: ventilation.thermal_efficiency.efficiency # Electrical power consumption - # ============================================================================================== power: + # '============================================================================================ #' heating: name: Aktueller Stromverbrauch der Vorheizung in W type: num @@ -1079,9 +1026,9 @@ ventilation: eval_trigger: ventilation.power.total # Helper items for testing - # ============================================================================================== testing: + # '============================================================================================ #' a_num: name: Numerisches Testitem type: num diff --git a/helios/plugin.yaml b/helios/plugin.yaml index 2a8d76488..7fd7ad5b4 100755 --- a/helios/plugin.yaml +++ b/helios/plugin.yaml @@ -24,7 +24,7 @@ parameters: # Definition of parameters to be configured i en: 'Port for communication' cycle: - type: int # used to be num until 1.6, then caused error + type: num default: 60 description: de: 'Abfrage-Intervall in Sekunden' From eae5b9329a7d05250b2e4938de7b891d77fb0648 Mon Sep 17 00:00:00 2001 From: msinn Date: Sat, 10 Aug 2019 12:23:51 +0200 Subject: [PATCH 22/47] Update __init__.py --- __init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/__init__.py b/__init__.py index 61a79a1b3..86e6a89f4 100644 --- a/__init__.py +++ b/__init__.py @@ -1,7 +1,7 @@ def plugin_release(): - return '1.6a' + return '1.6.1' def plugin_branch(): - return 'develop' + return 'master' From 3f1c3a3a00928e9b885648fa699416168972284c Mon Sep 17 00:00:00 2001 From: bear80 Date: Thu, 19 Dec 2019 13:36:18 +0100 Subject: [PATCH 23/47] Alexa4p3: Added plugin identifier --- alexa4p3/p3_action.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/alexa4p3/p3_action.py b/alexa4p3/p3_action.py index 23a3a067c..57ad108f0 100644 --- a/alexa4p3/p3_action.py +++ b/alexa4p3/p3_action.py @@ -84,7 +84,7 @@ def AdjustTargetTemperature(self, directive): item_range = self.item_range(item, DEFAULT_TEMP_RANGE) item_new = clamp_temp(previous_temp + delta_temp, item_range) self.logger.info("Alexa: AdjustTargetTemperature({}, {:.1f})".format(item.id(), item_new)) - item( item_new ) + item( item_new , "Alexa") new_temp = items[0]() if items else 0 @@ -108,7 +108,7 @@ def SetTargetTemperature(self, directive): item_range = self.item_range(item, DEFAULT_TEMP_RANGE) item_new = clamp_temp(target_temp, item_range) self.logger.info("Alexa: SetTargetTemperature({}, {:.1f})".format(item.id(), item_new)) - item( item_new ) + item( item_new , "Alexa") new_temp = items[0]() if items else 0 @@ -133,7 +133,7 @@ def TurnOn(self, directive): on, off = self.item_range(item, DEFAULT_RANGE_LOGIC) self.logger.info("Alexa: turnOn({}, {})".format(item.id(), on)) if on != None: - item( on ) + item( on , "Alexa") self.response_Value = 'ON' myValue = self.p3_respond(directive) return myValue @@ -147,7 +147,7 @@ def TurnOff(self, directive): on, off = self.item_range(item, DEFAULT_RANGE_LOGIC) self.logger.info("Alexa: turnOff({}, {})".format(item.id(), off)) if off != None: - item( off ) + item( off , "Alexa") self.response_Value = 'OFF' return self.p3_respond(directive) @@ -163,7 +163,7 @@ def Lock(self, directive): on, off = self.item_range(item, DEFAULT_RANGE_LOGIC) self.logger.info("Alexa: Lock({}, {})".format(item.id(), on)) if on != None: - item( on ) + item( on , "Alexa") self.response_Value = None self.response_Value = 'LOCKED' @@ -178,7 +178,7 @@ def Unlock(self, directive): on, off = self.item_range(item, DEFAULT_RANGE_LOGIC) self.logger.info("Alexa: Unlock({}, {})".format(item.id(), off)) if off != None: - item( on ) + item( on , "Alexa") self.response_Value = None self.response_Value = 'UNLOCKED' @@ -201,7 +201,7 @@ def AdjustBrightness(self, directive): percentage_new = clamp_percentage(percentage_now + percentage_delta, item_range) item_new = calc_percentage(percentage_new, item_range) self.logger.info("Alexa P3: AdjustBrightness({}, {:.1f})".format(item.id(), item_new)) - item( item_new ) + item( item_new , "Alexa") self.response_Value = None self.response_Value = int(percentage_new) @@ -217,7 +217,7 @@ def SetBrightness(self, directive): item_range = self.item_range(item, DEFAULT_RANGE) item_new = calc_percentage(new_percentage, item_range) self.logger.info("Alexa P3: SetBrightness({}, {:.1f})".format(item.id(), item_new)) - item( item_new ) + item( item_new , "Alexa") self.response_Value = None self.response_Value = int(new_percentage) @@ -241,7 +241,7 @@ def AdjustPercentage(self, directive): percentage_new = clamp_percentage(percentage_now + percentage_delta, item_range) item_new = calc_percentage(percentage_new, item_range) self.logger.info("Alexa P3: AdjustPercentage({}, {:.1f})".format(item.id(), item_new)) - item( item_new ) + item( item_new , "Alexa") self.response_Value = None self.response_Value = int(percentage_new) @@ -257,7 +257,7 @@ def SetPercentage(self, directive): item_range = self.item_range(item, DEFAULT_RANGE) item_new = calc_percentage(new_percentage, item_range) self.logger.info("Alexa P3: SetPercentage({}, {:.1f})".format(item.id(), item_new)) - item( item_new ) + item( item_new , "Alexa") self.response_Value = None self.response_Value = int(new_percentage) @@ -280,7 +280,7 @@ def AdjustPowerLevel(self, directive): percentage_new = clamp_percentage(percentage_now + percentage_delta, item_range) item_new = calc_percentage(percentage_new, item_range) self.logger.info("Alexa P3: AdjustPowerLevel({}, {:.1f})".format(item.id(), item_new)) - item( item_new ) + item( item_new , "Alexa") self.response_Value = None self.response_Value = int(percentage_new) @@ -296,7 +296,7 @@ def SetPowerLevel(self, directive): item_range = self.item_range(item, DEFAULT_RANGE) item_new = calc_percentage(new_percentage, item_range) self.logger.info("Alexa P3: SetPowerLevel({}, {:.1f})".format(item.id(), item_new)) - item( item_new ) + item( item_new , "Alexa") self.response_Value = None self.response_Value = int(new_percentage) @@ -315,7 +315,7 @@ def Activate(self, directive): on, off = self.item_range(item, DEFAULT_RANGE_LOGIC) item_new = on # Should be the No. of the Scene self.logger.info("Alexa P3: Activate Scene ({}, {})".format(item.id(), item_new)) - item( item_new ) + item( item_new , "Alexa") self.response_Value = None self.response_Value = item_new @@ -336,7 +336,7 @@ def Stop(self, directive): for item in items: item_new = 1 self.logger.info("Alexa P3: PBC Stop received ({}, {})".format(item.id(), item_new)) - item( item_new ) + item( item_new , "Alexa") self.response_Value = None self.response_Value = item_new @@ -419,7 +419,7 @@ def SetColor(self, directive): retValue.append(new_brightness) self.logger.info("Alexa P3: SetColor ({}, {})".format(item.id(), str(retValue))) - item( retValue ) + item( retValue , "Alexa") self.response_Value = None self.response_Value = directive['payload']['color'] From c09659d0ddfedcfffd9ee8614843f2d057c26d31 Mon Sep 17 00:00:00 2001 From: msinn Date: Mon, 24 Feb 2020 22:06:53 +0100 Subject: [PATCH 24/47] Revert "Alexa4p3: Added plugin identifier" --- alexa4p3/p3_action.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/alexa4p3/p3_action.py b/alexa4p3/p3_action.py index 57ad108f0..23a3a067c 100644 --- a/alexa4p3/p3_action.py +++ b/alexa4p3/p3_action.py @@ -84,7 +84,7 @@ def AdjustTargetTemperature(self, directive): item_range = self.item_range(item, DEFAULT_TEMP_RANGE) item_new = clamp_temp(previous_temp + delta_temp, item_range) self.logger.info("Alexa: AdjustTargetTemperature({}, {:.1f})".format(item.id(), item_new)) - item( item_new , "Alexa") + item( item_new ) new_temp = items[0]() if items else 0 @@ -108,7 +108,7 @@ def SetTargetTemperature(self, directive): item_range = self.item_range(item, DEFAULT_TEMP_RANGE) item_new = clamp_temp(target_temp, item_range) self.logger.info("Alexa: SetTargetTemperature({}, {:.1f})".format(item.id(), item_new)) - item( item_new , "Alexa") + item( item_new ) new_temp = items[0]() if items else 0 @@ -133,7 +133,7 @@ def TurnOn(self, directive): on, off = self.item_range(item, DEFAULT_RANGE_LOGIC) self.logger.info("Alexa: turnOn({}, {})".format(item.id(), on)) if on != None: - item( on , "Alexa") + item( on ) self.response_Value = 'ON' myValue = self.p3_respond(directive) return myValue @@ -147,7 +147,7 @@ def TurnOff(self, directive): on, off = self.item_range(item, DEFAULT_RANGE_LOGIC) self.logger.info("Alexa: turnOff({}, {})".format(item.id(), off)) if off != None: - item( off , "Alexa") + item( off ) self.response_Value = 'OFF' return self.p3_respond(directive) @@ -163,7 +163,7 @@ def Lock(self, directive): on, off = self.item_range(item, DEFAULT_RANGE_LOGIC) self.logger.info("Alexa: Lock({}, {})".format(item.id(), on)) if on != None: - item( on , "Alexa") + item( on ) self.response_Value = None self.response_Value = 'LOCKED' @@ -178,7 +178,7 @@ def Unlock(self, directive): on, off = self.item_range(item, DEFAULT_RANGE_LOGIC) self.logger.info("Alexa: Unlock({}, {})".format(item.id(), off)) if off != None: - item( on , "Alexa") + item( on ) self.response_Value = None self.response_Value = 'UNLOCKED' @@ -201,7 +201,7 @@ def AdjustBrightness(self, directive): percentage_new = clamp_percentage(percentage_now + percentage_delta, item_range) item_new = calc_percentage(percentage_new, item_range) self.logger.info("Alexa P3: AdjustBrightness({}, {:.1f})".format(item.id(), item_new)) - item( item_new , "Alexa") + item( item_new ) self.response_Value = None self.response_Value = int(percentage_new) @@ -217,7 +217,7 @@ def SetBrightness(self, directive): item_range = self.item_range(item, DEFAULT_RANGE) item_new = calc_percentage(new_percentage, item_range) self.logger.info("Alexa P3: SetBrightness({}, {:.1f})".format(item.id(), item_new)) - item( item_new , "Alexa") + item( item_new ) self.response_Value = None self.response_Value = int(new_percentage) @@ -241,7 +241,7 @@ def AdjustPercentage(self, directive): percentage_new = clamp_percentage(percentage_now + percentage_delta, item_range) item_new = calc_percentage(percentage_new, item_range) self.logger.info("Alexa P3: AdjustPercentage({}, {:.1f})".format(item.id(), item_new)) - item( item_new , "Alexa") + item( item_new ) self.response_Value = None self.response_Value = int(percentage_new) @@ -257,7 +257,7 @@ def SetPercentage(self, directive): item_range = self.item_range(item, DEFAULT_RANGE) item_new = calc_percentage(new_percentage, item_range) self.logger.info("Alexa P3: SetPercentage({}, {:.1f})".format(item.id(), item_new)) - item( item_new , "Alexa") + item( item_new ) self.response_Value = None self.response_Value = int(new_percentage) @@ -280,7 +280,7 @@ def AdjustPowerLevel(self, directive): percentage_new = clamp_percentage(percentage_now + percentage_delta, item_range) item_new = calc_percentage(percentage_new, item_range) self.logger.info("Alexa P3: AdjustPowerLevel({}, {:.1f})".format(item.id(), item_new)) - item( item_new , "Alexa") + item( item_new ) self.response_Value = None self.response_Value = int(percentage_new) @@ -296,7 +296,7 @@ def SetPowerLevel(self, directive): item_range = self.item_range(item, DEFAULT_RANGE) item_new = calc_percentage(new_percentage, item_range) self.logger.info("Alexa P3: SetPowerLevel({}, {:.1f})".format(item.id(), item_new)) - item( item_new , "Alexa") + item( item_new ) self.response_Value = None self.response_Value = int(new_percentage) @@ -315,7 +315,7 @@ def Activate(self, directive): on, off = self.item_range(item, DEFAULT_RANGE_LOGIC) item_new = on # Should be the No. of the Scene self.logger.info("Alexa P3: Activate Scene ({}, {})".format(item.id(), item_new)) - item( item_new , "Alexa") + item( item_new ) self.response_Value = None self.response_Value = item_new @@ -336,7 +336,7 @@ def Stop(self, directive): for item in items: item_new = 1 self.logger.info("Alexa P3: PBC Stop received ({}, {})".format(item.id(), item_new)) - item( item_new , "Alexa") + item( item_new ) self.response_Value = None self.response_Value = item_new @@ -419,7 +419,7 @@ def SetColor(self, directive): retValue.append(new_brightness) self.logger.info("Alexa P3: SetColor ({}, {})".format(item.id(), str(retValue))) - item( retValue , "Alexa") + item( retValue ) self.response_Value = None self.response_Value = directive['payload']['color'] From aa72efb8129ab066b5635cabcee202db0c0ca4f2 Mon Sep 17 00:00:00 2001 From: bmxp Date: Thu, 2 Apr 2020 16:21:20 +0200 Subject: [PATCH 25/47] Update .travis.yml --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 3e1510e74..74ca8e106 100755 --- a/.travis.yml +++ b/.travis.yml @@ -14,6 +14,7 @@ env: before_install: - sudo apt-get install libudev-dev + - sudo apt-get install librrd-dev libpython3-dev install: - pip install tox-travis virtualenv From 9d9bc0fddedfca0680247635c3e0337837a0d061 Mon Sep 17 00:00:00 2001 From: Serge Wagener Date: Mon, 8 Jun 2020 18:08:11 +0200 Subject: [PATCH 26/47] Plugin deebot_ozmo: FIrst version --- deebot_ozmo/README.md | 56 +++ deebot_ozmo/__init__.py | 484 +++++++++++++++++++ deebot_ozmo/locale.yaml | 61 +++ deebot_ozmo/plugin.yaml | 216 +++++++++ deebot_ozmo/requirements.txt | 2 + deebot_ozmo/webif/static/img/no-map.png | Bin 0 -> 32873 bytes deebot_ozmo/webif/static/img/plugin_logo.png | Bin 0 -> 318889 bytes deebot_ozmo/webif/templates/index.html | 382 +++++++++++++++ 8 files changed, 1201 insertions(+) create mode 100644 deebot_ozmo/README.md create mode 100644 deebot_ozmo/__init__.py create mode 100644 deebot_ozmo/locale.yaml create mode 100644 deebot_ozmo/plugin.yaml create mode 100644 deebot_ozmo/requirements.txt create mode 100644 deebot_ozmo/webif/static/img/no-map.png create mode 100644 deebot_ozmo/webif/static/img/plugin_logo.png create mode 100644 deebot_ozmo/webif/templates/index.html diff --git a/deebot_ozmo/README.md b/deebot_ozmo/README.md new file mode 100644 index 000000000..a822850e0 --- /dev/null +++ b/deebot_ozmo/README.md @@ -0,0 +1,56 @@ +# Plugin for Deebot Ozmo 920 / 950 / 960 + +#### Version 1.7.1 +This plugin can control and monitor an Ecovacs Deebot Ozmo series vaccum cleaner robot. + +## Change history +This plugin is work in progress. Change history will be recorded starting with first release not marked as "dev" version. + + +## Requirements +This plugin itself does not have any other requirement except the listed library and, obviously, a robot hardware. + +### Needed software +- [deebotozmo package](https://pypi.org/project/deebotozmo/) + +### Supported Hardware +This plugin is supposed to work with the [Ecovacs Deebot Ozmo series](https://www.ecovacs.com/de/deebot-robotic-vacuum-cleaner?filter=28). +Is has been successfully tested and used with a Deebot Ozmo 950. +According to the author of the underlying lib, it should work with the Deebot Ozmo 920 / 950 960. + +## Configuration + +### plugin.yaml +Please refer to the documentation generated from plugin.yaml metadata. + + +### items.yaml +Please refer to the documentation generated from plugin.yaml metadata. + + +### logic.yaml +Please refer to the documentation generated from plugin.yaml metadata. + + +## Methods +Please refer to the documentation generated from plugin.yaml metadata. + + +## Examples +As this plugin offers struct items, using it in your own `items.yaml` is easy. +The following example includes ALL of the available items into your SHNG. +``` +deebot: + general: + struct: deebot_ozmo.general + settings: + struct: deebot_ozmo.settings + components: + struct: deebot_ozmo.components + maps: + struct: deebot_ozmo.maps + history: + struct: deebot_ozmo.history + controls: + struct: deebot_ozmo.controls +``` diff --git a/deebot_ozmo/__init__.py b/deebot_ozmo/__init__.py new file mode 100644 index 000000000..2c136b8b4 --- /dev/null +++ b/deebot_ozmo/__init__.py @@ -0,0 +1,484 @@ +#!/usr/bin/env python3 +# vim: set encoding=utf-8 tabstop=4 softtabstop=4 shiftwidth=4 expandtab +######################################################################### +# Copyright 2019- Serge Wagener serge@wagener.family +######################################################################### +# This file is part of SmartHomeNG. +# https://www.smarthomeNG.de +# https://knx-user-forum.de/forum/supportforen/smarthome-py +# +# Sample plugin for new plugins to run with SmartHomeNG version 1.4 and +# upwards. +# +# SmartHomeNG is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# SmartHomeNG is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with SmartHomeNG. If not, see . +# +######################################################################### + +from jinja2 import Environment, FileSystemLoader +import cherrypy +from lib.module import Modules +from lib.model.smartplugin import * +from lib.item import Items +from lib.network import Http +import datetime + +#_LOGGER = logging.getLogger(__name__) + +import string +import random +from deebotozmo import * + + +class DeebotOzmo(SmartPlugin): + """ + Main class of the Plugin. Does all plugin specific stuff and provides + the update functions for the items + """ + + # (must match the version specified in plugin.yaml) + PLUGIN_VERSION = '1.7.1' + +# ---------------------------------------------------- +# SmartHomeNG plugin methods +# ---------------------------------------------------- + + def __init__(self, sh): + """ + Initalizes the plugin. + """ + self.logger.debug("Init method called") + # Call init code of parent class (SmartPlugin) + super().__init__() + + from bin.smarthome import VERSION + if '.'.join(VERSION.split('.', 2)[:2]) <= '1.5': + self.logger = logging.getLogger(__name__) + + self._items = [] + # get the parameters for the plugin (as defined in metadata plugin.yaml): + self._account = self.get_parameter_value('account') + self._password = EcoVacsAPI.md5(self.get_parameter_value('password')) + self._wanted_device = self.get_parameter_value('device') + + self.mybot = { + 'nick': None, + 'did': None, + 'country': self.get_parameter_value('country').lower(), + 'continent': self.get_parameter_value('continent').lower(), + 'model': None, + 'iconURL': None, + 'live_map': None, + 'last_clean_logs': [], + 'last_clean_map': None, + 'available': False, + 'battery_level': 0, + 'state': None, + 'state_text': None, + 'fan_speed': None, + 'water_level': None, + 'components': [], + 'rooms': [] + } + + # Check if country and continent defined, if not try to autolocate + http = Http() + if not self.mybot['country'] or not self.mybot['continent']: + _locate = http.get_json('http://ip-api.com/json?fields=continentCode,countryCode') + if not self.mybot['country']: + if _locate and _locate['countryCode']: + self.logger.info('Autodetected country: {}'.format(_locate['countryCode'])) + self._update_items('country', _locate['countryCode'].lower()) + else: + self.logger.error('No country defined and autolocate not possible, please specify country in plugin configuration !') + self._init_complete = False + return + + if not self.mybot['continent']: + if _locate and _locate['continentCode']: + self.logger.info('Autodetected continent: {}'.format(_locate['continentCode'])) + self._update_items('continent', _locate['continentCode'].lower()) + else: + self.logger.error('No continent defined and autolocate not possible, please specify continent in plugin configuration !') + self._init_complete = False + return + + self.device = None + self._device_id = "".join(random.choice( + string.ascii_uppercase + string.digits) for _ in range(16)) + self._cycle = self.get_parameter_value('interval') + self._items = {} + + if not self.init_webinterface(): + self._init_complete = False + + return + + def run(self): + """ + Run method for the plugin + """ + self.logger.debug("Run method called") + self.alive = True + self.scheduler_add('poll_device', self.poll_device, cycle=5) + + # Connect to API + self.api = EcoVacsAPI(self._device_id, self._account, + self._password, self.mybot['country'], self.mybot['continent']) + + # Find wanted device, use first device if none specified + self.devices = self.api.devices() + for device in self.devices: + if not device['nick']: + device['nick'] = device['did'] + self.logger.info('Found device {} with ID {}'.format( + device['nick'], device['did'])) + if (device['nick'].lower() == self._wanted_device.lower()): + self.logger.info( + 'Using wanted device {} for this instance !'.format(device['nick'])) + self.device = device + break + + if not self.device: + self.device = self.devices[0] + if not self.device['nick']: + self.device['nick'] = self.device['did'] + self.logger.info('Using device {} for this instance !'.format(device['nick'])) + #self.logger.debug(self.device) + + self._update_items('nick', self.device['nick']) + self._update_items('did', self.device['did']) + + self.vacbot = VacBot(self.api.uid, self.api.REALM, self.api.resource, + self.api.user_access_token, self.device, self.mybot['continent']) + self.vacbot.connect_and_wait_until_ready() + self.iotProduct = self.getIotProduct() + self.vacbot.request_all_statuses() + self.vacbot.setScheduleUpdates(self._cycle) + self.poll_device() + + def stop(self): + """ + Stop method for the plugin + """ + self.logger.debug("Stop method called") + self.vacbot.disconnect() + self.alive = False + + def parse_item(self, item): + """ + Parse items into internal array on plugin startup + """ + + if self.has_iattr(item.conf, 'deebot_ozmo'): + #self.logger.debug("parse item: {}".format(item.id())) + _item = self.get_iattr_value(item.conf, 'deebot_ozmo') + # Add items to internal array + if not _item in self._items: + self._items[_item] = [] + self._items[_item].append(item) + return self.update_item + + def parse_logic(self, logic): + """ + Default plugin parse_logic method + """ + if 'xxx' in logic.conf: + # self.function(logic['name']) + pass + + def update_item(self, item, caller=None, source=None, dest=None): + """ + Item has been updated + + :param item: item to be updated towards the plugin + :param caller: if given it represents the callers name + :param source: if given it represents the source + :param dest: if given it represents the dest + """ + if self.alive and caller != self.get_shortname(): + if self.has_iattr(item.conf, 'deebot_ozmo') and item(): + _cmd = self.get_iattr_value(item.conf,'deebot_ozmo') + self.logger.debug('Command: {}'.format(_cmd)) + item(False, self.get_shortname()) + if _cmd == 'cmd_clean': + self.logger.info('Start cleaning') + self.clean() + elif _cmd == 'cmd_pause': + self.logger.info('Pause cleaning') + self.pause() + elif _cmd == 'cmd_stop': + self.logger.info('Stop cleaning') + self.stop() + elif _cmd == 'cmd_charge': + self.logger.info('Returning to charging station') + self.charge() + elif _cmd == 'cmd_locate': + self.logger.info('Locating device') + self.locate() + else: + self.logger.warning('Unknown command {}'.format(_cmd)) + + def init_webinterface(self): + """" + Initialize the web interface for this plugin + + This method is only needed if the plugin is implementing a web interface + """ + try: + self.mod_http = Modules.get_instance().get_module( + 'http') # try/except to handle running in a core version that does not support modules + except: + self.mod_http = None + if self.mod_http == None: + self.logger.error("Not initializing the web interface") + return False + + import sys + if not "SmartPluginWebIf" in list(sys.modules['lib.model.smartplugin'].__dict__): + self.logger.warning( + "Web interface needs SmartHomeNG v1.5 and up. Not initializing the web interface") + return False + + # set application configuration for cherrypy + webif_dir = self.path_join(self.get_plugin_dir(), 'webif') + config = { + '/': { + 'tools.staticdir.root': webif_dir, + }, + '/static': { + 'tools.staticdir.on': True, + 'tools.staticdir.dir': 'static' + } + } + + # Register the web interface as a cherrypy app + self.mod_http.register_webif(WebInterface(webif_dir, self), + self.get_shortname(), + config, + self.get_classname(), self.get_instance_name(), + description='') + + return True + +# ---------------------------------------------------- +# Commands to actively control the Deebot Ozmo +# ---------------------------------------------------- + + def locate(self): + """ + Play a sound to locate your Deebot + """ + self.vacbot.PlaySound() + + def clean(self): + """ + Start cleaning + """ + self.vacbot.Clean() + + def clean_spot_area(self, area): + """ + Start cleaning predefined area + """ + self.vacbot.SpotArea(area) + + def pause(self): + """ + Pause cleaning + """ + self.vacbot.CleanPause() + + def resume(self): + """ + Resume cleaning + """ + self.vacbot.CleanResume() + + def charge(self): + """ + Send Deebot back to charger + """ + self.vacbot.Charge() + + def set_fan_speed(self, speed): + """ + Change fan speed / suction power + """ + try: + _speed = FAN_SPEED_TO_ECOVACS[speed] + self.logger.debug('Changing fan speed to {} - {}'.format(speed, _speed)) + self.vacbot.SetFanSpeed(speed) + except KeyError: + self.logger.warning('Unknown speed {}'.format(speed)) + + def set_water_level(self, level): + """ + Change water level + """ + try: + _level = WATER_LEVEL_TO_ECOVACS[level] + self.logger.debug('Changing water level to {} - {}'.format(level, _level)) + self.vacbot.SetWaterLevel(level) + except KeyError: + self.logger.warning('Unknown water level {}'.format(level)) + +# ---------------------------------------------------- +# Methods to poll robot and update items +# ---------------------------------------------------- + + def _update_items(self, attribute, value): + # self.logger.debug('Updating {} with value {}'.format(attribute, value)) + self.mybot[attribute] = value + if attribute in self._items: + for _item in self._items[attribute]: + _item(value, self.get_shortname()) + + def getIotProduct(self): + iotproducts = self.api.getiotProducts() + for iotProduct in iotproducts: + if self.device['class'] in iotProduct['classid']: + if 'product' in iotProduct and 'name' in iotProduct['product']: + self._update_items('model', iotProduct['product']['name']) + if 'product' in iotProduct and 'iconUrl' in iotProduct['product']: + self._update_items('iconURL', iotProduct['product']['iconUrl']) + return iotProduct + return None + + def poll_device(self): + """ + Polls for updates of the device + """ + self._update_items('available', self.vacbot.is_available) + self._update_items('state', self.vacbot.vacuum_status) + self._update_items('state_text', self.translate(self.vacbot.vacuum_status)) + self._update_items('battery_level', self.vacbot.battery_status) + self._update_items('fan_speed', self.vacbot.fan_speed) + self._update_items('water_level', self.vacbot.water_level) + self._update_items('rooms', self.vacbot.getSavedRooms()) + self._update_items('last_clean_logs', self.vacbot.lastCleanLogs) + self._update_items('last_clean_map', self.vacbot.last_clean_image) + + if self.vacbot.live_map: + self._update_items('live_map', self.vacbot.live_map.decode("utf-8")) + + # Update components lifespan if available + try: + self._update_items('components', self.vacbot.components) + self._update_items('brush', round(self.vacbot.components['brush'])) + self._update_items('sideBrush', round(self.vacbot.components['sideBrush'])) + self._update_items('filter', round(self.vacbot.components['heap'])) + except KeyError: + pass + +# ------------------------------------------ +# Webinterface of the plugin +# ------------------------------------------ + + +class WebInterface(SmartPluginWebIf): + + def __init__(self, webif_dir, plugin): + """ + Initialization of instance of class WebInterface + + :param webif_dir: directory where the webinterface of the plugin resides + :param plugin: instance of the plugin + :type webif_dir: str + :type plugin: object + """ + self.logger = logging.getLogger(__name__) + self.webif_dir = webif_dir + self.plugin = plugin + self.tplenv = self.init_template_environment() + self.tplenv.filters['dateformat'] = self.dateformat + self.tplenv.filters['timeformat'] = self.timeformat + self.items = Items.get_instance() + + + @cherrypy.expose + def index(self, reload=None, cmd=None, speed=None, level=None, type=None, id=None): + """ + Build index.html for cherrypy + + Render the template and return the html file to be delivered to the browser + + :return: contents of the template after beeing rendered + """ + if cmd: + self.logger.debug('Command: {}'.format(cmd)) + if cmd == 'clean': + self.logger.info("WebIf: Start cleaning") + self.plugin.clean() + elif cmd == 'clean_room': + self.logger.info("WebIf: Start cleaning {} (id: {})".format(type, id)) + #self.plugin.clean(id) + elif cmd == 'pause': + self.plugin.pause() + elif cmd == 'charge': + self.plugin.charge() + elif cmd == 'locate': + self.plugin.locate() + elif cmd == 'set_fan_speed': + self.plugin.set_fan_speed(speed) + elif cmd == 'set_water_level': + self.plugin.set_water_level(level) + else: + self.logger.warning('Unknown command: {}'.format(cmd)) + + # get list of items with the attribute knx_dpt + plgitems = [] + for item in self.items.return_items(): + if 'deebot_ozmo' in item.conf: + plgitems.append(item) + + tmpl = self.tplenv.get_template('index.html') + # add values to be passed to the Jinja2 template eg: tmpl.render(p=self.plugin, interface=interface, ...) + return tmpl.render(p=self.plugin, items=sorted(plgitems, key=lambda k: str.lower(k['_path']))) + + @cherrypy.expose + def get_data_html(self, dataSet=None): + """ + Return data to update the webpage + + For the standard update mechanism of the web interface, the dataSet to return the data for is None + + :param dataSet: Dataset for which the data should be returned (standard: None) + :return: dict with the data needed to update the web page. + """ + if dataSet is None: + data = {} + data['mybot'] = self.plugin.mybot + # return it as json the the web page + try: + return json.dumps(data) + except Exception as e: + self.logger.error("get_data_html exception: {}".format(e)) + return {} + + # Jinja2 filter to format int timestamp as string + def dateformat(self, timestamp): + try: + _datetime = datetime.datetime.fromtimestamp(timestamp) + result = _datetime.strftime("%d/%m/%Y") + except: + result = 'ERROR' + return result + + def timeformat(self, timestamp): + try: + _datetime = datetime.datetime.fromtimestamp(timestamp) + result = _datetime.strftime("%H:%M:%S") + except: + result = 'ERROR' + return result \ No newline at end of file diff --git a/deebot_ozmo/locale.yaml b/deebot_ozmo/locale.yaml new file mode 100644 index 000000000..26d19c16b --- /dev/null +++ b/deebot_ozmo/locale.yaml @@ -0,0 +1,61 @@ +# translations for the web interface +plugin_translations: + # Translations for the plugin specially for the web interface + + 'Start': { 'de' : '=', 'en': '=', 'fr': 'Démarrer'} + 'Pause': { 'de' : '=', 'en': '=', 'fr': '='} + 'Resume': { 'de' : 'Weiter', 'en': '=', 'fr': 'Continuer'} + 'Charge': { 'de' : 'Aufladen', 'en': '=', 'fr': 'Charger'} + 'Locate': { 'de' : 'Lokalisieren', 'en': '=', 'fr': 'Localiser'} + + 'Properties': { 'de' : 'Eigenschaften', 'en': '=', 'fr': 'Propriétés'} + 'Live map': { 'de' : 'Live Karte', 'en': '=', 'fr': 'Carte du temps réel'} + 'Cleaning log': { 'de' : 'Reinigungsprotokoll', 'en': '=', 'fr': 'Protocole de nettoyage'} + + 'Reachable': { 'de' : 'Erreichbar', 'en': '=', 'fr': 'Joignable'} + 'True': { 'de' : 'Ja', 'en': 'Yes', 'fr': 'Oui'} + 'False': { 'de' : 'Nein', 'en': 'No', 'fr': 'Non'} + + 'State': { 'de' : 'Status', 'en': '=', 'fr': 'Etat'} + 'STATE_DOCKED': {'de': 'angedockt', 'en': 'docked', 'fr': 'en charge'} + 'STATE_ERROR': {'de': 'Fehler', 'en': 'error', 'fr': 'erreur'} + 'STATE_CLEANING': {'de': 'putzt', 'en': 'cleaning', 'fr': 'nettoyage'} + 'STATE_PAUSED': {'de': 'pausiert', 'en': 'paused', 'fr': 'en pause'} + 'STATE_RETURNING': {'de': 'kehrt zurÜck', 'en': 'returning', 'fr': 'retour'} + + 'Model': { 'de' : 'Modell', 'en': '=', 'fr': 'Modèle'} + 'Name': { 'de' : 'Name', 'en': '=', 'fr': 'Nom'} + 'Continent': { 'de' : 'Kontinent', 'en': '=', 'fr': 'Continent'} + 'Country': { 'de' : 'Land', 'en': '=', 'fr': 'Pays'} + 'Account': { 'de' : 'Konto', 'en': '=', 'fr': 'Compte'} + + 'Battery': { 'de' : 'Akku', 'en': '=', 'fr': 'Batterie'} + 'Brush': { 'de' : 'Bürste', 'en': '=', 'fr': 'Brosse'} + 'Sidebrushes': { 'de' : 'Seitenbürsten', 'en': '=', 'fr': 'Brosses latérales'} + 'Filter': { 'de' : '=', 'en': '=', 'fr': 'Filtre'} + + 'fan_speed': { 'de' : 'Saugkraft', 'en': 'Suction power', 'fr': "Puissance d'aspiration"} + 'quiet': { 'de' : 'ruhig', 'en': '=', 'fr': 'silencieux'} + 'normal': { 'de' : 'normal', 'en': '=', 'fr': 'standard'} + 'max': { 'de' : '=', 'en': '=', 'fr': '='} + 'max+': { 'de' : '=', 'en': '=', 'fr': '='} + + 'water_level': { 'de' : 'Wassermenge', 'en': 'Water quantity', 'fr': "Quantité d'eau"} + 'low': { 'de' : 'niedrig', 'en': '=', 'fr': 'faible'} + 'medium': { 'de' : 'mittel', 'en': '=', 'fr': 'moyenne'} + 'high': { 'de' : 'hoch', 'en': '=', 'fr': 'haute'} + 'ultrahigh': { 'de' : 'ultra hoch', 'en': '=', 'fr': 'très haute'} + + 'Date': { 'de' : 'Datum', 'en': '=', 'fr': '='} + 'Time': { 'de' : 'Uhrzeit', 'en': '=', 'fr': 'Heure'} + 'Type': { 'de' : 'Typ', 'en': '=', 'fr': '='} + 'Preview': { 'de' : 'Voransicht', 'en': '=', 'fr': 'Aperçu'} + + 'spotArea': { 'de' : 'Bereich', 'en': 'Area', 'fr': 'Zone'} + 'auto': { 'de' : 'Automatik', 'en': 'Auto', 'fr': 'Automatique'} + 'customArea': { 'de' : 'Benutzerdefiniert', 'en': 'Custom', 'fr': 'Personalisé'} + 'View': { 'de' : 'Ansicht', 'en': '=', 'fr': 'Voir'} + 'Close': { 'de' : 'Schliessen', 'en': '=', 'fr': 'Fermer'} + + '': { 'de' : '', 'en': '', 'fr': ''} + \ No newline at end of file diff --git a/deebot_ozmo/plugin.yaml b/deebot_ozmo/plugin.yaml new file mode 100644 index 000000000..6b17a35fa --- /dev/null +++ b/deebot_ozmo/plugin.yaml @@ -0,0 +1,216 @@ +# Metadata for the plugin +plugin: + # Global plugin attributes + type: interface # plugin type (gateway, interface, protocol, system, web) + description: + de: 'Plugin für Deebot Ozmo 920 / 950 / 960' + en: 'Plugin for Deebot Ozmo 920 / 950 / 960' + fr: 'Extension pour Deebot Ozmo 920 / 950 / 960' + maintainer: Foxi352 +# tester: # Who tests this plugin? + state: develop # change to ready when done with development + keywords: iot vacuum robot clean +# documentation: https://github.com/smarthomeNG/smarthome/wiki/CLI-Plugin # url of documentation (wiki) page +# support: https://knx-user-forum.de/forum/supportforen/smarthome-py + + version: 1.7.1 # Plugin version (must match the version specified in __init__.py) + sh_minversion: 1.5 # minimum shNG version to use this plugin +# sh_maxversion: # maximum shNG version to use this plugin (leave empty if latest) + multi_instance: True # plugin supports multi instance + restartable: true + classname: DeebotOzmo # class containing the plugin + +parameters: + # Definition of parameters to be configured in etc/plugin.yaml (enter 'parameters: NONE', if section should be empty) + account: + type: str + mandatory: True + description: + de: 'Ecovacs Konto Login (Email addresse)' + en: 'Ecovacs account login (email address)' + fr: "Nom d'utilisateur du compte Ecovacs (adresse courriel)" + + password: + type: str + mandatory: True + description: + de: 'Ecovacs Konto Passwort' + en: 'Ecovacs accounts password' + fr: "Mot de pass du compte Ecovacs" + + device: + type: str + mandatory: False + default: NONE + description: + de: 'Roboter Name für diese Instanz. Default ist erster in der Liste' + en: 'Robot name for this instance. Default is first in list' + fr: 'Nom du robot pour cette instance. Premier dans liste par défaut' + + interval: + type: int + mandatory: False + default: 60 + description: + de: 'Interval der API Abfragen (Karten updates, Lifespan updates, ...)' + en: 'Interval for API updates (map updates, lifespan updates, ...)' + fr: 'Intervale des requetes API (MAJ des cartes, durée de vie des composantes, ...)' + + country: + type: str + mandatory: False + description: + de: 'Land für API. Autodetect falls leer' + en: 'Country for API. Autodetected if empty' + fr: "Pays pour l'API. Détection automatique si vide" + + continent: + type: str + mandatory: False + description: + de: 'Kontinent für API. Autodetect falls leer' + en: 'Continent for API. Autodetected if empty' + fr: "Continent pour l'API. Détection automatique si vide" + +item_attributes: + # Definition of item attributes defined by this plugin (enter 'item_attributes: NONE', if section should be empty) + +item_structs: + general: + name: General information + nick: + type: str + visu_acl: ro + cache: True + deebot_ozmo@instance: nick + + did: + type: str + visu_acl: ro + cache: True + deebot_ozmo@instance: did + + model: + type: str + visu_acl: ro + cache: True + deebot_ozmo@instance: model + + icon_URL: + type: str + visu_acl: ro + cache: True + deebot_ozmo@instance: iconURL + + available: + type: bool + visu_acl: ro + deebot_ozmo@instance: available + + state: + type: str + visu_acl: ro + deebot_ozmo@instance: state + + state_text: + type: str + visu_acl: ro + deebot_ozmo@instance: state_text + + battery_level: + type: num + visu_acl: ro + deebot_ozmo@instance: battery_level + + settings: + name: Modifiable settings + water_level: + type: str + visu_acl: rw + cache: True + deebot_ozmo@instance: water_level + + fan_speed: + type: str + visu_acl: rw + cache: True + deebot_ozmo@instance: fan_speed + + components: + name: Components lifespan item_structs + brush: + type: num + visu_acl: ro + cache: True + deebot_ozmo@instance: brush + + sideBrush: + type: num + visu_acl: ro + cache: True + deebot_ozmo@instance: sideBrush + + filter: + type: num + visu_acl: ro + cache: True + deebot_ozmo@instance: filter + + maps: + name: Maps and rooms + live_map_base64: + type: str + visu_acl: ro + cache: True + deebot_ozmo@instance: live_map + + last_clean_map_URL: + type: str + visu_acl: ro + cache: True + deebot_ozmo@instance: last_clean_map + + rooms: + type: list + visu_acl: ro + cache: True + deebot_ozmo@instance: rooms + + history: + name: Logs + last_clean_logs: + type: list + visu_acl: ro + cache: True + deebot_ozmo@instance: last_clean_logs + + controls: + name: Remote control items + clean: + type: bool + visu_acl: rw + deebot_ozmo@instance: cmd_clean + pause: + type: bool + visu_acl: rw + deebot_ozmo@instance: cmd_pause + stop: + type: bool + visu_acl: rw + deebot_ozmo@instance: cmd_stop + charge: + type: bool + visu_acl: rw + deebot_ozmo@instance: cmd_charge + locate: + type: bool + visu_acl: rw + deebot_ozmo@instance: cmd_locate + + +plugin_functions: NONE + # Definition of plugin functions defined by this plugin (enter 'plugin_functions: NONE', if section should be empty) + +logic_parameters: NONE + # Definition of logic parameters defined by this plugin (enter 'logic_parameters: NONE', if section should be empty) + diff --git a/deebot_ozmo/requirements.txt b/deebot_ozmo/requirements.txt new file mode 100644 index 000000000..e150ad1f4 --- /dev/null +++ b/deebot_ozmo/requirements.txt @@ -0,0 +1,2 @@ +deebotozmo==1.6.6 +dnspython diff --git a/deebot_ozmo/webif/static/img/no-map.png b/deebot_ozmo/webif/static/img/no-map.png new file mode 100644 index 0000000000000000000000000000000000000000..80854df9c4db6fd75a07f3e1791368553ea6cde4 GIT binary patch literal 32873 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

P8LC}I&3KL+Uixb+~^ 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%0A!Q+!L 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%0AHgE8sEVEeSIU}3^lnFm+u-5wlz1;H?0wKqMy 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 upksk>zqSyT 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 literal 0 HcmV?d00001 diff --git a/deebot_ozmo/webif/templates/index.html b/deebot_ozmo/webif/templates/index.html new file mode 100644 index 000000000..2b0c16bda --- /dev/null +++ b/deebot_ozmo/webif/templates/index.html @@ -0,0 +1,382 @@ +{% extends "base_plugin.html" %} + +{% set logo_frame = false %} + + +{% set update_interval = 3000 %} + + +{% block pluginscripts %} + +{% endblock pluginscripts %} + + +{% block headtable %} + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{{ _('Model') }}{{ p.mybot['model'] }}{{ _('Battery') }} + {% if p.mybot['battery_level'] is not none %} + {% if p.mybot['battery_level'] == 100 %} + + {% elif p.mybot['battery_level'] > 75 %} + + {% elif p.mybot['battery_level'] > 50 %} + + {% elif p.mybot['battery_level'] > 25 %} + + {% else %} + + {% endif %} + {% endif %} +  {{ _(p.mybot['battery_level']) }}% +
{{ _('Name') }}{{ p.mybot['nick'] }}{{ _('Status') }}{{ p.mybot['state_text'] }}
{{ _('Reachable') }} + + {{ _(p.mybot['available']) }} +
+{% endblock headtable %} + + + +{% block buttons %} +

+ + + {% if p.mybot['state'] == 'STATE_PAUSED' %} + + {% else %} + + {% endif %} + + + +
+{% endblock %} + +{% set tabcount = 4 %} + + +{% set tab1title = " " ~ _('Properties') ~ "" %} +{% block bodytab1 %} +
+
+
+
+
+ {% if p.mybot['live_map'] %} + + {% else %} + + {% endif %} +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{{ _('Model') }}{{ p.mybot['model'] }}{{ _('Battery') }} + {% if p.mybot['battery_level'] is not none %} + {% if p.mybot['battery_level'] == 100 %} + {% elif p.mybot['battery_level'] > 75 %} + {% elif p.mybot['battery_level'] > 50 %} + {% elif p.mybot['battery_level'] > 25 %} + {% else %} + {% endif %} + {% endif %} +  {{ _(p.mybot['battery_level']) }}% +
{{ _('Name') }}{{ p.mybot['nick'] }}{{ _('fan_speed') }} + +
{{ _('ID') }}{{ p.mybot['did'] }}{{ _('water_level') }} + + +
{{ _('Continent') }}{{ p.mybot['continent'] }}{{ _('Brush') }} + {% if p.mybot['components']['brush'] is defined %}{{ p.mybot['components']['brush']|round|int }}%{% endif %} +
{{ _('Country') }}{{ p.mybot['country'] }}{{ _('Sidebrushes') }} + {% if p.mybot['components']['sideBrush'] is defined %}{{ p.mybot['components']['sideBrush']|round|int }}%{% endif %} +
{{ _('Account') }}{{ p._account }}{{ _('Filter') }} + {% if p.mybot['components']['heap'] is defined %}{{ p.mybot['components']['heap']|round|int }}%{% endif %} +
+
+ + + + + + + + + + {% for room in p.mybot['rooms'] %} + + + + + + {% endfor %} + +
{{ _('Room type') }}{{ _('Room ID') }} 
{{ room.subtype }}{{ room.id }}
+
+
+ + + + +
+{% endblock bodytab1 %} + + +{% set tab2title = " " ~ _('Live map') ~ "" %} +{% block bodytab2 %} +
+ {% if p.mybot['live_map'] %} + + {% else %} + + {% endif %} +
+{% endblock bodytab2 %} + + +{% set tab3title = " " ~ _('Cleaning log') ~ "" %} +{% block bodytab3 %} + +
+
+ + + + + + + + + + + + {% for log in p.mybot['last_clean_logs'] %} + + + + + + + + + {% endfor %} + +
#{{ _('Date') }}{{ _('Time') }}{{ _('Type') }}{{ _('Preview') }}
{{ loop.index}}{{ log.timestamp | dateformat }}{{ log.timestamp | timeformat }}{{ _(log.type) }} + + + +
+
+
+ +{% for log in p.mybot['last_clean_logs'] %} + + +{% endfor %} + +{% endblock bodytab3 %} + + +{% set tab4title = " " ~ _('Items') ~ "" %} +{% block bodytab4 %} +
+
+ + + + + + + + + + + {% for item in items %} + + + + + + + + + {% endfor %} +
#{{ _('Item') }}{{ _('Wert') }}{{ _('Typ') }}{{ _('Visu Zugriff') }}
{{ loop.index}}{{ item._path }} + {{ item() }}{{ item._type }}{{ item.conf['visu_acl'] }}
+
+
+{% endblock bodytab4 %} \ No newline at end of file From bc8fddb1cecfbad9c0cb620ecdf2778ff8434fe9 Mon Sep 17 00:00:00 2001 From: Serge Wagener Date: Mon, 8 Jun 2020 18:13:06 +0200 Subject: [PATCH 27/47] Correct commit to wrong branch --- deebot_ozmo/README.md | 56 --- deebot_ozmo/__init__.py | 484 ------------------- deebot_ozmo/locale.yaml | 61 --- deebot_ozmo/plugin.yaml | 216 --------- deebot_ozmo/requirements.txt | 2 - deebot_ozmo/webif/static/img/no-map.png | Bin 32873 -> 0 bytes deebot_ozmo/webif/static/img/plugin_logo.png | Bin 318889 -> 0 bytes deebot_ozmo/webif/templates/index.html | 382 --------------- 8 files changed, 1201 deletions(-) delete mode 100644 deebot_ozmo/README.md delete mode 100644 deebot_ozmo/__init__.py delete mode 100644 deebot_ozmo/locale.yaml delete mode 100644 deebot_ozmo/plugin.yaml delete mode 100644 deebot_ozmo/requirements.txt delete mode 100644 deebot_ozmo/webif/static/img/no-map.png delete mode 100644 deebot_ozmo/webif/static/img/plugin_logo.png delete mode 100644 deebot_ozmo/webif/templates/index.html diff --git a/deebot_ozmo/README.md b/deebot_ozmo/README.md deleted file mode 100644 index a822850e0..000000000 --- a/deebot_ozmo/README.md +++ /dev/null @@ -1,56 +0,0 @@ -# Plugin for Deebot Ozmo 920 / 950 / 960 - -#### Version 1.7.1 -This plugin can control and monitor an Ecovacs Deebot Ozmo series vaccum cleaner robot. - -## Change history -This plugin is work in progress. Change history will be recorded starting with first release not marked as "dev" version. - - -## Requirements -This plugin itself does not have any other requirement except the listed library and, obviously, a robot hardware. - -### Needed software -- [deebotozmo package](https://pypi.org/project/deebotozmo/) - -### Supported Hardware -This plugin is supposed to work with the [Ecovacs Deebot Ozmo series](https://www.ecovacs.com/de/deebot-robotic-vacuum-cleaner?filter=28). -Is has been successfully tested and used with a Deebot Ozmo 950. -According to the author of the underlying lib, it should work with the Deebot Ozmo 920 / 950 960. - -## Configuration - -### plugin.yaml -Please refer to the documentation generated from plugin.yaml metadata. - - -### items.yaml -Please refer to the documentation generated from plugin.yaml metadata. - - -### logic.yaml -Please refer to the documentation generated from plugin.yaml metadata. - - -## Methods -Please refer to the documentation generated from plugin.yaml metadata. - - -## Examples -As this plugin offers struct items, using it in your own `items.yaml` is easy. -The following example includes ALL of the available items into your SHNG. -``` -deebot: - general: - struct: deebot_ozmo.general - settings: - struct: deebot_ozmo.settings - components: - struct: deebot_ozmo.components - maps: - struct: deebot_ozmo.maps - history: - struct: deebot_ozmo.history - controls: - struct: deebot_ozmo.controls -``` diff --git a/deebot_ozmo/__init__.py b/deebot_ozmo/__init__.py deleted file mode 100644 index 2c136b8b4..000000000 --- a/deebot_ozmo/__init__.py +++ /dev/null @@ -1,484 +0,0 @@ -#!/usr/bin/env python3 -# vim: set encoding=utf-8 tabstop=4 softtabstop=4 shiftwidth=4 expandtab -######################################################################### -# Copyright 2019- Serge Wagener serge@wagener.family -######################################################################### -# This file is part of SmartHomeNG. -# https://www.smarthomeNG.de -# https://knx-user-forum.de/forum/supportforen/smarthome-py -# -# Sample plugin for new plugins to run with SmartHomeNG version 1.4 and -# upwards. -# -# SmartHomeNG is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# SmartHomeNG is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with SmartHomeNG. If not, see . -# -######################################################################### - -from jinja2 import Environment, FileSystemLoader -import cherrypy -from lib.module import Modules -from lib.model.smartplugin import * -from lib.item import Items -from lib.network import Http -import datetime - -#_LOGGER = logging.getLogger(__name__) - -import string -import random -from deebotozmo import * - - -class DeebotOzmo(SmartPlugin): - """ - Main class of the Plugin. Does all plugin specific stuff and provides - the update functions for the items - """ - - # (must match the version specified in plugin.yaml) - PLUGIN_VERSION = '1.7.1' - -# ---------------------------------------------------- -# SmartHomeNG plugin methods -# ---------------------------------------------------- - - def __init__(self, sh): - """ - Initalizes the plugin. - """ - self.logger.debug("Init method called") - # Call init code of parent class (SmartPlugin) - super().__init__() - - from bin.smarthome import VERSION - if '.'.join(VERSION.split('.', 2)[:2]) <= '1.5': - self.logger = logging.getLogger(__name__) - - self._items = [] - # get the parameters for the plugin (as defined in metadata plugin.yaml): - self._account = self.get_parameter_value('account') - self._password = EcoVacsAPI.md5(self.get_parameter_value('password')) - self._wanted_device = self.get_parameter_value('device') - - self.mybot = { - 'nick': None, - 'did': None, - 'country': self.get_parameter_value('country').lower(), - 'continent': self.get_parameter_value('continent').lower(), - 'model': None, - 'iconURL': None, - 'live_map': None, - 'last_clean_logs': [], - 'last_clean_map': None, - 'available': False, - 'battery_level': 0, - 'state': None, - 'state_text': None, - 'fan_speed': None, - 'water_level': None, - 'components': [], - 'rooms': [] - } - - # Check if country and continent defined, if not try to autolocate - http = Http() - if not self.mybot['country'] or not self.mybot['continent']: - _locate = http.get_json('http://ip-api.com/json?fields=continentCode,countryCode') - if not self.mybot['country']: - if _locate and _locate['countryCode']: - self.logger.info('Autodetected country: {}'.format(_locate['countryCode'])) - self._update_items('country', _locate['countryCode'].lower()) - else: - self.logger.error('No country defined and autolocate not possible, please specify country in plugin configuration !') - self._init_complete = False - return - - if not self.mybot['continent']: - if _locate and _locate['continentCode']: - self.logger.info('Autodetected continent: {}'.format(_locate['continentCode'])) - self._update_items('continent', _locate['continentCode'].lower()) - else: - self.logger.error('No continent defined and autolocate not possible, please specify continent in plugin configuration !') - self._init_complete = False - return - - self.device = None - self._device_id = "".join(random.choice( - string.ascii_uppercase + string.digits) for _ in range(16)) - self._cycle = self.get_parameter_value('interval') - self._items = {} - - if not self.init_webinterface(): - self._init_complete = False - - return - - def run(self): - """ - Run method for the plugin - """ - self.logger.debug("Run method called") - self.alive = True - self.scheduler_add('poll_device', self.poll_device, cycle=5) - - # Connect to API - self.api = EcoVacsAPI(self._device_id, self._account, - self._password, self.mybot['country'], self.mybot['continent']) - - # Find wanted device, use first device if none specified - self.devices = self.api.devices() - for device in self.devices: - if not device['nick']: - device['nick'] = device['did'] - self.logger.info('Found device {} with ID {}'.format( - device['nick'], device['did'])) - if (device['nick'].lower() == self._wanted_device.lower()): - self.logger.info( - 'Using wanted device {} for this instance !'.format(device['nick'])) - self.device = device - break - - if not self.device: - self.device = self.devices[0] - if not self.device['nick']: - self.device['nick'] = self.device['did'] - self.logger.info('Using device {} for this instance !'.format(device['nick'])) - #self.logger.debug(self.device) - - self._update_items('nick', self.device['nick']) - self._update_items('did', self.device['did']) - - self.vacbot = VacBot(self.api.uid, self.api.REALM, self.api.resource, - self.api.user_access_token, self.device, self.mybot['continent']) - self.vacbot.connect_and_wait_until_ready() - self.iotProduct = self.getIotProduct() - self.vacbot.request_all_statuses() - self.vacbot.setScheduleUpdates(self._cycle) - self.poll_device() - - def stop(self): - """ - Stop method for the plugin - """ - self.logger.debug("Stop method called") - self.vacbot.disconnect() - self.alive = False - - def parse_item(self, item): - """ - Parse items into internal array on plugin startup - """ - - if self.has_iattr(item.conf, 'deebot_ozmo'): - #self.logger.debug("parse item: {}".format(item.id())) - _item = self.get_iattr_value(item.conf, 'deebot_ozmo') - # Add items to internal array - if not _item in self._items: - self._items[_item] = [] - self._items[_item].append(item) - return self.update_item - - def parse_logic(self, logic): - """ - Default plugin parse_logic method - """ - if 'xxx' in logic.conf: - # self.function(logic['name']) - pass - - def update_item(self, item, caller=None, source=None, dest=None): - """ - Item has been updated - - :param item: item to be updated towards the plugin - :param caller: if given it represents the callers name - :param source: if given it represents the source - :param dest: if given it represents the dest - """ - if self.alive and caller != self.get_shortname(): - if self.has_iattr(item.conf, 'deebot_ozmo') and item(): - _cmd = self.get_iattr_value(item.conf,'deebot_ozmo') - self.logger.debug('Command: {}'.format(_cmd)) - item(False, self.get_shortname()) - if _cmd == 'cmd_clean': - self.logger.info('Start cleaning') - self.clean() - elif _cmd == 'cmd_pause': - self.logger.info('Pause cleaning') - self.pause() - elif _cmd == 'cmd_stop': - self.logger.info('Stop cleaning') - self.stop() - elif _cmd == 'cmd_charge': - self.logger.info('Returning to charging station') - self.charge() - elif _cmd == 'cmd_locate': - self.logger.info('Locating device') - self.locate() - else: - self.logger.warning('Unknown command {}'.format(_cmd)) - - def init_webinterface(self): - """" - Initialize the web interface for this plugin - - This method is only needed if the plugin is implementing a web interface - """ - try: - self.mod_http = Modules.get_instance().get_module( - 'http') # try/except to handle running in a core version that does not support modules - except: - self.mod_http = None - if self.mod_http == None: - self.logger.error("Not initializing the web interface") - return False - - import sys - if not "SmartPluginWebIf" in list(sys.modules['lib.model.smartplugin'].__dict__): - self.logger.warning( - "Web interface needs SmartHomeNG v1.5 and up. Not initializing the web interface") - return False - - # set application configuration for cherrypy - webif_dir = self.path_join(self.get_plugin_dir(), 'webif') - config = { - '/': { - 'tools.staticdir.root': webif_dir, - }, - '/static': { - 'tools.staticdir.on': True, - 'tools.staticdir.dir': 'static' - } - } - - # Register the web interface as a cherrypy app - self.mod_http.register_webif(WebInterface(webif_dir, self), - self.get_shortname(), - config, - self.get_classname(), self.get_instance_name(), - description='') - - return True - -# ---------------------------------------------------- -# Commands to actively control the Deebot Ozmo -# ---------------------------------------------------- - - def locate(self): - """ - Play a sound to locate your Deebot - """ - self.vacbot.PlaySound() - - def clean(self): - """ - Start cleaning - """ - self.vacbot.Clean() - - def clean_spot_area(self, area): - """ - Start cleaning predefined area - """ - self.vacbot.SpotArea(area) - - def pause(self): - """ - Pause cleaning - """ - self.vacbot.CleanPause() - - def resume(self): - """ - Resume cleaning - """ - self.vacbot.CleanResume() - - def charge(self): - """ - Send Deebot back to charger - """ - self.vacbot.Charge() - - def set_fan_speed(self, speed): - """ - Change fan speed / suction power - """ - try: - _speed = FAN_SPEED_TO_ECOVACS[speed] - self.logger.debug('Changing fan speed to {} - {}'.format(speed, _speed)) - self.vacbot.SetFanSpeed(speed) - except KeyError: - self.logger.warning('Unknown speed {}'.format(speed)) - - def set_water_level(self, level): - """ - Change water level - """ - try: - _level = WATER_LEVEL_TO_ECOVACS[level] - self.logger.debug('Changing water level to {} - {}'.format(level, _level)) - self.vacbot.SetWaterLevel(level) - except KeyError: - self.logger.warning('Unknown water level {}'.format(level)) - -# ---------------------------------------------------- -# Methods to poll robot and update items -# ---------------------------------------------------- - - def _update_items(self, attribute, value): - # self.logger.debug('Updating {} with value {}'.format(attribute, value)) - self.mybot[attribute] = value - if attribute in self._items: - for _item in self._items[attribute]: - _item(value, self.get_shortname()) - - def getIotProduct(self): - iotproducts = self.api.getiotProducts() - for iotProduct in iotproducts: - if self.device['class'] in iotProduct['classid']: - if 'product' in iotProduct and 'name' in iotProduct['product']: - self._update_items('model', iotProduct['product']['name']) - if 'product' in iotProduct and 'iconUrl' in iotProduct['product']: - self._update_items('iconURL', iotProduct['product']['iconUrl']) - return iotProduct - return None - - def poll_device(self): - """ - Polls for updates of the device - """ - self._update_items('available', self.vacbot.is_available) - self._update_items('state', self.vacbot.vacuum_status) - self._update_items('state_text', self.translate(self.vacbot.vacuum_status)) - self._update_items('battery_level', self.vacbot.battery_status) - self._update_items('fan_speed', self.vacbot.fan_speed) - self._update_items('water_level', self.vacbot.water_level) - self._update_items('rooms', self.vacbot.getSavedRooms()) - self._update_items('last_clean_logs', self.vacbot.lastCleanLogs) - self._update_items('last_clean_map', self.vacbot.last_clean_image) - - if self.vacbot.live_map: - self._update_items('live_map', self.vacbot.live_map.decode("utf-8")) - - # Update components lifespan if available - try: - self._update_items('components', self.vacbot.components) - self._update_items('brush', round(self.vacbot.components['brush'])) - self._update_items('sideBrush', round(self.vacbot.components['sideBrush'])) - self._update_items('filter', round(self.vacbot.components['heap'])) - except KeyError: - pass - -# ------------------------------------------ -# Webinterface of the plugin -# ------------------------------------------ - - -class WebInterface(SmartPluginWebIf): - - def __init__(self, webif_dir, plugin): - """ - Initialization of instance of class WebInterface - - :param webif_dir: directory where the webinterface of the plugin resides - :param plugin: instance of the plugin - :type webif_dir: str - :type plugin: object - """ - self.logger = logging.getLogger(__name__) - self.webif_dir = webif_dir - self.plugin = plugin - self.tplenv = self.init_template_environment() - self.tplenv.filters['dateformat'] = self.dateformat - self.tplenv.filters['timeformat'] = self.timeformat - self.items = Items.get_instance() - - - @cherrypy.expose - def index(self, reload=None, cmd=None, speed=None, level=None, type=None, id=None): - """ - Build index.html for cherrypy - - Render the template and return the html file to be delivered to the browser - - :return: contents of the template after beeing rendered - """ - if cmd: - self.logger.debug('Command: {}'.format(cmd)) - if cmd == 'clean': - self.logger.info("WebIf: Start cleaning") - self.plugin.clean() - elif cmd == 'clean_room': - self.logger.info("WebIf: Start cleaning {} (id: {})".format(type, id)) - #self.plugin.clean(id) - elif cmd == 'pause': - self.plugin.pause() - elif cmd == 'charge': - self.plugin.charge() - elif cmd == 'locate': - self.plugin.locate() - elif cmd == 'set_fan_speed': - self.plugin.set_fan_speed(speed) - elif cmd == 'set_water_level': - self.plugin.set_water_level(level) - else: - self.logger.warning('Unknown command: {}'.format(cmd)) - - # get list of items with the attribute knx_dpt - plgitems = [] - for item in self.items.return_items(): - if 'deebot_ozmo' in item.conf: - plgitems.append(item) - - tmpl = self.tplenv.get_template('index.html') - # add values to be passed to the Jinja2 template eg: tmpl.render(p=self.plugin, interface=interface, ...) - return tmpl.render(p=self.plugin, items=sorted(plgitems, key=lambda k: str.lower(k['_path']))) - - @cherrypy.expose - def get_data_html(self, dataSet=None): - """ - Return data to update the webpage - - For the standard update mechanism of the web interface, the dataSet to return the data for is None - - :param dataSet: Dataset for which the data should be returned (standard: None) - :return: dict with the data needed to update the web page. - """ - if dataSet is None: - data = {} - data['mybot'] = self.plugin.mybot - # return it as json the the web page - try: - return json.dumps(data) - except Exception as e: - self.logger.error("get_data_html exception: {}".format(e)) - return {} - - # Jinja2 filter to format int timestamp as string - def dateformat(self, timestamp): - try: - _datetime = datetime.datetime.fromtimestamp(timestamp) - result = _datetime.strftime("%d/%m/%Y") - except: - result = 'ERROR' - return result - - def timeformat(self, timestamp): - try: - _datetime = datetime.datetime.fromtimestamp(timestamp) - result = _datetime.strftime("%H:%M:%S") - except: - result = 'ERROR' - return result \ No newline at end of file diff --git a/deebot_ozmo/locale.yaml b/deebot_ozmo/locale.yaml deleted file mode 100644 index 26d19c16b..000000000 --- a/deebot_ozmo/locale.yaml +++ /dev/null @@ -1,61 +0,0 @@ -# translations for the web interface -plugin_translations: - # Translations for the plugin specially for the web interface - - 'Start': { 'de' : '=', 'en': '=', 'fr': 'Démarrer'} - 'Pause': { 'de' : '=', 'en': '=', 'fr': '='} - 'Resume': { 'de' : 'Weiter', 'en': '=', 'fr': 'Continuer'} - 'Charge': { 'de' : 'Aufladen', 'en': '=', 'fr': 'Charger'} - 'Locate': { 'de' : 'Lokalisieren', 'en': '=', 'fr': 'Localiser'} - - 'Properties': { 'de' : 'Eigenschaften', 'en': '=', 'fr': 'Propriétés'} - 'Live map': { 'de' : 'Live Karte', 'en': '=', 'fr': 'Carte du temps réel'} - 'Cleaning log': { 'de' : 'Reinigungsprotokoll', 'en': '=', 'fr': 'Protocole de nettoyage'} - - 'Reachable': { 'de' : 'Erreichbar', 'en': '=', 'fr': 'Joignable'} - 'True': { 'de' : 'Ja', 'en': 'Yes', 'fr': 'Oui'} - 'False': { 'de' : 'Nein', 'en': 'No', 'fr': 'Non'} - - 'State': { 'de' : 'Status', 'en': '=', 'fr': 'Etat'} - 'STATE_DOCKED': {'de': 'angedockt', 'en': 'docked', 'fr': 'en charge'} - 'STATE_ERROR': {'de': 'Fehler', 'en': 'error', 'fr': 'erreur'} - 'STATE_CLEANING': {'de': 'putzt', 'en': 'cleaning', 'fr': 'nettoyage'} - 'STATE_PAUSED': {'de': 'pausiert', 'en': 'paused', 'fr': 'en pause'} - 'STATE_RETURNING': {'de': 'kehrt zurÜck', 'en': 'returning', 'fr': 'retour'} - - 'Model': { 'de' : 'Modell', 'en': '=', 'fr': 'Modèle'} - 'Name': { 'de' : 'Name', 'en': '=', 'fr': 'Nom'} - 'Continent': { 'de' : 'Kontinent', 'en': '=', 'fr': 'Continent'} - 'Country': { 'de' : 'Land', 'en': '=', 'fr': 'Pays'} - 'Account': { 'de' : 'Konto', 'en': '=', 'fr': 'Compte'} - - 'Battery': { 'de' : 'Akku', 'en': '=', 'fr': 'Batterie'} - 'Brush': { 'de' : 'Bürste', 'en': '=', 'fr': 'Brosse'} - 'Sidebrushes': { 'de' : 'Seitenbürsten', 'en': '=', 'fr': 'Brosses latérales'} - 'Filter': { 'de' : '=', 'en': '=', 'fr': 'Filtre'} - - 'fan_speed': { 'de' : 'Saugkraft', 'en': 'Suction power', 'fr': "Puissance d'aspiration"} - 'quiet': { 'de' : 'ruhig', 'en': '=', 'fr': 'silencieux'} - 'normal': { 'de' : 'normal', 'en': '=', 'fr': 'standard'} - 'max': { 'de' : '=', 'en': '=', 'fr': '='} - 'max+': { 'de' : '=', 'en': '=', 'fr': '='} - - 'water_level': { 'de' : 'Wassermenge', 'en': 'Water quantity', 'fr': "Quantité d'eau"} - 'low': { 'de' : 'niedrig', 'en': '=', 'fr': 'faible'} - 'medium': { 'de' : 'mittel', 'en': '=', 'fr': 'moyenne'} - 'high': { 'de' : 'hoch', 'en': '=', 'fr': 'haute'} - 'ultrahigh': { 'de' : 'ultra hoch', 'en': '=', 'fr': 'très haute'} - - 'Date': { 'de' : 'Datum', 'en': '=', 'fr': '='} - 'Time': { 'de' : 'Uhrzeit', 'en': '=', 'fr': 'Heure'} - 'Type': { 'de' : 'Typ', 'en': '=', 'fr': '='} - 'Preview': { 'de' : 'Voransicht', 'en': '=', 'fr': 'Aperçu'} - - 'spotArea': { 'de' : 'Bereich', 'en': 'Area', 'fr': 'Zone'} - 'auto': { 'de' : 'Automatik', 'en': 'Auto', 'fr': 'Automatique'} - 'customArea': { 'de' : 'Benutzerdefiniert', 'en': 'Custom', 'fr': 'Personalisé'} - 'View': { 'de' : 'Ansicht', 'en': '=', 'fr': 'Voir'} - 'Close': { 'de' : 'Schliessen', 'en': '=', 'fr': 'Fermer'} - - '': { 'de' : '', 'en': '', 'fr': ''} - \ No newline at end of file diff --git a/deebot_ozmo/plugin.yaml b/deebot_ozmo/plugin.yaml deleted file mode 100644 index 6b17a35fa..000000000 --- a/deebot_ozmo/plugin.yaml +++ /dev/null @@ -1,216 +0,0 @@ -# Metadata for the plugin -plugin: - # Global plugin attributes - type: interface # plugin type (gateway, interface, protocol, system, web) - description: - de: 'Plugin für Deebot Ozmo 920 / 950 / 960' - en: 'Plugin for Deebot Ozmo 920 / 950 / 960' - fr: 'Extension pour Deebot Ozmo 920 / 950 / 960' - maintainer: Foxi352 -# tester: # Who tests this plugin? - state: develop # change to ready when done with development - keywords: iot vacuum robot clean -# documentation: https://github.com/smarthomeNG/smarthome/wiki/CLI-Plugin # url of documentation (wiki) page -# support: https://knx-user-forum.de/forum/supportforen/smarthome-py - - version: 1.7.1 # Plugin version (must match the version specified in __init__.py) - sh_minversion: 1.5 # minimum shNG version to use this plugin -# sh_maxversion: # maximum shNG version to use this plugin (leave empty if latest) - multi_instance: True # plugin supports multi instance - restartable: true - classname: DeebotOzmo # class containing the plugin - -parameters: - # Definition of parameters to be configured in etc/plugin.yaml (enter 'parameters: NONE', if section should be empty) - account: - type: str - mandatory: True - description: - de: 'Ecovacs Konto Login (Email addresse)' - en: 'Ecovacs account login (email address)' - fr: "Nom d'utilisateur du compte Ecovacs (adresse courriel)" - - password: - type: str - mandatory: True - description: - de: 'Ecovacs Konto Passwort' - en: 'Ecovacs accounts password' - fr: "Mot de pass du compte Ecovacs" - - device: - type: str - mandatory: False - default: NONE - description: - de: 'Roboter Name für diese Instanz. Default ist erster in der Liste' - en: 'Robot name for this instance. Default is first in list' - fr: 'Nom du robot pour cette instance. Premier dans liste par défaut' - - interval: - type: int - mandatory: False - default: 60 - description: - de: 'Interval der API Abfragen (Karten updates, Lifespan updates, ...)' - en: 'Interval for API updates (map updates, lifespan updates, ...)' - fr: 'Intervale des requetes API (MAJ des cartes, durée de vie des composantes, ...)' - - country: - type: str - mandatory: False - description: - de: 'Land für API. Autodetect falls leer' - en: 'Country for API. Autodetected if empty' - fr: "Pays pour l'API. Détection automatique si vide" - - continent: - type: str - mandatory: False - description: - de: 'Kontinent für API. Autodetect falls leer' - en: 'Continent for API. Autodetected if empty' - fr: "Continent pour l'API. Détection automatique si vide" - -item_attributes: - # Definition of item attributes defined by this plugin (enter 'item_attributes: NONE', if section should be empty) - -item_structs: - general: - name: General information - nick: - type: str - visu_acl: ro - cache: True - deebot_ozmo@instance: nick - - did: - type: str - visu_acl: ro - cache: True - deebot_ozmo@instance: did - - model: - type: str - visu_acl: ro - cache: True - deebot_ozmo@instance: model - - icon_URL: - type: str - visu_acl: ro - cache: True - deebot_ozmo@instance: iconURL - - available: - type: bool - visu_acl: ro - deebot_ozmo@instance: available - - state: - type: str - visu_acl: ro - deebot_ozmo@instance: state - - state_text: - type: str - visu_acl: ro - deebot_ozmo@instance: state_text - - battery_level: - type: num - visu_acl: ro - deebot_ozmo@instance: battery_level - - settings: - name: Modifiable settings - water_level: - type: str - visu_acl: rw - cache: True - deebot_ozmo@instance: water_level - - fan_speed: - type: str - visu_acl: rw - cache: True - deebot_ozmo@instance: fan_speed - - components: - name: Components lifespan item_structs - brush: - type: num - visu_acl: ro - cache: True - deebot_ozmo@instance: brush - - sideBrush: - type: num - visu_acl: ro - cache: True - deebot_ozmo@instance: sideBrush - - filter: - type: num - visu_acl: ro - cache: True - deebot_ozmo@instance: filter - - maps: - name: Maps and rooms - live_map_base64: - type: str - visu_acl: ro - cache: True - deebot_ozmo@instance: live_map - - last_clean_map_URL: - type: str - visu_acl: ro - cache: True - deebot_ozmo@instance: last_clean_map - - rooms: - type: list - visu_acl: ro - cache: True - deebot_ozmo@instance: rooms - - history: - name: Logs - last_clean_logs: - type: list - visu_acl: ro - cache: True - deebot_ozmo@instance: last_clean_logs - - controls: - name: Remote control items - clean: - type: bool - visu_acl: rw - deebot_ozmo@instance: cmd_clean - pause: - type: bool - visu_acl: rw - deebot_ozmo@instance: cmd_pause - stop: - type: bool - visu_acl: rw - deebot_ozmo@instance: cmd_stop - charge: - type: bool - visu_acl: rw - deebot_ozmo@instance: cmd_charge - locate: - type: bool - visu_acl: rw - deebot_ozmo@instance: cmd_locate - - -plugin_functions: NONE - # Definition of plugin functions defined by this plugin (enter 'plugin_functions: NONE', if section should be empty) - -logic_parameters: NONE - # Definition of logic parameters defined by this plugin (enter 'logic_parameters: NONE', if section should be empty) - diff --git a/deebot_ozmo/requirements.txt b/deebot_ozmo/requirements.txt deleted file mode 100644 index e150ad1f4..000000000 --- a/deebot_ozmo/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -deebotozmo==1.6.6 -dnspython diff --git a/deebot_ozmo/webif/static/img/no-map.png b/deebot_ozmo/webif/static/img/no-map.png deleted file mode 100644 index 80854df9c4db6fd75a07f3e1791368553ea6cde4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32873 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
obcWOsWDryFQ%`&rFGhPFrd^RKPD8(+23*9Qj6 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

P8LC}I&3KL+Uixb+~^ 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%0A!Q+!L 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%0AHgE8sEVEeSIU}3^lnFm+u-5wlz1;H?0wKqMy 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 upksk>zqSyT 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 diff --git a/deebot_ozmo/webif/templates/index.html b/deebot_ozmo/webif/templates/index.html deleted file mode 100644 index 2b0c16bda..000000000 --- a/deebot_ozmo/webif/templates/index.html +++ /dev/null @@ -1,382 +0,0 @@ -{% extends "base_plugin.html" %} - -{% set logo_frame = false %} - - -{% set update_interval = 3000 %} - - -{% block pluginscripts %} - -{% endblock pluginscripts %} - - -{% block headtable %} - - - - - - - - - - - - - - - - - - - - - - - - - - - -
{{ _('Model') }}{{ p.mybot['model'] }}{{ _('Battery') }} - {% if p.mybot['battery_level'] is not none %} - {% if p.mybot['battery_level'] == 100 %} - - {% elif p.mybot['battery_level'] > 75 %} - - {% elif p.mybot['battery_level'] > 50 %} - - {% elif p.mybot['battery_level'] > 25 %} - - {% else %} - - {% endif %} - {% endif %} -  {{ _(p.mybot['battery_level']) }}% -
{{ _('Name') }}{{ p.mybot['nick'] }}{{ _('Status') }}{{ p.mybot['state_text'] }}
{{ _('Reachable') }} - - {{ _(p.mybot['available']) }} -
-{% endblock headtable %} - - - -{% block buttons %} -

- - - {% if p.mybot['state'] == 'STATE_PAUSED' %} - - {% else %} - - {% endif %} - - - -
-{% endblock %} - -{% set tabcount = 4 %} - - -{% set tab1title = " " ~ _('Properties') ~ "" %} -{% block bodytab1 %} -
-
-
-
-
- {% if p.mybot['live_map'] %} - - {% else %} - - {% endif %} -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
{{ _('Model') }}{{ p.mybot['model'] }}{{ _('Battery') }} - {% if p.mybot['battery_level'] is not none %} - {% if p.mybot['battery_level'] == 100 %} - {% elif p.mybot['battery_level'] > 75 %} - {% elif p.mybot['battery_level'] > 50 %} - {% elif p.mybot['battery_level'] > 25 %} - {% else %} - {% endif %} - {% endif %} -  {{ _(p.mybot['battery_level']) }}% -
{{ _('Name') }}{{ p.mybot['nick'] }}{{ _('fan_speed') }} - -
{{ _('ID') }}{{ p.mybot['did'] }}{{ _('water_level') }} - - -
{{ _('Continent') }}{{ p.mybot['continent'] }}{{ _('Brush') }} - {% if p.mybot['components']['brush'] is defined %}{{ p.mybot['components']['brush']|round|int }}%{% endif %} -
{{ _('Country') }}{{ p.mybot['country'] }}{{ _('Sidebrushes') }} - {% if p.mybot['components']['sideBrush'] is defined %}{{ p.mybot['components']['sideBrush']|round|int }}%{% endif %} -
{{ _('Account') }}{{ p._account }}{{ _('Filter') }} - {% if p.mybot['components']['heap'] is defined %}{{ p.mybot['components']['heap']|round|int }}%{% endif %} -
-
- - - - - - - - - - {% for room in p.mybot['rooms'] %} - - - - - - {% endfor %} - -
{{ _('Room type') }}{{ _('Room ID') }} 
{{ room.subtype }}{{ room.id }}
-
-
- - - - -
-{% endblock bodytab1 %} - - -{% set tab2title = " " ~ _('Live map') ~ "" %} -{% block bodytab2 %} -
- {% if p.mybot['live_map'] %} - - {% else %} - - {% endif %} -
-{% endblock bodytab2 %} - - -{% set tab3title = " " ~ _('Cleaning log') ~ "" %} -{% block bodytab3 %} - -
-
- - - - - - - - - - - - {% for log in p.mybot['last_clean_logs'] %} - - - - - - - - - {% endfor %} - -
#{{ _('Date') }}{{ _('Time') }}{{ _('Type') }}{{ _('Preview') }}
{{ loop.index}}{{ log.timestamp | dateformat }}{{ log.timestamp | timeformat }}{{ _(log.type) }} - - - -
-
-
- -{% for log in p.mybot['last_clean_logs'] %} - - -{% endfor %} - -{% endblock bodytab3 %} - - -{% set tab4title = " " ~ _('Items') ~ "" %} -{% block bodytab4 %} -
-
- - - - - - - - - - - {% for item in items %} - - - - - - - - - {% endfor %} -
#{{ _('Item') }}{{ _('Wert') }}{{ _('Typ') }}{{ _('Visu Zugriff') }}
{{ loop.index}}{{ item._path }} - {{ item() }}{{ item._type }}{{ item.conf['visu_acl'] }}
-
-
-{% endblock bodytab4 %} \ No newline at end of file From 13b616fa5272488ac620f4526701b7d08e25d568 Mon Sep 17 00:00:00 2001 From: msinn Date: Tue, 23 Jun 2020 23:00:49 +0200 Subject: [PATCH 28/47] Interim commit --- .gitignore | 0 README.md | 0 __init__.py | 0 alexa/README.md | 0 alexa/__init__.py | 0 alexa/action.py | 0 alexa/actions_lock.py | 0 alexa/actions_percentage.py | 0 alexa/actions_temperature.py | 0 alexa/actions_turn.py | 0 alexa/aws_lambda.js | 0 alexa/device.py | 0 alexa/nginx.md | 0 alexa/requirements.txt | 0 alexa/service.py | 0 alexa4p3/__init__.py | 0 alexa4p3/action.py | 0 alexa4p3/actions_lock.py | 0 alexa4p3/actions_percentage.py | 0 alexa4p3/actions_temperature.py | 0 alexa4p3/actions_turn.py | 0 alexa4p3/device.py | 0 alexa4p3/directives/Activate.cmd | 0 alexa4p3/directives/AdjustBrightness.cmd | 0 alexa4p3/directives/AdjustPercentage.cmd | 0 alexa4p3/directives/AdjustPowerLevel.cmd | 0 alexa4p3/directives/AdjustRangeValue.cmd | 0 alexa4p3/directives/DecreaseColorTemperature.cmd | 0 alexa4p3/directives/IncreaseColorTemperature.cmd | 0 alexa4p3/directives/SetBrightness.cmd | 0 alexa4p3/directives/SetColorTemperature.cmd | 0 alexa4p3/directives/SetPercentage.cmd | 0 alexa4p3/directives/SetPowerLevel.cmd | 0 alexa4p3/directives/SetRangeValue.cmd | 0 alexa4p3/directives/TurnOff.cmd | 0 alexa4p3/directives/TurnOn.cmd | 0 alexa4p3/p3_action.py | 0 alexa4p3/p3_tools.py | 0 alexa4p3/service.py | 0 alexa4p3/webif/static/img/plugin_logo.png | Bin alexa4p3/webif/static/js/handler.js | 0 alexa4p3/webif/static/js/test_handler.js | 0 alexarc4shng/.idea/.gitignore | 0 alexarc4shng/.idea/alexarc4shng.iml | 0 .../.idea/inspectionProfiles/Project_Default.xml | 0 alexarc4shng/.idea/markdown-navigator.xml | 0 .../.idea/markdown-navigator/profiles_settings.xml | 0 alexarc4shng/.idea/misc.xml | 0 alexarc4shng/.idea/modules.xml | 0 alexarc4shng/.idea/vcs.xml | 0 apcups/README.md | 0 apcups/__init__.py | 0 artnet/README.md | 0 artnet/webif/static/img/plugin_logo.png | Bin artnet/webif/templates/index.html | 0 asterisk/README.md | 0 asterisk/__init__.py | 0 avm/README.md | 0 avm/__init__.py | 0 avm/requirements.txt | 0 avm/sv_widgets/widget_avm.html | 0 avm/webif/static/img/lamp_green.png | Bin avm/webif/static/img/lamp_red.png | Bin avm/webif/static/img/plugin_logo.png | Bin avm/webif/templates/index.html | 0 backend/BackendItems.py | 0 backend/BackendLogics.py | 0 backend/BackendServices.py | 0 backend/BackendSysteminfo.py | 0 backend/README.md | 0 backend/_pv_1_4_9/README.md | 0 backend/user_doc/assets/backend_itemtree.jpg | Bin backend/user_doc/assets/backend_logik_editor.jpg | Bin backend/user_doc/assets/backend_logikliste.jpg | Bin backend/user_doc/assets/backend_systeminfo.jpg | Bin backend/user_doc/items.rst | 0 backend/user_doc/logiken.rst | 0 backend/webif/templates/disclosure.html | 0 backend/webif/templates/services_shng_restart.html | 0 blockly/How_to_Update_Blockly_Components.rst | 0 blockly/README.md | 0 blockly/__init__.py | 0 blockly/locale/de.json | 0 blockly/locale/en.json | 0 blockly/locale/fr.json | 0 blockly/locale/pl.json | 0 blockly/plugin.yaml | 0 blockly/requirements.txt | 0 blockly/tests/__init__.py | 0 blockly/tests/cptestcase.py | 0 blockly/tests/test_backend_blocklylogics.py | 0 blockly/utils.py | 0 blockly/webif/static/blockly/LICENSE | 0 blockly/webif/static/blockly/README.md | 0 blockly/webif/static/blockly/blockly_compressed.js | 0 blockly/webif/static/blockly/blocks_compressed.js | 0 blockly/webif/static/blockly/de.js | 0 blockly/webif/static/blockly/en.js | 0 blockly/webif/static/blockly/fr.js | 0 blockly/webif/static/blockly/media/1x1.gif | Bin blockly/webif/static/blockly/media/click.mp3 | Bin blockly/webif/static/blockly/media/click.ogg | Bin blockly/webif/static/blockly/media/click.wav | Bin blockly/webif/static/blockly/media/delete.mp3 | Bin blockly/webif/static/blockly/media/delete.ogg | Bin blockly/webif/static/blockly/media/delete.wav | Bin blockly/webif/static/blockly/media/disconnect.mp3 | Bin blockly/webif/static/blockly/media/disconnect.ogg | Bin blockly/webif/static/blockly/media/disconnect.wav | Bin blockly/webif/static/blockly/media/handclosed.cur | Bin blockly/webif/static/blockly/media/handdelete.cur | Bin blockly/webif/static/blockly/media/handopen.cur | Bin blockly/webif/static/blockly/media/pilcrow.png | Bin blockly/webif/static/blockly/media/quote0.png | Bin blockly/webif/static/blockly/media/quote1.png | Bin blockly/webif/static/blockly/media/sprites.png | Bin blockly/webif/static/blockly/media/sprites.svg | 0 blockly/webif/static/blockly/pl.js | 0 blockly/webif/static/blockly/python_compressed.js | 0 blockly/webif/static/blockly/style.css | 0 blockly/webif/static/css/bootstrap-reload.css | 0 blockly/webif/static/css/bootstrap-theme.css | 0 blockly/webif/static/css/bootstrap-theme.css.map | 0 blockly/webif/static/css/bootstrap-theme.min.css | 0 .../webif/static/css/bootstrap-theme.min.css.map | 0 blockly/webif/static/css/bootstrap-treeview.css | 0 blockly/webif/static/css/bootstrap-treeview.min.css | 0 blockly/webif/static/css/bootstrap.css | 0 blockly/webif/static/css/bootstrap.css.map | 0 blockly/webif/static/css/bootstrap.min.css | 0 blockly/webif/static/css/bootstrap.min.css.map | 0 blockly/webif/static/css/font-awesome.css | 0 blockly/webif/static/css/font-awesome.min.css | 0 blockly/webif/static/fonts/FontAwesome.otf | Bin blockly/webif/static/fonts/fontawesome-webfont.eot | Bin blockly/webif/static/fonts/fontawesome-webfont.svg | 0 blockly/webif/static/fonts/fontawesome-webfont.ttf | Bin blockly/webif/static/fonts/fontawesome-webfont.woff | Bin .../webif/static/fonts/fontawesome-webfont.woff2 | Bin .../static/fonts/glyphicons-halflings-regular.eot | Bin .../static/fonts/glyphicons-halflings-regular.svg | 0 .../static/fonts/glyphicons-halflings-regular.ttf | Bin .../static/fonts/glyphicons-halflings-regular.woff | Bin .../static/fonts/glyphicons-halflings-regular.woff2 | Bin blockly/webif/static/img/favicon.ico | Bin blockly/webif/static/img/logo_big.png | Bin blockly/webif/static/img/logo_long.png | Bin blockly/webif/static/img/logo_small_120x120.png | Bin blockly/webif/static/img/logo_small_152x152.png | Bin blockly/webif/static/img/logo_small_32x32.png | Bin blockly/webif/static/img/logo_small_76x76.png | Bin blockly/webif/static/js/bootstrap-reload.js | 0 blockly/webif/static/js/bootstrap-reload.min.js | 0 blockly/webif/static/js/bootstrap-treeview.js | 0 blockly/webif/static/js/bootstrap-treeview.min.js | 0 blockly/webif/static/js/bootstrap.js | 0 blockly/webif/static/js/bootstrap.min.js | 0 blockly/webif/static/js/google-prettify/lang-aea.js | 0 blockly/webif/static/js/google-prettify/lang-agc.js | 0 .../webif/static/js/google-prettify/lang-apollo.js | 0 .../webif/static/js/google-prettify/lang-basic.js | 0 blockly/webif/static/js/google-prettify/lang-cbm.js | 0 blockly/webif/static/js/google-prettify/lang-cl.js | 0 blockly/webif/static/js/google-prettify/lang-clj.js | 0 blockly/webif/static/js/google-prettify/lang-css.js | 0 .../webif/static/js/google-prettify/lang-dart.js | 0 blockly/webif/static/js/google-prettify/lang-el.js | 0 blockly/webif/static/js/google-prettify/lang-erl.js | 0 .../webif/static/js/google-prettify/lang-erlang.js | 0 blockly/webif/static/js/google-prettify/lang-fs.js | 0 blockly/webif/static/js/google-prettify/lang-go.js | 0 blockly/webif/static/js/google-prettify/lang-hs.js | 0 .../webif/static/js/google-prettify/lang-lasso.js | 0 .../static/js/google-prettify/lang-lassoscript.js | 0 .../webif/static/js/google-prettify/lang-latex.js | 0 blockly/webif/static/js/google-prettify/lang-lgt.js | 0 .../webif/static/js/google-prettify/lang-lisp.js | 0 blockly/webif/static/js/google-prettify/lang-ll.js | 0 .../webif/static/js/google-prettify/lang-llvm.js | 0 .../webif/static/js/google-prettify/lang-logtalk.js | 0 blockly/webif/static/js/google-prettify/lang-ls.js | 0 blockly/webif/static/js/google-prettify/lang-lsp.js | 0 blockly/webif/static/js/google-prettify/lang-lua.js | 0 .../webif/static/js/google-prettify/lang-matlab.js | 0 blockly/webif/static/js/google-prettify/lang-ml.js | 0 .../webif/static/js/google-prettify/lang-mumps.js | 0 blockly/webif/static/js/google-prettify/lang-n.js | 0 .../webif/static/js/google-prettify/lang-nemerle.js | 0 .../webif/static/js/google-prettify/lang-pascal.js | 0 .../webif/static/js/google-prettify/lang-proto.js | 0 blockly/webif/static/js/google-prettify/lang-r.js | 0 blockly/webif/static/js/google-prettify/lang-rd.js | 0 blockly/webif/static/js/google-prettify/lang-rkt.js | 0 .../webif/static/js/google-prettify/lang-rust.js | 0 blockly/webif/static/js/google-prettify/lang-s.js | 0 .../webif/static/js/google-prettify/lang-scala.js | 0 blockly/webif/static/js/google-prettify/lang-scm.js | 0 .../webif/static/js/google-prettify/lang-splus.js | 0 blockly/webif/static/js/google-prettify/lang-sql.js | 0 blockly/webif/static/js/google-prettify/lang-ss.js | 0 .../webif/static/js/google-prettify/lang-swift.js | 0 blockly/webif/static/js/google-prettify/lang-tcl.js | 0 blockly/webif/static/js/google-prettify/lang-tex.js | 0 blockly/webif/static/js/google-prettify/lang-vb.js | 0 blockly/webif/static/js/google-prettify/lang-vbs.js | 0 blockly/webif/static/js/google-prettify/lang-vhd.js | 0 .../webif/static/js/google-prettify/lang-vhdl.js | 0 .../webif/static/js/google-prettify/lang-wiki.js | 0 blockly/webif/static/js/google-prettify/lang-xq.js | 0 .../webif/static/js/google-prettify/lang-xquery.js | 0 .../webif/static/js/google-prettify/lang-yaml.js | 0 blockly/webif/static/js/google-prettify/lang-yml.js | 0 .../webif/static/js/google-prettify/prettify.css | 0 blockly/webif/static/js/google-prettify/prettify.js | 0 .../webif/static/js/google-prettify/run_prettify.js | 0 .../static/js/google-prettify/skins/desert.css | 0 .../webif/static/js/google-prettify/skins/doxy.css | 0 .../js/google-prettify/skins/sons-of-obsidian.css | 0 .../static/js/google-prettify/skins/sunburst.css | 0 blockly/webif/static/js/jquery-3.2.1.js | 0 blockly/webif/static/js/jquery-3.2.1.min.js | 0 blockly/webif/static/js/logics_blockly_code.js | 0 blockly/webif/static/js/npm.js | 0 blockly/webif/static/shblocks/sh_items.js | 0 blockly/webif/static/shblocks/sh_logic.js | 0 blockly/webif/static/shblocks/sh_notify.js | 0 blockly/webif/static/shblocks/sh_time.js | 0 blockly/webif/static/shblocks/sh_tools.js | 0 blockly/webif/templates/base.html | 0 blockly/webif/templates/blockly.html | 0 blockly/webif/templates/logics_blockly_toolbox.html | 0 .../NppXmlTreeviewPlugin/logs/log-20191223.txt | 0 bose_soundtouch/README.md | 0 bose_soundtouch/__init__.py | 0 bose_soundtouch/plugin.yaml | 0 bose_soundtouch/requirements.txt | 0 bose_soundtouch/user_doc.rst | 0 boxcar/README.md | 0 buderus/ErrorTypes.pdf | Bin buderus/README.md | 0 buderus/TODO.md | 0 buderus/URLs.md | 0 buderus/__init__.py | 0 cli/README.md | 0 cli/_pv_1_3_0/README.md | 0 co2meter/README.md | 0 co2meter/__init__.py | 0 co2meter/plugin.yaml | 0 comfoair/README.md | 0 comfoair/commands.py | 0 darksky/README.md | 0 darksky/__init__.py | 0 darksky/assets/webif1.jpg | Bin darksky/assets/webif2.jpg | Bin darksky/plugin.yaml | 0 darksky/user_doc.rst | 0 darksky/webif/static/img/plugin_logo.png | Bin darksky/webif/templates/index.html | 0 dashbutton/README.md | 0 dashbutton/__init__.py | 0 dashbutton/requirements.txt | 0 database/README.md | 0 database/locale.yaml | 0 database/tests/__init__.py | 0 database/tests/base.py | 0 database/tests/test_basic.py | 0 database/tests/test_items.yaml | 0 database/tests/test_series.py | 0 database/tests/test_single.py | 0 database/tools/sqlite2db_config.py | 0 database/webif/static/img/plugin_logo.png | Bin database/webif/templates/base_database.html | 0 database/webif/templates/index.html | 0 database/webif/templates/item_details.html | 0 datalog/README.md | 0 deprecated_plugins/jointspace/README.md | 0 deprecated_plugins/modbus_shng_1_2/README.md | 0 deprecated_plugins/visu_shng_1_2/README.md | 0 deprecated_plugins/visu_shng_1_2/generator.py | 0 dlms/README.md | 0 dlms/__init__.py | 0 dlms/_pv_1_2_5/README.md | 0 dlms/_pv_1_2_5/__init__.py | 0 dlms/_pv_1_2_5/plugin.yaml | 0 dlms/_pv_1_2_5/requirements.txt | 0 dlms/_pv_1_5_2/README.md | 0 dlms/_pv_1_5_2/__init__.py | 0 dlms/_pv_1_5_2/assets/webif1.png | Bin dlms/_pv_1_5_2/assets/webif2.png | Bin dlms/_pv_1_5_2/conversion.py | 0 dlms/_pv_1_5_2/dlms.py | 0 dlms/_pv_1_5_2/get_manufacturer_ids.py | 0 dlms/_pv_1_5_2/locale.yaml | 0 dlms/_pv_1_5_2/plugin.yaml | 0 dlms/_pv_1_5_2/requirements.txt | 0 dlms/_pv_1_5_2/user_doc.rst | 0 dlms/_pv_1_5_2/webif/static/img/readme.txt | 0 dlms/_pv_1_5_2/webif/templates/index.html | 0 dlms/assets/webif1.png | Bin dlms/assets/webif2.png | Bin dlms/conversion.py | 0 dlms/dlms.py | 0 dlms/get_manufacturer_ids.py | 0 dlms/locale.yaml | 0 dlms/plugin.yaml | 0 dlms/requirements.txt | 0 dlms/user_doc.rst | 0 dlms/webif/static/img/plugin_logo.png | Bin dlms/webif/static/img/readme.txt | 0 dlms/webif/templates/index.html | 0 dmx/README.md | 0 dmx/_pv_1_4_0/README.md | 0 dmx/_pv_1_4_0/__init__.py | 0 dmx/_pv_1_4_0/plugin.yaml | 0 dmx/locale.yaml | 0 dmx/requirements.txt | 0 dmx/user_doc.rst | 0 dmx/webif/static/img/readme.txt | 0 dmx/webif/templates/index.html | 0 drexelundweiss/DrexelWeiss.yaml | 0 drexelundweiss/README.md | 0 drexelundweiss/aerosilent_bianco.txt | 0 drexelundweiss/aerosilent_business.txt | 0 drexelundweiss/aerosilent_centro.txt | 0 drexelundweiss/aerosilent_exos.txt | 0 drexelundweiss/aerosilent_micro.txt | 0 drexelundweiss/aerosilent_primus.txt | 0 drexelundweiss/aerosilent_stratos.txt | 0 drexelundweiss/aerosilent_topo.txt | 0 drexelundweiss/aerosmart_l.txt | 0 drexelundweiss/aerosmart_m.txt | 0 drexelundweiss/aerosmart_mono.txt | 0 drexelundweiss/aerosmart_s.txt | 0 drexelundweiss/aerosmart_xls.txt | 0 drexelundweiss/termosmart_sc.txt | 0 drexelundweiss/x2.txt | 0 drexelundweiss/x2_plus.txt | 0 easymeter/README.md | 0 ebus/README.md.old | 0 ebus/_pv_1_0_1/README.md | 0 ebus/_pv_1_0_1/__init__.py | 0 ebus/_pv_1_0_1/plugin.yaml | 0 ecmd/README.md | 0 elro/README.md | 0 elro/__init__.py | 0 enigma2/README.md | 0 enigma2/__init__.py | 0 enigma2/requirements.txt | 0 enigma2/sv_widgets/circle_blue.png | Bin enigma2/sv_widgets/circle_green2.png | Bin enigma2/sv_widgets/circle_red.png | Bin enigma2/sv_widgets/circle_yellow.png | Bin .../control_centr_arrow_down_left_red_fill.png | Bin .../control_centr_arrow_down_right_blue_fill.png | Bin .../control_centr_arrow_up_left_green_fill.png | Bin .../control_centr_arrow_up_right_yellow_fill.png | Bin enocean/README.md | 0 enocean/__init__.py | 0 enocean/eep_parser.py | 0 enocean/locale.yaml | 0 enocean/prepare_packet_data.py | 0 enocean/webif/static/img/plugin_logo.png | Bin enocean/webif/templates/base_enocean.html | 0 enocean/webif/templates/index.html | 0 eta_pu/README.md | 0 executor/README.md | 0 executor/__init__.py | 0 executor/locale.yaml | 0 executor/plugin.yaml | 0 executor/webif/static/img/readme.txt | 0 executor/webif/templates/index.html | 0 garminconnect/__init__.py | 0 garminconnect/locale.yaml | 0 garminconnect/plugin.yaml | 0 garminconnect/requirements.txt | 0 garminconnect/webif/static/img/plugin_logo.png | Bin garminconnect/webif/templates/index.html | 0 gpio/webif/static/img/plugin_logo.png | Bin harmony/README.md | 0 harmony/__init__.py | 0 harmony/get_activities.py | 0 harmony/get_config.py | 0 helios/README.md | 0 helios/files/helios.yaml | 0 helios_tcp/__init__.py | 0 helios_tcp/plugin.yaml | 0 helios_tcp/requirements.txt | 0 helios_tcp/user_doc.rst | 0 hue/README.md | 0 hue/_pv_1_1_83/README.md | 0 iaqstick/README.md | 0 iaqstick/__init__.py | 0 iaqstick/requirements.txt | 0 indego/README.md | 0 indego/__init__.py | 0 indego/example.yaml | 0 indego/locale.yaml | 0 indego/plugin.yaml | 0 indego/smartVISU_dropins/icons/ws/lawn.svg | 0 indego/smartVISU_dropins/icons/ws/lawn_2.svg | 0 indego/smartVISU_dropins/icons/ws/lawnmover_2.svg | 0 .../icons/ws/scene_robo_lawnmower_dock.svg | 0 .../icons/ws/scene_robo_lawnmower_docked.svg | 0 .../icons/ws/scene_robo_lawnmower_help.svg | 0 .../icons/ws/scene_robo_lawnmower_moving.svg | 0 .../icons/ws/scene_robo_lawnmower_offline.svg | 0 .../icons/ws/scene_robo_lawnmower_online.svg | 0 .../icons/ws/scene_robo_lawnmower_start.svg | 0 .../icons/ws/scene_robo_lawnmower_stop.svg | 0 .../icons/ws/scene_robo_lawnmower_stopp.svg | 0 .../smartVISU_dropins/lib/weather/pics/cloud_10.png | Bin .../smartVISU_dropins/lib/weather/pics/cloud_5.png | Bin .../smartVISU_dropins/lib/weather/pics/cloud_8.png | Bin indego/smartVISU_dropins/lib/weather/pics/sun_1.png | Bin indego/smartVISU_dropins/lib/weather/pics/sun_5.png | Bin .../pages/your pages folder/indego.html | 0 .../pages/your pages folder/widget_basic_input.html | 0 .../widget_basic_large_symbol.html | 0 indego/webif/static/img/readme.txt | 0 indego/webif/templates/index.html | 0 influxdata/README.md | 0 influxdata/__init__.py | 0 influxdb/README.md | 0 influxdb/__init__.py | 0 intercom_2n/README.md | 0 intercom_2n/__init__.py | 0 intercom_2n/commands.py | 0 intercom_2n/core.py | 0 intercom_2n/example/2n_intercom.yaml | 0 intercom_2n/requirements.txt | 0 join/README.md | 0 join/__init__.py | 0 join/requirements.txt | 0 jsonread/README.md | 0 jsonread/__init__.py | 0 jsonread/requirements.txt | 0 jvcproj/LICENCE | 0 jvcproj/README.md | 0 jvcproj/__init__.py | 0 jvcproj/plugin.yaml | 0 kathrein/README.md | 0 kathrein/_pv_1_4_0/README.md | 0 kathrein/_pv_1_4_0/__init__.py | 0 kathrein/_pv_1_4_0/plugin.yaml | 0 kathrein/locale.yaml | 0 kathrein/webif/static/img/readme.txt | 0 kathrein/webif/templates/index.html | 0 knx/Check_KNX.py | 0 knx/dpts.py | 0 knx/pv_1_3_4/README.md | 0 kodi/README.md | 0 kostal/README.md | 0 kostalmodbus/README.md | 0 kostalmodbus/__init__.py | 0 kostalmodbus/files/kostal_item_template.yaml | 0 kostalmodbus/inverter.py | 0 kostalmodbus/plugin.yaml | 0 kostalmodbus/requirements.txt | 0 ksemmodbus/README.md | 0 ksemmodbus/__init__.py | 0 ksemmodbus/files/kostal_item_template.yaml | 0 ksemmodbus/ksem.py | 0 ksemmodbus/plugin.yaml | 0 ksemmodbus/requirements.txt | 0 lirc/README.md | 0 lirc/__init__.py | 0 lirc/plugin.yaml | 0 logo/README.md | 0 logo/__init__.py | 0 logo/libnodave.so | Bin luxtronic2/README.md | 0 mail/README.md | 0 mailrcv/README.md | 0 mailrcv/__init__.py | 0 mailrcv/plugin.yaml | 0 mailsend/README.md | 0 mailsend/__init__.py | 0 mailsend/plugin.yaml | 0 memlog/README.md | 0 memlog/_pv_1_3_0/README.md | 0 memlog/_pv_1_3_0/__init__.py | 0 memlog/_pv_1_3_0/plugin.yaml | 0 memlog/callable.png | Bin memlog/webif/static/img/readme.txt | 0 memlog/webif/templates/index.html | 0 miflora/README.md | 0 miflora/__init__.py | 0 miflora/locale.yaml | 0 miflora/plugin.yaml | 0 miflora/requirements.txt | 0 miflora/webif/static/img/plugin_logo.png | Bin miflora/webif/templates/index.html | 0 milight/README.md | 0 milight/__init__.py | 0 milight/_pv_1_3_0/README.md | 0 milight/_pv_1_3_0/__init__.py | 0 milight/_pv_1_3_0/plugin.yaml | 0 milight/locale.yaml | 0 milight/webif/static/img/readme.txt | 0 milight/webif/templates/index.html | 0 mlgw/README.md | 0 mlgw/__init__.py | 0 mpd/README.md | 0 mqtt/README.md | 0 mqtt/__init__.py | 0 mqtt/locale.yaml | 0 mqtt/plugin.yaml | 0 mqtt/webif/static/img/plugin_logo.png | Bin mqtt/webif/static/img/readme.txt | 0 mqtt/webif/templates/index.html | 0 mqtt1/README.md | 0 mqtt1/__init__.py | 0 mqtt1/_pv_1_0_1/README.md | 0 mqtt1/_pv_1_0_1/__init__.py | 0 mqtt1/_pv_1_0_1/plugin.yaml | 0 mqtt1/assets/webif1.jpg | Bin mqtt1/assets/webif2.jpg | Bin mqtt1/locale.yaml | 0 mqtt1/plugin.yaml | 0 mqtt1/requirements.txt | 0 mqtt1/user_doc.rst | 0 mqtt1/webif/static/img/plugin_logo.png | Bin mqtt1/webif/templates/index.html | 0 mvg_live/README.md | 0 mvg_live/__init__.py | 0 mvg_live/mvg.PNG | Bin mvg_live/requirements.txt | 0 neato/README.md | 0 neato/__init__.py | 0 neato/plugin.yaml | 0 neato/requirements.txt | 0 neato/robot.py | 0 netio230b/README.md | 0 network/README.md | 0 nma/README.md | 0 nuki/README.md | 0 nuki/__init__.py | 0 nuki/locale.yaml | 0 nuki/requirements.txt | 0 nuki/webif/static/img/plugin_logo.png | Bin nuki/webif/templates/index.html | 0 nut/README.md | 0 nut/__init__.py | 0 odlinfo/README.md | 0 odlinfo/__init__.py | 0 odlinfo/requirements.txt | 0 onewire/README.md | 0 onewire/_pv_1_4_0/README.md | 0 onewire/_pv_1_4_0/__init__.py | 0 onewire/_pv_1_4_0/plugin.yaml | 0 onewire/locale.yaml | 0 onewire/owbase.py | 0 onewire/webif/static/img/readme.txt | 0 onewire/webif/templates/index.html | 0 openenergymonitor/README.md | 0 openenergymonitor/__init__.py | 0 openweathermap/README.md | 0 openweathermap/__init__.py | 0 openweathermap/assets/webif1.jpg | Bin openweathermap/assets/webif2.jpg | Bin openweathermap/plugin.yaml | 0 openweathermap/user_doc.rst | 0 openweathermap/webif/static/img/plugin_logo.png | Bin openweathermap/webif/templates/index.html | 0 operationlog/AutoBlindLoggerOLog.py | 0 plex/README.md | 0 plex/__init__.py | 0 pluggit/README.md | 0 pluggit/pluggit.yaml | 0 prowl/README.md | 0 prowl/__init__.py | 0 pushbullet/README.md | 0 pushbullet/requirements.txt | 0 pushover/README.md | 0 pushover/_pv_1_3_1/README.md | 0 pushover/_pv_1_3_1/requirements.txt | 0 raumfeld/README.md | 0 raumfeld/__init__.py | 0 rcswitch/README.md | 0 roomba/README.md | 0 roomba/__init__.py | 0 roomba/_pv_1_4_0/README.md | 0 roomba/_pv_1_4_0/__init__.py | 0 roomba/_pv_1_4_0/plugin.yaml | 0 roomba/locale.yaml | 0 roomba/webif/static/img/readme.txt | 0 roomba/webif/templates/index.html | 0 roomba_980/README.md | 0 roomba_980/plugin.yaml | 0 rpi1wire/README.md | 0 rpi1wire/__init__.py | 0 rpi1wire/_pv_1_4_0/README.md | 0 rpi1wire/_pv_1_4_0/__init__.py | 0 rpi1wire/locale.yaml | 0 rpi1wire/plugin.yaml | 0 rpi1wire/webif/static/img/readme.txt | 0 rpi1wire/webif/templates/index.html | 0 rrd/README.md | 0 rrd/_pv_1_0_0/README.md | 0 rrd/_pv_1_0_0/__init__.py | 0 rrd/_pv_1_0_0/plugin.yaml | 0 rrd/locale.yaml | 0 rrd/requirements.txt | 0 rrd/webif/static/img/readme.txt | 0 rrd/webif/templates/index.html | 0 rtr/README.md | 0 rtr/__init__.py | 0 rtr/sv_widgets/widget_rtr.html | 0 rtr/sv_widgets/widget_rtr.js | 0 russound/README.md | 0 russound/_pv_1_4_0/README.md | 0 russound/_pv_1_4_0/__init__.py | 0 russound/_pv_1_4_0/plugin.yaml | 0 russound/locale.yaml | 0 russound/webif/static/img/readme.txt | 0 russound/webif/templates/index.html | 0 shelly/__init__.py | 0 shelly/locale.yaml | 0 shelly/plugin.yaml | 0 shelly/user_doc.rst | 0 shelly/user_doc/assets/shelly-webif-brokerinfo.jpg | Bin shelly/user_doc/assets/shelly-webif-devices.jpg | Bin shelly/user_doc/assets/shelly-webif-items.jpg | Bin shelly/webif/static/img/plugin_logo.png | Bin shelly/webif/static/img/readme.txt | 0 shelly/webif/templates/index.html | 0 simulation/README.md | 0 simulation/__init__.py | 0 simulation/items.yaml | 0 simulation/lamps/lamp_green.png | Bin simulation/lamps/lamp_off.png | Bin simulation/lamps/lamp_orange.png | Bin simulation/lamps/lamp_purple.png | Bin simulation/lamps/lamp_red.png | Bin simulation/lamps/lamp_sim.svg | 0 simulation/locale.yaml | 0 simulation/screenshot.png | Bin simulation/state_diagram.png | Bin simulation/webif/static/img/plugin_logo.png | Bin simulation/webif/templates/index.html | 0 slack/README.md | 0 slack/__init__.py | 0 slack/plugin.yaml | 0 sma/README.md | 0 sma_em/README.md | 0 sma_em/__init__.py | 0 sma_em/locale.yaml | 0 sma_em/webif/static/img/plugin_logo.png | Bin sma_em/webif/templates/index.html | 0 smarttv/README.md | 0 smarttv/requirements.txt | 0 smawb/README.md | 0 smawb/SunnyWebBox.py | 0 smawb/__init__.py | 0 sml/README.md | 0 sml/tests/__init__.py | 0 sml/tests/base.py | 0 sml/tests/test_basic.py | 0 sml/tests/test_special_case.py | 0 smlx/README.md | 0 smlx/__init__.py | 0 smlx/algorithms.py | 0 smlx/plugin.yaml | 0 snap7_logo/README.md | 0 snap7_logo/__init__.py | 0 snap7_logo/plugin.yaml | 0 snap7_logo/requirements.txt | 0 snap7_logo/webif/static/img/lamp_green.png | Bin snap7_logo/webif/static/img/lamp_red.png | Bin snap7_logo/webif/static/img/plugin_logo.png | Bin snap7_logo/webif/templates/index.html | 0 snmp/README.md | 0 snmp/__init__.py | 0 snmp/locale.yaml | 0 snmp/plugin.yaml | 0 snmp/requirements.txt | 0 snmp/webif/templates/index.html | 0 snom/README.md | 0 solarlog/README.md | 0 solarlog/_pv_1_4_0/README.md | 0 solarlog/_pv_1_4_0/__init__.py | 0 solarlog/_pv_1_4_0/plugin.yaml | 0 solarlog/locale.yaml | 0 solarlog/user_doc.rst | 0 solarlog/webif/static/img/readme.txt | 0 solarlog/webif/templates/index.html | 0 sonos/README.md | 0 sonos/examples/sonos.yaml | 0 sonos/requirements.txt | 0 sonos/search_uids.py | 0 sonos/soco/__init__.py | 0 sonos/soco/alarms.py | 0 sonos/soco/cache.py | 0 sonos/soco/compat.py | 0 sonos/soco/config.py | 0 sonos/soco/data_structure_quirks.py | 0 sonos/soco/data_structures_entry.py | 0 sonos/soco/discovery.py | 0 sonos/soco/events_base.py | 0 sonos/soco/events_twisted.py | 0 sonos/soco/groups.py | 0 sonos/soco/ms_data_structures.py | 0 sonos/soco/music_library.py | 0 sonos/soco/music_services/__init__.py | 0 sonos/soco/music_services/accounts.py | 0 sonos/soco/music_services/data_structures.py | 0 sonos/soco/music_services/music_service.py | 0 sonos/soco/plugins/__init__.py | 0 sonos/soco/plugins/example.py | 0 sonos/soco/plugins/spotify.py | 0 sonos/soco/plugins/wimp.py | 0 sonos/soco/services.py | 0 sonos/soco/snapshot.py | 0 sonos/soco/soap.py | 0 sonos/soco/utils.py | 0 sonos/soco/xml.py | 0 sonos/sv_widgets/widget_sonos.css | 0 sonos/sv_widgets/widget_sonos.html | 0 sonos/sv_widgets/widget_sonos.js | 0 sonos/tts.py | 0 sonos/utils.py | 0 speech/README.md | 0 speech/__init__.py | 0 speech/_pv_1_4_0/README.md | 0 speech/_pv_1_4_0/__init__.py | 0 speech/_pv_1_4_0/plugin.yaml | 0 speech/_pv_1_4_0/speech.py | 0 speech/_pv_1_4_1/README.md | 0 speech/_pv_1_4_1/__init__.py | 0 speech/_pv_1_4_1/plugin.yaml | 0 speech/_pv_1_4_1/speech.py | 0 speech/_pv_1_4_1/tasker.xml | 0 speech/locale.yaml | 0 speech/sample_for_tasker.xml | 0 speech/speech.py | 0 speech/user_doc.rst | 0 speech/webif/static/img/readme.txt | 0 speech/webif/templates/index.html | 0 sqlite/README.md | 0 sqlite_visu2_8/README.md | 0 stateengine/requirements.txt | 0 stateengine/webif/static/img/vis.png | Bin systemair/README.md | 0 systemair/requirements.txt | 0 systemair/systemair.yaml | 0 tankerkoenig/README.md | 0 tankerkoenig/requirements.txt | 0 telegram/README.md | 0 telegram/__init__.py | 0 telegram/_pv_1_1_3/README.md | 0 telegram/_pv_1_1_3/__init__.py | 0 telegram/_pv_1_1_3/logging.yaml.telegram | 0 telegram/_pv_1_1_3/plugin.yaml | 0 telegram/_pv_1_1_3/requirements.txt | 0 telegram/_pv_1_5_0/README.md | 0 telegram/_pv_1_5_0/__init__.py | 0 telegram/_pv_1_5_0/assets/webif1.png | Bin telegram/_pv_1_5_0/assets/webif2.png | Bin telegram/_pv_1_5_0/locale.yaml | 0 telegram/_pv_1_5_0/logging.yaml.telegram | 0 telegram/_pv_1_5_0/plugin.yaml | 0 telegram/_pv_1_5_0/requirements.txt | 0 telegram/_pv_1_5_0/webif/static/img/plugin_logo.svg | 0 telegram/_pv_1_5_0/webif/static/img/readme.txt | 0 telegram/_pv_1_5_0/webif/templates/index.html | 0 telegram/assets/webif1.png | Bin telegram/assets/webif2.png | Bin telegram/locale.yaml | 0 telegram/logging.yaml.telegram | 0 telegram/plugin.yaml | 0 telegram/requirements.txt | 0 telegram/user_doc.rst | 0 telegram/webif/static/img/plugin_logo.svg | 0 telegram/webif/static/img/readme.txt | 0 telegram/webif/templates/index.html | 0 tellstick/README.md | 0 tellstick/__init__.py | 0 thz/PortHandler.py | 0 thz/README.md | 0 thz/README.rst | 0 thz/ThzProtocol.py | 0 thz/__init__.py | 0 thz/plugin.yaml | 0 thz/requirements.txt | 0 thz/thz.yaml | 0 thz/webif/static/img/readme.txt | 0 thz/webif/templates/index.html | 0 traffic/README.md | 0 traffic/__init__.py | 0 traffic/requirements.txt | 0 trovis557x/README.md | 0 trovis557x/__init__.py | 0 trovis557x/_coils.py | 0 trovis557x/_listen.py | 0 trovis557x/_register.py | 0 trovis557x/assets/todo | 0 trovis557x/plugin.yaml | 0 trovis557x/requirements.txt | 0 trovis557x/shNG-etc/logging.yaml | 0 trovis557x/shNG-etc/plugin.yaml | 0 trovis557x/shNG-items/trovis.yaml | 0 trovis557x/templates/5576-003_coils.py | 0 trovis557x/templates/5576-003_listen.py | 0 trovis557x/templates/5576-003_registers.py | 0 trovis557x/templates/readme.txt | 0 trovis557x/tools/coil_sniffer.py | 0 trovis557x/tools/readme.txt | 0 trovis557x/tools/register_sniffer.py | 0 trovis557x/webif/todo | 0 unifi/.gitignore | 0 unifi/README.md | 0 unifi/__init__.py | 0 unifi/locale.yaml | 0 unifi/plugin.yaml | 0 unifi/ubiquiti/LICENSE | 0 unifi/ubiquiti/__init__.py | 0 unifi/ubiquiti/unifi.py | 0 unifi/webif/static/img/readme.txt | 0 unifi/webif/templates/index.html | 0 uzsu/requirements.txt | 0 uzsu/uzsu_webif.png | Bin vacations/__init__.py | 0 vacations/assets/webif1.jpg | Bin vacations/assets/webif2.jpg | Bin vacations/locale.yaml | 0 vacations/plugin.yaml | 0 vacations/requirements.txt | 0 vacations/user_doc.rst | 0 vacations/webif/static/img/plugin_logo.png | Bin vacations/webif/templates/index.html | 0 visu_smartvisu/README.md | 0 visu_smartvisu/_pv_1_3_3/README.md | 0 visu_smartvisu/_pv_1_3_3/developer_doc.md | 0 visu_smartvisu/developer_doc.md | 0 visu_smartvisu/screenshots/blocktype_dual_1.jpg | Bin visu_smartvisu/screenshots/blocktype_dual_2.jpg | Bin visu_smartvisu/screenshots/blocktype_dual_visu.jpg | Bin visu_smartvisu/screenshots/category_nav.jpg | Bin visu_smartvisu/screenshots/divider.jpg | Bin visu_smartvisu/screenshots/navigation.jpg | Bin visu_smartvisu/screenshots/navigation2.jpg | Bin visu_smartvisu/screenshots/style_blk.jpg | Bin visu_smartvisu/screenshots/style_blk_visu.jpg | Bin visu_smartvisu/screenshots/style_std.jpg | Bin visu_websocket/README.md | 0 visu_websocket/__init__.py | 0 visu_websocket/_pv_1_1_3/README.md | 0 .../_pv_1_1_3/README_for_visu_developers.md | 0 visu_websocket/_pv_1_4_5/README.md | 0 visu_websocket/_pv_1_4_5/__init__.py | 0 visu_websocket/_pv_1_4_5/assets/webif1.jpg | Bin visu_websocket/_pv_1_4_5/developer_doc.md | 0 visu_websocket/_pv_1_4_5/locale.yaml | 0 visu_websocket/_pv_1_4_5/plugin.yaml | 0 visu_websocket/_pv_1_4_5/webif/templates/index.html | 0 visu_websocket/developer_doc.rst | 0 volkszaehler/README.md | 0 vr100/README.md | 0 webservices/README.md | 0 webservices/__init__.py | 0 webservices/webif/static/img/plugin_logo.png | Bin withings_health/README.md | 0 withings_health/__init__.py | 0 withings_health/locale.yaml | 0 withings_health/plugin.yaml | 0 withings_health/requirements.txt | 0 withings_health/webif/static/img/plugin_logo.png | Bin withings_health/webif/templates/index.html | 0 wol/README.md | 0 wunderground/README.md | 0 wunderground/README_OLD.md | 0 wunderground/__init__.py | 0 wunderground/plugin.yaml | 0 xbmc/README.md | 0 xbmc/__init__.py | 0 xbmc/plugin.yaml | 0 xiaomi_vac/LICENSE | 0 xiaomi_vac/__init__.py | 0 xiaomi_vac/plugin.yaml | 0 xiaomi_vac/requirements.txt | 0 xiaomi_vac/webif/static/img/favicon.ico | Bin xiaomi_vac/webif/static/img/green.png | Bin xiaomi_vac/webif/static/img/green.xcf | Bin xiaomi_vac/webif/static/img/logo_big2.png | Bin xiaomi_vac/webif/static/img/plugin_logo.png | Bin xiaomi_vac/webif/static/img/red.png | Bin xiaomi_vac/webif/static/img/red.xcf | Bin xiaomi_vac/webif/templates/index.html | 0 xmpp/requirements.txt | 0 yamaha/README.md | 0 yamaha/__init__.py | 0 yamahayxc/LICENSE | 0 yamahayxc/README.md | 0 yamahayxc/__init__.py | 0 yamahayxc/plugin.yaml | 0 zwave/README.md | 0 zwave/requirements.txt | 0 897 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 .gitignore mode change 100644 => 100755 README.md mode change 100644 => 100755 __init__.py mode change 100644 => 100755 alexa/README.md mode change 100644 => 100755 alexa/__init__.py mode change 100644 => 100755 alexa/action.py mode change 100644 => 100755 alexa/actions_lock.py mode change 100644 => 100755 alexa/actions_percentage.py mode change 100644 => 100755 alexa/actions_temperature.py mode change 100644 => 100755 alexa/actions_turn.py mode change 100644 => 100755 alexa/aws_lambda.js mode change 100644 => 100755 alexa/device.py mode change 100644 => 100755 alexa/nginx.md mode change 100644 => 100755 alexa/requirements.txt mode change 100644 => 100755 alexa/service.py mode change 100644 => 100755 alexa4p3/__init__.py mode change 100644 => 100755 alexa4p3/action.py mode change 100644 => 100755 alexa4p3/actions_lock.py mode change 100644 => 100755 alexa4p3/actions_percentage.py mode change 100644 => 100755 alexa4p3/actions_temperature.py mode change 100644 => 100755 alexa4p3/actions_turn.py mode change 100644 => 100755 alexa4p3/device.py mode change 100644 => 100755 alexa4p3/directives/Activate.cmd mode change 100644 => 100755 alexa4p3/directives/AdjustBrightness.cmd mode change 100644 => 100755 alexa4p3/directives/AdjustPercentage.cmd mode change 100644 => 100755 alexa4p3/directives/AdjustPowerLevel.cmd mode change 100644 => 100755 alexa4p3/directives/AdjustRangeValue.cmd mode change 100644 => 100755 alexa4p3/directives/DecreaseColorTemperature.cmd mode change 100644 => 100755 alexa4p3/directives/IncreaseColorTemperature.cmd mode change 100644 => 100755 alexa4p3/directives/SetBrightness.cmd mode change 100644 => 100755 alexa4p3/directives/SetColorTemperature.cmd mode change 100644 => 100755 alexa4p3/directives/SetPercentage.cmd mode change 100644 => 100755 alexa4p3/directives/SetPowerLevel.cmd mode change 100644 => 100755 alexa4p3/directives/SetRangeValue.cmd mode change 100644 => 100755 alexa4p3/directives/TurnOff.cmd mode change 100644 => 100755 alexa4p3/directives/TurnOn.cmd mode change 100644 => 100755 alexa4p3/p3_action.py mode change 100644 => 100755 alexa4p3/p3_tools.py mode change 100644 => 100755 alexa4p3/service.py mode change 100644 => 100755 alexa4p3/webif/static/img/plugin_logo.png mode change 100644 => 100755 alexa4p3/webif/static/js/handler.js mode change 100644 => 100755 alexa4p3/webif/static/js/test_handler.js mode change 100644 => 100755 alexarc4shng/.idea/.gitignore mode change 100644 => 100755 alexarc4shng/.idea/alexarc4shng.iml mode change 100644 => 100755 alexarc4shng/.idea/inspectionProfiles/Project_Default.xml mode change 100644 => 100755 alexarc4shng/.idea/markdown-navigator.xml mode change 100644 => 100755 alexarc4shng/.idea/markdown-navigator/profiles_settings.xml mode change 100644 => 100755 alexarc4shng/.idea/misc.xml mode change 100644 => 100755 alexarc4shng/.idea/modules.xml mode change 100644 => 100755 alexarc4shng/.idea/vcs.xml mode change 100644 => 100755 apcups/README.md mode change 100644 => 100755 apcups/__init__.py mode change 100644 => 100755 artnet/README.md mode change 100644 => 100755 artnet/webif/static/img/plugin_logo.png mode change 100644 => 100755 artnet/webif/templates/index.html mode change 100644 => 100755 asterisk/README.md mode change 100644 => 100755 asterisk/__init__.py mode change 100644 => 100755 avm/README.md mode change 100644 => 100755 avm/__init__.py mode change 100644 => 100755 avm/requirements.txt mode change 100644 => 100755 avm/sv_widgets/widget_avm.html mode change 100644 => 100755 avm/webif/static/img/lamp_green.png mode change 100644 => 100755 avm/webif/static/img/lamp_red.png mode change 100644 => 100755 avm/webif/static/img/plugin_logo.png mode change 100644 => 100755 avm/webif/templates/index.html mode change 100644 => 100755 backend/BackendItems.py mode change 100644 => 100755 backend/BackendLogics.py mode change 100644 => 100755 backend/BackendServices.py mode change 100644 => 100755 backend/BackendSysteminfo.py mode change 100644 => 100755 backend/README.md mode change 100644 => 100755 backend/_pv_1_4_9/README.md mode change 100644 => 100755 backend/user_doc/assets/backend_itemtree.jpg mode change 100644 => 100755 backend/user_doc/assets/backend_logik_editor.jpg mode change 100644 => 100755 backend/user_doc/assets/backend_logikliste.jpg mode change 100644 => 100755 backend/user_doc/assets/backend_systeminfo.jpg mode change 100644 => 100755 backend/user_doc/items.rst mode change 100644 => 100755 backend/user_doc/logiken.rst mode change 100644 => 100755 backend/webif/templates/disclosure.html mode change 100644 => 100755 backend/webif/templates/services_shng_restart.html mode change 100644 => 100755 blockly/How_to_Update_Blockly_Components.rst mode change 100644 => 100755 blockly/README.md mode change 100644 => 100755 blockly/__init__.py mode change 100644 => 100755 blockly/locale/de.json mode change 100644 => 100755 blockly/locale/en.json mode change 100644 => 100755 blockly/locale/fr.json mode change 100644 => 100755 blockly/locale/pl.json mode change 100644 => 100755 blockly/plugin.yaml mode change 100644 => 100755 blockly/requirements.txt mode change 100644 => 100755 blockly/tests/__init__.py mode change 100644 => 100755 blockly/tests/cptestcase.py mode change 100644 => 100755 blockly/tests/test_backend_blocklylogics.py mode change 100644 => 100755 blockly/utils.py mode change 100644 => 100755 blockly/webif/static/blockly/LICENSE mode change 100644 => 100755 blockly/webif/static/blockly/README.md mode change 100644 => 100755 blockly/webif/static/blockly/blockly_compressed.js mode change 100644 => 100755 blockly/webif/static/blockly/blocks_compressed.js mode change 100644 => 100755 blockly/webif/static/blockly/de.js mode change 100644 => 100755 blockly/webif/static/blockly/en.js mode change 100644 => 100755 blockly/webif/static/blockly/fr.js mode change 100644 => 100755 blockly/webif/static/blockly/media/1x1.gif mode change 100644 => 100755 blockly/webif/static/blockly/media/click.mp3 mode change 100644 => 100755 blockly/webif/static/blockly/media/click.ogg mode change 100644 => 100755 blockly/webif/static/blockly/media/click.wav mode change 100644 => 100755 blockly/webif/static/blockly/media/delete.mp3 mode change 100644 => 100755 blockly/webif/static/blockly/media/delete.ogg mode change 100644 => 100755 blockly/webif/static/blockly/media/delete.wav mode change 100644 => 100755 blockly/webif/static/blockly/media/disconnect.mp3 mode change 100644 => 100755 blockly/webif/static/blockly/media/disconnect.ogg mode change 100644 => 100755 blockly/webif/static/blockly/media/disconnect.wav mode change 100644 => 100755 blockly/webif/static/blockly/media/handclosed.cur mode change 100644 => 100755 blockly/webif/static/blockly/media/handdelete.cur mode change 100644 => 100755 blockly/webif/static/blockly/media/handopen.cur mode change 100644 => 100755 blockly/webif/static/blockly/media/pilcrow.png mode change 100644 => 100755 blockly/webif/static/blockly/media/quote0.png mode change 100644 => 100755 blockly/webif/static/blockly/media/quote1.png mode change 100644 => 100755 blockly/webif/static/blockly/media/sprites.png mode change 100644 => 100755 blockly/webif/static/blockly/media/sprites.svg mode change 100644 => 100755 blockly/webif/static/blockly/pl.js mode change 100644 => 100755 blockly/webif/static/blockly/python_compressed.js mode change 100644 => 100755 blockly/webif/static/blockly/style.css mode change 100644 => 100755 blockly/webif/static/css/bootstrap-reload.css mode change 100644 => 100755 blockly/webif/static/css/bootstrap-theme.css mode change 100644 => 100755 blockly/webif/static/css/bootstrap-theme.css.map mode change 100644 => 100755 blockly/webif/static/css/bootstrap-theme.min.css mode change 100644 => 100755 blockly/webif/static/css/bootstrap-theme.min.css.map mode change 100644 => 100755 blockly/webif/static/css/bootstrap-treeview.css mode change 100644 => 100755 blockly/webif/static/css/bootstrap-treeview.min.css mode change 100644 => 100755 blockly/webif/static/css/bootstrap.css mode change 100644 => 100755 blockly/webif/static/css/bootstrap.css.map mode change 100644 => 100755 blockly/webif/static/css/bootstrap.min.css mode change 100644 => 100755 blockly/webif/static/css/bootstrap.min.css.map mode change 100644 => 100755 blockly/webif/static/css/font-awesome.css mode change 100644 => 100755 blockly/webif/static/css/font-awesome.min.css mode change 100644 => 100755 blockly/webif/static/fonts/FontAwesome.otf mode change 100644 => 100755 blockly/webif/static/fonts/fontawesome-webfont.eot mode change 100644 => 100755 blockly/webif/static/fonts/fontawesome-webfont.svg mode change 100644 => 100755 blockly/webif/static/fonts/fontawesome-webfont.ttf mode change 100644 => 100755 blockly/webif/static/fonts/fontawesome-webfont.woff mode change 100644 => 100755 blockly/webif/static/fonts/fontawesome-webfont.woff2 mode change 100644 => 100755 blockly/webif/static/fonts/glyphicons-halflings-regular.eot mode change 100644 => 100755 blockly/webif/static/fonts/glyphicons-halflings-regular.svg mode change 100644 => 100755 blockly/webif/static/fonts/glyphicons-halflings-regular.ttf mode change 100644 => 100755 blockly/webif/static/fonts/glyphicons-halflings-regular.woff mode change 100644 => 100755 blockly/webif/static/fonts/glyphicons-halflings-regular.woff2 mode change 100644 => 100755 blockly/webif/static/img/favicon.ico mode change 100644 => 100755 blockly/webif/static/img/logo_big.png mode change 100644 => 100755 blockly/webif/static/img/logo_long.png mode change 100644 => 100755 blockly/webif/static/img/logo_small_120x120.png mode change 100644 => 100755 blockly/webif/static/img/logo_small_152x152.png mode change 100644 => 100755 blockly/webif/static/img/logo_small_32x32.png mode change 100644 => 100755 blockly/webif/static/img/logo_small_76x76.png mode change 100644 => 100755 blockly/webif/static/js/bootstrap-reload.js mode change 100644 => 100755 blockly/webif/static/js/bootstrap-reload.min.js mode change 100644 => 100755 blockly/webif/static/js/bootstrap-treeview.js mode change 100644 => 100755 blockly/webif/static/js/bootstrap-treeview.min.js mode change 100644 => 100755 blockly/webif/static/js/bootstrap.js mode change 100644 => 100755 blockly/webif/static/js/bootstrap.min.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-aea.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-agc.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-apollo.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-basic.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-cbm.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-cl.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-clj.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-css.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-dart.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-el.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-erl.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-erlang.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-fs.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-go.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-hs.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-lasso.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-lassoscript.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-latex.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-lgt.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-lisp.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-ll.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-llvm.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-logtalk.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-ls.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-lsp.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-lua.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-matlab.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-ml.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-mumps.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-n.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-nemerle.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-pascal.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-proto.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-r.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-rd.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-rkt.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-rust.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-s.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-scala.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-scm.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-splus.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-sql.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-ss.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-swift.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-tcl.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-tex.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-vb.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-vbs.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-vhd.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-vhdl.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-wiki.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-xq.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-xquery.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-yaml.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/lang-yml.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/prettify.css mode change 100644 => 100755 blockly/webif/static/js/google-prettify/prettify.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/run_prettify.js mode change 100644 => 100755 blockly/webif/static/js/google-prettify/skins/desert.css mode change 100644 => 100755 blockly/webif/static/js/google-prettify/skins/doxy.css mode change 100644 => 100755 blockly/webif/static/js/google-prettify/skins/sons-of-obsidian.css mode change 100644 => 100755 blockly/webif/static/js/google-prettify/skins/sunburst.css mode change 100644 => 100755 blockly/webif/static/js/jquery-3.2.1.js mode change 100644 => 100755 blockly/webif/static/js/jquery-3.2.1.min.js mode change 100644 => 100755 blockly/webif/static/js/logics_blockly_code.js mode change 100644 => 100755 blockly/webif/static/js/npm.js mode change 100644 => 100755 blockly/webif/static/shblocks/sh_items.js mode change 100644 => 100755 blockly/webif/static/shblocks/sh_logic.js mode change 100644 => 100755 blockly/webif/static/shblocks/sh_notify.js mode change 100644 => 100755 blockly/webif/static/shblocks/sh_time.js mode change 100644 => 100755 blockly/webif/static/shblocks/sh_tools.js mode change 100644 => 100755 blockly/webif/templates/base.html mode change 100644 => 100755 blockly/webif/templates/blockly.html mode change 100644 => 100755 blockly/webif/templates/logics_blockly_toolbox.html mode change 100644 => 100755 blockly/webif/templates/plugins/NppXmlTreeviewPlugin/logs/log-20191223.txt mode change 100644 => 100755 bose_soundtouch/README.md mode change 100644 => 100755 bose_soundtouch/__init__.py mode change 100644 => 100755 bose_soundtouch/plugin.yaml mode change 100644 => 100755 bose_soundtouch/requirements.txt mode change 100644 => 100755 bose_soundtouch/user_doc.rst mode change 100644 => 100755 boxcar/README.md mode change 100644 => 100755 buderus/ErrorTypes.pdf mode change 100644 => 100755 buderus/README.md mode change 100644 => 100755 buderus/TODO.md mode change 100644 => 100755 buderus/URLs.md mode change 100644 => 100755 buderus/__init__.py mode change 100644 => 100755 cli/README.md mode change 100644 => 100755 cli/_pv_1_3_0/README.md mode change 100644 => 100755 co2meter/README.md mode change 100644 => 100755 co2meter/__init__.py mode change 100644 => 100755 co2meter/plugin.yaml mode change 100644 => 100755 comfoair/README.md mode change 100644 => 100755 comfoair/commands.py mode change 100644 => 100755 darksky/README.md mode change 100644 => 100755 darksky/__init__.py mode change 100644 => 100755 darksky/assets/webif1.jpg mode change 100644 => 100755 darksky/assets/webif2.jpg mode change 100644 => 100755 darksky/plugin.yaml mode change 100644 => 100755 darksky/user_doc.rst mode change 100644 => 100755 darksky/webif/static/img/plugin_logo.png mode change 100644 => 100755 darksky/webif/templates/index.html mode change 100644 => 100755 dashbutton/README.md mode change 100644 => 100755 dashbutton/__init__.py mode change 100644 => 100755 dashbutton/requirements.txt mode change 100644 => 100755 database/README.md mode change 100644 => 100755 database/locale.yaml mode change 100644 => 100755 database/tests/__init__.py mode change 100644 => 100755 database/tests/base.py mode change 100644 => 100755 database/tests/test_basic.py mode change 100644 => 100755 database/tests/test_items.yaml mode change 100644 => 100755 database/tests/test_series.py mode change 100644 => 100755 database/tests/test_single.py mode change 100644 => 100755 database/tools/sqlite2db_config.py mode change 100644 => 100755 database/webif/static/img/plugin_logo.png mode change 100644 => 100755 database/webif/templates/base_database.html mode change 100644 => 100755 database/webif/templates/index.html mode change 100644 => 100755 database/webif/templates/item_details.html mode change 100644 => 100755 datalog/README.md mode change 100644 => 100755 deprecated_plugins/jointspace/README.md mode change 100644 => 100755 deprecated_plugins/modbus_shng_1_2/README.md mode change 100644 => 100755 deprecated_plugins/visu_shng_1_2/README.md mode change 100644 => 100755 deprecated_plugins/visu_shng_1_2/generator.py mode change 100644 => 100755 dlms/README.md mode change 100644 => 100755 dlms/__init__.py mode change 100644 => 100755 dlms/_pv_1_2_5/README.md mode change 100644 => 100755 dlms/_pv_1_2_5/__init__.py mode change 100644 => 100755 dlms/_pv_1_2_5/plugin.yaml mode change 100644 => 100755 dlms/_pv_1_2_5/requirements.txt mode change 100644 => 100755 dlms/_pv_1_5_2/README.md mode change 100644 => 100755 dlms/_pv_1_5_2/__init__.py mode change 100644 => 100755 dlms/_pv_1_5_2/assets/webif1.png mode change 100644 => 100755 dlms/_pv_1_5_2/assets/webif2.png mode change 100644 => 100755 dlms/_pv_1_5_2/conversion.py mode change 100644 => 100755 dlms/_pv_1_5_2/dlms.py mode change 100644 => 100755 dlms/_pv_1_5_2/get_manufacturer_ids.py mode change 100644 => 100755 dlms/_pv_1_5_2/locale.yaml mode change 100644 => 100755 dlms/_pv_1_5_2/plugin.yaml mode change 100644 => 100755 dlms/_pv_1_5_2/requirements.txt mode change 100644 => 100755 dlms/_pv_1_5_2/user_doc.rst mode change 100644 => 100755 dlms/_pv_1_5_2/webif/static/img/readme.txt mode change 100644 => 100755 dlms/_pv_1_5_2/webif/templates/index.html mode change 100644 => 100755 dlms/assets/webif1.png mode change 100644 => 100755 dlms/assets/webif2.png mode change 100644 => 100755 dlms/conversion.py mode change 100644 => 100755 dlms/dlms.py mode change 100644 => 100755 dlms/get_manufacturer_ids.py mode change 100644 => 100755 dlms/locale.yaml mode change 100644 => 100755 dlms/plugin.yaml mode change 100644 => 100755 dlms/requirements.txt mode change 100644 => 100755 dlms/user_doc.rst mode change 100644 => 100755 dlms/webif/static/img/plugin_logo.png mode change 100644 => 100755 dlms/webif/static/img/readme.txt mode change 100644 => 100755 dlms/webif/templates/index.html mode change 100644 => 100755 dmx/README.md mode change 100644 => 100755 dmx/_pv_1_4_0/README.md mode change 100644 => 100755 dmx/_pv_1_4_0/__init__.py mode change 100644 => 100755 dmx/_pv_1_4_0/plugin.yaml mode change 100644 => 100755 dmx/locale.yaml mode change 100644 => 100755 dmx/requirements.txt mode change 100644 => 100755 dmx/user_doc.rst mode change 100644 => 100755 dmx/webif/static/img/readme.txt mode change 100644 => 100755 dmx/webif/templates/index.html mode change 100644 => 100755 drexelundweiss/DrexelWeiss.yaml mode change 100644 => 100755 drexelundweiss/README.md mode change 100644 => 100755 drexelundweiss/aerosilent_bianco.txt mode change 100644 => 100755 drexelundweiss/aerosilent_business.txt mode change 100644 => 100755 drexelundweiss/aerosilent_centro.txt mode change 100644 => 100755 drexelundweiss/aerosilent_exos.txt mode change 100644 => 100755 drexelundweiss/aerosilent_micro.txt mode change 100644 => 100755 drexelundweiss/aerosilent_primus.txt mode change 100644 => 100755 drexelundweiss/aerosilent_stratos.txt mode change 100644 => 100755 drexelundweiss/aerosilent_topo.txt mode change 100644 => 100755 drexelundweiss/aerosmart_l.txt mode change 100644 => 100755 drexelundweiss/aerosmart_m.txt mode change 100644 => 100755 drexelundweiss/aerosmart_mono.txt mode change 100644 => 100755 drexelundweiss/aerosmart_s.txt mode change 100644 => 100755 drexelundweiss/aerosmart_xls.txt mode change 100644 => 100755 drexelundweiss/termosmart_sc.txt mode change 100644 => 100755 drexelundweiss/x2.txt mode change 100644 => 100755 drexelundweiss/x2_plus.txt mode change 100644 => 100755 easymeter/README.md mode change 100644 => 100755 ebus/README.md.old mode change 100644 => 100755 ebus/_pv_1_0_1/README.md mode change 100644 => 100755 ebus/_pv_1_0_1/__init__.py mode change 100644 => 100755 ebus/_pv_1_0_1/plugin.yaml mode change 100644 => 100755 ecmd/README.md mode change 100644 => 100755 elro/README.md mode change 100644 => 100755 elro/__init__.py mode change 100644 => 100755 enigma2/README.md mode change 100644 => 100755 enigma2/__init__.py mode change 100644 => 100755 enigma2/requirements.txt mode change 100644 => 100755 enigma2/sv_widgets/circle_blue.png mode change 100644 => 100755 enigma2/sv_widgets/circle_green2.png mode change 100644 => 100755 enigma2/sv_widgets/circle_red.png mode change 100644 => 100755 enigma2/sv_widgets/circle_yellow.png mode change 100644 => 100755 enigma2/sv_widgets/control_centr_arrow_down_left_red_fill.png mode change 100644 => 100755 enigma2/sv_widgets/control_centr_arrow_down_right_blue_fill.png mode change 100644 => 100755 enigma2/sv_widgets/control_centr_arrow_up_left_green_fill.png mode change 100644 => 100755 enigma2/sv_widgets/control_centr_arrow_up_right_yellow_fill.png mode change 100644 => 100755 enocean/README.md mode change 100644 => 100755 enocean/__init__.py mode change 100644 => 100755 enocean/eep_parser.py mode change 100644 => 100755 enocean/locale.yaml mode change 100644 => 100755 enocean/prepare_packet_data.py mode change 100644 => 100755 enocean/webif/static/img/plugin_logo.png mode change 100644 => 100755 enocean/webif/templates/base_enocean.html mode change 100644 => 100755 enocean/webif/templates/index.html mode change 100644 => 100755 eta_pu/README.md mode change 100644 => 100755 executor/README.md mode change 100644 => 100755 executor/__init__.py mode change 100644 => 100755 executor/locale.yaml mode change 100644 => 100755 executor/plugin.yaml mode change 100644 => 100755 executor/webif/static/img/readme.txt mode change 100644 => 100755 executor/webif/templates/index.html mode change 100644 => 100755 garminconnect/__init__.py mode change 100644 => 100755 garminconnect/locale.yaml mode change 100644 => 100755 garminconnect/plugin.yaml mode change 100644 => 100755 garminconnect/requirements.txt mode change 100644 => 100755 garminconnect/webif/static/img/plugin_logo.png mode change 100644 => 100755 garminconnect/webif/templates/index.html mode change 100644 => 100755 gpio/webif/static/img/plugin_logo.png mode change 100644 => 100755 harmony/README.md mode change 100644 => 100755 harmony/__init__.py mode change 100644 => 100755 harmony/get_activities.py mode change 100644 => 100755 harmony/get_config.py mode change 100644 => 100755 helios/README.md mode change 100644 => 100755 helios/files/helios.yaml mode change 100644 => 100755 helios_tcp/__init__.py mode change 100644 => 100755 helios_tcp/plugin.yaml mode change 100644 => 100755 helios_tcp/requirements.txt mode change 100644 => 100755 helios_tcp/user_doc.rst mode change 100644 => 100755 hue/README.md mode change 100644 => 100755 hue/_pv_1_1_83/README.md mode change 100644 => 100755 iaqstick/README.md mode change 100644 => 100755 iaqstick/__init__.py mode change 100644 => 100755 iaqstick/requirements.txt mode change 100644 => 100755 indego/README.md mode change 100644 => 100755 indego/__init__.py mode change 100644 => 100755 indego/example.yaml mode change 100644 => 100755 indego/locale.yaml mode change 100644 => 100755 indego/plugin.yaml mode change 100644 => 100755 indego/smartVISU_dropins/icons/ws/lawn.svg mode change 100644 => 100755 indego/smartVISU_dropins/icons/ws/lawn_2.svg mode change 100644 => 100755 indego/smartVISU_dropins/icons/ws/lawnmover_2.svg mode change 100644 => 100755 indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_dock.svg mode change 100644 => 100755 indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_docked.svg mode change 100644 => 100755 indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_help.svg mode change 100644 => 100755 indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_moving.svg mode change 100644 => 100755 indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_offline.svg mode change 100644 => 100755 indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_online.svg mode change 100644 => 100755 indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_start.svg mode change 100644 => 100755 indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_stop.svg mode change 100644 => 100755 indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_stopp.svg mode change 100644 => 100755 indego/smartVISU_dropins/lib/weather/pics/cloud_10.png mode change 100644 => 100755 indego/smartVISU_dropins/lib/weather/pics/cloud_5.png mode change 100644 => 100755 indego/smartVISU_dropins/lib/weather/pics/cloud_8.png mode change 100644 => 100755 indego/smartVISU_dropins/lib/weather/pics/sun_1.png mode change 100644 => 100755 indego/smartVISU_dropins/lib/weather/pics/sun_5.png mode change 100644 => 100755 indego/smartVISU_dropins/pages/your pages folder/indego.html mode change 100644 => 100755 indego/smartVISU_dropins/pages/your pages folder/widget_basic_input.html mode change 100644 => 100755 indego/smartVISU_dropins/pages/your pages folder/widget_basic_large_symbol.html mode change 100644 => 100755 indego/webif/static/img/readme.txt mode change 100644 => 100755 indego/webif/templates/index.html mode change 100644 => 100755 influxdata/README.md mode change 100644 => 100755 influxdata/__init__.py mode change 100644 => 100755 influxdb/README.md mode change 100644 => 100755 influxdb/__init__.py mode change 100644 => 100755 intercom_2n/README.md mode change 100644 => 100755 intercom_2n/__init__.py mode change 100644 => 100755 intercom_2n/commands.py mode change 100644 => 100755 intercom_2n/core.py mode change 100644 => 100755 intercom_2n/example/2n_intercom.yaml mode change 100644 => 100755 intercom_2n/requirements.txt mode change 100644 => 100755 join/README.md mode change 100644 => 100755 join/__init__.py mode change 100644 => 100755 join/requirements.txt mode change 100644 => 100755 jsonread/README.md mode change 100644 => 100755 jsonread/__init__.py mode change 100644 => 100755 jsonread/requirements.txt mode change 100644 => 100755 jvcproj/LICENCE mode change 100644 => 100755 jvcproj/README.md mode change 100644 => 100755 jvcproj/__init__.py mode change 100644 => 100755 jvcproj/plugin.yaml mode change 100644 => 100755 kathrein/README.md mode change 100644 => 100755 kathrein/_pv_1_4_0/README.md mode change 100644 => 100755 kathrein/_pv_1_4_0/__init__.py mode change 100644 => 100755 kathrein/_pv_1_4_0/plugin.yaml mode change 100644 => 100755 kathrein/locale.yaml mode change 100644 => 100755 kathrein/webif/static/img/readme.txt mode change 100644 => 100755 kathrein/webif/templates/index.html mode change 100644 => 100755 knx/Check_KNX.py mode change 100644 => 100755 knx/dpts.py mode change 100644 => 100755 knx/pv_1_3_4/README.md mode change 100644 => 100755 kodi/README.md mode change 100644 => 100755 kostal/README.md mode change 100644 => 100755 kostalmodbus/README.md mode change 100644 => 100755 kostalmodbus/__init__.py mode change 100644 => 100755 kostalmodbus/files/kostal_item_template.yaml mode change 100644 => 100755 kostalmodbus/inverter.py mode change 100644 => 100755 kostalmodbus/plugin.yaml mode change 100644 => 100755 kostalmodbus/requirements.txt mode change 100644 => 100755 ksemmodbus/README.md mode change 100644 => 100755 ksemmodbus/__init__.py mode change 100644 => 100755 ksemmodbus/files/kostal_item_template.yaml mode change 100644 => 100755 ksemmodbus/ksem.py mode change 100644 => 100755 ksemmodbus/plugin.yaml mode change 100644 => 100755 ksemmodbus/requirements.txt mode change 100644 => 100755 lirc/README.md mode change 100644 => 100755 lirc/__init__.py mode change 100644 => 100755 lirc/plugin.yaml mode change 100644 => 100755 logo/README.md mode change 100644 => 100755 logo/__init__.py mode change 100644 => 100755 logo/libnodave.so mode change 100644 => 100755 luxtronic2/README.md mode change 100644 => 100755 mail/README.md mode change 100644 => 100755 mailrcv/README.md mode change 100644 => 100755 mailrcv/__init__.py mode change 100644 => 100755 mailrcv/plugin.yaml mode change 100644 => 100755 mailsend/README.md mode change 100644 => 100755 mailsend/__init__.py mode change 100644 => 100755 mailsend/plugin.yaml mode change 100644 => 100755 memlog/README.md mode change 100644 => 100755 memlog/_pv_1_3_0/README.md mode change 100644 => 100755 memlog/_pv_1_3_0/__init__.py mode change 100644 => 100755 memlog/_pv_1_3_0/plugin.yaml mode change 100644 => 100755 memlog/callable.png mode change 100644 => 100755 memlog/webif/static/img/readme.txt mode change 100644 => 100755 memlog/webif/templates/index.html mode change 100644 => 100755 miflora/README.md mode change 100644 => 100755 miflora/__init__.py mode change 100644 => 100755 miflora/locale.yaml mode change 100644 => 100755 miflora/plugin.yaml mode change 100644 => 100755 miflora/requirements.txt mode change 100644 => 100755 miflora/webif/static/img/plugin_logo.png mode change 100644 => 100755 miflora/webif/templates/index.html mode change 100644 => 100755 milight/README.md mode change 100644 => 100755 milight/__init__.py mode change 100644 => 100755 milight/_pv_1_3_0/README.md mode change 100644 => 100755 milight/_pv_1_3_0/__init__.py mode change 100644 => 100755 milight/_pv_1_3_0/plugin.yaml mode change 100644 => 100755 milight/locale.yaml mode change 100644 => 100755 milight/webif/static/img/readme.txt mode change 100644 => 100755 milight/webif/templates/index.html mode change 100644 => 100755 mlgw/README.md mode change 100644 => 100755 mlgw/__init__.py mode change 100644 => 100755 mpd/README.md mode change 100644 => 100755 mqtt/README.md mode change 100644 => 100755 mqtt/__init__.py mode change 100644 => 100755 mqtt/locale.yaml mode change 100644 => 100755 mqtt/plugin.yaml mode change 100644 => 100755 mqtt/webif/static/img/plugin_logo.png mode change 100644 => 100755 mqtt/webif/static/img/readme.txt mode change 100644 => 100755 mqtt/webif/templates/index.html mode change 100644 => 100755 mqtt1/README.md mode change 100644 => 100755 mqtt1/__init__.py mode change 100644 => 100755 mqtt1/_pv_1_0_1/README.md mode change 100644 => 100755 mqtt1/_pv_1_0_1/__init__.py mode change 100644 => 100755 mqtt1/_pv_1_0_1/plugin.yaml mode change 100644 => 100755 mqtt1/assets/webif1.jpg mode change 100644 => 100755 mqtt1/assets/webif2.jpg mode change 100644 => 100755 mqtt1/locale.yaml mode change 100644 => 100755 mqtt1/plugin.yaml mode change 100644 => 100755 mqtt1/requirements.txt mode change 100644 => 100755 mqtt1/user_doc.rst mode change 100644 => 100755 mqtt1/webif/static/img/plugin_logo.png mode change 100644 => 100755 mqtt1/webif/templates/index.html mode change 100644 => 100755 mvg_live/README.md mode change 100644 => 100755 mvg_live/__init__.py mode change 100644 => 100755 mvg_live/mvg.PNG mode change 100644 => 100755 mvg_live/requirements.txt mode change 100644 => 100755 neato/README.md mode change 100644 => 100755 neato/__init__.py mode change 100644 => 100755 neato/plugin.yaml mode change 100644 => 100755 neato/requirements.txt mode change 100644 => 100755 neato/robot.py mode change 100644 => 100755 netio230b/README.md mode change 100644 => 100755 network/README.md mode change 100644 => 100755 nma/README.md mode change 100644 => 100755 nuki/README.md mode change 100644 => 100755 nuki/__init__.py mode change 100644 => 100755 nuki/locale.yaml mode change 100644 => 100755 nuki/requirements.txt mode change 100644 => 100755 nuki/webif/static/img/plugin_logo.png mode change 100644 => 100755 nuki/webif/templates/index.html mode change 100644 => 100755 nut/README.md mode change 100644 => 100755 nut/__init__.py mode change 100644 => 100755 odlinfo/README.md mode change 100644 => 100755 odlinfo/__init__.py mode change 100644 => 100755 odlinfo/requirements.txt mode change 100644 => 100755 onewire/README.md mode change 100644 => 100755 onewire/_pv_1_4_0/README.md mode change 100644 => 100755 onewire/_pv_1_4_0/__init__.py mode change 100644 => 100755 onewire/_pv_1_4_0/plugin.yaml mode change 100644 => 100755 onewire/locale.yaml mode change 100644 => 100755 onewire/owbase.py mode change 100644 => 100755 onewire/webif/static/img/readme.txt mode change 100644 => 100755 onewire/webif/templates/index.html mode change 100644 => 100755 openenergymonitor/README.md mode change 100644 => 100755 openenergymonitor/__init__.py mode change 100644 => 100755 openweathermap/README.md mode change 100644 => 100755 openweathermap/__init__.py mode change 100644 => 100755 openweathermap/assets/webif1.jpg mode change 100644 => 100755 openweathermap/assets/webif2.jpg mode change 100644 => 100755 openweathermap/plugin.yaml mode change 100644 => 100755 openweathermap/user_doc.rst mode change 100644 => 100755 openweathermap/webif/static/img/plugin_logo.png mode change 100644 => 100755 openweathermap/webif/templates/index.html mode change 100644 => 100755 operationlog/AutoBlindLoggerOLog.py mode change 100644 => 100755 plex/README.md mode change 100644 => 100755 plex/__init__.py mode change 100644 => 100755 pluggit/README.md mode change 100644 => 100755 pluggit/pluggit.yaml mode change 100644 => 100755 prowl/README.md mode change 100644 => 100755 prowl/__init__.py mode change 100644 => 100755 pushbullet/README.md mode change 100644 => 100755 pushbullet/requirements.txt mode change 100644 => 100755 pushover/README.md mode change 100644 => 100755 pushover/_pv_1_3_1/README.md mode change 100644 => 100755 pushover/_pv_1_3_1/requirements.txt mode change 100644 => 100755 raumfeld/README.md mode change 100644 => 100755 raumfeld/__init__.py mode change 100644 => 100755 rcswitch/README.md mode change 100644 => 100755 roomba/README.md mode change 100644 => 100755 roomba/__init__.py mode change 100644 => 100755 roomba/_pv_1_4_0/README.md mode change 100644 => 100755 roomba/_pv_1_4_0/__init__.py mode change 100644 => 100755 roomba/_pv_1_4_0/plugin.yaml mode change 100644 => 100755 roomba/locale.yaml mode change 100644 => 100755 roomba/webif/static/img/readme.txt mode change 100644 => 100755 roomba/webif/templates/index.html mode change 100644 => 100755 roomba_980/README.md mode change 100644 => 100755 roomba_980/plugin.yaml mode change 100644 => 100755 rpi1wire/README.md mode change 100644 => 100755 rpi1wire/__init__.py mode change 100644 => 100755 rpi1wire/_pv_1_4_0/README.md mode change 100644 => 100755 rpi1wire/_pv_1_4_0/__init__.py mode change 100644 => 100755 rpi1wire/locale.yaml mode change 100644 => 100755 rpi1wire/plugin.yaml mode change 100644 => 100755 rpi1wire/webif/static/img/readme.txt mode change 100644 => 100755 rpi1wire/webif/templates/index.html mode change 100644 => 100755 rrd/README.md mode change 100644 => 100755 rrd/_pv_1_0_0/README.md mode change 100644 => 100755 rrd/_pv_1_0_0/__init__.py mode change 100644 => 100755 rrd/_pv_1_0_0/plugin.yaml mode change 100644 => 100755 rrd/locale.yaml mode change 100644 => 100755 rrd/requirements.txt mode change 100644 => 100755 rrd/webif/static/img/readme.txt mode change 100644 => 100755 rrd/webif/templates/index.html mode change 100644 => 100755 rtr/README.md mode change 100644 => 100755 rtr/__init__.py mode change 100644 => 100755 rtr/sv_widgets/widget_rtr.html mode change 100644 => 100755 rtr/sv_widgets/widget_rtr.js mode change 100644 => 100755 russound/README.md mode change 100644 => 100755 russound/_pv_1_4_0/README.md mode change 100644 => 100755 russound/_pv_1_4_0/__init__.py mode change 100644 => 100755 russound/_pv_1_4_0/plugin.yaml mode change 100644 => 100755 russound/locale.yaml mode change 100644 => 100755 russound/webif/static/img/readme.txt mode change 100644 => 100755 russound/webif/templates/index.html mode change 100644 => 100755 shelly/__init__.py mode change 100644 => 100755 shelly/locale.yaml mode change 100644 => 100755 shelly/plugin.yaml mode change 100644 => 100755 shelly/user_doc.rst mode change 100644 => 100755 shelly/user_doc/assets/shelly-webif-brokerinfo.jpg mode change 100644 => 100755 shelly/user_doc/assets/shelly-webif-devices.jpg mode change 100644 => 100755 shelly/user_doc/assets/shelly-webif-items.jpg mode change 100644 => 100755 shelly/webif/static/img/plugin_logo.png mode change 100644 => 100755 shelly/webif/static/img/readme.txt mode change 100644 => 100755 shelly/webif/templates/index.html mode change 100644 => 100755 simulation/README.md mode change 100644 => 100755 simulation/__init__.py mode change 100644 => 100755 simulation/items.yaml mode change 100644 => 100755 simulation/lamps/lamp_green.png mode change 100644 => 100755 simulation/lamps/lamp_off.png mode change 100644 => 100755 simulation/lamps/lamp_orange.png mode change 100644 => 100755 simulation/lamps/lamp_purple.png mode change 100644 => 100755 simulation/lamps/lamp_red.png mode change 100644 => 100755 simulation/lamps/lamp_sim.svg mode change 100644 => 100755 simulation/locale.yaml mode change 100644 => 100755 simulation/screenshot.png mode change 100644 => 100755 simulation/state_diagram.png mode change 100644 => 100755 simulation/webif/static/img/plugin_logo.png mode change 100644 => 100755 simulation/webif/templates/index.html mode change 100644 => 100755 slack/README.md mode change 100644 => 100755 slack/__init__.py mode change 100644 => 100755 slack/plugin.yaml mode change 100644 => 100755 sma/README.md mode change 100644 => 100755 sma_em/README.md mode change 100644 => 100755 sma_em/__init__.py mode change 100644 => 100755 sma_em/locale.yaml mode change 100644 => 100755 sma_em/webif/static/img/plugin_logo.png mode change 100644 => 100755 sma_em/webif/templates/index.html mode change 100644 => 100755 smarttv/README.md mode change 100644 => 100755 smarttv/requirements.txt mode change 100644 => 100755 smawb/README.md mode change 100644 => 100755 smawb/SunnyWebBox.py mode change 100644 => 100755 smawb/__init__.py mode change 100644 => 100755 sml/README.md mode change 100644 => 100755 sml/tests/__init__.py mode change 100644 => 100755 sml/tests/base.py mode change 100644 => 100755 sml/tests/test_basic.py mode change 100644 => 100755 sml/tests/test_special_case.py mode change 100644 => 100755 smlx/README.md mode change 100644 => 100755 smlx/__init__.py mode change 100644 => 100755 smlx/algorithms.py mode change 100644 => 100755 smlx/plugin.yaml mode change 100644 => 100755 snap7_logo/README.md mode change 100644 => 100755 snap7_logo/__init__.py mode change 100644 => 100755 snap7_logo/plugin.yaml mode change 100644 => 100755 snap7_logo/requirements.txt mode change 100644 => 100755 snap7_logo/webif/static/img/lamp_green.png mode change 100644 => 100755 snap7_logo/webif/static/img/lamp_red.png mode change 100644 => 100755 snap7_logo/webif/static/img/plugin_logo.png mode change 100644 => 100755 snap7_logo/webif/templates/index.html mode change 100644 => 100755 snmp/README.md mode change 100644 => 100755 snmp/__init__.py mode change 100644 => 100755 snmp/locale.yaml mode change 100644 => 100755 snmp/plugin.yaml mode change 100644 => 100755 snmp/requirements.txt mode change 100644 => 100755 snmp/webif/templates/index.html mode change 100644 => 100755 snom/README.md mode change 100644 => 100755 solarlog/README.md mode change 100644 => 100755 solarlog/_pv_1_4_0/README.md mode change 100644 => 100755 solarlog/_pv_1_4_0/__init__.py mode change 100644 => 100755 solarlog/_pv_1_4_0/plugin.yaml mode change 100644 => 100755 solarlog/locale.yaml mode change 100644 => 100755 solarlog/user_doc.rst mode change 100644 => 100755 solarlog/webif/static/img/readme.txt mode change 100644 => 100755 solarlog/webif/templates/index.html mode change 100644 => 100755 sonos/README.md mode change 100644 => 100755 sonos/examples/sonos.yaml mode change 100644 => 100755 sonos/requirements.txt mode change 100644 => 100755 sonos/search_uids.py mode change 100644 => 100755 sonos/soco/__init__.py mode change 100644 => 100755 sonos/soco/alarms.py mode change 100644 => 100755 sonos/soco/cache.py mode change 100644 => 100755 sonos/soco/compat.py mode change 100644 => 100755 sonos/soco/config.py mode change 100644 => 100755 sonos/soco/data_structure_quirks.py mode change 100644 => 100755 sonos/soco/data_structures_entry.py mode change 100644 => 100755 sonos/soco/discovery.py mode change 100644 => 100755 sonos/soco/events_base.py mode change 100644 => 100755 sonos/soco/events_twisted.py mode change 100644 => 100755 sonos/soco/groups.py mode change 100644 => 100755 sonos/soco/ms_data_structures.py mode change 100644 => 100755 sonos/soco/music_library.py mode change 100644 => 100755 sonos/soco/music_services/__init__.py mode change 100644 => 100755 sonos/soco/music_services/accounts.py mode change 100644 => 100755 sonos/soco/music_services/data_structures.py mode change 100644 => 100755 sonos/soco/music_services/music_service.py mode change 100644 => 100755 sonos/soco/plugins/__init__.py mode change 100644 => 100755 sonos/soco/plugins/example.py mode change 100644 => 100755 sonos/soco/plugins/spotify.py mode change 100644 => 100755 sonos/soco/plugins/wimp.py mode change 100644 => 100755 sonos/soco/services.py mode change 100644 => 100755 sonos/soco/snapshot.py mode change 100644 => 100755 sonos/soco/soap.py mode change 100644 => 100755 sonos/soco/utils.py mode change 100644 => 100755 sonos/soco/xml.py mode change 100644 => 100755 sonos/sv_widgets/widget_sonos.css mode change 100644 => 100755 sonos/sv_widgets/widget_sonos.html mode change 100644 => 100755 sonos/sv_widgets/widget_sonos.js mode change 100644 => 100755 sonos/tts.py mode change 100644 => 100755 sonos/utils.py mode change 100644 => 100755 speech/README.md mode change 100644 => 100755 speech/__init__.py mode change 100644 => 100755 speech/_pv_1_4_0/README.md mode change 100644 => 100755 speech/_pv_1_4_0/__init__.py mode change 100644 => 100755 speech/_pv_1_4_0/plugin.yaml mode change 100644 => 100755 speech/_pv_1_4_0/speech.py mode change 100644 => 100755 speech/_pv_1_4_1/README.md mode change 100644 => 100755 speech/_pv_1_4_1/__init__.py mode change 100644 => 100755 speech/_pv_1_4_1/plugin.yaml mode change 100644 => 100755 speech/_pv_1_4_1/speech.py mode change 100644 => 100755 speech/_pv_1_4_1/tasker.xml mode change 100644 => 100755 speech/locale.yaml mode change 100644 => 100755 speech/sample_for_tasker.xml mode change 100644 => 100755 speech/speech.py mode change 100644 => 100755 speech/user_doc.rst mode change 100644 => 100755 speech/webif/static/img/readme.txt mode change 100644 => 100755 speech/webif/templates/index.html mode change 100644 => 100755 sqlite/README.md mode change 100644 => 100755 sqlite_visu2_8/README.md mode change 100644 => 100755 stateengine/requirements.txt mode change 100644 => 100755 stateengine/webif/static/img/vis.png mode change 100644 => 100755 systemair/README.md mode change 100644 => 100755 systemair/requirements.txt mode change 100644 => 100755 systemair/systemair.yaml mode change 100644 => 100755 tankerkoenig/README.md mode change 100644 => 100755 tankerkoenig/requirements.txt mode change 100644 => 100755 telegram/README.md mode change 100644 => 100755 telegram/__init__.py mode change 100644 => 100755 telegram/_pv_1_1_3/README.md mode change 100644 => 100755 telegram/_pv_1_1_3/__init__.py mode change 100644 => 100755 telegram/_pv_1_1_3/logging.yaml.telegram mode change 100644 => 100755 telegram/_pv_1_1_3/plugin.yaml mode change 100644 => 100755 telegram/_pv_1_1_3/requirements.txt mode change 100644 => 100755 telegram/_pv_1_5_0/README.md mode change 100644 => 100755 telegram/_pv_1_5_0/__init__.py mode change 100644 => 100755 telegram/_pv_1_5_0/assets/webif1.png mode change 100644 => 100755 telegram/_pv_1_5_0/assets/webif2.png mode change 100644 => 100755 telegram/_pv_1_5_0/locale.yaml mode change 100644 => 100755 telegram/_pv_1_5_0/logging.yaml.telegram mode change 100644 => 100755 telegram/_pv_1_5_0/plugin.yaml mode change 100644 => 100755 telegram/_pv_1_5_0/requirements.txt mode change 100644 => 100755 telegram/_pv_1_5_0/webif/static/img/plugin_logo.svg mode change 100644 => 100755 telegram/_pv_1_5_0/webif/static/img/readme.txt mode change 100644 => 100755 telegram/_pv_1_5_0/webif/templates/index.html mode change 100644 => 100755 telegram/assets/webif1.png mode change 100644 => 100755 telegram/assets/webif2.png mode change 100644 => 100755 telegram/locale.yaml mode change 100644 => 100755 telegram/logging.yaml.telegram mode change 100644 => 100755 telegram/plugin.yaml mode change 100644 => 100755 telegram/requirements.txt mode change 100644 => 100755 telegram/user_doc.rst mode change 100644 => 100755 telegram/webif/static/img/plugin_logo.svg mode change 100644 => 100755 telegram/webif/static/img/readme.txt mode change 100644 => 100755 telegram/webif/templates/index.html mode change 100644 => 100755 tellstick/README.md mode change 100644 => 100755 tellstick/__init__.py mode change 100644 => 100755 thz/PortHandler.py mode change 100644 => 100755 thz/README.md mode change 100644 => 100755 thz/README.rst mode change 100644 => 100755 thz/ThzProtocol.py mode change 100644 => 100755 thz/__init__.py mode change 100644 => 100755 thz/plugin.yaml mode change 100644 => 100755 thz/requirements.txt mode change 100644 => 100755 thz/thz.yaml mode change 100644 => 100755 thz/webif/static/img/readme.txt mode change 100644 => 100755 thz/webif/templates/index.html mode change 100644 => 100755 traffic/README.md mode change 100644 => 100755 traffic/__init__.py mode change 100644 => 100755 traffic/requirements.txt mode change 100644 => 100755 trovis557x/README.md mode change 100644 => 100755 trovis557x/__init__.py mode change 100644 => 100755 trovis557x/_coils.py mode change 100644 => 100755 trovis557x/_listen.py mode change 100644 => 100755 trovis557x/_register.py mode change 100644 => 100755 trovis557x/assets/todo mode change 100644 => 100755 trovis557x/plugin.yaml mode change 100644 => 100755 trovis557x/requirements.txt mode change 100644 => 100755 trovis557x/shNG-etc/logging.yaml mode change 100644 => 100755 trovis557x/shNG-etc/plugin.yaml mode change 100644 => 100755 trovis557x/shNG-items/trovis.yaml mode change 100644 => 100755 trovis557x/templates/5576-003_coils.py mode change 100644 => 100755 trovis557x/templates/5576-003_listen.py mode change 100644 => 100755 trovis557x/templates/5576-003_registers.py mode change 100644 => 100755 trovis557x/templates/readme.txt mode change 100644 => 100755 trovis557x/tools/coil_sniffer.py mode change 100644 => 100755 trovis557x/tools/readme.txt mode change 100644 => 100755 trovis557x/tools/register_sniffer.py mode change 100644 => 100755 trovis557x/webif/todo mode change 100644 => 100755 unifi/.gitignore mode change 100644 => 100755 unifi/README.md mode change 100644 => 100755 unifi/__init__.py mode change 100644 => 100755 unifi/locale.yaml mode change 100644 => 100755 unifi/plugin.yaml mode change 100644 => 100755 unifi/ubiquiti/LICENSE mode change 100644 => 100755 unifi/ubiquiti/__init__.py mode change 100644 => 100755 unifi/ubiquiti/unifi.py mode change 100644 => 100755 unifi/webif/static/img/readme.txt mode change 100644 => 100755 unifi/webif/templates/index.html mode change 100644 => 100755 uzsu/requirements.txt mode change 100644 => 100755 uzsu/uzsu_webif.png mode change 100644 => 100755 vacations/__init__.py mode change 100644 => 100755 vacations/assets/webif1.jpg mode change 100644 => 100755 vacations/assets/webif2.jpg mode change 100644 => 100755 vacations/locale.yaml mode change 100644 => 100755 vacations/plugin.yaml mode change 100644 => 100755 vacations/requirements.txt mode change 100644 => 100755 vacations/user_doc.rst mode change 100644 => 100755 vacations/webif/static/img/plugin_logo.png mode change 100644 => 100755 vacations/webif/templates/index.html mode change 100644 => 100755 visu_smartvisu/README.md mode change 100644 => 100755 visu_smartvisu/_pv_1_3_3/README.md mode change 100644 => 100755 visu_smartvisu/_pv_1_3_3/developer_doc.md mode change 100644 => 100755 visu_smartvisu/developer_doc.md mode change 100644 => 100755 visu_smartvisu/screenshots/blocktype_dual_1.jpg mode change 100644 => 100755 visu_smartvisu/screenshots/blocktype_dual_2.jpg mode change 100644 => 100755 visu_smartvisu/screenshots/blocktype_dual_visu.jpg mode change 100644 => 100755 visu_smartvisu/screenshots/category_nav.jpg mode change 100644 => 100755 visu_smartvisu/screenshots/divider.jpg mode change 100644 => 100755 visu_smartvisu/screenshots/navigation.jpg mode change 100644 => 100755 visu_smartvisu/screenshots/navigation2.jpg mode change 100644 => 100755 visu_smartvisu/screenshots/style_blk.jpg mode change 100644 => 100755 visu_smartvisu/screenshots/style_blk_visu.jpg mode change 100644 => 100755 visu_smartvisu/screenshots/style_std.jpg mode change 100644 => 100755 visu_websocket/README.md mode change 100644 => 100755 visu_websocket/__init__.py mode change 100644 => 100755 visu_websocket/_pv_1_1_3/README.md mode change 100644 => 100755 visu_websocket/_pv_1_1_3/README_for_visu_developers.md mode change 100644 => 100755 visu_websocket/_pv_1_4_5/README.md mode change 100644 => 100755 visu_websocket/_pv_1_4_5/__init__.py mode change 100644 => 100755 visu_websocket/_pv_1_4_5/assets/webif1.jpg mode change 100644 => 100755 visu_websocket/_pv_1_4_5/developer_doc.md mode change 100644 => 100755 visu_websocket/_pv_1_4_5/locale.yaml mode change 100644 => 100755 visu_websocket/_pv_1_4_5/plugin.yaml mode change 100644 => 100755 visu_websocket/_pv_1_4_5/webif/templates/index.html mode change 100644 => 100755 visu_websocket/developer_doc.rst mode change 100644 => 100755 volkszaehler/README.md mode change 100644 => 100755 vr100/README.md mode change 100644 => 100755 webservices/README.md mode change 100644 => 100755 webservices/__init__.py mode change 100644 => 100755 webservices/webif/static/img/plugin_logo.png mode change 100644 => 100755 withings_health/README.md mode change 100644 => 100755 withings_health/__init__.py mode change 100644 => 100755 withings_health/locale.yaml mode change 100644 => 100755 withings_health/plugin.yaml mode change 100644 => 100755 withings_health/requirements.txt mode change 100644 => 100755 withings_health/webif/static/img/plugin_logo.png mode change 100644 => 100755 withings_health/webif/templates/index.html mode change 100644 => 100755 wol/README.md mode change 100644 => 100755 wunderground/README.md mode change 100644 => 100755 wunderground/README_OLD.md mode change 100644 => 100755 wunderground/__init__.py mode change 100644 => 100755 wunderground/plugin.yaml mode change 100644 => 100755 xbmc/README.md mode change 100644 => 100755 xbmc/__init__.py mode change 100644 => 100755 xbmc/plugin.yaml mode change 100644 => 100755 xiaomi_vac/LICENSE mode change 100644 => 100755 xiaomi_vac/__init__.py mode change 100644 => 100755 xiaomi_vac/plugin.yaml mode change 100644 => 100755 xiaomi_vac/requirements.txt mode change 100644 => 100755 xiaomi_vac/webif/static/img/favicon.ico mode change 100644 => 100755 xiaomi_vac/webif/static/img/green.png mode change 100644 => 100755 xiaomi_vac/webif/static/img/green.xcf mode change 100644 => 100755 xiaomi_vac/webif/static/img/logo_big2.png mode change 100644 => 100755 xiaomi_vac/webif/static/img/plugin_logo.png mode change 100644 => 100755 xiaomi_vac/webif/static/img/red.png mode change 100644 => 100755 xiaomi_vac/webif/static/img/red.xcf mode change 100644 => 100755 xiaomi_vac/webif/templates/index.html mode change 100644 => 100755 xmpp/requirements.txt mode change 100644 => 100755 yamaha/README.md mode change 100644 => 100755 yamaha/__init__.py mode change 100644 => 100755 yamahayxc/LICENSE mode change 100644 => 100755 yamahayxc/README.md mode change 100644 => 100755 yamahayxc/__init__.py mode change 100644 => 100755 yamahayxc/plugin.yaml mode change 100644 => 100755 zwave/README.md mode change 100644 => 100755 zwave/requirements.txt diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/__init__.py b/__init__.py old mode 100644 new mode 100755 diff --git a/alexa/README.md b/alexa/README.md old mode 100644 new mode 100755 diff --git a/alexa/__init__.py b/alexa/__init__.py old mode 100644 new mode 100755 diff --git a/alexa/action.py b/alexa/action.py old mode 100644 new mode 100755 diff --git a/alexa/actions_lock.py b/alexa/actions_lock.py old mode 100644 new mode 100755 diff --git a/alexa/actions_percentage.py b/alexa/actions_percentage.py old mode 100644 new mode 100755 diff --git a/alexa/actions_temperature.py b/alexa/actions_temperature.py old mode 100644 new mode 100755 diff --git a/alexa/actions_turn.py b/alexa/actions_turn.py old mode 100644 new mode 100755 diff --git a/alexa/aws_lambda.js b/alexa/aws_lambda.js old mode 100644 new mode 100755 diff --git a/alexa/device.py b/alexa/device.py old mode 100644 new mode 100755 diff --git a/alexa/nginx.md b/alexa/nginx.md old mode 100644 new mode 100755 diff --git a/alexa/requirements.txt b/alexa/requirements.txt old mode 100644 new mode 100755 diff --git a/alexa/service.py b/alexa/service.py old mode 100644 new mode 100755 diff --git a/alexa4p3/__init__.py b/alexa4p3/__init__.py old mode 100644 new mode 100755 diff --git a/alexa4p3/action.py b/alexa4p3/action.py old mode 100644 new mode 100755 diff --git a/alexa4p3/actions_lock.py b/alexa4p3/actions_lock.py old mode 100644 new mode 100755 diff --git a/alexa4p3/actions_percentage.py b/alexa4p3/actions_percentage.py old mode 100644 new mode 100755 diff --git a/alexa4p3/actions_temperature.py b/alexa4p3/actions_temperature.py old mode 100644 new mode 100755 diff --git a/alexa4p3/actions_turn.py b/alexa4p3/actions_turn.py old mode 100644 new mode 100755 diff --git a/alexa4p3/device.py b/alexa4p3/device.py old mode 100644 new mode 100755 diff --git a/alexa4p3/directives/Activate.cmd b/alexa4p3/directives/Activate.cmd old mode 100644 new mode 100755 diff --git a/alexa4p3/directives/AdjustBrightness.cmd b/alexa4p3/directives/AdjustBrightness.cmd old mode 100644 new mode 100755 diff --git a/alexa4p3/directives/AdjustPercentage.cmd b/alexa4p3/directives/AdjustPercentage.cmd old mode 100644 new mode 100755 diff --git a/alexa4p3/directives/AdjustPowerLevel.cmd b/alexa4p3/directives/AdjustPowerLevel.cmd old mode 100644 new mode 100755 diff --git a/alexa4p3/directives/AdjustRangeValue.cmd b/alexa4p3/directives/AdjustRangeValue.cmd old mode 100644 new mode 100755 diff --git a/alexa4p3/directives/DecreaseColorTemperature.cmd b/alexa4p3/directives/DecreaseColorTemperature.cmd old mode 100644 new mode 100755 diff --git a/alexa4p3/directives/IncreaseColorTemperature.cmd b/alexa4p3/directives/IncreaseColorTemperature.cmd old mode 100644 new mode 100755 diff --git a/alexa4p3/directives/SetBrightness.cmd b/alexa4p3/directives/SetBrightness.cmd old mode 100644 new mode 100755 diff --git a/alexa4p3/directives/SetColorTemperature.cmd b/alexa4p3/directives/SetColorTemperature.cmd old mode 100644 new mode 100755 diff --git a/alexa4p3/directives/SetPercentage.cmd b/alexa4p3/directives/SetPercentage.cmd old mode 100644 new mode 100755 diff --git a/alexa4p3/directives/SetPowerLevel.cmd b/alexa4p3/directives/SetPowerLevel.cmd old mode 100644 new mode 100755 diff --git a/alexa4p3/directives/SetRangeValue.cmd b/alexa4p3/directives/SetRangeValue.cmd old mode 100644 new mode 100755 diff --git a/alexa4p3/directives/TurnOff.cmd b/alexa4p3/directives/TurnOff.cmd old mode 100644 new mode 100755 diff --git a/alexa4p3/directives/TurnOn.cmd b/alexa4p3/directives/TurnOn.cmd old mode 100644 new mode 100755 diff --git a/alexa4p3/p3_action.py b/alexa4p3/p3_action.py old mode 100644 new mode 100755 diff --git a/alexa4p3/p3_tools.py b/alexa4p3/p3_tools.py old mode 100644 new mode 100755 diff --git a/alexa4p3/service.py b/alexa4p3/service.py old mode 100644 new mode 100755 diff --git a/alexa4p3/webif/static/img/plugin_logo.png b/alexa4p3/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/alexa4p3/webif/static/js/handler.js b/alexa4p3/webif/static/js/handler.js old mode 100644 new mode 100755 diff --git a/alexa4p3/webif/static/js/test_handler.js b/alexa4p3/webif/static/js/test_handler.js old mode 100644 new mode 100755 diff --git a/alexarc4shng/.idea/.gitignore b/alexarc4shng/.idea/.gitignore old mode 100644 new mode 100755 diff --git a/alexarc4shng/.idea/alexarc4shng.iml b/alexarc4shng/.idea/alexarc4shng.iml old mode 100644 new mode 100755 diff --git a/alexarc4shng/.idea/inspectionProfiles/Project_Default.xml b/alexarc4shng/.idea/inspectionProfiles/Project_Default.xml old mode 100644 new mode 100755 diff --git a/alexarc4shng/.idea/markdown-navigator.xml b/alexarc4shng/.idea/markdown-navigator.xml old mode 100644 new mode 100755 diff --git a/alexarc4shng/.idea/markdown-navigator/profiles_settings.xml b/alexarc4shng/.idea/markdown-navigator/profiles_settings.xml old mode 100644 new mode 100755 diff --git a/alexarc4shng/.idea/misc.xml b/alexarc4shng/.idea/misc.xml old mode 100644 new mode 100755 diff --git a/alexarc4shng/.idea/modules.xml b/alexarc4shng/.idea/modules.xml old mode 100644 new mode 100755 diff --git a/alexarc4shng/.idea/vcs.xml b/alexarc4shng/.idea/vcs.xml old mode 100644 new mode 100755 diff --git a/apcups/README.md b/apcups/README.md old mode 100644 new mode 100755 diff --git a/apcups/__init__.py b/apcups/__init__.py old mode 100644 new mode 100755 diff --git a/artnet/README.md b/artnet/README.md old mode 100644 new mode 100755 diff --git a/artnet/webif/static/img/plugin_logo.png b/artnet/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/artnet/webif/templates/index.html b/artnet/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/asterisk/README.md b/asterisk/README.md old mode 100644 new mode 100755 diff --git a/asterisk/__init__.py b/asterisk/__init__.py old mode 100644 new mode 100755 diff --git a/avm/README.md b/avm/README.md old mode 100644 new mode 100755 diff --git a/avm/__init__.py b/avm/__init__.py old mode 100644 new mode 100755 diff --git a/avm/requirements.txt b/avm/requirements.txt old mode 100644 new mode 100755 diff --git a/avm/sv_widgets/widget_avm.html b/avm/sv_widgets/widget_avm.html old mode 100644 new mode 100755 diff --git a/avm/webif/static/img/lamp_green.png b/avm/webif/static/img/lamp_green.png old mode 100644 new mode 100755 diff --git a/avm/webif/static/img/lamp_red.png b/avm/webif/static/img/lamp_red.png old mode 100644 new mode 100755 diff --git a/avm/webif/static/img/plugin_logo.png b/avm/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/avm/webif/templates/index.html b/avm/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/backend/BackendItems.py b/backend/BackendItems.py old mode 100644 new mode 100755 diff --git a/backend/BackendLogics.py b/backend/BackendLogics.py old mode 100644 new mode 100755 diff --git a/backend/BackendServices.py b/backend/BackendServices.py old mode 100644 new mode 100755 diff --git a/backend/BackendSysteminfo.py b/backend/BackendSysteminfo.py old mode 100644 new mode 100755 diff --git a/backend/README.md b/backend/README.md old mode 100644 new mode 100755 diff --git a/backend/_pv_1_4_9/README.md b/backend/_pv_1_4_9/README.md old mode 100644 new mode 100755 diff --git a/backend/user_doc/assets/backend_itemtree.jpg b/backend/user_doc/assets/backend_itemtree.jpg old mode 100644 new mode 100755 diff --git a/backend/user_doc/assets/backend_logik_editor.jpg b/backend/user_doc/assets/backend_logik_editor.jpg old mode 100644 new mode 100755 diff --git a/backend/user_doc/assets/backend_logikliste.jpg b/backend/user_doc/assets/backend_logikliste.jpg old mode 100644 new mode 100755 diff --git a/backend/user_doc/assets/backend_systeminfo.jpg b/backend/user_doc/assets/backend_systeminfo.jpg old mode 100644 new mode 100755 diff --git a/backend/user_doc/items.rst b/backend/user_doc/items.rst old mode 100644 new mode 100755 diff --git a/backend/user_doc/logiken.rst b/backend/user_doc/logiken.rst old mode 100644 new mode 100755 diff --git a/backend/webif/templates/disclosure.html b/backend/webif/templates/disclosure.html old mode 100644 new mode 100755 diff --git a/backend/webif/templates/services_shng_restart.html b/backend/webif/templates/services_shng_restart.html old mode 100644 new mode 100755 diff --git a/blockly/How_to_Update_Blockly_Components.rst b/blockly/How_to_Update_Blockly_Components.rst old mode 100644 new mode 100755 diff --git a/blockly/README.md b/blockly/README.md old mode 100644 new mode 100755 diff --git a/blockly/__init__.py b/blockly/__init__.py old mode 100644 new mode 100755 diff --git a/blockly/locale/de.json b/blockly/locale/de.json old mode 100644 new mode 100755 diff --git a/blockly/locale/en.json b/blockly/locale/en.json old mode 100644 new mode 100755 diff --git a/blockly/locale/fr.json b/blockly/locale/fr.json old mode 100644 new mode 100755 diff --git a/blockly/locale/pl.json b/blockly/locale/pl.json old mode 100644 new mode 100755 diff --git a/blockly/plugin.yaml b/blockly/plugin.yaml old mode 100644 new mode 100755 diff --git a/blockly/requirements.txt b/blockly/requirements.txt old mode 100644 new mode 100755 diff --git a/blockly/tests/__init__.py b/blockly/tests/__init__.py old mode 100644 new mode 100755 diff --git a/blockly/tests/cptestcase.py b/blockly/tests/cptestcase.py old mode 100644 new mode 100755 diff --git a/blockly/tests/test_backend_blocklylogics.py b/blockly/tests/test_backend_blocklylogics.py old mode 100644 new mode 100755 diff --git a/blockly/utils.py b/blockly/utils.py old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/LICENSE b/blockly/webif/static/blockly/LICENSE old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/README.md b/blockly/webif/static/blockly/README.md old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/blockly_compressed.js b/blockly/webif/static/blockly/blockly_compressed.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/blocks_compressed.js b/blockly/webif/static/blockly/blocks_compressed.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/de.js b/blockly/webif/static/blockly/de.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/en.js b/blockly/webif/static/blockly/en.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/fr.js b/blockly/webif/static/blockly/fr.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/media/1x1.gif b/blockly/webif/static/blockly/media/1x1.gif old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/media/click.mp3 b/blockly/webif/static/blockly/media/click.mp3 old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/media/click.ogg b/blockly/webif/static/blockly/media/click.ogg old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/media/click.wav b/blockly/webif/static/blockly/media/click.wav old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/media/delete.mp3 b/blockly/webif/static/blockly/media/delete.mp3 old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/media/delete.ogg b/blockly/webif/static/blockly/media/delete.ogg old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/media/delete.wav b/blockly/webif/static/blockly/media/delete.wav old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/media/disconnect.mp3 b/blockly/webif/static/blockly/media/disconnect.mp3 old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/media/disconnect.ogg b/blockly/webif/static/blockly/media/disconnect.ogg old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/media/disconnect.wav b/blockly/webif/static/blockly/media/disconnect.wav old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/media/handclosed.cur b/blockly/webif/static/blockly/media/handclosed.cur old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/media/handdelete.cur b/blockly/webif/static/blockly/media/handdelete.cur old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/media/handopen.cur b/blockly/webif/static/blockly/media/handopen.cur old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/media/pilcrow.png b/blockly/webif/static/blockly/media/pilcrow.png old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/media/quote0.png b/blockly/webif/static/blockly/media/quote0.png old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/media/quote1.png b/blockly/webif/static/blockly/media/quote1.png old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/media/sprites.png b/blockly/webif/static/blockly/media/sprites.png old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/media/sprites.svg b/blockly/webif/static/blockly/media/sprites.svg old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/pl.js b/blockly/webif/static/blockly/pl.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/python_compressed.js b/blockly/webif/static/blockly/python_compressed.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/blockly/style.css b/blockly/webif/static/blockly/style.css old mode 100644 new mode 100755 diff --git a/blockly/webif/static/css/bootstrap-reload.css b/blockly/webif/static/css/bootstrap-reload.css old mode 100644 new mode 100755 diff --git a/blockly/webif/static/css/bootstrap-theme.css b/blockly/webif/static/css/bootstrap-theme.css old mode 100644 new mode 100755 diff --git a/blockly/webif/static/css/bootstrap-theme.css.map b/blockly/webif/static/css/bootstrap-theme.css.map old mode 100644 new mode 100755 diff --git a/blockly/webif/static/css/bootstrap-theme.min.css b/blockly/webif/static/css/bootstrap-theme.min.css old mode 100644 new mode 100755 diff --git a/blockly/webif/static/css/bootstrap-theme.min.css.map b/blockly/webif/static/css/bootstrap-theme.min.css.map old mode 100644 new mode 100755 diff --git a/blockly/webif/static/css/bootstrap-treeview.css b/blockly/webif/static/css/bootstrap-treeview.css old mode 100644 new mode 100755 diff --git a/blockly/webif/static/css/bootstrap-treeview.min.css b/blockly/webif/static/css/bootstrap-treeview.min.css old mode 100644 new mode 100755 diff --git a/blockly/webif/static/css/bootstrap.css b/blockly/webif/static/css/bootstrap.css old mode 100644 new mode 100755 diff --git a/blockly/webif/static/css/bootstrap.css.map b/blockly/webif/static/css/bootstrap.css.map old mode 100644 new mode 100755 diff --git a/blockly/webif/static/css/bootstrap.min.css b/blockly/webif/static/css/bootstrap.min.css old mode 100644 new mode 100755 diff --git a/blockly/webif/static/css/bootstrap.min.css.map b/blockly/webif/static/css/bootstrap.min.css.map old mode 100644 new mode 100755 diff --git a/blockly/webif/static/css/font-awesome.css b/blockly/webif/static/css/font-awesome.css old mode 100644 new mode 100755 diff --git a/blockly/webif/static/css/font-awesome.min.css b/blockly/webif/static/css/font-awesome.min.css old mode 100644 new mode 100755 diff --git a/blockly/webif/static/fonts/FontAwesome.otf b/blockly/webif/static/fonts/FontAwesome.otf old mode 100644 new mode 100755 diff --git a/blockly/webif/static/fonts/fontawesome-webfont.eot b/blockly/webif/static/fonts/fontawesome-webfont.eot old mode 100644 new mode 100755 diff --git a/blockly/webif/static/fonts/fontawesome-webfont.svg b/blockly/webif/static/fonts/fontawesome-webfont.svg old mode 100644 new mode 100755 diff --git a/blockly/webif/static/fonts/fontawesome-webfont.ttf b/blockly/webif/static/fonts/fontawesome-webfont.ttf old mode 100644 new mode 100755 diff --git a/blockly/webif/static/fonts/fontawesome-webfont.woff b/blockly/webif/static/fonts/fontawesome-webfont.woff old mode 100644 new mode 100755 diff --git a/blockly/webif/static/fonts/fontawesome-webfont.woff2 b/blockly/webif/static/fonts/fontawesome-webfont.woff2 old mode 100644 new mode 100755 diff --git a/blockly/webif/static/fonts/glyphicons-halflings-regular.eot b/blockly/webif/static/fonts/glyphicons-halflings-regular.eot old mode 100644 new mode 100755 diff --git a/blockly/webif/static/fonts/glyphicons-halflings-regular.svg b/blockly/webif/static/fonts/glyphicons-halflings-regular.svg old mode 100644 new mode 100755 diff --git a/blockly/webif/static/fonts/glyphicons-halflings-regular.ttf b/blockly/webif/static/fonts/glyphicons-halflings-regular.ttf old mode 100644 new mode 100755 diff --git a/blockly/webif/static/fonts/glyphicons-halflings-regular.woff b/blockly/webif/static/fonts/glyphicons-halflings-regular.woff old mode 100644 new mode 100755 diff --git a/blockly/webif/static/fonts/glyphicons-halflings-regular.woff2 b/blockly/webif/static/fonts/glyphicons-halflings-regular.woff2 old mode 100644 new mode 100755 diff --git a/blockly/webif/static/img/favicon.ico b/blockly/webif/static/img/favicon.ico old mode 100644 new mode 100755 diff --git a/blockly/webif/static/img/logo_big.png b/blockly/webif/static/img/logo_big.png old mode 100644 new mode 100755 diff --git a/blockly/webif/static/img/logo_long.png b/blockly/webif/static/img/logo_long.png old mode 100644 new mode 100755 diff --git a/blockly/webif/static/img/logo_small_120x120.png b/blockly/webif/static/img/logo_small_120x120.png old mode 100644 new mode 100755 diff --git a/blockly/webif/static/img/logo_small_152x152.png b/blockly/webif/static/img/logo_small_152x152.png old mode 100644 new mode 100755 diff --git a/blockly/webif/static/img/logo_small_32x32.png b/blockly/webif/static/img/logo_small_32x32.png old mode 100644 new mode 100755 diff --git a/blockly/webif/static/img/logo_small_76x76.png b/blockly/webif/static/img/logo_small_76x76.png old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/bootstrap-reload.js b/blockly/webif/static/js/bootstrap-reload.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/bootstrap-reload.min.js b/blockly/webif/static/js/bootstrap-reload.min.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/bootstrap-treeview.js b/blockly/webif/static/js/bootstrap-treeview.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/bootstrap-treeview.min.js b/blockly/webif/static/js/bootstrap-treeview.min.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/bootstrap.js b/blockly/webif/static/js/bootstrap.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/bootstrap.min.js b/blockly/webif/static/js/bootstrap.min.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-aea.js b/blockly/webif/static/js/google-prettify/lang-aea.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-agc.js b/blockly/webif/static/js/google-prettify/lang-agc.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-apollo.js b/blockly/webif/static/js/google-prettify/lang-apollo.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-basic.js b/blockly/webif/static/js/google-prettify/lang-basic.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-cbm.js b/blockly/webif/static/js/google-prettify/lang-cbm.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-cl.js b/blockly/webif/static/js/google-prettify/lang-cl.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-clj.js b/blockly/webif/static/js/google-prettify/lang-clj.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-css.js b/blockly/webif/static/js/google-prettify/lang-css.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-dart.js b/blockly/webif/static/js/google-prettify/lang-dart.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-el.js b/blockly/webif/static/js/google-prettify/lang-el.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-erl.js b/blockly/webif/static/js/google-prettify/lang-erl.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-erlang.js b/blockly/webif/static/js/google-prettify/lang-erlang.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-fs.js b/blockly/webif/static/js/google-prettify/lang-fs.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-go.js b/blockly/webif/static/js/google-prettify/lang-go.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-hs.js b/blockly/webif/static/js/google-prettify/lang-hs.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-lasso.js b/blockly/webif/static/js/google-prettify/lang-lasso.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-lassoscript.js b/blockly/webif/static/js/google-prettify/lang-lassoscript.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-latex.js b/blockly/webif/static/js/google-prettify/lang-latex.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-lgt.js b/blockly/webif/static/js/google-prettify/lang-lgt.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-lisp.js b/blockly/webif/static/js/google-prettify/lang-lisp.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-ll.js b/blockly/webif/static/js/google-prettify/lang-ll.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-llvm.js b/blockly/webif/static/js/google-prettify/lang-llvm.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-logtalk.js b/blockly/webif/static/js/google-prettify/lang-logtalk.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-ls.js b/blockly/webif/static/js/google-prettify/lang-ls.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-lsp.js b/blockly/webif/static/js/google-prettify/lang-lsp.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-lua.js b/blockly/webif/static/js/google-prettify/lang-lua.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-matlab.js b/blockly/webif/static/js/google-prettify/lang-matlab.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-ml.js b/blockly/webif/static/js/google-prettify/lang-ml.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-mumps.js b/blockly/webif/static/js/google-prettify/lang-mumps.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-n.js b/blockly/webif/static/js/google-prettify/lang-n.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-nemerle.js b/blockly/webif/static/js/google-prettify/lang-nemerle.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-pascal.js b/blockly/webif/static/js/google-prettify/lang-pascal.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-proto.js b/blockly/webif/static/js/google-prettify/lang-proto.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-r.js b/blockly/webif/static/js/google-prettify/lang-r.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-rd.js b/blockly/webif/static/js/google-prettify/lang-rd.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-rkt.js b/blockly/webif/static/js/google-prettify/lang-rkt.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-rust.js b/blockly/webif/static/js/google-prettify/lang-rust.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-s.js b/blockly/webif/static/js/google-prettify/lang-s.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-scala.js b/blockly/webif/static/js/google-prettify/lang-scala.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-scm.js b/blockly/webif/static/js/google-prettify/lang-scm.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-splus.js b/blockly/webif/static/js/google-prettify/lang-splus.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-sql.js b/blockly/webif/static/js/google-prettify/lang-sql.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-ss.js b/blockly/webif/static/js/google-prettify/lang-ss.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-swift.js b/blockly/webif/static/js/google-prettify/lang-swift.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-tcl.js b/blockly/webif/static/js/google-prettify/lang-tcl.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-tex.js b/blockly/webif/static/js/google-prettify/lang-tex.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-vb.js b/blockly/webif/static/js/google-prettify/lang-vb.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-vbs.js b/blockly/webif/static/js/google-prettify/lang-vbs.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-vhd.js b/blockly/webif/static/js/google-prettify/lang-vhd.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-vhdl.js b/blockly/webif/static/js/google-prettify/lang-vhdl.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-wiki.js b/blockly/webif/static/js/google-prettify/lang-wiki.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-xq.js b/blockly/webif/static/js/google-prettify/lang-xq.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-xquery.js b/blockly/webif/static/js/google-prettify/lang-xquery.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-yaml.js b/blockly/webif/static/js/google-prettify/lang-yaml.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/lang-yml.js b/blockly/webif/static/js/google-prettify/lang-yml.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/prettify.css b/blockly/webif/static/js/google-prettify/prettify.css old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/prettify.js b/blockly/webif/static/js/google-prettify/prettify.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/run_prettify.js b/blockly/webif/static/js/google-prettify/run_prettify.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/skins/desert.css b/blockly/webif/static/js/google-prettify/skins/desert.css old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/skins/doxy.css b/blockly/webif/static/js/google-prettify/skins/doxy.css old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/skins/sons-of-obsidian.css b/blockly/webif/static/js/google-prettify/skins/sons-of-obsidian.css old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/google-prettify/skins/sunburst.css b/blockly/webif/static/js/google-prettify/skins/sunburst.css old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/jquery-3.2.1.js b/blockly/webif/static/js/jquery-3.2.1.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/jquery-3.2.1.min.js b/blockly/webif/static/js/jquery-3.2.1.min.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/logics_blockly_code.js b/blockly/webif/static/js/logics_blockly_code.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/js/npm.js b/blockly/webif/static/js/npm.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/shblocks/sh_items.js b/blockly/webif/static/shblocks/sh_items.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/shblocks/sh_logic.js b/blockly/webif/static/shblocks/sh_logic.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/shblocks/sh_notify.js b/blockly/webif/static/shblocks/sh_notify.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/shblocks/sh_time.js b/blockly/webif/static/shblocks/sh_time.js old mode 100644 new mode 100755 diff --git a/blockly/webif/static/shblocks/sh_tools.js b/blockly/webif/static/shblocks/sh_tools.js old mode 100644 new mode 100755 diff --git a/blockly/webif/templates/base.html b/blockly/webif/templates/base.html old mode 100644 new mode 100755 diff --git a/blockly/webif/templates/blockly.html b/blockly/webif/templates/blockly.html old mode 100644 new mode 100755 diff --git a/blockly/webif/templates/logics_blockly_toolbox.html b/blockly/webif/templates/logics_blockly_toolbox.html old mode 100644 new mode 100755 diff --git a/blockly/webif/templates/plugins/NppXmlTreeviewPlugin/logs/log-20191223.txt b/blockly/webif/templates/plugins/NppXmlTreeviewPlugin/logs/log-20191223.txt old mode 100644 new mode 100755 diff --git a/bose_soundtouch/README.md b/bose_soundtouch/README.md old mode 100644 new mode 100755 diff --git a/bose_soundtouch/__init__.py b/bose_soundtouch/__init__.py old mode 100644 new mode 100755 diff --git a/bose_soundtouch/plugin.yaml b/bose_soundtouch/plugin.yaml old mode 100644 new mode 100755 diff --git a/bose_soundtouch/requirements.txt b/bose_soundtouch/requirements.txt old mode 100644 new mode 100755 diff --git a/bose_soundtouch/user_doc.rst b/bose_soundtouch/user_doc.rst old mode 100644 new mode 100755 diff --git a/boxcar/README.md b/boxcar/README.md old mode 100644 new mode 100755 diff --git a/buderus/ErrorTypes.pdf b/buderus/ErrorTypes.pdf old mode 100644 new mode 100755 diff --git a/buderus/README.md b/buderus/README.md old mode 100644 new mode 100755 diff --git a/buderus/TODO.md b/buderus/TODO.md old mode 100644 new mode 100755 diff --git a/buderus/URLs.md b/buderus/URLs.md old mode 100644 new mode 100755 diff --git a/buderus/__init__.py b/buderus/__init__.py old mode 100644 new mode 100755 diff --git a/cli/README.md b/cli/README.md old mode 100644 new mode 100755 diff --git a/cli/_pv_1_3_0/README.md b/cli/_pv_1_3_0/README.md old mode 100644 new mode 100755 diff --git a/co2meter/README.md b/co2meter/README.md old mode 100644 new mode 100755 diff --git a/co2meter/__init__.py b/co2meter/__init__.py old mode 100644 new mode 100755 diff --git a/co2meter/plugin.yaml b/co2meter/plugin.yaml old mode 100644 new mode 100755 diff --git a/comfoair/README.md b/comfoair/README.md old mode 100644 new mode 100755 diff --git a/comfoair/commands.py b/comfoair/commands.py old mode 100644 new mode 100755 diff --git a/darksky/README.md b/darksky/README.md old mode 100644 new mode 100755 diff --git a/darksky/__init__.py b/darksky/__init__.py old mode 100644 new mode 100755 diff --git a/darksky/assets/webif1.jpg b/darksky/assets/webif1.jpg old mode 100644 new mode 100755 diff --git a/darksky/assets/webif2.jpg b/darksky/assets/webif2.jpg old mode 100644 new mode 100755 diff --git a/darksky/plugin.yaml b/darksky/plugin.yaml old mode 100644 new mode 100755 diff --git a/darksky/user_doc.rst b/darksky/user_doc.rst old mode 100644 new mode 100755 diff --git a/darksky/webif/static/img/plugin_logo.png b/darksky/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/darksky/webif/templates/index.html b/darksky/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/dashbutton/README.md b/dashbutton/README.md old mode 100644 new mode 100755 diff --git a/dashbutton/__init__.py b/dashbutton/__init__.py old mode 100644 new mode 100755 diff --git a/dashbutton/requirements.txt b/dashbutton/requirements.txt old mode 100644 new mode 100755 diff --git a/database/README.md b/database/README.md old mode 100644 new mode 100755 diff --git a/database/locale.yaml b/database/locale.yaml old mode 100644 new mode 100755 diff --git a/database/tests/__init__.py b/database/tests/__init__.py old mode 100644 new mode 100755 diff --git a/database/tests/base.py b/database/tests/base.py old mode 100644 new mode 100755 diff --git a/database/tests/test_basic.py b/database/tests/test_basic.py old mode 100644 new mode 100755 diff --git a/database/tests/test_items.yaml b/database/tests/test_items.yaml old mode 100644 new mode 100755 diff --git a/database/tests/test_series.py b/database/tests/test_series.py old mode 100644 new mode 100755 diff --git a/database/tests/test_single.py b/database/tests/test_single.py old mode 100644 new mode 100755 diff --git a/database/tools/sqlite2db_config.py b/database/tools/sqlite2db_config.py old mode 100644 new mode 100755 diff --git a/database/webif/static/img/plugin_logo.png b/database/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/database/webif/templates/base_database.html b/database/webif/templates/base_database.html old mode 100644 new mode 100755 diff --git a/database/webif/templates/index.html b/database/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/database/webif/templates/item_details.html b/database/webif/templates/item_details.html old mode 100644 new mode 100755 diff --git a/datalog/README.md b/datalog/README.md old mode 100644 new mode 100755 diff --git a/deprecated_plugins/jointspace/README.md b/deprecated_plugins/jointspace/README.md old mode 100644 new mode 100755 diff --git a/deprecated_plugins/modbus_shng_1_2/README.md b/deprecated_plugins/modbus_shng_1_2/README.md old mode 100644 new mode 100755 diff --git a/deprecated_plugins/visu_shng_1_2/README.md b/deprecated_plugins/visu_shng_1_2/README.md old mode 100644 new mode 100755 diff --git a/deprecated_plugins/visu_shng_1_2/generator.py b/deprecated_plugins/visu_shng_1_2/generator.py old mode 100644 new mode 100755 diff --git a/dlms/README.md b/dlms/README.md old mode 100644 new mode 100755 diff --git a/dlms/__init__.py b/dlms/__init__.py old mode 100644 new mode 100755 diff --git a/dlms/_pv_1_2_5/README.md b/dlms/_pv_1_2_5/README.md old mode 100644 new mode 100755 diff --git a/dlms/_pv_1_2_5/__init__.py b/dlms/_pv_1_2_5/__init__.py old mode 100644 new mode 100755 diff --git a/dlms/_pv_1_2_5/plugin.yaml b/dlms/_pv_1_2_5/plugin.yaml old mode 100644 new mode 100755 diff --git a/dlms/_pv_1_2_5/requirements.txt b/dlms/_pv_1_2_5/requirements.txt old mode 100644 new mode 100755 diff --git a/dlms/_pv_1_5_2/README.md b/dlms/_pv_1_5_2/README.md old mode 100644 new mode 100755 diff --git a/dlms/_pv_1_5_2/__init__.py b/dlms/_pv_1_5_2/__init__.py old mode 100644 new mode 100755 diff --git a/dlms/_pv_1_5_2/assets/webif1.png b/dlms/_pv_1_5_2/assets/webif1.png old mode 100644 new mode 100755 diff --git a/dlms/_pv_1_5_2/assets/webif2.png b/dlms/_pv_1_5_2/assets/webif2.png old mode 100644 new mode 100755 diff --git a/dlms/_pv_1_5_2/conversion.py b/dlms/_pv_1_5_2/conversion.py old mode 100644 new mode 100755 diff --git a/dlms/_pv_1_5_2/dlms.py b/dlms/_pv_1_5_2/dlms.py old mode 100644 new mode 100755 diff --git a/dlms/_pv_1_5_2/get_manufacturer_ids.py b/dlms/_pv_1_5_2/get_manufacturer_ids.py old mode 100644 new mode 100755 diff --git a/dlms/_pv_1_5_2/locale.yaml b/dlms/_pv_1_5_2/locale.yaml old mode 100644 new mode 100755 diff --git a/dlms/_pv_1_5_2/plugin.yaml b/dlms/_pv_1_5_2/plugin.yaml old mode 100644 new mode 100755 diff --git a/dlms/_pv_1_5_2/requirements.txt b/dlms/_pv_1_5_2/requirements.txt old mode 100644 new mode 100755 diff --git a/dlms/_pv_1_5_2/user_doc.rst b/dlms/_pv_1_5_2/user_doc.rst old mode 100644 new mode 100755 diff --git a/dlms/_pv_1_5_2/webif/static/img/readme.txt b/dlms/_pv_1_5_2/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/dlms/_pv_1_5_2/webif/templates/index.html b/dlms/_pv_1_5_2/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/dlms/assets/webif1.png b/dlms/assets/webif1.png old mode 100644 new mode 100755 diff --git a/dlms/assets/webif2.png b/dlms/assets/webif2.png old mode 100644 new mode 100755 diff --git a/dlms/conversion.py b/dlms/conversion.py old mode 100644 new mode 100755 diff --git a/dlms/dlms.py b/dlms/dlms.py old mode 100644 new mode 100755 diff --git a/dlms/get_manufacturer_ids.py b/dlms/get_manufacturer_ids.py old mode 100644 new mode 100755 diff --git a/dlms/locale.yaml b/dlms/locale.yaml old mode 100644 new mode 100755 diff --git a/dlms/plugin.yaml b/dlms/plugin.yaml old mode 100644 new mode 100755 diff --git a/dlms/requirements.txt b/dlms/requirements.txt old mode 100644 new mode 100755 diff --git a/dlms/user_doc.rst b/dlms/user_doc.rst old mode 100644 new mode 100755 diff --git a/dlms/webif/static/img/plugin_logo.png b/dlms/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/dlms/webif/static/img/readme.txt b/dlms/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/dlms/webif/templates/index.html b/dlms/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/dmx/README.md b/dmx/README.md old mode 100644 new mode 100755 diff --git a/dmx/_pv_1_4_0/README.md b/dmx/_pv_1_4_0/README.md old mode 100644 new mode 100755 diff --git a/dmx/_pv_1_4_0/__init__.py b/dmx/_pv_1_4_0/__init__.py old mode 100644 new mode 100755 diff --git a/dmx/_pv_1_4_0/plugin.yaml b/dmx/_pv_1_4_0/plugin.yaml old mode 100644 new mode 100755 diff --git a/dmx/locale.yaml b/dmx/locale.yaml old mode 100644 new mode 100755 diff --git a/dmx/requirements.txt b/dmx/requirements.txt old mode 100644 new mode 100755 diff --git a/dmx/user_doc.rst b/dmx/user_doc.rst old mode 100644 new mode 100755 diff --git a/dmx/webif/static/img/readme.txt b/dmx/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/dmx/webif/templates/index.html b/dmx/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/drexelundweiss/DrexelWeiss.yaml b/drexelundweiss/DrexelWeiss.yaml old mode 100644 new mode 100755 diff --git a/drexelundweiss/README.md b/drexelundweiss/README.md old mode 100644 new mode 100755 diff --git a/drexelundweiss/aerosilent_bianco.txt b/drexelundweiss/aerosilent_bianco.txt old mode 100644 new mode 100755 diff --git a/drexelundweiss/aerosilent_business.txt b/drexelundweiss/aerosilent_business.txt old mode 100644 new mode 100755 diff --git a/drexelundweiss/aerosilent_centro.txt b/drexelundweiss/aerosilent_centro.txt old mode 100644 new mode 100755 diff --git a/drexelundweiss/aerosilent_exos.txt b/drexelundweiss/aerosilent_exos.txt old mode 100644 new mode 100755 diff --git a/drexelundweiss/aerosilent_micro.txt b/drexelundweiss/aerosilent_micro.txt old mode 100644 new mode 100755 diff --git a/drexelundweiss/aerosilent_primus.txt b/drexelundweiss/aerosilent_primus.txt old mode 100644 new mode 100755 diff --git a/drexelundweiss/aerosilent_stratos.txt b/drexelundweiss/aerosilent_stratos.txt old mode 100644 new mode 100755 diff --git a/drexelundweiss/aerosilent_topo.txt b/drexelundweiss/aerosilent_topo.txt old mode 100644 new mode 100755 diff --git a/drexelundweiss/aerosmart_l.txt b/drexelundweiss/aerosmart_l.txt old mode 100644 new mode 100755 diff --git a/drexelundweiss/aerosmart_m.txt b/drexelundweiss/aerosmart_m.txt old mode 100644 new mode 100755 diff --git a/drexelundweiss/aerosmart_mono.txt b/drexelundweiss/aerosmart_mono.txt old mode 100644 new mode 100755 diff --git a/drexelundweiss/aerosmart_s.txt b/drexelundweiss/aerosmart_s.txt old mode 100644 new mode 100755 diff --git a/drexelundweiss/aerosmart_xls.txt b/drexelundweiss/aerosmart_xls.txt old mode 100644 new mode 100755 diff --git a/drexelundweiss/termosmart_sc.txt b/drexelundweiss/termosmart_sc.txt old mode 100644 new mode 100755 diff --git a/drexelundweiss/x2.txt b/drexelundweiss/x2.txt old mode 100644 new mode 100755 diff --git a/drexelundweiss/x2_plus.txt b/drexelundweiss/x2_plus.txt old mode 100644 new mode 100755 diff --git a/easymeter/README.md b/easymeter/README.md old mode 100644 new mode 100755 diff --git a/ebus/README.md.old b/ebus/README.md.old old mode 100644 new mode 100755 diff --git a/ebus/_pv_1_0_1/README.md b/ebus/_pv_1_0_1/README.md old mode 100644 new mode 100755 diff --git a/ebus/_pv_1_0_1/__init__.py b/ebus/_pv_1_0_1/__init__.py old mode 100644 new mode 100755 diff --git a/ebus/_pv_1_0_1/plugin.yaml b/ebus/_pv_1_0_1/plugin.yaml old mode 100644 new mode 100755 diff --git a/ecmd/README.md b/ecmd/README.md old mode 100644 new mode 100755 diff --git a/elro/README.md b/elro/README.md old mode 100644 new mode 100755 diff --git a/elro/__init__.py b/elro/__init__.py old mode 100644 new mode 100755 diff --git a/enigma2/README.md b/enigma2/README.md old mode 100644 new mode 100755 diff --git a/enigma2/__init__.py b/enigma2/__init__.py old mode 100644 new mode 100755 diff --git a/enigma2/requirements.txt b/enigma2/requirements.txt old mode 100644 new mode 100755 diff --git a/enigma2/sv_widgets/circle_blue.png b/enigma2/sv_widgets/circle_blue.png old mode 100644 new mode 100755 diff --git a/enigma2/sv_widgets/circle_green2.png b/enigma2/sv_widgets/circle_green2.png old mode 100644 new mode 100755 diff --git a/enigma2/sv_widgets/circle_red.png b/enigma2/sv_widgets/circle_red.png old mode 100644 new mode 100755 diff --git a/enigma2/sv_widgets/circle_yellow.png b/enigma2/sv_widgets/circle_yellow.png old mode 100644 new mode 100755 diff --git a/enigma2/sv_widgets/control_centr_arrow_down_left_red_fill.png b/enigma2/sv_widgets/control_centr_arrow_down_left_red_fill.png old mode 100644 new mode 100755 diff --git a/enigma2/sv_widgets/control_centr_arrow_down_right_blue_fill.png b/enigma2/sv_widgets/control_centr_arrow_down_right_blue_fill.png old mode 100644 new mode 100755 diff --git a/enigma2/sv_widgets/control_centr_arrow_up_left_green_fill.png b/enigma2/sv_widgets/control_centr_arrow_up_left_green_fill.png old mode 100644 new mode 100755 diff --git a/enigma2/sv_widgets/control_centr_arrow_up_right_yellow_fill.png b/enigma2/sv_widgets/control_centr_arrow_up_right_yellow_fill.png old mode 100644 new mode 100755 diff --git a/enocean/README.md b/enocean/README.md old mode 100644 new mode 100755 diff --git a/enocean/__init__.py b/enocean/__init__.py old mode 100644 new mode 100755 diff --git a/enocean/eep_parser.py b/enocean/eep_parser.py old mode 100644 new mode 100755 diff --git a/enocean/locale.yaml b/enocean/locale.yaml old mode 100644 new mode 100755 diff --git a/enocean/prepare_packet_data.py b/enocean/prepare_packet_data.py old mode 100644 new mode 100755 diff --git a/enocean/webif/static/img/plugin_logo.png b/enocean/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/enocean/webif/templates/base_enocean.html b/enocean/webif/templates/base_enocean.html old mode 100644 new mode 100755 diff --git a/enocean/webif/templates/index.html b/enocean/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/eta_pu/README.md b/eta_pu/README.md old mode 100644 new mode 100755 diff --git a/executor/README.md b/executor/README.md old mode 100644 new mode 100755 diff --git a/executor/__init__.py b/executor/__init__.py old mode 100644 new mode 100755 diff --git a/executor/locale.yaml b/executor/locale.yaml old mode 100644 new mode 100755 diff --git a/executor/plugin.yaml b/executor/plugin.yaml old mode 100644 new mode 100755 diff --git a/executor/webif/static/img/readme.txt b/executor/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/executor/webif/templates/index.html b/executor/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/garminconnect/__init__.py b/garminconnect/__init__.py old mode 100644 new mode 100755 diff --git a/garminconnect/locale.yaml b/garminconnect/locale.yaml old mode 100644 new mode 100755 diff --git a/garminconnect/plugin.yaml b/garminconnect/plugin.yaml old mode 100644 new mode 100755 diff --git a/garminconnect/requirements.txt b/garminconnect/requirements.txt old mode 100644 new mode 100755 diff --git a/garminconnect/webif/static/img/plugin_logo.png b/garminconnect/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/garminconnect/webif/templates/index.html b/garminconnect/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/gpio/webif/static/img/plugin_logo.png b/gpio/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/harmony/README.md b/harmony/README.md old mode 100644 new mode 100755 diff --git a/harmony/__init__.py b/harmony/__init__.py old mode 100644 new mode 100755 diff --git a/harmony/get_activities.py b/harmony/get_activities.py old mode 100644 new mode 100755 diff --git a/harmony/get_config.py b/harmony/get_config.py old mode 100644 new mode 100755 diff --git a/helios/README.md b/helios/README.md old mode 100644 new mode 100755 diff --git a/helios/files/helios.yaml b/helios/files/helios.yaml old mode 100644 new mode 100755 diff --git a/helios_tcp/__init__.py b/helios_tcp/__init__.py old mode 100644 new mode 100755 diff --git a/helios_tcp/plugin.yaml b/helios_tcp/plugin.yaml old mode 100644 new mode 100755 diff --git a/helios_tcp/requirements.txt b/helios_tcp/requirements.txt old mode 100644 new mode 100755 diff --git a/helios_tcp/user_doc.rst b/helios_tcp/user_doc.rst old mode 100644 new mode 100755 diff --git a/hue/README.md b/hue/README.md old mode 100644 new mode 100755 diff --git a/hue/_pv_1_1_83/README.md b/hue/_pv_1_1_83/README.md old mode 100644 new mode 100755 diff --git a/iaqstick/README.md b/iaqstick/README.md old mode 100644 new mode 100755 diff --git a/iaqstick/__init__.py b/iaqstick/__init__.py old mode 100644 new mode 100755 diff --git a/iaqstick/requirements.txt b/iaqstick/requirements.txt old mode 100644 new mode 100755 diff --git a/indego/README.md b/indego/README.md old mode 100644 new mode 100755 diff --git a/indego/__init__.py b/indego/__init__.py old mode 100644 new mode 100755 diff --git a/indego/example.yaml b/indego/example.yaml old mode 100644 new mode 100755 diff --git a/indego/locale.yaml b/indego/locale.yaml old mode 100644 new mode 100755 diff --git a/indego/plugin.yaml b/indego/plugin.yaml old mode 100644 new mode 100755 diff --git a/indego/smartVISU_dropins/icons/ws/lawn.svg b/indego/smartVISU_dropins/icons/ws/lawn.svg old mode 100644 new mode 100755 diff --git a/indego/smartVISU_dropins/icons/ws/lawn_2.svg b/indego/smartVISU_dropins/icons/ws/lawn_2.svg old mode 100644 new mode 100755 diff --git a/indego/smartVISU_dropins/icons/ws/lawnmover_2.svg b/indego/smartVISU_dropins/icons/ws/lawnmover_2.svg old mode 100644 new mode 100755 diff --git a/indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_dock.svg b/indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_dock.svg old mode 100644 new mode 100755 diff --git a/indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_docked.svg b/indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_docked.svg old mode 100644 new mode 100755 diff --git a/indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_help.svg b/indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_help.svg old mode 100644 new mode 100755 diff --git a/indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_moving.svg b/indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_moving.svg old mode 100644 new mode 100755 diff --git a/indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_offline.svg b/indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_offline.svg old mode 100644 new mode 100755 diff --git a/indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_online.svg b/indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_online.svg old mode 100644 new mode 100755 diff --git a/indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_start.svg b/indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_start.svg old mode 100644 new mode 100755 diff --git a/indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_stop.svg b/indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_stop.svg old mode 100644 new mode 100755 diff --git a/indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_stopp.svg b/indego/smartVISU_dropins/icons/ws/scene_robo_lawnmower_stopp.svg old mode 100644 new mode 100755 diff --git a/indego/smartVISU_dropins/lib/weather/pics/cloud_10.png b/indego/smartVISU_dropins/lib/weather/pics/cloud_10.png old mode 100644 new mode 100755 diff --git a/indego/smartVISU_dropins/lib/weather/pics/cloud_5.png b/indego/smartVISU_dropins/lib/weather/pics/cloud_5.png old mode 100644 new mode 100755 diff --git a/indego/smartVISU_dropins/lib/weather/pics/cloud_8.png b/indego/smartVISU_dropins/lib/weather/pics/cloud_8.png old mode 100644 new mode 100755 diff --git a/indego/smartVISU_dropins/lib/weather/pics/sun_1.png b/indego/smartVISU_dropins/lib/weather/pics/sun_1.png old mode 100644 new mode 100755 diff --git a/indego/smartVISU_dropins/lib/weather/pics/sun_5.png b/indego/smartVISU_dropins/lib/weather/pics/sun_5.png old mode 100644 new mode 100755 diff --git a/indego/smartVISU_dropins/pages/your pages folder/indego.html b/indego/smartVISU_dropins/pages/your pages folder/indego.html old mode 100644 new mode 100755 diff --git a/indego/smartVISU_dropins/pages/your pages folder/widget_basic_input.html b/indego/smartVISU_dropins/pages/your pages folder/widget_basic_input.html old mode 100644 new mode 100755 diff --git a/indego/smartVISU_dropins/pages/your pages folder/widget_basic_large_symbol.html b/indego/smartVISU_dropins/pages/your pages folder/widget_basic_large_symbol.html old mode 100644 new mode 100755 diff --git a/indego/webif/static/img/readme.txt b/indego/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/indego/webif/templates/index.html b/indego/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/influxdata/README.md b/influxdata/README.md old mode 100644 new mode 100755 diff --git a/influxdata/__init__.py b/influxdata/__init__.py old mode 100644 new mode 100755 diff --git a/influxdb/README.md b/influxdb/README.md old mode 100644 new mode 100755 diff --git a/influxdb/__init__.py b/influxdb/__init__.py old mode 100644 new mode 100755 diff --git a/intercom_2n/README.md b/intercom_2n/README.md old mode 100644 new mode 100755 diff --git a/intercom_2n/__init__.py b/intercom_2n/__init__.py old mode 100644 new mode 100755 diff --git a/intercom_2n/commands.py b/intercom_2n/commands.py old mode 100644 new mode 100755 diff --git a/intercom_2n/core.py b/intercom_2n/core.py old mode 100644 new mode 100755 diff --git a/intercom_2n/example/2n_intercom.yaml b/intercom_2n/example/2n_intercom.yaml old mode 100644 new mode 100755 diff --git a/intercom_2n/requirements.txt b/intercom_2n/requirements.txt old mode 100644 new mode 100755 diff --git a/join/README.md b/join/README.md old mode 100644 new mode 100755 diff --git a/join/__init__.py b/join/__init__.py old mode 100644 new mode 100755 diff --git a/join/requirements.txt b/join/requirements.txt old mode 100644 new mode 100755 diff --git a/jsonread/README.md b/jsonread/README.md old mode 100644 new mode 100755 diff --git a/jsonread/__init__.py b/jsonread/__init__.py old mode 100644 new mode 100755 diff --git a/jsonread/requirements.txt b/jsonread/requirements.txt old mode 100644 new mode 100755 diff --git a/jvcproj/LICENCE b/jvcproj/LICENCE old mode 100644 new mode 100755 diff --git a/jvcproj/README.md b/jvcproj/README.md old mode 100644 new mode 100755 diff --git a/jvcproj/__init__.py b/jvcproj/__init__.py old mode 100644 new mode 100755 diff --git a/jvcproj/plugin.yaml b/jvcproj/plugin.yaml old mode 100644 new mode 100755 diff --git a/kathrein/README.md b/kathrein/README.md old mode 100644 new mode 100755 diff --git a/kathrein/_pv_1_4_0/README.md b/kathrein/_pv_1_4_0/README.md old mode 100644 new mode 100755 diff --git a/kathrein/_pv_1_4_0/__init__.py b/kathrein/_pv_1_4_0/__init__.py old mode 100644 new mode 100755 diff --git a/kathrein/_pv_1_4_0/plugin.yaml b/kathrein/_pv_1_4_0/plugin.yaml old mode 100644 new mode 100755 diff --git a/kathrein/locale.yaml b/kathrein/locale.yaml old mode 100644 new mode 100755 diff --git a/kathrein/webif/static/img/readme.txt b/kathrein/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/kathrein/webif/templates/index.html b/kathrein/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/knx/Check_KNX.py b/knx/Check_KNX.py old mode 100644 new mode 100755 diff --git a/knx/dpts.py b/knx/dpts.py old mode 100644 new mode 100755 diff --git a/knx/pv_1_3_4/README.md b/knx/pv_1_3_4/README.md old mode 100644 new mode 100755 diff --git a/kodi/README.md b/kodi/README.md old mode 100644 new mode 100755 diff --git a/kostal/README.md b/kostal/README.md old mode 100644 new mode 100755 diff --git a/kostalmodbus/README.md b/kostalmodbus/README.md old mode 100644 new mode 100755 diff --git a/kostalmodbus/__init__.py b/kostalmodbus/__init__.py old mode 100644 new mode 100755 diff --git a/kostalmodbus/files/kostal_item_template.yaml b/kostalmodbus/files/kostal_item_template.yaml old mode 100644 new mode 100755 diff --git a/kostalmodbus/inverter.py b/kostalmodbus/inverter.py old mode 100644 new mode 100755 diff --git a/kostalmodbus/plugin.yaml b/kostalmodbus/plugin.yaml old mode 100644 new mode 100755 diff --git a/kostalmodbus/requirements.txt b/kostalmodbus/requirements.txt old mode 100644 new mode 100755 diff --git a/ksemmodbus/README.md b/ksemmodbus/README.md old mode 100644 new mode 100755 diff --git a/ksemmodbus/__init__.py b/ksemmodbus/__init__.py old mode 100644 new mode 100755 diff --git a/ksemmodbus/files/kostal_item_template.yaml b/ksemmodbus/files/kostal_item_template.yaml old mode 100644 new mode 100755 diff --git a/ksemmodbus/ksem.py b/ksemmodbus/ksem.py old mode 100644 new mode 100755 diff --git a/ksemmodbus/plugin.yaml b/ksemmodbus/plugin.yaml old mode 100644 new mode 100755 diff --git a/ksemmodbus/requirements.txt b/ksemmodbus/requirements.txt old mode 100644 new mode 100755 diff --git a/lirc/README.md b/lirc/README.md old mode 100644 new mode 100755 diff --git a/lirc/__init__.py b/lirc/__init__.py old mode 100644 new mode 100755 diff --git a/lirc/plugin.yaml b/lirc/plugin.yaml old mode 100644 new mode 100755 diff --git a/logo/README.md b/logo/README.md old mode 100644 new mode 100755 diff --git a/logo/__init__.py b/logo/__init__.py old mode 100644 new mode 100755 diff --git a/logo/libnodave.so b/logo/libnodave.so old mode 100644 new mode 100755 diff --git a/luxtronic2/README.md b/luxtronic2/README.md old mode 100644 new mode 100755 diff --git a/mail/README.md b/mail/README.md old mode 100644 new mode 100755 diff --git a/mailrcv/README.md b/mailrcv/README.md old mode 100644 new mode 100755 diff --git a/mailrcv/__init__.py b/mailrcv/__init__.py old mode 100644 new mode 100755 diff --git a/mailrcv/plugin.yaml b/mailrcv/plugin.yaml old mode 100644 new mode 100755 diff --git a/mailsend/README.md b/mailsend/README.md old mode 100644 new mode 100755 diff --git a/mailsend/__init__.py b/mailsend/__init__.py old mode 100644 new mode 100755 diff --git a/mailsend/plugin.yaml b/mailsend/plugin.yaml old mode 100644 new mode 100755 diff --git a/memlog/README.md b/memlog/README.md old mode 100644 new mode 100755 diff --git a/memlog/_pv_1_3_0/README.md b/memlog/_pv_1_3_0/README.md old mode 100644 new mode 100755 diff --git a/memlog/_pv_1_3_0/__init__.py b/memlog/_pv_1_3_0/__init__.py old mode 100644 new mode 100755 diff --git a/memlog/_pv_1_3_0/plugin.yaml b/memlog/_pv_1_3_0/plugin.yaml old mode 100644 new mode 100755 diff --git a/memlog/callable.png b/memlog/callable.png old mode 100644 new mode 100755 diff --git a/memlog/webif/static/img/readme.txt b/memlog/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/memlog/webif/templates/index.html b/memlog/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/miflora/README.md b/miflora/README.md old mode 100644 new mode 100755 diff --git a/miflora/__init__.py b/miflora/__init__.py old mode 100644 new mode 100755 diff --git a/miflora/locale.yaml b/miflora/locale.yaml old mode 100644 new mode 100755 diff --git a/miflora/plugin.yaml b/miflora/plugin.yaml old mode 100644 new mode 100755 diff --git a/miflora/requirements.txt b/miflora/requirements.txt old mode 100644 new mode 100755 diff --git a/miflora/webif/static/img/plugin_logo.png b/miflora/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/miflora/webif/templates/index.html b/miflora/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/milight/README.md b/milight/README.md old mode 100644 new mode 100755 diff --git a/milight/__init__.py b/milight/__init__.py old mode 100644 new mode 100755 diff --git a/milight/_pv_1_3_0/README.md b/milight/_pv_1_3_0/README.md old mode 100644 new mode 100755 diff --git a/milight/_pv_1_3_0/__init__.py b/milight/_pv_1_3_0/__init__.py old mode 100644 new mode 100755 diff --git a/milight/_pv_1_3_0/plugin.yaml b/milight/_pv_1_3_0/plugin.yaml old mode 100644 new mode 100755 diff --git a/milight/locale.yaml b/milight/locale.yaml old mode 100644 new mode 100755 diff --git a/milight/webif/static/img/readme.txt b/milight/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/milight/webif/templates/index.html b/milight/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/mlgw/README.md b/mlgw/README.md old mode 100644 new mode 100755 diff --git a/mlgw/__init__.py b/mlgw/__init__.py old mode 100644 new mode 100755 diff --git a/mpd/README.md b/mpd/README.md old mode 100644 new mode 100755 diff --git a/mqtt/README.md b/mqtt/README.md old mode 100644 new mode 100755 diff --git a/mqtt/__init__.py b/mqtt/__init__.py old mode 100644 new mode 100755 diff --git a/mqtt/locale.yaml b/mqtt/locale.yaml old mode 100644 new mode 100755 diff --git a/mqtt/plugin.yaml b/mqtt/plugin.yaml old mode 100644 new mode 100755 diff --git a/mqtt/webif/static/img/plugin_logo.png b/mqtt/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/mqtt/webif/static/img/readme.txt b/mqtt/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/mqtt/webif/templates/index.html b/mqtt/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/mqtt1/README.md b/mqtt1/README.md old mode 100644 new mode 100755 diff --git a/mqtt1/__init__.py b/mqtt1/__init__.py old mode 100644 new mode 100755 diff --git a/mqtt1/_pv_1_0_1/README.md b/mqtt1/_pv_1_0_1/README.md old mode 100644 new mode 100755 diff --git a/mqtt1/_pv_1_0_1/__init__.py b/mqtt1/_pv_1_0_1/__init__.py old mode 100644 new mode 100755 diff --git a/mqtt1/_pv_1_0_1/plugin.yaml b/mqtt1/_pv_1_0_1/plugin.yaml old mode 100644 new mode 100755 diff --git a/mqtt1/assets/webif1.jpg b/mqtt1/assets/webif1.jpg old mode 100644 new mode 100755 diff --git a/mqtt1/assets/webif2.jpg b/mqtt1/assets/webif2.jpg old mode 100644 new mode 100755 diff --git a/mqtt1/locale.yaml b/mqtt1/locale.yaml old mode 100644 new mode 100755 diff --git a/mqtt1/plugin.yaml b/mqtt1/plugin.yaml old mode 100644 new mode 100755 diff --git a/mqtt1/requirements.txt b/mqtt1/requirements.txt old mode 100644 new mode 100755 diff --git a/mqtt1/user_doc.rst b/mqtt1/user_doc.rst old mode 100644 new mode 100755 diff --git a/mqtt1/webif/static/img/plugin_logo.png b/mqtt1/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/mqtt1/webif/templates/index.html b/mqtt1/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/mvg_live/README.md b/mvg_live/README.md old mode 100644 new mode 100755 diff --git a/mvg_live/__init__.py b/mvg_live/__init__.py old mode 100644 new mode 100755 diff --git a/mvg_live/mvg.PNG b/mvg_live/mvg.PNG old mode 100644 new mode 100755 diff --git a/mvg_live/requirements.txt b/mvg_live/requirements.txt old mode 100644 new mode 100755 diff --git a/neato/README.md b/neato/README.md old mode 100644 new mode 100755 diff --git a/neato/__init__.py b/neato/__init__.py old mode 100644 new mode 100755 diff --git a/neato/plugin.yaml b/neato/plugin.yaml old mode 100644 new mode 100755 diff --git a/neato/requirements.txt b/neato/requirements.txt old mode 100644 new mode 100755 diff --git a/neato/robot.py b/neato/robot.py old mode 100644 new mode 100755 diff --git a/netio230b/README.md b/netio230b/README.md old mode 100644 new mode 100755 diff --git a/network/README.md b/network/README.md old mode 100644 new mode 100755 diff --git a/nma/README.md b/nma/README.md old mode 100644 new mode 100755 diff --git a/nuki/README.md b/nuki/README.md old mode 100644 new mode 100755 diff --git a/nuki/__init__.py b/nuki/__init__.py old mode 100644 new mode 100755 diff --git a/nuki/locale.yaml b/nuki/locale.yaml old mode 100644 new mode 100755 diff --git a/nuki/requirements.txt b/nuki/requirements.txt old mode 100644 new mode 100755 diff --git a/nuki/webif/static/img/plugin_logo.png b/nuki/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/nuki/webif/templates/index.html b/nuki/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/nut/README.md b/nut/README.md old mode 100644 new mode 100755 diff --git a/nut/__init__.py b/nut/__init__.py old mode 100644 new mode 100755 diff --git a/odlinfo/README.md b/odlinfo/README.md old mode 100644 new mode 100755 diff --git a/odlinfo/__init__.py b/odlinfo/__init__.py old mode 100644 new mode 100755 diff --git a/odlinfo/requirements.txt b/odlinfo/requirements.txt old mode 100644 new mode 100755 diff --git a/onewire/README.md b/onewire/README.md old mode 100644 new mode 100755 diff --git a/onewire/_pv_1_4_0/README.md b/onewire/_pv_1_4_0/README.md old mode 100644 new mode 100755 diff --git a/onewire/_pv_1_4_0/__init__.py b/onewire/_pv_1_4_0/__init__.py old mode 100644 new mode 100755 diff --git a/onewire/_pv_1_4_0/plugin.yaml b/onewire/_pv_1_4_0/plugin.yaml old mode 100644 new mode 100755 diff --git a/onewire/locale.yaml b/onewire/locale.yaml old mode 100644 new mode 100755 diff --git a/onewire/owbase.py b/onewire/owbase.py old mode 100644 new mode 100755 diff --git a/onewire/webif/static/img/readme.txt b/onewire/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/onewire/webif/templates/index.html b/onewire/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/openenergymonitor/README.md b/openenergymonitor/README.md old mode 100644 new mode 100755 diff --git a/openenergymonitor/__init__.py b/openenergymonitor/__init__.py old mode 100644 new mode 100755 diff --git a/openweathermap/README.md b/openweathermap/README.md old mode 100644 new mode 100755 diff --git a/openweathermap/__init__.py b/openweathermap/__init__.py old mode 100644 new mode 100755 diff --git a/openweathermap/assets/webif1.jpg b/openweathermap/assets/webif1.jpg old mode 100644 new mode 100755 diff --git a/openweathermap/assets/webif2.jpg b/openweathermap/assets/webif2.jpg old mode 100644 new mode 100755 diff --git a/openweathermap/plugin.yaml b/openweathermap/plugin.yaml old mode 100644 new mode 100755 diff --git a/openweathermap/user_doc.rst b/openweathermap/user_doc.rst old mode 100644 new mode 100755 diff --git a/openweathermap/webif/static/img/plugin_logo.png b/openweathermap/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/openweathermap/webif/templates/index.html b/openweathermap/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/operationlog/AutoBlindLoggerOLog.py b/operationlog/AutoBlindLoggerOLog.py old mode 100644 new mode 100755 diff --git a/plex/README.md b/plex/README.md old mode 100644 new mode 100755 diff --git a/plex/__init__.py b/plex/__init__.py old mode 100644 new mode 100755 diff --git a/pluggit/README.md b/pluggit/README.md old mode 100644 new mode 100755 diff --git a/pluggit/pluggit.yaml b/pluggit/pluggit.yaml old mode 100644 new mode 100755 diff --git a/prowl/README.md b/prowl/README.md old mode 100644 new mode 100755 diff --git a/prowl/__init__.py b/prowl/__init__.py old mode 100644 new mode 100755 diff --git a/pushbullet/README.md b/pushbullet/README.md old mode 100644 new mode 100755 diff --git a/pushbullet/requirements.txt b/pushbullet/requirements.txt old mode 100644 new mode 100755 diff --git a/pushover/README.md b/pushover/README.md old mode 100644 new mode 100755 diff --git a/pushover/_pv_1_3_1/README.md b/pushover/_pv_1_3_1/README.md old mode 100644 new mode 100755 diff --git a/pushover/_pv_1_3_1/requirements.txt b/pushover/_pv_1_3_1/requirements.txt old mode 100644 new mode 100755 diff --git a/raumfeld/README.md b/raumfeld/README.md old mode 100644 new mode 100755 diff --git a/raumfeld/__init__.py b/raumfeld/__init__.py old mode 100644 new mode 100755 diff --git a/rcswitch/README.md b/rcswitch/README.md old mode 100644 new mode 100755 diff --git a/roomba/README.md b/roomba/README.md old mode 100644 new mode 100755 diff --git a/roomba/__init__.py b/roomba/__init__.py old mode 100644 new mode 100755 diff --git a/roomba/_pv_1_4_0/README.md b/roomba/_pv_1_4_0/README.md old mode 100644 new mode 100755 diff --git a/roomba/_pv_1_4_0/__init__.py b/roomba/_pv_1_4_0/__init__.py old mode 100644 new mode 100755 diff --git a/roomba/_pv_1_4_0/plugin.yaml b/roomba/_pv_1_4_0/plugin.yaml old mode 100644 new mode 100755 diff --git a/roomba/locale.yaml b/roomba/locale.yaml old mode 100644 new mode 100755 diff --git a/roomba/webif/static/img/readme.txt b/roomba/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/roomba/webif/templates/index.html b/roomba/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/roomba_980/README.md b/roomba_980/README.md old mode 100644 new mode 100755 diff --git a/roomba_980/plugin.yaml b/roomba_980/plugin.yaml old mode 100644 new mode 100755 diff --git a/rpi1wire/README.md b/rpi1wire/README.md old mode 100644 new mode 100755 diff --git a/rpi1wire/__init__.py b/rpi1wire/__init__.py old mode 100644 new mode 100755 diff --git a/rpi1wire/_pv_1_4_0/README.md b/rpi1wire/_pv_1_4_0/README.md old mode 100644 new mode 100755 diff --git a/rpi1wire/_pv_1_4_0/__init__.py b/rpi1wire/_pv_1_4_0/__init__.py old mode 100644 new mode 100755 diff --git a/rpi1wire/locale.yaml b/rpi1wire/locale.yaml old mode 100644 new mode 100755 diff --git a/rpi1wire/plugin.yaml b/rpi1wire/plugin.yaml old mode 100644 new mode 100755 diff --git a/rpi1wire/webif/static/img/readme.txt b/rpi1wire/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/rpi1wire/webif/templates/index.html b/rpi1wire/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/rrd/README.md b/rrd/README.md old mode 100644 new mode 100755 diff --git a/rrd/_pv_1_0_0/README.md b/rrd/_pv_1_0_0/README.md old mode 100644 new mode 100755 diff --git a/rrd/_pv_1_0_0/__init__.py b/rrd/_pv_1_0_0/__init__.py old mode 100644 new mode 100755 diff --git a/rrd/_pv_1_0_0/plugin.yaml b/rrd/_pv_1_0_0/plugin.yaml old mode 100644 new mode 100755 diff --git a/rrd/locale.yaml b/rrd/locale.yaml old mode 100644 new mode 100755 diff --git a/rrd/requirements.txt b/rrd/requirements.txt old mode 100644 new mode 100755 diff --git a/rrd/webif/static/img/readme.txt b/rrd/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/rrd/webif/templates/index.html b/rrd/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/rtr/README.md b/rtr/README.md old mode 100644 new mode 100755 diff --git a/rtr/__init__.py b/rtr/__init__.py old mode 100644 new mode 100755 diff --git a/rtr/sv_widgets/widget_rtr.html b/rtr/sv_widgets/widget_rtr.html old mode 100644 new mode 100755 diff --git a/rtr/sv_widgets/widget_rtr.js b/rtr/sv_widgets/widget_rtr.js old mode 100644 new mode 100755 diff --git a/russound/README.md b/russound/README.md old mode 100644 new mode 100755 diff --git a/russound/_pv_1_4_0/README.md b/russound/_pv_1_4_0/README.md old mode 100644 new mode 100755 diff --git a/russound/_pv_1_4_0/__init__.py b/russound/_pv_1_4_0/__init__.py old mode 100644 new mode 100755 diff --git a/russound/_pv_1_4_0/plugin.yaml b/russound/_pv_1_4_0/plugin.yaml old mode 100644 new mode 100755 diff --git a/russound/locale.yaml b/russound/locale.yaml old mode 100644 new mode 100755 diff --git a/russound/webif/static/img/readme.txt b/russound/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/russound/webif/templates/index.html b/russound/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/shelly/__init__.py b/shelly/__init__.py old mode 100644 new mode 100755 diff --git a/shelly/locale.yaml b/shelly/locale.yaml old mode 100644 new mode 100755 diff --git a/shelly/plugin.yaml b/shelly/plugin.yaml old mode 100644 new mode 100755 diff --git a/shelly/user_doc.rst b/shelly/user_doc.rst old mode 100644 new mode 100755 diff --git a/shelly/user_doc/assets/shelly-webif-brokerinfo.jpg b/shelly/user_doc/assets/shelly-webif-brokerinfo.jpg old mode 100644 new mode 100755 diff --git a/shelly/user_doc/assets/shelly-webif-devices.jpg b/shelly/user_doc/assets/shelly-webif-devices.jpg old mode 100644 new mode 100755 diff --git a/shelly/user_doc/assets/shelly-webif-items.jpg b/shelly/user_doc/assets/shelly-webif-items.jpg old mode 100644 new mode 100755 diff --git a/shelly/webif/static/img/plugin_logo.png b/shelly/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/shelly/webif/static/img/readme.txt b/shelly/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/shelly/webif/templates/index.html b/shelly/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/simulation/README.md b/simulation/README.md old mode 100644 new mode 100755 diff --git a/simulation/__init__.py b/simulation/__init__.py old mode 100644 new mode 100755 diff --git a/simulation/items.yaml b/simulation/items.yaml old mode 100644 new mode 100755 diff --git a/simulation/lamps/lamp_green.png b/simulation/lamps/lamp_green.png old mode 100644 new mode 100755 diff --git a/simulation/lamps/lamp_off.png b/simulation/lamps/lamp_off.png old mode 100644 new mode 100755 diff --git a/simulation/lamps/lamp_orange.png b/simulation/lamps/lamp_orange.png old mode 100644 new mode 100755 diff --git a/simulation/lamps/lamp_purple.png b/simulation/lamps/lamp_purple.png old mode 100644 new mode 100755 diff --git a/simulation/lamps/lamp_red.png b/simulation/lamps/lamp_red.png old mode 100644 new mode 100755 diff --git a/simulation/lamps/lamp_sim.svg b/simulation/lamps/lamp_sim.svg old mode 100644 new mode 100755 diff --git a/simulation/locale.yaml b/simulation/locale.yaml old mode 100644 new mode 100755 diff --git a/simulation/screenshot.png b/simulation/screenshot.png old mode 100644 new mode 100755 diff --git a/simulation/state_diagram.png b/simulation/state_diagram.png old mode 100644 new mode 100755 diff --git a/simulation/webif/static/img/plugin_logo.png b/simulation/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/simulation/webif/templates/index.html b/simulation/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/slack/README.md b/slack/README.md old mode 100644 new mode 100755 diff --git a/slack/__init__.py b/slack/__init__.py old mode 100644 new mode 100755 diff --git a/slack/plugin.yaml b/slack/plugin.yaml old mode 100644 new mode 100755 diff --git a/sma/README.md b/sma/README.md old mode 100644 new mode 100755 diff --git a/sma_em/README.md b/sma_em/README.md old mode 100644 new mode 100755 diff --git a/sma_em/__init__.py b/sma_em/__init__.py old mode 100644 new mode 100755 diff --git a/sma_em/locale.yaml b/sma_em/locale.yaml old mode 100644 new mode 100755 diff --git a/sma_em/webif/static/img/plugin_logo.png b/sma_em/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/sma_em/webif/templates/index.html b/sma_em/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/smarttv/README.md b/smarttv/README.md old mode 100644 new mode 100755 diff --git a/smarttv/requirements.txt b/smarttv/requirements.txt old mode 100644 new mode 100755 diff --git a/smawb/README.md b/smawb/README.md old mode 100644 new mode 100755 diff --git a/smawb/SunnyWebBox.py b/smawb/SunnyWebBox.py old mode 100644 new mode 100755 diff --git a/smawb/__init__.py b/smawb/__init__.py old mode 100644 new mode 100755 diff --git a/sml/README.md b/sml/README.md old mode 100644 new mode 100755 diff --git a/sml/tests/__init__.py b/sml/tests/__init__.py old mode 100644 new mode 100755 diff --git a/sml/tests/base.py b/sml/tests/base.py old mode 100644 new mode 100755 diff --git a/sml/tests/test_basic.py b/sml/tests/test_basic.py old mode 100644 new mode 100755 diff --git a/sml/tests/test_special_case.py b/sml/tests/test_special_case.py old mode 100644 new mode 100755 diff --git a/smlx/README.md b/smlx/README.md old mode 100644 new mode 100755 diff --git a/smlx/__init__.py b/smlx/__init__.py old mode 100644 new mode 100755 diff --git a/smlx/algorithms.py b/smlx/algorithms.py old mode 100644 new mode 100755 diff --git a/smlx/plugin.yaml b/smlx/plugin.yaml old mode 100644 new mode 100755 diff --git a/snap7_logo/README.md b/snap7_logo/README.md old mode 100644 new mode 100755 diff --git a/snap7_logo/__init__.py b/snap7_logo/__init__.py old mode 100644 new mode 100755 diff --git a/snap7_logo/plugin.yaml b/snap7_logo/plugin.yaml old mode 100644 new mode 100755 diff --git a/snap7_logo/requirements.txt b/snap7_logo/requirements.txt old mode 100644 new mode 100755 diff --git a/snap7_logo/webif/static/img/lamp_green.png b/snap7_logo/webif/static/img/lamp_green.png old mode 100644 new mode 100755 diff --git a/snap7_logo/webif/static/img/lamp_red.png b/snap7_logo/webif/static/img/lamp_red.png old mode 100644 new mode 100755 diff --git a/snap7_logo/webif/static/img/plugin_logo.png b/snap7_logo/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/snap7_logo/webif/templates/index.html b/snap7_logo/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/snmp/README.md b/snmp/README.md old mode 100644 new mode 100755 diff --git a/snmp/__init__.py b/snmp/__init__.py old mode 100644 new mode 100755 diff --git a/snmp/locale.yaml b/snmp/locale.yaml old mode 100644 new mode 100755 diff --git a/snmp/plugin.yaml b/snmp/plugin.yaml old mode 100644 new mode 100755 diff --git a/snmp/requirements.txt b/snmp/requirements.txt old mode 100644 new mode 100755 diff --git a/snmp/webif/templates/index.html b/snmp/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/snom/README.md b/snom/README.md old mode 100644 new mode 100755 diff --git a/solarlog/README.md b/solarlog/README.md old mode 100644 new mode 100755 diff --git a/solarlog/_pv_1_4_0/README.md b/solarlog/_pv_1_4_0/README.md old mode 100644 new mode 100755 diff --git a/solarlog/_pv_1_4_0/__init__.py b/solarlog/_pv_1_4_0/__init__.py old mode 100644 new mode 100755 diff --git a/solarlog/_pv_1_4_0/plugin.yaml b/solarlog/_pv_1_4_0/plugin.yaml old mode 100644 new mode 100755 diff --git a/solarlog/locale.yaml b/solarlog/locale.yaml old mode 100644 new mode 100755 diff --git a/solarlog/user_doc.rst b/solarlog/user_doc.rst old mode 100644 new mode 100755 diff --git a/solarlog/webif/static/img/readme.txt b/solarlog/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/solarlog/webif/templates/index.html b/solarlog/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/sonos/README.md b/sonos/README.md old mode 100644 new mode 100755 diff --git a/sonos/examples/sonos.yaml b/sonos/examples/sonos.yaml old mode 100644 new mode 100755 diff --git a/sonos/requirements.txt b/sonos/requirements.txt old mode 100644 new mode 100755 diff --git a/sonos/search_uids.py b/sonos/search_uids.py old mode 100644 new mode 100755 diff --git a/sonos/soco/__init__.py b/sonos/soco/__init__.py old mode 100644 new mode 100755 diff --git a/sonos/soco/alarms.py b/sonos/soco/alarms.py old mode 100644 new mode 100755 diff --git a/sonos/soco/cache.py b/sonos/soco/cache.py old mode 100644 new mode 100755 diff --git a/sonos/soco/compat.py b/sonos/soco/compat.py old mode 100644 new mode 100755 diff --git a/sonos/soco/config.py b/sonos/soco/config.py old mode 100644 new mode 100755 diff --git a/sonos/soco/data_structure_quirks.py b/sonos/soco/data_structure_quirks.py old mode 100644 new mode 100755 diff --git a/sonos/soco/data_structures_entry.py b/sonos/soco/data_structures_entry.py old mode 100644 new mode 100755 diff --git a/sonos/soco/discovery.py b/sonos/soco/discovery.py old mode 100644 new mode 100755 diff --git a/sonos/soco/events_base.py b/sonos/soco/events_base.py old mode 100644 new mode 100755 diff --git a/sonos/soco/events_twisted.py b/sonos/soco/events_twisted.py old mode 100644 new mode 100755 diff --git a/sonos/soco/groups.py b/sonos/soco/groups.py old mode 100644 new mode 100755 diff --git a/sonos/soco/ms_data_structures.py b/sonos/soco/ms_data_structures.py old mode 100644 new mode 100755 diff --git a/sonos/soco/music_library.py b/sonos/soco/music_library.py old mode 100644 new mode 100755 diff --git a/sonos/soco/music_services/__init__.py b/sonos/soco/music_services/__init__.py old mode 100644 new mode 100755 diff --git a/sonos/soco/music_services/accounts.py b/sonos/soco/music_services/accounts.py old mode 100644 new mode 100755 diff --git a/sonos/soco/music_services/data_structures.py b/sonos/soco/music_services/data_structures.py old mode 100644 new mode 100755 diff --git a/sonos/soco/music_services/music_service.py b/sonos/soco/music_services/music_service.py old mode 100644 new mode 100755 diff --git a/sonos/soco/plugins/__init__.py b/sonos/soco/plugins/__init__.py old mode 100644 new mode 100755 diff --git a/sonos/soco/plugins/example.py b/sonos/soco/plugins/example.py old mode 100644 new mode 100755 diff --git a/sonos/soco/plugins/spotify.py b/sonos/soco/plugins/spotify.py old mode 100644 new mode 100755 diff --git a/sonos/soco/plugins/wimp.py b/sonos/soco/plugins/wimp.py old mode 100644 new mode 100755 diff --git a/sonos/soco/services.py b/sonos/soco/services.py old mode 100644 new mode 100755 diff --git a/sonos/soco/snapshot.py b/sonos/soco/snapshot.py old mode 100644 new mode 100755 diff --git a/sonos/soco/soap.py b/sonos/soco/soap.py old mode 100644 new mode 100755 diff --git a/sonos/soco/utils.py b/sonos/soco/utils.py old mode 100644 new mode 100755 diff --git a/sonos/soco/xml.py b/sonos/soco/xml.py old mode 100644 new mode 100755 diff --git a/sonos/sv_widgets/widget_sonos.css b/sonos/sv_widgets/widget_sonos.css old mode 100644 new mode 100755 diff --git a/sonos/sv_widgets/widget_sonos.html b/sonos/sv_widgets/widget_sonos.html old mode 100644 new mode 100755 diff --git a/sonos/sv_widgets/widget_sonos.js b/sonos/sv_widgets/widget_sonos.js old mode 100644 new mode 100755 diff --git a/sonos/tts.py b/sonos/tts.py old mode 100644 new mode 100755 diff --git a/sonos/utils.py b/sonos/utils.py old mode 100644 new mode 100755 diff --git a/speech/README.md b/speech/README.md old mode 100644 new mode 100755 diff --git a/speech/__init__.py b/speech/__init__.py old mode 100644 new mode 100755 diff --git a/speech/_pv_1_4_0/README.md b/speech/_pv_1_4_0/README.md old mode 100644 new mode 100755 diff --git a/speech/_pv_1_4_0/__init__.py b/speech/_pv_1_4_0/__init__.py old mode 100644 new mode 100755 diff --git a/speech/_pv_1_4_0/plugin.yaml b/speech/_pv_1_4_0/plugin.yaml old mode 100644 new mode 100755 diff --git a/speech/_pv_1_4_0/speech.py b/speech/_pv_1_4_0/speech.py old mode 100644 new mode 100755 diff --git a/speech/_pv_1_4_1/README.md b/speech/_pv_1_4_1/README.md old mode 100644 new mode 100755 diff --git a/speech/_pv_1_4_1/__init__.py b/speech/_pv_1_4_1/__init__.py old mode 100644 new mode 100755 diff --git a/speech/_pv_1_4_1/plugin.yaml b/speech/_pv_1_4_1/plugin.yaml old mode 100644 new mode 100755 diff --git a/speech/_pv_1_4_1/speech.py b/speech/_pv_1_4_1/speech.py old mode 100644 new mode 100755 diff --git a/speech/_pv_1_4_1/tasker.xml b/speech/_pv_1_4_1/tasker.xml old mode 100644 new mode 100755 diff --git a/speech/locale.yaml b/speech/locale.yaml old mode 100644 new mode 100755 diff --git a/speech/sample_for_tasker.xml b/speech/sample_for_tasker.xml old mode 100644 new mode 100755 diff --git a/speech/speech.py b/speech/speech.py old mode 100644 new mode 100755 diff --git a/speech/user_doc.rst b/speech/user_doc.rst old mode 100644 new mode 100755 diff --git a/speech/webif/static/img/readme.txt b/speech/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/speech/webif/templates/index.html b/speech/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/sqlite/README.md b/sqlite/README.md old mode 100644 new mode 100755 diff --git a/sqlite_visu2_8/README.md b/sqlite_visu2_8/README.md old mode 100644 new mode 100755 diff --git a/stateengine/requirements.txt b/stateengine/requirements.txt old mode 100644 new mode 100755 diff --git a/stateengine/webif/static/img/vis.png b/stateengine/webif/static/img/vis.png old mode 100644 new mode 100755 diff --git a/systemair/README.md b/systemair/README.md old mode 100644 new mode 100755 diff --git a/systemair/requirements.txt b/systemair/requirements.txt old mode 100644 new mode 100755 diff --git a/systemair/systemair.yaml b/systemair/systemair.yaml old mode 100644 new mode 100755 diff --git a/tankerkoenig/README.md b/tankerkoenig/README.md old mode 100644 new mode 100755 diff --git a/tankerkoenig/requirements.txt b/tankerkoenig/requirements.txt old mode 100644 new mode 100755 diff --git a/telegram/README.md b/telegram/README.md old mode 100644 new mode 100755 diff --git a/telegram/__init__.py b/telegram/__init__.py old mode 100644 new mode 100755 diff --git a/telegram/_pv_1_1_3/README.md b/telegram/_pv_1_1_3/README.md old mode 100644 new mode 100755 diff --git a/telegram/_pv_1_1_3/__init__.py b/telegram/_pv_1_1_3/__init__.py old mode 100644 new mode 100755 diff --git a/telegram/_pv_1_1_3/logging.yaml.telegram b/telegram/_pv_1_1_3/logging.yaml.telegram old mode 100644 new mode 100755 diff --git a/telegram/_pv_1_1_3/plugin.yaml b/telegram/_pv_1_1_3/plugin.yaml old mode 100644 new mode 100755 diff --git a/telegram/_pv_1_1_3/requirements.txt b/telegram/_pv_1_1_3/requirements.txt old mode 100644 new mode 100755 diff --git a/telegram/_pv_1_5_0/README.md b/telegram/_pv_1_5_0/README.md old mode 100644 new mode 100755 diff --git a/telegram/_pv_1_5_0/__init__.py b/telegram/_pv_1_5_0/__init__.py old mode 100644 new mode 100755 diff --git a/telegram/_pv_1_5_0/assets/webif1.png b/telegram/_pv_1_5_0/assets/webif1.png old mode 100644 new mode 100755 diff --git a/telegram/_pv_1_5_0/assets/webif2.png b/telegram/_pv_1_5_0/assets/webif2.png old mode 100644 new mode 100755 diff --git a/telegram/_pv_1_5_0/locale.yaml b/telegram/_pv_1_5_0/locale.yaml old mode 100644 new mode 100755 diff --git a/telegram/_pv_1_5_0/logging.yaml.telegram b/telegram/_pv_1_5_0/logging.yaml.telegram old mode 100644 new mode 100755 diff --git a/telegram/_pv_1_5_0/plugin.yaml b/telegram/_pv_1_5_0/plugin.yaml old mode 100644 new mode 100755 diff --git a/telegram/_pv_1_5_0/requirements.txt b/telegram/_pv_1_5_0/requirements.txt old mode 100644 new mode 100755 diff --git a/telegram/_pv_1_5_0/webif/static/img/plugin_logo.svg b/telegram/_pv_1_5_0/webif/static/img/plugin_logo.svg old mode 100644 new mode 100755 diff --git a/telegram/_pv_1_5_0/webif/static/img/readme.txt b/telegram/_pv_1_5_0/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/telegram/_pv_1_5_0/webif/templates/index.html b/telegram/_pv_1_5_0/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/telegram/assets/webif1.png b/telegram/assets/webif1.png old mode 100644 new mode 100755 diff --git a/telegram/assets/webif2.png b/telegram/assets/webif2.png old mode 100644 new mode 100755 diff --git a/telegram/locale.yaml b/telegram/locale.yaml old mode 100644 new mode 100755 diff --git a/telegram/logging.yaml.telegram b/telegram/logging.yaml.telegram old mode 100644 new mode 100755 diff --git a/telegram/plugin.yaml b/telegram/plugin.yaml old mode 100644 new mode 100755 diff --git a/telegram/requirements.txt b/telegram/requirements.txt old mode 100644 new mode 100755 diff --git a/telegram/user_doc.rst b/telegram/user_doc.rst old mode 100644 new mode 100755 diff --git a/telegram/webif/static/img/plugin_logo.svg b/telegram/webif/static/img/plugin_logo.svg old mode 100644 new mode 100755 diff --git a/telegram/webif/static/img/readme.txt b/telegram/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/telegram/webif/templates/index.html b/telegram/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/tellstick/README.md b/tellstick/README.md old mode 100644 new mode 100755 diff --git a/tellstick/__init__.py b/tellstick/__init__.py old mode 100644 new mode 100755 diff --git a/thz/PortHandler.py b/thz/PortHandler.py old mode 100644 new mode 100755 diff --git a/thz/README.md b/thz/README.md old mode 100644 new mode 100755 diff --git a/thz/README.rst b/thz/README.rst old mode 100644 new mode 100755 diff --git a/thz/ThzProtocol.py b/thz/ThzProtocol.py old mode 100644 new mode 100755 diff --git a/thz/__init__.py b/thz/__init__.py old mode 100644 new mode 100755 diff --git a/thz/plugin.yaml b/thz/plugin.yaml old mode 100644 new mode 100755 diff --git a/thz/requirements.txt b/thz/requirements.txt old mode 100644 new mode 100755 diff --git a/thz/thz.yaml b/thz/thz.yaml old mode 100644 new mode 100755 diff --git a/thz/webif/static/img/readme.txt b/thz/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/thz/webif/templates/index.html b/thz/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/traffic/README.md b/traffic/README.md old mode 100644 new mode 100755 diff --git a/traffic/__init__.py b/traffic/__init__.py old mode 100644 new mode 100755 diff --git a/traffic/requirements.txt b/traffic/requirements.txt old mode 100644 new mode 100755 diff --git a/trovis557x/README.md b/trovis557x/README.md old mode 100644 new mode 100755 diff --git a/trovis557x/__init__.py b/trovis557x/__init__.py old mode 100644 new mode 100755 diff --git a/trovis557x/_coils.py b/trovis557x/_coils.py old mode 100644 new mode 100755 diff --git a/trovis557x/_listen.py b/trovis557x/_listen.py old mode 100644 new mode 100755 diff --git a/trovis557x/_register.py b/trovis557x/_register.py old mode 100644 new mode 100755 diff --git a/trovis557x/assets/todo b/trovis557x/assets/todo old mode 100644 new mode 100755 diff --git a/trovis557x/plugin.yaml b/trovis557x/plugin.yaml old mode 100644 new mode 100755 diff --git a/trovis557x/requirements.txt b/trovis557x/requirements.txt old mode 100644 new mode 100755 diff --git a/trovis557x/shNG-etc/logging.yaml b/trovis557x/shNG-etc/logging.yaml old mode 100644 new mode 100755 diff --git a/trovis557x/shNG-etc/plugin.yaml b/trovis557x/shNG-etc/plugin.yaml old mode 100644 new mode 100755 diff --git a/trovis557x/shNG-items/trovis.yaml b/trovis557x/shNG-items/trovis.yaml old mode 100644 new mode 100755 diff --git a/trovis557x/templates/5576-003_coils.py b/trovis557x/templates/5576-003_coils.py old mode 100644 new mode 100755 diff --git a/trovis557x/templates/5576-003_listen.py b/trovis557x/templates/5576-003_listen.py old mode 100644 new mode 100755 diff --git a/trovis557x/templates/5576-003_registers.py b/trovis557x/templates/5576-003_registers.py old mode 100644 new mode 100755 diff --git a/trovis557x/templates/readme.txt b/trovis557x/templates/readme.txt old mode 100644 new mode 100755 diff --git a/trovis557x/tools/coil_sniffer.py b/trovis557x/tools/coil_sniffer.py old mode 100644 new mode 100755 diff --git a/trovis557x/tools/readme.txt b/trovis557x/tools/readme.txt old mode 100644 new mode 100755 diff --git a/trovis557x/tools/register_sniffer.py b/trovis557x/tools/register_sniffer.py old mode 100644 new mode 100755 diff --git a/trovis557x/webif/todo b/trovis557x/webif/todo old mode 100644 new mode 100755 diff --git a/unifi/.gitignore b/unifi/.gitignore old mode 100644 new mode 100755 diff --git a/unifi/README.md b/unifi/README.md old mode 100644 new mode 100755 diff --git a/unifi/__init__.py b/unifi/__init__.py old mode 100644 new mode 100755 diff --git a/unifi/locale.yaml b/unifi/locale.yaml old mode 100644 new mode 100755 diff --git a/unifi/plugin.yaml b/unifi/plugin.yaml old mode 100644 new mode 100755 diff --git a/unifi/ubiquiti/LICENSE b/unifi/ubiquiti/LICENSE old mode 100644 new mode 100755 diff --git a/unifi/ubiquiti/__init__.py b/unifi/ubiquiti/__init__.py old mode 100644 new mode 100755 diff --git a/unifi/ubiquiti/unifi.py b/unifi/ubiquiti/unifi.py old mode 100644 new mode 100755 diff --git a/unifi/webif/static/img/readme.txt b/unifi/webif/static/img/readme.txt old mode 100644 new mode 100755 diff --git a/unifi/webif/templates/index.html b/unifi/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/uzsu/requirements.txt b/uzsu/requirements.txt old mode 100644 new mode 100755 diff --git a/uzsu/uzsu_webif.png b/uzsu/uzsu_webif.png old mode 100644 new mode 100755 diff --git a/vacations/__init__.py b/vacations/__init__.py old mode 100644 new mode 100755 diff --git a/vacations/assets/webif1.jpg b/vacations/assets/webif1.jpg old mode 100644 new mode 100755 diff --git a/vacations/assets/webif2.jpg b/vacations/assets/webif2.jpg old mode 100644 new mode 100755 diff --git a/vacations/locale.yaml b/vacations/locale.yaml old mode 100644 new mode 100755 diff --git a/vacations/plugin.yaml b/vacations/plugin.yaml old mode 100644 new mode 100755 diff --git a/vacations/requirements.txt b/vacations/requirements.txt old mode 100644 new mode 100755 diff --git a/vacations/user_doc.rst b/vacations/user_doc.rst old mode 100644 new mode 100755 diff --git a/vacations/webif/static/img/plugin_logo.png b/vacations/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/vacations/webif/templates/index.html b/vacations/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/visu_smartvisu/README.md b/visu_smartvisu/README.md old mode 100644 new mode 100755 diff --git a/visu_smartvisu/_pv_1_3_3/README.md b/visu_smartvisu/_pv_1_3_3/README.md old mode 100644 new mode 100755 diff --git a/visu_smartvisu/_pv_1_3_3/developer_doc.md b/visu_smartvisu/_pv_1_3_3/developer_doc.md old mode 100644 new mode 100755 diff --git a/visu_smartvisu/developer_doc.md b/visu_smartvisu/developer_doc.md old mode 100644 new mode 100755 diff --git a/visu_smartvisu/screenshots/blocktype_dual_1.jpg b/visu_smartvisu/screenshots/blocktype_dual_1.jpg old mode 100644 new mode 100755 diff --git a/visu_smartvisu/screenshots/blocktype_dual_2.jpg b/visu_smartvisu/screenshots/blocktype_dual_2.jpg old mode 100644 new mode 100755 diff --git a/visu_smartvisu/screenshots/blocktype_dual_visu.jpg b/visu_smartvisu/screenshots/blocktype_dual_visu.jpg old mode 100644 new mode 100755 diff --git a/visu_smartvisu/screenshots/category_nav.jpg b/visu_smartvisu/screenshots/category_nav.jpg old mode 100644 new mode 100755 diff --git a/visu_smartvisu/screenshots/divider.jpg b/visu_smartvisu/screenshots/divider.jpg old mode 100644 new mode 100755 diff --git a/visu_smartvisu/screenshots/navigation.jpg b/visu_smartvisu/screenshots/navigation.jpg old mode 100644 new mode 100755 diff --git a/visu_smartvisu/screenshots/navigation2.jpg b/visu_smartvisu/screenshots/navigation2.jpg old mode 100644 new mode 100755 diff --git a/visu_smartvisu/screenshots/style_blk.jpg b/visu_smartvisu/screenshots/style_blk.jpg old mode 100644 new mode 100755 diff --git a/visu_smartvisu/screenshots/style_blk_visu.jpg b/visu_smartvisu/screenshots/style_blk_visu.jpg old mode 100644 new mode 100755 diff --git a/visu_smartvisu/screenshots/style_std.jpg b/visu_smartvisu/screenshots/style_std.jpg old mode 100644 new mode 100755 diff --git a/visu_websocket/README.md b/visu_websocket/README.md old mode 100644 new mode 100755 diff --git a/visu_websocket/__init__.py b/visu_websocket/__init__.py old mode 100644 new mode 100755 diff --git a/visu_websocket/_pv_1_1_3/README.md b/visu_websocket/_pv_1_1_3/README.md old mode 100644 new mode 100755 diff --git a/visu_websocket/_pv_1_1_3/README_for_visu_developers.md b/visu_websocket/_pv_1_1_3/README_for_visu_developers.md old mode 100644 new mode 100755 diff --git a/visu_websocket/_pv_1_4_5/README.md b/visu_websocket/_pv_1_4_5/README.md old mode 100644 new mode 100755 diff --git a/visu_websocket/_pv_1_4_5/__init__.py b/visu_websocket/_pv_1_4_5/__init__.py old mode 100644 new mode 100755 diff --git a/visu_websocket/_pv_1_4_5/assets/webif1.jpg b/visu_websocket/_pv_1_4_5/assets/webif1.jpg old mode 100644 new mode 100755 diff --git a/visu_websocket/_pv_1_4_5/developer_doc.md b/visu_websocket/_pv_1_4_5/developer_doc.md old mode 100644 new mode 100755 diff --git a/visu_websocket/_pv_1_4_5/locale.yaml b/visu_websocket/_pv_1_4_5/locale.yaml old mode 100644 new mode 100755 diff --git a/visu_websocket/_pv_1_4_5/plugin.yaml b/visu_websocket/_pv_1_4_5/plugin.yaml old mode 100644 new mode 100755 diff --git a/visu_websocket/_pv_1_4_5/webif/templates/index.html b/visu_websocket/_pv_1_4_5/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/visu_websocket/developer_doc.rst b/visu_websocket/developer_doc.rst old mode 100644 new mode 100755 diff --git a/volkszaehler/README.md b/volkszaehler/README.md old mode 100644 new mode 100755 diff --git a/vr100/README.md b/vr100/README.md old mode 100644 new mode 100755 diff --git a/webservices/README.md b/webservices/README.md old mode 100644 new mode 100755 diff --git a/webservices/__init__.py b/webservices/__init__.py old mode 100644 new mode 100755 diff --git a/webservices/webif/static/img/plugin_logo.png b/webservices/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/withings_health/README.md b/withings_health/README.md old mode 100644 new mode 100755 diff --git a/withings_health/__init__.py b/withings_health/__init__.py old mode 100644 new mode 100755 diff --git a/withings_health/locale.yaml b/withings_health/locale.yaml old mode 100644 new mode 100755 diff --git a/withings_health/plugin.yaml b/withings_health/plugin.yaml old mode 100644 new mode 100755 diff --git a/withings_health/requirements.txt b/withings_health/requirements.txt old mode 100644 new mode 100755 diff --git a/withings_health/webif/static/img/plugin_logo.png b/withings_health/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/withings_health/webif/templates/index.html b/withings_health/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/wol/README.md b/wol/README.md old mode 100644 new mode 100755 diff --git a/wunderground/README.md b/wunderground/README.md old mode 100644 new mode 100755 diff --git a/wunderground/README_OLD.md b/wunderground/README_OLD.md old mode 100644 new mode 100755 diff --git a/wunderground/__init__.py b/wunderground/__init__.py old mode 100644 new mode 100755 diff --git a/wunderground/plugin.yaml b/wunderground/plugin.yaml old mode 100644 new mode 100755 diff --git a/xbmc/README.md b/xbmc/README.md old mode 100644 new mode 100755 diff --git a/xbmc/__init__.py b/xbmc/__init__.py old mode 100644 new mode 100755 diff --git a/xbmc/plugin.yaml b/xbmc/plugin.yaml old mode 100644 new mode 100755 diff --git a/xiaomi_vac/LICENSE b/xiaomi_vac/LICENSE old mode 100644 new mode 100755 diff --git a/xiaomi_vac/__init__.py b/xiaomi_vac/__init__.py old mode 100644 new mode 100755 diff --git a/xiaomi_vac/plugin.yaml b/xiaomi_vac/plugin.yaml old mode 100644 new mode 100755 diff --git a/xiaomi_vac/requirements.txt b/xiaomi_vac/requirements.txt old mode 100644 new mode 100755 diff --git a/xiaomi_vac/webif/static/img/favicon.ico b/xiaomi_vac/webif/static/img/favicon.ico old mode 100644 new mode 100755 diff --git a/xiaomi_vac/webif/static/img/green.png b/xiaomi_vac/webif/static/img/green.png old mode 100644 new mode 100755 diff --git a/xiaomi_vac/webif/static/img/green.xcf b/xiaomi_vac/webif/static/img/green.xcf old mode 100644 new mode 100755 diff --git a/xiaomi_vac/webif/static/img/logo_big2.png b/xiaomi_vac/webif/static/img/logo_big2.png old mode 100644 new mode 100755 diff --git a/xiaomi_vac/webif/static/img/plugin_logo.png b/xiaomi_vac/webif/static/img/plugin_logo.png old mode 100644 new mode 100755 diff --git a/xiaomi_vac/webif/static/img/red.png b/xiaomi_vac/webif/static/img/red.png old mode 100644 new mode 100755 diff --git a/xiaomi_vac/webif/static/img/red.xcf b/xiaomi_vac/webif/static/img/red.xcf old mode 100644 new mode 100755 diff --git a/xiaomi_vac/webif/templates/index.html b/xiaomi_vac/webif/templates/index.html old mode 100644 new mode 100755 diff --git a/xmpp/requirements.txt b/xmpp/requirements.txt old mode 100644 new mode 100755 diff --git a/yamaha/README.md b/yamaha/README.md old mode 100644 new mode 100755 diff --git a/yamaha/__init__.py b/yamaha/__init__.py old mode 100644 new mode 100755 diff --git a/yamahayxc/LICENSE b/yamahayxc/LICENSE old mode 100644 new mode 100755 diff --git a/yamahayxc/README.md b/yamahayxc/README.md old mode 100644 new mode 100755 diff --git a/yamahayxc/__init__.py b/yamahayxc/__init__.py old mode 100644 new mode 100755 diff --git a/yamahayxc/plugin.yaml b/yamahayxc/plugin.yaml old mode 100644 new mode 100755 diff --git a/zwave/README.md b/zwave/README.md old mode 100644 new mode 100755 diff --git a/zwave/requirements.txt b/zwave/requirements.txt old mode 100644 new mode 100755 From 9db85809a3eea7890ebea37e023b43a9574195ee Mon Sep 17 00:00:00 2001 From: msinn Date: Tue, 23 Jun 2020 23:18:16 +0200 Subject: [PATCH 29/47] Adjusted version to v1.7.2 --- __init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/__init__.py b/__init__.py index 490ad322b..be0f76461 100755 --- a/__init__.py +++ b/__init__.py @@ -1,7 +1,7 @@ def plugin_release(): - return '1.7.2a' + return '1.7.2' def plugin_branch(): - return 'develop' + return 'master' From ae57837ca36985641d7057f7c5ce7be2a42d71d3 Mon Sep 17 00:00:00 2001 From: msinn Date: Mon, 25 Jan 2021 00:17:58 +0100 Subject: [PATCH 30/47] stateengine: Emergency fix for plugin.yaml --- stateengine/plugin.yaml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/stateengine/plugin.yaml b/stateengine/plugin.yaml index d55fd5d8e..3bb300975 100755 --- a/stateengine/plugin.yaml +++ b/stateengine/plugin.yaml @@ -416,7 +416,6 @@ item_attributes: ' se_use: - type: str type: list(str) description: de: 'Nutzen eines Vorgabezustands' @@ -433,19 +432,6 @@ item_attributes: se_use. The templates that should be used can even be dynamically changed during runtime by using the **eval:** declaration in front of a valid eval expression ' - description: - de: 'Nutzen eines Vorgabezustands (veraltet - Nutze stattdessen das struct Feature)' - en: 'Using a default template (deprecated - Use the struct feature instead)' - description_long: - de: 'Vorgabezustände werden als Item an beliebiger Stelle innerhalb der - Item-Struktur definiert. Im konkreten Zustands-Item kann das Vorgabezustand-Item - über das Attribut se_use referenziert werden. Es wird empfohlen, - stattdessen das **struct** Feature zu nutzen. - ' - en: 'Template states are defined as an item at any given position in the item tree. - In the specific state item the template can get referenced by using the attribute - se_use. It is recommended, however, to use the **struct** feature instead. - ' item_structs: # Definition of item-structure templates for this plugin (enter 'item_structs: NONE', if section should be empty) From c07809102b9aff3d4e849cddd88ddcdef53cb6ac Mon Sep 17 00:00:00 2001 From: msinn Date: Mon, 25 Jan 2021 00:36:14 +0100 Subject: [PATCH 31/47] Reset branch version to 1.8.1 master --- __init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/__init__.py b/__init__.py index 4a7ebcf55..ee6a533f2 100755 --- a/__init__.py +++ b/__init__.py @@ -1,7 +1,7 @@ def plugin_release(): - return '1.8.1a' + return '1.8.1' def plugin_branch(): - return 'develop' + return 'master' From 4d079703011ab6b8667d14fda00b6d9c00096bb7 Mon Sep 17 00:00:00 2001 From: Peter Uhrig Date: Fri, 5 Feb 2021 08:53:23 +0100 Subject: [PATCH 32/47] Update plugin.yaml corrected datatype of favourites from str to dict --- kodi/plugin.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kodi/plugin.yaml b/kodi/plugin.yaml index 963479acd..432cb43ea 100755 --- a/kodi/plugin.yaml +++ b/kodi/plugin.yaml @@ -224,7 +224,7 @@ item_structs: favourites: kodi_item@instance: get_favourites - type: str + type: dict visu_acl: rw enforce_updates: true From ced572f3eadde1ff3e3e44c406b43b41c76991a5 Mon Sep 17 00:00:00 2001 From: Peter Uhrig Date: Fri, 5 Feb 2021 08:59:33 +0100 Subject: [PATCH 33/47] Update user_doc.rst Updated the section on struct templates to reflect the current state of plugin.yaml: - renamed query to info - added examples struct --- kodi/user_doc.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kodi/user_doc.rst b/kodi/user_doc.rst index 0b0079591..4ddc7d86d 100755 --- a/kodi/user_doc.rst +++ b/kodi/user_doc.rst @@ -124,7 +124,8 @@ Ein Auszug der wichtigsten Aktionen: Struct Vorlagen =============== -Ab smarthomeNG 1.6 können Vorlagen aus dem Plugin einfach eingebunden werden. Dabei stehen folgende Vorlagen zur Verfügung: +Ab smarthomeNG 1.6 können Vorlagen aus dem Plugin einfach eingebunden werden. Dabei stehen aktuell folgende Vorlagen zur Verfügung: -- query: Enthält Funktionen, die zur Abfrage von Kodi Infos dienen. +- info: Enthält Funktionen, die zur Abfrage von Kodi Infos dienen. - control: Enthält Funktionen, mit denen Kodi gesteuert werden kann. Hier sind auch die wichtigsten input Befehle als eigene Items hinterlegt (play, pause, next, etc.) +- examples: Vorlage-Struktur mit weiteren Beispielen From 1b6afc7b0375f5b1511b6b9f30d310ec5ca7f9ac Mon Sep 17 00:00:00 2001 From: mptei Date: Fri, 5 Feb 2021 17:21:14 +0100 Subject: [PATCH 34/47] Avoid exceptions when lastconditionset/lastconditionset_name item is not set --- stateengine/StateEngineItem.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stateengine/StateEngineItem.py b/stateengine/StateEngineItem.py index 5240b7771..45d42b10c 100755 --- a/stateengine/StateEngineItem.py +++ b/stateengine/StateEngineItem.py @@ -72,7 +72,7 @@ def laststate(self): @property def lastconditionset(self): - return self.__lastconditionset_item_id.property.value + return None if self.__lastconditionset_item_id is None else self.__lastconditionset_item_id.property.value @property def laststate_name(self): @@ -80,7 +80,7 @@ def laststate_name(self): @property def lastconditionset_name(self): - return self.__lastconditionset_item_name.property.value + return None if self.__lastconditionset_item_name is None else self.__lastconditionset_item_name.property.value @property def action_in_progress(self): From 7fa01cfc59c17dd147b8193a85895928d1550c5b Mon Sep 17 00:00:00 2001 From: Peter Uhrig Date: Fri, 5 Feb 2021 21:39:26 +0100 Subject: [PATCH 35/47] kodi plugin Bumped version number 1.6.0 => 1.6.1 --- kodi/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kodi/__init__.py b/kodi/__init__.py index 5370e7250..2dd3795a4 100755 --- a/kodi/__init__.py +++ b/kodi/__init__.py @@ -40,7 +40,7 @@ class Kodi(SmartPlugin): Main class of the Plugin. Does all plugin specific stuff and provides the update functions for the items ''' - PLUGIN_VERSION = '1.6.0' + PLUGIN_VERSION = '1.6.1' ALLOW_MULTIINSTANCE = True _initcommands = ['get_actplayer', 'get_status_au'] From 38dd67ef7c15e30e857cfee314140ea62d7e65d6 Mon Sep 17 00:00:00 2001 From: Peter Uhrig Date: Fri, 5 Feb 2021 21:41:10 +0100 Subject: [PATCH 36/47] kodi plugin Bumped version number 1.6.0 => 1.6.1 --- kodi/plugin.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kodi/plugin.yaml b/kodi/plugin.yaml index 963479acd..d60d0ef95 100755 --- a/kodi/plugin.yaml +++ b/kodi/plugin.yaml @@ -16,7 +16,7 @@ plugin: support: https://knx-user-forum.de/forum/supportforen/smarthome-py/1364598-supportthread-für-kodi-plugin # Following entries are for Smart-Plugins: - version: 1.6.0 # Plugin version + version: 1.6.1 # Plugin version sh_minversion: 1.4 # minimum shNG version to use this plugin # sh_maxversion: # maximum shNG version to use this plugin (leave empty if latest) multi_instance: True From e0b36a841d6a7c982b58b0e70479404305dda940 Mon Sep 17 00:00:00 2001 From: Onkel Andy Date: Sat, 6 Feb 2021 09:32:44 +0100 Subject: [PATCH 37/47] kodi plugin: add Morg as maintainer --- kodi/plugin.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kodi/plugin.yaml b/kodi/plugin.yaml index d60d0ef95..a2f42e501 100755 --- a/kodi/plugin.yaml +++ b/kodi/plugin.yaml @@ -8,8 +8,8 @@ plugin: requirements: de: 'Es ist eine Kodi Installation v12 oder höher notwendig, bei der in den Einstellungen "Allow programs on other systems to control Kodi" aktiviert ist.' en: 'You need one or more Kodi (12 a.k.a. Frodo or above) with system-settings-service "Allow programs on other systems to control Kodi" enabled.' - maintainer: onkelandy - tester: psilo, Morg + maintainer: Morg, onkelandy + tester: psilo state: ready keywords: mediacenter kodi xmbc documentation: http://smarthomeng.de/user/plugins/kodi/user_doc.html From 9afce4cd30227f856c265d6098126d3f9c4dbc51 Mon Sep 17 00:00:00 2001 From: msinn Date: Sun, 21 Feb 2021 19:00:06 +0100 Subject: [PATCH 38/47] Update __init__.py Corrected version to 1.8.2 master --- __init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/__init__.py b/__init__.py index a5879f42e..add108e07 100755 --- a/__init__.py +++ b/__init__.py @@ -1,7 +1,7 @@ def plugin_release(): - return '1.8.2a' + return '1.8.2' def plugin_branch(): - return 'develop' + return 'master' From 6519b3c33c94c3da305bf44fc823f0255d667107 Mon Sep 17 00:00:00 2001 From: Morg42 <43153739+Morg42@users.noreply.github.com> Date: Sat, 30 Oct 2021 16:58:06 +0200 Subject: [PATCH 39/47] plugin hue2: updated create_new_username Adapted create_new_username to new qhue.Resource() initialisation syntax, added positional parameter "session" --- hue2/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hue2/__init__.py b/hue2/__init__.py index f3194c1e8..8f5521dd9 100755 --- a/hue2/__init__.py +++ b/hue2/__init__.py @@ -701,7 +701,8 @@ def create_new_username(self, ip, port, devicetype=None, timeout=5): example, if the bridge button wasn't pressed). """ api_url = "http://{}/api".format(ip+':'+port) - res = qhue.qhue.Resource(api_url, timeout) + session = requests.Session() + res = qhue.qhue.Resource(api_url, session, timeout) if devicetype is None: devicetype = "SmartHomeNG#{}".format(getfqdn()) From c90fb4d221dc8b20f7cac5ef6f8a218dfa7d6b92 Mon Sep 17 00:00:00 2001 From: Morg42 <43153739+Morg42@users.noreply.github.com> Date: Sat, 30 Oct 2021 17:26:11 +0200 Subject: [PATCH 40/47] Revert "plugin hue2: updated create_new_username" This reverts commit 6519b3c33c94c3da305bf44fc823f0255d667107. --- hue2/__init__.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hue2/__init__.py b/hue2/__init__.py index 8f5521dd9..f3194c1e8 100755 --- a/hue2/__init__.py +++ b/hue2/__init__.py @@ -701,8 +701,7 @@ def create_new_username(self, ip, port, devicetype=None, timeout=5): example, if the bridge button wasn't pressed). """ api_url = "http://{}/api".format(ip+':'+port) - session = requests.Session() - res = qhue.qhue.Resource(api_url, session, timeout) + res = qhue.qhue.Resource(api_url, timeout) if devicetype is None: devicetype = "SmartHomeNG#{}".format(getfqdn()) From 4c0104726b0e894dfc09607fa9bbbd79dacdec15 Mon Sep 17 00:00:00 2001 From: msinn Date: Tue, 28 Dec 2021 15:23:57 +0100 Subject: [PATCH 41/47] Corrected version of repo --- __init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/__init__.py b/__init__.py index 148b322b9..526f2e03c 100755 --- a/__init__.py +++ b/__init__.py @@ -1,6 +1,6 @@ def plugin_release(): - return '1.9a' + return '1.9.0' def plugin_branch(): - return 'develop' + return 'master' From 535ece177a8e326d91517b698f635d905f37f028 Mon Sep 17 00:00:00 2001 From: psilo909 Date: Tue, 10 May 2022 18:53:13 +0200 Subject: [PATCH 42/47] Create unittests.yml --- .github/workflows/unittests.yml | 55 +++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 .github/workflows/unittests.yml diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml new file mode 100644 index 000000000..e7f1de3fd --- /dev/null +++ b/.github/workflows/unittests.yml @@ -0,0 +1,55 @@ +name: "SmartHomeNG Unittest Workflow Core" +on: [workflow_dispatch, push] +#on: +# workflow_dispatch: +# push: +env: + DEP_PATH: smarthomeng/requirements/all.txt +jobs: + build: + runs-on: ubuntu-20.04 #latest + strategy: + fail-fast: false + matrix: + python-version: [ '3.7', '3.8', '3.9', '3.10' ] + name: Python ${{ matrix.python-version }} + steps: + - name: update OS (Ubuntu) + run: sudo apt-get update + - run: sudo apt-get install libudev-dev + - run: sudo apt-get install librrd-dev libpython3-dev + - run: sudo apt-get install gcc --only-upgrade + - uses: actions/checkout@v2 + # - name: Checkout SmartHomeNG DEVELOP Branch + # uses: actions/checkout@v2 + # with: + # repository: smarthomeNG/smarthome + # ref: develop + # path: smarthomeng + - name: Checkout SmartHomeNG/plugins DEVELOP Branch + uses: actions/checkout@v2 + with: + repository: smarthomeNG/plugins + ref: develop + path: smarthomeng/plugins + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + architecture: x64 + - name: Print Python Version + run: python --version + - run: python3 -m pip install --upgrade pip #==19.3.1 + #- run: pip install tox-travis virtualenv>=20.0.8 --upgrade + - run: pip install sphinx sphinx_rtd_theme recommonmark ruamel.yaml pytest + - name: Build Requirements + run: python3 smarthomeng/tools/build_requirements.py + - name: Show requirements/base.txt + run: head smarthomeng/requirements/base.txt -n 12 + - name: Show requirements/all.txt + run: head smarthomeng/requirements/all.txt -n 12 + - name: Install base.txt + run: pip install -r smarthomeng/requirements/base.txt + - name: Run Python Unittests + working-directory: ./smarthomeng/plugins + run: pytest From 4be5606a2449aa7a1eda0a16652bf8a0094c585e Mon Sep 17 00:00:00 2001 From: psilo909 Date: Tue, 10 May 2022 18:55:14 +0200 Subject: [PATCH 43/47] Delete unittests.yml delete accidentially created action --- .github/workflows/unittests.yml | 55 --------------------------------- 1 file changed, 55 deletions(-) delete mode 100644 .github/workflows/unittests.yml diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml deleted file mode 100644 index e7f1de3fd..000000000 --- a/.github/workflows/unittests.yml +++ /dev/null @@ -1,55 +0,0 @@ -name: "SmartHomeNG Unittest Workflow Core" -on: [workflow_dispatch, push] -#on: -# workflow_dispatch: -# push: -env: - DEP_PATH: smarthomeng/requirements/all.txt -jobs: - build: - runs-on: ubuntu-20.04 #latest - strategy: - fail-fast: false - matrix: - python-version: [ '3.7', '3.8', '3.9', '3.10' ] - name: Python ${{ matrix.python-version }} - steps: - - name: update OS (Ubuntu) - run: sudo apt-get update - - run: sudo apt-get install libudev-dev - - run: sudo apt-get install librrd-dev libpython3-dev - - run: sudo apt-get install gcc --only-upgrade - - uses: actions/checkout@v2 - # - name: Checkout SmartHomeNG DEVELOP Branch - # uses: actions/checkout@v2 - # with: - # repository: smarthomeNG/smarthome - # ref: develop - # path: smarthomeng - - name: Checkout SmartHomeNG/plugins DEVELOP Branch - uses: actions/checkout@v2 - with: - repository: smarthomeNG/plugins - ref: develop - path: smarthomeng/plugins - - name: Set up Python - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - architecture: x64 - - name: Print Python Version - run: python --version - - run: python3 -m pip install --upgrade pip #==19.3.1 - #- run: pip install tox-travis virtualenv>=20.0.8 --upgrade - - run: pip install sphinx sphinx_rtd_theme recommonmark ruamel.yaml pytest - - name: Build Requirements - run: python3 smarthomeng/tools/build_requirements.py - - name: Show requirements/base.txt - run: head smarthomeng/requirements/base.txt -n 12 - - name: Show requirements/all.txt - run: head smarthomeng/requirements/all.txt -n 12 - - name: Install base.txt - run: pip install -r smarthomeng/requirements/base.txt - - name: Run Python Unittests - working-directory: ./smarthomeng/plugins - run: pytest From f2964df5a0f9ede82f4c39cd4dd602d7b1afc7cc Mon Sep 17 00:00:00 2001 From: msinn Date: Mon, 16 May 2022 20:14:32 +0200 Subject: [PATCH 44/47] Create unittests.yml --- .github/workflows/unittests.yml | 67 +++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/unittests.yml diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml new file mode 100644 index 000000000..ca5d25c35 --- /dev/null +++ b/.github/workflows/unittests.yml @@ -0,0 +1,67 @@ +name: "Unittests Plugins" +#on: [workflow_dispatch, push] +on: + workflow_dispatch: + push: + branches: + - '*' + - '!release_doc' + +jobs: + build: + runs-on: ubuntu-20.04 #latest + strategy: + fail-fast: false + matrix: + python-version: [ '3.7', '3.8', '3.9', '3.10' ] + name: Python ${{ matrix.python-version }} + steps: + - name: Setup OS (Ubuntu) + run: | + sudo apt-get update + sudo apt-get install libudev-dev + sudo apt-get install librrd-dev libpython3-dev + sudo apt-get install gcc --only-upgrade + + - name: Get branch name + run: | + echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})" + echo ${GITHUB_REF#refs/heads/} + id: extract_branch + + - name: Checkout core from ${{steps.extract_branch.outputs.branch}} branch + uses: actions/checkout@v3 + with: + repository: smarthomeNG/smarthome + ref: ${{steps.extract_branch.outputs.branch}} + - name: Checkout plugins from ${{steps.extract_branch.outputs.branch}} branch + uses: actions/checkout@v3 + with: + repository: smarthomeNG/plugins + ref: ${{steps.extract_branch.outputs.branch}} + path: plugins + + - name: Set up Python + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + architecture: x64 + - run: python3 -m pip install --upgrade pip + + - name: Install requirements for unit testing + run: pip install -r tests/requirements.txt + - name: Build Requirements for SmartHomeNG + run: python3 tools/build_requirements.py + - name: Install SmartHomeNG base requirements + # base requirements are needed for pytest to run + run: pip install -r requirements/base.txt + + # --- up to here, the workflow is identical for CORE and PLUGINS --- + + - name: Install SmartHomeNG all requirements + # all requirements are needed for pytest to run plugin tests + run: pip install -r requirements/all.txt + + - name: '>>> Run Python Unittests for PLUGINS <<<' + working-directory: ./plugins + run: pytest From e9f4b86983b08e1d81c37d13dadc52538d92cbd0 Mon Sep 17 00:00:00 2001 From: msinn Date: Mon, 16 May 2022 20:22:11 +0200 Subject: [PATCH 45/47] Delete unittests.yml --- .github/workflows/unittests.yml | 67 --------------------------------- 1 file changed, 67 deletions(-) delete mode 100644 .github/workflows/unittests.yml diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml deleted file mode 100644 index ca5d25c35..000000000 --- a/.github/workflows/unittests.yml +++ /dev/null @@ -1,67 +0,0 @@ -name: "Unittests Plugins" -#on: [workflow_dispatch, push] -on: - workflow_dispatch: - push: - branches: - - '*' - - '!release_doc' - -jobs: - build: - runs-on: ubuntu-20.04 #latest - strategy: - fail-fast: false - matrix: - python-version: [ '3.7', '3.8', '3.9', '3.10' ] - name: Python ${{ matrix.python-version }} - steps: - - name: Setup OS (Ubuntu) - run: | - sudo apt-get update - sudo apt-get install libudev-dev - sudo apt-get install librrd-dev libpython3-dev - sudo apt-get install gcc --only-upgrade - - - name: Get branch name - run: | - echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})" - echo ${GITHUB_REF#refs/heads/} - id: extract_branch - - - name: Checkout core from ${{steps.extract_branch.outputs.branch}} branch - uses: actions/checkout@v3 - with: - repository: smarthomeNG/smarthome - ref: ${{steps.extract_branch.outputs.branch}} - - name: Checkout plugins from ${{steps.extract_branch.outputs.branch}} branch - uses: actions/checkout@v3 - with: - repository: smarthomeNG/plugins - ref: ${{steps.extract_branch.outputs.branch}} - path: plugins - - - name: Set up Python - uses: actions/setup-python@v3 - with: - python-version: ${{ matrix.python-version }} - architecture: x64 - - run: python3 -m pip install --upgrade pip - - - name: Install requirements for unit testing - run: pip install -r tests/requirements.txt - - name: Build Requirements for SmartHomeNG - run: python3 tools/build_requirements.py - - name: Install SmartHomeNG base requirements - # base requirements are needed for pytest to run - run: pip install -r requirements/base.txt - - # --- up to here, the workflow is identical for CORE and PLUGINS --- - - - name: Install SmartHomeNG all requirements - # all requirements are needed for pytest to run plugin tests - run: pip install -r requirements/all.txt - - - name: '>>> Run Python Unittests for PLUGINS <<<' - working-directory: ./plugins - run: pytest From fe98c7b4e0a1e4d0d138cbbf30e1ae8632a88659 Mon Sep 17 00:00:00 2001 From: Morg42 <43153739+Morg42@users.noreply.github.com> Date: Mon, 6 Feb 2023 13:22:43 +0100 Subject: [PATCH 46/47] knx: update metadata definition --- knx/plugin.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/knx/plugin.yaml b/knx/plugin.yaml index fdb1cec47..38ec81bbc 100755 --- a/knx/plugin.yaml +++ b/knx/plugin.yaml @@ -52,6 +52,8 @@ parameters: - 'logger' - 'true' - 'false' + - 'True' + - 'False' valid_list_description: de: ['Ein', 'Aus', 'in eigenen Logger', 'Ein', 'Aus'] en: ['On', 'Off', 'to own logger', 'On', 'Off'] From 30b6e46ee76a39e0e8b8d77e243312c71e8a1075 Mon Sep 17 00:00:00 2001 From: Morg42 <43153739+Morg42@users.noreply.github.com> Date: Mon, 6 Feb 2023 13:25:58 +0100 Subject: [PATCH 47/47] Update plugin.yaml --- knx/plugin.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/knx/plugin.yaml b/knx/plugin.yaml index 38ec81bbc..e7ea47a43 100755 --- a/knx/plugin.yaml +++ b/knx/plugin.yaml @@ -55,8 +55,8 @@ parameters: - 'True' - 'False' valid_list_description: - de: ['Ein', 'Aus', 'in eigenen Logger', 'Ein', 'Aus'] - en: ['On', 'Off', 'to own logger', 'On', 'Off'] + de: ['Ein', 'Aus', 'in eigenen Logger', 'Ein', 'Aus', 'Ein', 'Aus'] + en: ['On', 'Off', 'to own logger', 'On', 'Off', 'On', 'Off'] description: de: "Wenn auf 'on'/'true' gesetzt, wird jedes KNX-Paket im Standard-Logger protokolliert. Wenn 'logger' eingestellt ist, werden alle KNX-Meldungen in einem separaten Logger 'knx_busmonitor' protokolliert." en: "If set to 'on'/'true' every KNX packet will be logged to the default plugin logger. If set to 'logger', all knx messages will be logged to a separate logger 'knx_busmonitor'"