Ankündigung

Einklappen
Keine Ankündigung bisher.

Supportthread für Kodi Plugin

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Supportthread für Kodi Plugin

    Ich bearbeite gerade das alte xbmc Plugin und habe eine fette Aktualisierung in den develop gepusht. Bitte testen und Probleme hier melden. https://github.com/smarthomeNG/plugins/pull/241

    Titel und Media State Abfrage muss noch implementiert werden, ansonsten sollte soweit alles klappen.
    Zuletzt geändert von Onkelandy; 19.05.2019, 22:59.

    #2
    Inzwischen hat sich einiges getan. Momentan sieht es recht robust aus. Gerne testen.

    Kommentar


      #3
      Hallo

      ich wollte heute Abend meine 2 Kodi Instanzen mit SmarthomeNG verheiraten und bin dabei kläglichst gescheitert ...

      Infos zum System: SmarthomeNG 1.6.(1) - plugins aus develop
      Kodi: Libreelec auf Raspberry Pi 4 - 9.1.502 (letzte offizielle Version) - Kodi 18.4

      plugin.yaml:
      Code:
      kodi:
          plugin_name: kodi
          host: 192.168.1.81
          autoreconnect: True
          instance: 'wohnzimmer'
      log:

      Code:
      2019-11-17  22:05:50 INFO     Main         Loading '/usr/local/smarthome/plugins/kodi/plugin.yaml' to 'OrderedDict'
      2019-11-17  22:05:50 INFO     Main         plugin 'kodi': Metadata paramlist = '['host', 'port', 'instance', 'autoreconnect', 'connect_retries', 'connect_cycle', 'send_retries']'
      2019-11-17  22:05:50 INFO     Main         plugin 'kodi': Metadata itemdeflist = '['kodi_item']'
      2019-11-17  22:05:50 INFO     Main         plugin 'kodi': Metadata plugin_functionlist = '['notify']'
      2019-11-17  22:05:50 INFO     Main         plugin 'kodi': Metadata get_plugin_function_defstrings -> '['notify(title, message, image, display_time)']'
      2019-11-17  22:05:50 INFO     Main         plugin 'kodi': Metadata get_plugin_function_defstrings -> '['notify(title:str, message:str, image:str, display_time:int)']'
      2019-11-17  22:05:50 INFO     Main         plugin 'kodi': Metadata get_plugin_function_defstrings -> '['notify(title, message, image=None, display_time=10000)']'
      2019-11-17  22:05:50 INFO     Main         plugin 'kodi': Metadata get_plugin_function_defstrings -> '['notify(title:str, message:str, image:str=None, display_time:int=10000)']'
      2019-11-17  22:05:50 INFO     Main         plugin 'kodi': Metadata itemstructlist = '[]'
      2019-11-17  22:05:50 INFO     Main         add_struct_definition: struct 'kodi.query' = OrderedDict([('name', 'Vorlage-Struktur für Kodi Infos, die nicht aktiv verämndert werden können.'), ('state', OrderedDict([('kodi_item@instance', 'state'), ('type', 'str'), ('visu_acl', 'ro')])), ('title', OrderedDict([('kodi_item@instance', 'title'), ('type', 'str'), ('visu_acl', 'ro')])), ('media', OrderedDict([('kodi_item@instance', 'media'), ('type', 'str'), ('visu_acl', 'ro')])), ('player', OrderedDict([('kodi_item@instance', 'player'), ('type', 'num'), ('visu_acl', 'rw'), ('enforce_updates', True)]))])
      2019-11-17  22:05:50 INFO     Main         add_struct_definition: struct 'kodi.control' = OrderedDict([('name', 'Vorlage-Struktur für Kodi Befehle zum Steuern'), ('mute', OrderedDict([('kodi_item@instance', 'mute'), ('type', 'bool'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('volume', OrderedDict([('kodi_item@instance', 'volume'), ('type', 'num'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('speed', OrderedDict([('kodi_item@instance', 'speed'), ('type', 'num'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('on_off', OrderedDict([('kodi_item@instance', 'on_off'), ('enforce_updates', True), ('type', 'bool'), ('visu_acl', 'rw')])), ('input', OrderedDict([('kodi_item@instance', 'input'), ('type', 'str'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('favourites', OrderedDict([('kodi_item@instance', 'favourites'), ('type', 'str'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('macro', OrderedDict([('kodi_item@instance', 'macro'), ('type', 'str'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('audiostream', OrderedDict([('kodi_item@instance', 'audiostream'), ('type', 'foo'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('subtitle', OrderedDict([('kodi_item@instance', 'subtitle'), ('type', 'list'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('seek', OrderedDict([('kodi_item@instance', 'seek'), ('type', 'num'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('home', OrderedDict([('kodi_item@instance', 'home'), ('type', 'bool'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('stop', OrderedDict([('type', 'bool'), ('eval', "sh...input('stop')"), ('enforce_updates', True)])), ('play', OrderedDict([('type', 'bool'), ('eval', "sh...input('play')"), ('enforce_updates', True)])), ('pause', OrderedDict([('type', 'bool'), ('eval', "sh...input('pause')"), ('enforce_updates', True)])), ('previous', OrderedDict([('type', 'bool'), ('eval', "sh...input('skipprevious')"), ('enforce_updates', True)])), ('next', OrderedDict([('type', 'bool'), ('eval', "sh...input('skipnext')"), ('enforce_updates', True)])), ('select', OrderedDict([('type', 'bool'), ('eval', "sh...input('select')"), ('enforce_updates', True)])), ('contextmenu', OrderedDict([('type', 'str'), ('eval', "sh...input('contextmenu')"), ('enforce_updates', True)]))])
      2019-11-17  22:05:50 INFO     Main         Loading '/usr/local/smarthome/plugins/kodi/locale.yaml' to 'dict'
      2019-11-17  22:05:50 INFO     Main         plugin 'kodi': value not found in plugin configuration file for parameter 'port' -> using default value '9090' instead
      2019-11-17  22:05:50 INFO     Main         plugin 'kodi': value not found in plugin configuration file for parameter 'instance' -> using default value '' instead
      2019-11-17  22:05:50 INFO     Main         plugin 'kodi': value not found in plugin configuration file for parameter 'connect_retries' -> using default value '10' instead
      2019-11-17  22:05:50 INFO     Main         plugin 'kodi': value not found in plugin configuration file for parameter 'connect_cycle' -> using default value '5' instead
      2019-11-17  22:05:50 INFO     Main         plugin 'kodi': value not found in plugin configuration file for parameter 'send_retries' -> using default value '5' instead
      2019-11-17  22:05:50 INFO     Main         Initialized plugin 'kodi' instance 'wohnzimmer' from from section 'kodi'
      wobei ich auch schon versucht hätte die Instanz wegzulassen - die items dementsprechend die Instanz weggenommen - auch dort keine Verbindung möglich
      Ports sind bei Kodi alle Standard belassen
      Steuern mit KORE funktioniert einwandfrei - also auf der Kodi Seite hätte ich keine Fehler gesehen (wobei ichs nicht für unmöglich halte)

      Kommentar


        #4
        Du sprichst von 2 Instanzen - wie sehen da die Einträge zu beiden Instanzen in der plugin.yaml aus? Im Log steht, dass instance nicht gefunden wurde, aber bei der Initialisierung passt es dann doch wieder. Hier ist also am ehesten was mit deiner Config nicht sauber.

        Was passiert denn nach der Initialisierung!? Logfile bitte.

        Kommentar


          #5
          Start Log (bereinigt um div. Plugins (duw, unifi, mqtt)

          Kodi mit 192.168.1.81 läuft aktuell, 192.168.1.82 läuft NICHT

          Code:
           [TABLE="border: 0, cellpadding: 0, cellspacing: 0"]
           	 		[TR]
           			[TD="width: 80"]2019-11-18  10:15:49 WARNING  Main         --------------------   Init SmartHomeNG 1.6.master (1dcb4fb5)   --------------------[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:49 WARNING  Main         Running in Python interpreter 'v3.5.3 final' (pid=11770) on linux platform[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:49 INFO     Main         test_requirements: filepath '/usr/local/smarthome/requirements/base.txt' is checked[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:49 INFO     Main         Loading '/usr/local/smarthome/etc/plugin.yaml' to 'dict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:50 INFO     Main         test_requirements: filepath '/usr/local/smarthome/requirements/conf_all.txt' is checked[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:50 INFO     Main         Init Scheduler[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:50 INFO     Main         Init loadable Modules[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:50 INFO     Main         Loading '/usr/local/smarthome/etc/module.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:50 INFO     Main         Module 'http': module_name 'http' was extracted from classpath 'modules.http'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:50 INFO     Main         Loading '/usr/local/smarthome/modules/http/module.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:50 INFO     Main         module 'http': Metadata paramlist = '['user', 'password', 'hashed_password', 'service_user', 'service_password', 'service_hashed_password', 'ip', 'port', 'tls_port', 'use_tls', 'tls_cert', 'tls_key', 'servicesport', 'showpluginlist', 'showservicelist', 'starturl', 'threads', 'showtraceback']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:50 INFO     Main         module 'http': has no item-struct definitions in metadata[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:50 INFO     Main         Loading module 'http': args = '{'servicesport': "'4321'", 'port': "'8383'", 'starturl': "'admin'"}'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         module 'http': value not found in plugin configuration file for parameter 'user' -> using default value 'admin' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         module 'http': value not found in plugin configuration file for parameter 'password' -> using default value '' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         module 'http': value not found in plugin configuration file for parameter 'hashed_password' -> using default value '' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         module 'http': value not found in plugin configuration file for parameter 'service_user' -> using default value 'serviceuser' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         module 'http': value not found in plugin configuration file for parameter 'service_password' -> using default value '' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         module 'http': value not found in plugin configuration file for parameter 'service_hashed_password' -> using default value '' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         module 'http': value not found in plugin configuration file for parameter 'ip' -> using default value '0.0.0.0' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         module 'http': value not found in plugin configuration file for parameter 'tls_port' -> using default value '8385' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         module 'http': value not found in plugin configuration file for parameter 'use_tls' -> using default value 'False' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         module 'http': value not found in plugin configuration file for parameter 'tls_cert' -> using default value 'shng.cer' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         module 'http': value not found in plugin configuration file for parameter 'tls_key' -> using default value 'shng.key' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         module 'http': value not found in plugin configuration file for parameter 'showpluginlist' -> using default value 'True' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         module 'http': value not found in plugin configuration file for parameter 'showservicelist' -> using default value 'False' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         module 'http': value not found in plugin configuration file for parameter 'threads' -> using default value '4' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         module 'http': value not found in plugin configuration file for parameter 'showtraceback' -> using default value 'False' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         Module 'http': ip address = 192.168.1.20, hostname = 'Router'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         _hostmap_webifs = {'Router.local:8383': '/msg', '192.168.1.20:8383': '/msg', 'Router:8383': '/msg'}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         _hostmap_services = {'192.168.1.20:4321': '/msg', 'Router:4321': '/msg', 'Router.local:4321': '/msg'}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         [18/Nov/2019:10:15:51] ENGINE Bus STARTING[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         [18/Nov/2019:10:15:51] ENGINE Serving on http://192.168.1.20:4321[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         [18/Nov/2019:10:15:51] ENGINE Serving on http://192.168.1.20:8383[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         [18/Nov/2019:10:15:51] ENGINE Bus STARTED[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         mount '/plugins' - webif_dir = '/usr/local/smarthome/modules/http/webif'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         Module http: config dict: '{'/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'gstatic'}, '/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/': {'tools.staticdir.root': '/usr/local/smarthome/modules/http/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.checkpassword': <bound method Http.validate_password of <modules.http.Http object at 0x75ca21d0>>, 'tools.auth_basic.realm': 'shng_http_webif'}}'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main          - user 'admin', password '', hashed_password ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         Module http: Registering webinterface 'plugins' of plugin 'plugins' from pluginclass '' instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main          - conf dict: '{'/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}, '/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/': {'tools.staticdir.root': '/usr/local/smarthome/modules/http/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.checkpassword': <bound method Http.validate_password of <modules.http.Http object at 0x75ca21d0>>, 'tools.auth_basic.realm': 'shng_http_webif'}}'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         Modules: Loaded module 'http' (class 'Http') v1.6.0: Modul zur Implementierung von Backend-Webinterfaces für Plugins[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         Loading '/usr/local/smarthome/modules/admin/module.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         module 'admin': Metadata paramlist = '['login_expiration', 'login_autorenew', 'pypi_timeout', 'itemtree_fullpath', 'itemtree_searchstart', 'websocket_host', 'websocket_port', 'log_chunksize']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         module 'admin': has no item-struct definitions in metadata[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:51 INFO     Main         Loading module 'admin': args = '{'module_name': "'admin'"}'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:52 INFO     Main         module 'admin': value not found in plugin configuration file for parameter 'login_expiration' -> using default value '48.0' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:52 INFO     Main         module 'admin': value not found in plugin configuration file for parameter 'login_autorenew' -> using default value 'True' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:52 INFO     Main         module 'admin': value not found in plugin configuration file for parameter 'pypi_timeout' -> using default value '5' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:52 INFO     Main         module 'admin': value not found in plugin configuration file for parameter 'itemtree_fullpath' -> using default value 'True' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:52 INFO     Main         module 'admin': value not found in plugin configuration file for parameter 'itemtree_searchstart' -> using default value '2.0' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:52 INFO     Main         module 'admin': value not found in plugin configuration file for parameter 'websocket_host' -> using default value '0.0.0.0' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:52 INFO     Main         module 'admin': value not found in plugin configuration file for parameter 'websocket_port' -> using default value '2424' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:52 INFO     Main         module 'admin': value not found in plugin configuration file for parameter 'log_chunksize' -> using default value '1000' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:52 INFO     Main         Modules: Loaded module 'admin' (class 'Admin') v1.6.0: Dieses Modul implementiert das Administrationinterface von SmartHomeNG[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:52 INFO     Main         Loaded Modules: ['admin', 'http'][/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:52 INFO     Main         Start Modules[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:52 INFO     Main         Module 'admin': webif_dir = webif_dir = /usr/local/smarthome/modules/admin/webif[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:52 INFO     Main         Module http: Registering webinterface 'admin' of plugin 'admin' from pluginclass 'admin' instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:52 INFO     Main          - conf dict: '{'/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}, '/': {'tools.expires.on': True, 'tools.staticdir.on': True, 'tools.caching.delay': 6, 'error_page.404': '/usr/local/smarthome/modules/admin/webif/static/index.html', 'tools.caching.force': False, 'tools.expires.secs': 6, 'tools.staticdir.index': 'index.html', 'tools.staticdir.root': '/usr/local/smarthome/modules/admin/webif', 'tools.staticdir.dir': 'static', 'tools.chaching.on': False}}'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:52 INFO     Main         self._applications['admin'] = {'Mount': '/admin', 'Pluginname': 'admin', 'Instance': '', 'Pluginclass': 'admin', 'Description': 'Administrationsoberfläche für SmartHomeNG', 'Webifname': 'admin', 'Conf': {'/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}, '/': {'tools.expires.on': True, 'tools.staticdir.on': True, 'tools.caching.delay': 6, 'error_page.404': '/usr/local/smarthome/modules/admin/webif/static/index.html', 'tools.caching.force': False, 'tools.expires.secs': 6, 'tools.staticdir.index': 'index.html', 'tools.staticdir.root': '/usr/local/smarthome/modules/admin/webif', 'tools.staticdir.dir': 'static', 'tools.chaching.on': False}}}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:52 INFO     Main         Loading '/usr/local/smarthome/modules/core/module.yaml' to 'dict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:52 INFO     Main         Loading '/usr/local/smarthome/modules/http/module.yaml' to 'dict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:52 INFO     Main         Loading '/usr/local/smarthome/modules/admin/module.yaml' to 'dict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:53 INFO     Main         __init__ self.logics = None[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:53 INFO     Main         __init__ self.plugins = None[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:53 INFO     Main         __init__ self.scheduler = <Scheduler(Scheduler, started 1975788656)>[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:53 INFO     Main         Loading '/usr/local/smarthome/etc/logging.yaml' to 'dict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:53 INFO     Main         logging_conf: self.root_logname = smarthome[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:53 INFO     Main         PluginController(): __init__[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:53 INFO     Main         Module http: Registering webinterface 'api' of plugin 'api' from pluginclass 'api' instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:53 INFO     Main          - conf dict: '{'/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}, '/': {'error_page.405': <bound method Admin._error_page of <modules.admin.Admin object at 0x723dcbb0>>, 'tools.expires.on': True, 'tools.caching.delay': 6, 'request.dispatch': <cherrypy._cpdispatch.MethodDispatcher object at 0x75c99ab0>, 'tools.expires.secs': 6, 'error_page.411': <bound method Admin._error_page of <modules.admin.Admin object at 0x723dcbb0>>, 'error_page.500': <bound method Admin._error_page of <modules.admin.Admin object at 0x723dcbb0>>, 'error_page.401': <bound method Admin._error_page of <modules.admin.Admin object at 0x723dcbb0>>, 'error_page.404': <bound method Admin._error_page of <modules.admin.Admin object at 0x723dcbb0>>, 'error_page.400': <bound method Admin._error_page of <modules.admin.Admin object at 0x723dcbb0>>, 'tools.chaching.on': False, 'tools.caching.force': False}}'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:53 INFO     Main         self._applications['api'] = {'Mount': '/api', 'Pluginname': 'api', 'Instance': '', 'Pluginclass': 'api', 'Description': 'API der Administrationsoberfläche für SmartHomeNG', 'Webifname': 'api', 'Conf': {'/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}, '/': {'error_page.405': <bound method Admin._error_page of <modules.admin.Admin object at 0x723dcbb0>>, 'tools.expires.on': True, 'tools.caching.delay': 6, 'request.dispatch': <cherrypy._cpdispatch.MethodDispatcher object at 0x75c99ab0>, 'tools.expires.secs': 6, 'error_page.411': <bound method Admin._error_page of <modules.admin.Admin object at 0x723dcbb0>>, 'error_page.500': <bound method Admin._error_page of <modules.admin.Admin object at 0x723dcbb0>>, 'error_page.401': <bound method Admin._error_page of <modules.admin.Admin object at 0x723dcbb0>>, 'error_page.404': <bound method Admin._error_page of <modules.admin.Admin object at 0x723dcbb0>>, 'error_page.400': <bound method Admin._error_page of <modules.admin.Admin object at 0x723dcbb0>>, 'tools.chaching.on': False, 'tools.caching.force': False}}}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:53 INFO     Main         Init Plugins[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:53 INFO     Main         Loading '/usr/local/smarthome/etc/plugin.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:53 INFO     Main         Loading '/usr/local/smarthome/bin/locale.yaml' to 'dict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         Loaded global translations = {'Item': {'en': '=', 'fr': 'Objet', 'de': '='}, 'IP': {'en': '=', 'fr': '=', 'de': '='}, 'Funktion': {'en': 'Function', 'fr': 'Fonction', 'de': '='}, 'Aktiv': {'en': 'Active', 'fr': 'Actif', 'de': '='}, 'Scheduler': {'en': 'Scheduler', 'fr': '', 'de': '='}, 'deaktiviert': {'de': '=', 'en': 'disabled'}, 'Stunde': {'en': 'hour', 'fr': 'heure', 'de': '='}, 'Pfad': {'en': 'Path', 'fr': '', 'de': '='}, 'Dienste': {'en': 'Services', 'fr': '', 'de': '='}, 'Szenen': {'en': 'Scenes', 'fr': '', 'de': '='}, 'Clients': {'en': '=', 'fr': '', 'de': '='}, 'Verbunden': {'de': '=', 'en': 'Connected'}, 'Plugins': {'en': '=', 'fr': '', 'de': '='}, 'Thread': {'en': '=', 'fr': '', 'de': '='}, 'Version': {'en': '=', 'fr': '=', 'de': '='}, 'Sekunden': {'en': 'seconds', 'fr': 'secondes', 'de': '='}, 'Wert': {'en': 'Value', 'fr': 'Valeur', 'de': '='}, 'Benutzer': {'en': 'User', 'fr': 'Utilisateur', 'de': '='}, 'Typ': {'en': 'Type', 'fr': 'Type', 'de': '='}, 'Geräte': {'en': 'Devices', 'fr': 'Appareils', 'de': '='}, 'Adresse': {'en': 'Address', 'fr': 'Adresse', 'de': '='}, 'Szene': {'en': 'Scene', 'fr': '', 'de': '='}, 'Nein': {'en': 'No', 'fr': 'Non', 'de': '='}, 'Port': {'en': '=', 'fr': '=', 'de': '='}, 'Dienst': {'en': 'Service', 'fr': '', 'de': '='}, 'Ja': {'en': 'Yes', 'fr': 'Qui', 'de': '='}, 'Urheberrechtshinweise': {'en': 'Disclosure', 'fr': '', 'de': '='}, 'Threads': {'en': '=', 'fr': '', 'de': '='}, 'Logik': {'en': 'Logic', 'fr': '', 'de': '='}, 'Tage': {'en': 'days', 'fr': 'jours', 'de': '='}, 'Aktualisieren': {'en': 'Update', 'fr': 'Recharger', 'de': '='}, 'Letzter Change': {'en': 'Last Change', 'fr': '', 'de': '='}, 'Logiken': {'en': 'Logics', 'fr': '', 'de': '='}, 'Instanz': {'en': 'Instance', 'fr': '=', 'de': '='}, 'Sekunde': {'en': 'second', 'fr': 'seconde', 'de': '='}, 'aktiviert': {'de': '=', 'en': 'enabled'}, 'Gestoppt': {'en': 'Stopped', 'fr': 'Arrêté', 'de': '='}, 'Host': {'en': '=', 'fr': 'Hôte', 'de': '='}, 'Scheduler (plural)': {'en': 'Schedulers', 'fr': '', 'de': 'Scheduler'}, 'Tag': {'en': 'day', 'fr': 'jour', 'de': '='}, 'Kanal': {'en': 'Channel', 'fr': 'Canal', 'de': '='}, 'Knoten': {'en': 'Node', 'fr': 'noeud', 'de': '='}, 'Status': {'en': '=', 'fr': '', 'de': '='}, 'Stunden': {'en': 'hours', 'fr': 'heures', 'de': '='}, 'Items': {'en': '=', 'fr': 'Objets', 'de': '='}, 'Name': {'en': '=', 'fr': 'Nom', 'de': '='}, 'Client': {'en': '=', 'fr': '', 'de': '='}, 'Schließen': {'en': 'Close', 'fr': 'Fermer', 'de': '='}, 'Letztes Update': {'en': 'Last Update', 'fr': '', 'de': '='}, 'Plugin': {'en': '=', 'fr': '', 'de': '='}, 'Firmware': {'en': '=', 'fr': 'Micrologiciel', 'de': '='}, 'Minuten': {'en': 'minutes', 'fr': 'minutes', 'de': '='}, 'Logging': {'en': '=', 'fr': '', 'de': '='}, 'Minute': {'en': 'minute', 'fr': 'minute', 'de': '='}, 'Gerät': {'en': 'Device', 'fr': 'Appareil', 'de': '='}, 'Passwort': {'de': '=', 'en': 'Password'}, 'Laufzeit': {'de': '=', 'en': 'Uptime'}, 'Protokoll': {'en': 'Protocol', 'fr': 'Protocole', 'de': '='}, 'Browser': {'en': '=', 'fr': 'Navigateur', 'de': '='}}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         Load plugins[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         Loading '/usr/local/smarthome/plugins/backend/plugin.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         plugin 'backend': Metadata paramlist = '['updates_allowed', 'developer_mode', 'pypi_timeout']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         Loading '/usr/local/smarthome/plugins/backend/locale.yaml' to 'dict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         plugin 'backend': value not found in plugin configuration file for parameter 'updates_allowed' -> using default value 'True' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         plugin 'backend': value not found in plugin configuration file for parameter 'developer_mode' -> using default value 'False' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         plugin 'backend': value not found in plugin configuration file for parameter 'pypi_timeout' -> using default value '5' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         WebInterface: Running from '/usr/local/smarthome/plugins/backend/webif'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         BackendSysteminfo __init__[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         BackendServices __init__[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         BackendItems __init__ <lib.item.Items object at 0x75ca2670>[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         BackendLogics __init__ self.logics = None[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         BackendLogics __init__ self.plugins = <lib.plugin.Plugins object at 0x6a11c510>[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         BackendLogics __init__ self.scheduler = <Scheduler(Scheduler, started 1975788656)>[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         BackendSchedulers __init__ self.scheduler = <Scheduler(Scheduler, started 1975788656)>[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         BackendPlugins __init__ self.plugins = <lib.plugin.Plugins object at 0x6a11c510>[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         BackendScenes __init__[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         BackendThreads __init__[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         BackendLogging __init__[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         Module http: Registering webinterface 'backend' of plugin 'backend' from pluginclass 'BackendServer' instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main          - conf dict: '{'/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}, '/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/': {'tools.staticdir.root': '/usr/local/smarthome/plugins/backend/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.checkpassword': <bound method Http.validate_password of <modules.http.Http object at 0x75ca21d0>>, 'tools.auth_basic.realm': 'shng_http_webif'}}'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         self._applications['backend'] = {'Mount': '/backend', 'Pluginname': 'backend', 'Instance': '', 'Pluginclass': 'BackendServer', 'Description': 'Administrationsoberfläche für SmartHomeNG', 'Webifname': 'backend', 'Conf': {'/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}, '/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/': {'tools.staticdir.root': '/usr/local/smarthome/plugins/backend/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.checkpassword': <bound method Http.validate_password of <modules.http.Http object at 0x75ca21d0>>, 'tools.auth_basic.realm': 'shng_http_webif'}}}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         Initialized plugin 'backend' from from section 'BackendServer'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:54 INFO     Main         Loading '/usr/local/smarthome/plugins/knx/plugin.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:55 INFO     Main         plugin 'knx': Metadata paramlist = '['time_ga', 'date_ga', 'send_time', 'busmonitor', 'host', 'port', 'readonly', 'enable_stats', 'instance']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:55 INFO     Main         plugin 'knx': Metadata itemdeflist = '['knx_dpt', 'knx_send', 'knx_listen', 'knx_init', 'knx_cache', 'knx_reply', 'knx_status', 'knx_poll']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:55 INFO     Main         plugin 'knx': Metadata logic_paramlist = '['knx_listen', 'knx_reply']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:55 INFO     Main         plugin 'knx': Metadata plugin_functionlist = '['encode', 'groupwrite', 'groupread', 'send_time']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:55 INFO     Main         plugin 'knx': Metadata get_plugin_function_defstrings -> '['encode(data, dpt)', 'groupread(ga, cache)', 'groupwrite(ga, data, dpt)', 'send_time(time_ga, date_ga)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:55 INFO     Main         plugin 'knx': Metadata get_plugin_function_defstrings -> '['encode(data:foo, dpt:foo)', 'groupread(ga:knx_ga, cache:bool)', 'groupwrite(ga:knx_ga, data:foo, dpt:str)', 'send_time(time_ga:knx_ga, date_ga:knx_ga)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:55 INFO     Main         plugin 'knx': Metadata get_plugin_function_defstrings -> '['encode(data, dpt)', 'groupread(ga, cache=False)', 'groupwrite(ga, data, dpt)', 'send_time(time_ga, date_ga)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:55 INFO     Main         plugin 'knx': Metadata get_plugin_function_defstrings -> '['encode(data:foo, dpt:foo)', 'groupread(ga:knx_ga, cache:bool=False)', 'groupwrite(ga:knx_ga, data:foo, dpt:str)', 'send_time(time_ga:knx_ga, date_ga:knx_ga)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:55 INFO     Main         Loading '/usr/local/smarthome/plugins/knx/locale.yaml' to 'dict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:55 INFO     Main         Plugin 'knx': Loaded plugin translations = {'Statistiken': {'en': 'Statistics', 'fr': 'Statistiques', 'de': '='}, 'Gruppen Adresse': {'en': 'Group Address', 'fr': '', 'de': '='}, 'Letzte KNX Aktivität': {'en': 'Last KNX activity', 'fr': 'Dernière activité KNX', 'de': '='}, '# gelesen': {'en': '# read', 'fr': '', 'de': '='}, '# geschrieben': {'en': '# write', 'fr': '', 'de': '='}, '# geantwortet': {'en': '# response', 'fr': '', 'de': '='}, 'Service für den KNX Support': {'en': 'Service deamon for the KNX support', 'fr': '', 'de': '='}}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:55 INFO     Main         plugin 'knx': value not found in plugin configuration file for parameter 'date_ga' -> using default value '' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:55 INFO     Main         plugin 'knx': value not found in plugin configuration file for parameter 'busmonitor' -> using default value 'off' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:55 INFO     Main         plugin 'knx': value not found in plugin configuration file for parameter 'readonly' -> using default value 'False' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:55 INFO     Main         plugin 'knx': value not found in plugin configuration file for parameter 'enable_stats' -> using default value 'True' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:55 INFO     Main         plugin 'knx': value not found in plugin configuration file for parameter 'instance' -> using default value '' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:55 INFO     Main         Module http: Registering webinterface 'knx' of plugin 'knx' from pluginclass 'KNX' instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:55 INFO     Main          - conf dict: '{'/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}, '/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/': {'tools.staticdir.root': '/usr/local/smarthome/plugins/knx/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.checkpassword': <bound method Http.validate_password of <modules.http.Http object at 0x75ca21d0>>, 'tools.auth_basic.realm': 'shng_http_webif'}}'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:55 INFO     Main         self._applications['knx'] = {'Mount': '/knx', 'Pluginname': 'knx', 'Instance': '', 'Pluginclass': 'KNX', 'Description': 'Webinterface knx of plugin knx', 'Webifname': 'knx', 'Conf': {'/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}, '/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/': {'tools.staticdir.root': '/usr/local/smarthome/plugins/knx/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.checkpassword': <bound method Http.validate_password of <modules.http.Http object at 0x75ca21d0>>, 'tools.auth_basic.realm': 'shng_http_webif'}}}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:55 INFO     Main         Initialized plugin 'knx' from from section 'knx'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         Loading '/usr/local/smarthome/plugins/visu_websocket/plugin.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         plugin 'visu_websocket': Metadata paramlist = '['ip', 'port', 'tls', 'acl', 'wsproto', 'querydef']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         plugin 'visu_websocket': Metadata itemdeflist = '['visu_acl']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         plugin 'visu_websocket': Metadata logic_paramlist = '['visu_acl']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         plugin 'visu_websocket': Metadata plugin_functionlist = '['url']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         plugin 'visu_websocket': Metadata get_plugin_function_defstrings -> '['url(url, clientip)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         plugin 'visu_websocket': Metadata get_plugin_function_defstrings -> '['url(url:str, clientip:str)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         plugin 'visu_websocket': Metadata get_plugin_function_defstrings -> '["url(url, clientip= '')"]'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         plugin 'visu_websocket': Metadata get_plugin_function_defstrings -> '["url(url:str, clientip:str= '')"]'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         Loading '/usr/local/smarthome/plugins/visu_websocket/locale.yaml' to 'dict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         Plugin 'visu': Loaded plugin translations = {'Visu Client': {'de': '=', 'en': '='}, 'Client Software': {'de': '=', 'en': '='}, 'Keine aktiven Clients': {'de': '=', 'en': 'No active clients'}, 'nicht aktiv': {'de': '=', 'en': 'disabled'}, 'Visu Zugriff': {'de': '=', 'en': 'Visu Access'}, 'Definitions-Abfrage': {'de': '=', 'en': 'Query definitions'}, 'Verboten': {'de': '=', 'en': 'Forbidden'}, 'nicht erlaubt': {'de': '=', 'en': 'disabled'}, 'aktiv': {'de': '=', 'en': 'enabled'}, 'Erlaubt': {'de': '=', 'en': 'Allowed'}, 'Websocket Protokoll': {'de': '=', 'en': 'Websocket protocol'}, 'erlaubt': {'de': '=', 'en': 'enabled'}, 'Standard Zugriff': {'de': '=', 'en': 'Default Access'}, 'Anzahl Clients': {'de': '=', 'en': 'Number of clients'}}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         plugin 'visu_websocket': value not found in plugin configuration file for parameter 'ip' -> using default value '0.0.0.0' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         plugin 'visu_websocket': value not found in plugin configuration file for parameter 'tls' -> using default value 'False' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         plugin 'visu_websocket': value not found in plugin configuration file for parameter 'querydef' -> using default value 'False' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         Module http: Registering webinterface 'visu_websocket' of plugin 'visu_websocket' from pluginclass 'WebSocket' instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main          - conf dict: '{'/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}, '/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/': {'tools.staticdir.root': '/usr/local/smarthome/plugins/visu_websocket/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.checkpassword': <bound method Http.validate_password of <modules.http.Http object at 0x75ca21d0>>, 'tools.auth_basic.realm': 'shng_http_webif'}}'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         self._applications['visu_websocket'] = {'Mount': '/visu_websocket', 'Pluginname': 'visu_websocket', 'Instance': '', 'Pluginclass': 'WebSocket', 'Description': 'Webinterface visu_websocket of plugin visu_websocket', 'Webifname': 'visu_websocket', 'Conf': {'/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}, '/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/': {'tools.staticdir.root': '/usr/local/smarthome/plugins/visu_websocket/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.checkpassword': <bound method Http.validate_password of <modules.http.Http object at 0x75ca21d0>>, 'tools.auth_basic.realm': 'shng_http_webif'}}}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         Initialized plugin 'visu_websocket' from from section 'visu'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         Loading '/usr/local/smarthome/plugins/telegram/plugin.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         plugin 'telegram': Metadata paramlist = '['token', 'name', 'long_polling_timeout', 'welcome_msg', 'bye_msg', 'no_access_msg', 'no_write_access_msg', 'pretty_thread_names']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         plugin 'telegram': Metadata itemdeflist = '['telegram_message', 'telegram_info', 'telegram_text', 'telegram_value_match_regex', 'telegram_chat_ids']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         plugin 'telegram': Metadata plugin_functionlist = '['msg_broadcast', 'photo_broadcast']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         plugin 'telegram': Metadata get_plugin_function_defstrings -> '['msg_broadcast(msg, chat_id)', 'photo_broadcast(photofile_or_url, caption, chat_id)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         plugin 'telegram': Metadata get_plugin_function_defstrings -> '['msg_broadcast(msg:str, chat_id:int)', 'photo_broadcast(photofile_or_url:str, caption:str, chat_id:int)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         plugin 'telegram': Metadata get_plugin_function_defstrings -> '['msg_broadcast(msg, chat_id)', 'photo_broadcast(photofile_or_url, caption, chat_id)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:56 INFO     Main         plugin 'telegram': Metadata get_plugin_function_defstrings -> '['msg_broadcast(msg:str, chat_id:int)', 'photo_broadcast(photofile_or_url:str, caption:str, chat_id:int)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:57 INFO     Main         Loading '/usr/local/smarthome/plugins/telegram/locale.yaml' to 'dict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:57 INFO     Main         Plugin 'telegram': Loaded plugin translations = {'Info from the items:': {'en': '=', 'fr': 'Info sur les Items:', 'de': 'Infos von den Items:'}, 'choose': {'en': '=', 'fr': 'Choisissez parmi', 'de': 'Auswählen'}, 'no items found with the attribute %s': {'en': '=', 'fr': 'Ne pas trouvée une Item avec %s', 'de': 'Keine Items mit Attribut %s gefunden'}, 'I will hide the keyboard': {'en': '=', 'fr': 'Je cache le clavier', 'de': 'Ich blende die Bedientasten aus'}, 'unknown command %s': {'en': '=', 'fr': 'commande inconnue %s:', 'de': 'Unbekanntes Kommando %s:'}}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:57 INFO     Main         plugin 'telegram': value not found in plugin configuration file for parameter 'long_polling_timeout' -> using default value '120.0' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:57 INFO     Main         plugin 'telegram': value not found in plugin configuration file for parameter 'bye_msg' -> using default value 'SmartHomeNG Telegram Plugin stops' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:57 INFO     Main         plugin 'telegram': value not found in plugin configuration file for parameter 'no_access_msg' -> using default value 'This bot does not know your chat id and thus does not trust it, you are not allowed to use this bot' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:57 INFO     Main         plugin 'telegram': value not found in plugin configuration file for parameter 'no_write_access_msg' -> using default value 'This bot knows your chat id but you are not allowed to use this bot to write to items' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:57 INFO     Main         plugin 'telegram': value not found in plugin configuration file for parameter 'pretty_thread_names' -> using default value 'True' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:57 INFO     Main         Telegram bot is listening: *****[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:57 INFO     Main         Module http: Registering webinterface 'telegram' of plugin 'telegram' from pluginclass 'Telegram' instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:57 INFO     Main          - conf dict: '{'/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}, '/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/': {'tools.staticdir.root': '/usr/local/smarthome/plugins/telegram/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.checkpassword': <bound method Http.validate_password of <modules.http.Http object at 0x75ca21d0>>, 'tools.auth_basic.realm': 'shng_http_webif'}}'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:57 INFO     Main         self._applications['telegram'] = {'Mount': '/telegram', 'Pluginname': 'telegram', 'Instance': '', 'Pluginclass': 'Telegram', 'Description': 'Webinterface telegram of plugin telegram', 'Webifname': 'telegram', 'Conf': {'/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}, '/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/': {'tools.staticdir.root': '/usr/local/smarthome/plugins/telegram/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.checkpassword': <bound method Http.validate_password of <modules.http.Http object at 0x75ca21d0>>, 'tools.auth_basic.realm': 'shng_http_webif'}}}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:57 INFO     Main         Initialized plugin 'telegram' from from section 'telegram'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:57 INFO     Main         Loading '/usr/local/smarthome/plugins/visu_smartvisu/plugin.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:58 INFO     Main         plugin 'visu_smartvisu': Metadata paramlist = '['smartvisu_dir', 'generate_pages', 'overwrite_templates', 'visu_style', 'handle_widgets', 'instance']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:58 INFO     Main         plugin 'visu_smartvisu': Metadata itemdeflist = '['sv_page', 'sv_overview', 'sv_item_type', 'sv_img', 'sv_widget', 'sv_widget2', 'sv_nav_aside', 'sv_nav_aside2', 'sv_heading_left', 'sv_heading_center', 'sv_heading_right']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:58 INFO     Main         Loading '/usr/local/smarthome/plugins/visu_smartvisu/locale.yaml' to 'dict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:58 INFO     Main         plugin 'visu_smartvisu': value not found in plugin configuration file for parameter 'generate_pages' -> using default value 'True' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:58 INFO     Main         plugin 'visu_smartvisu': value not found in plugin configuration file for parameter 'overwrite_templates' -> using default value 'True' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:58 INFO     Main         plugin 'visu_smartvisu': value not found in plugin configuration file for parameter 'visu_style' -> using default value 'std' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:58 INFO     Main         plugin 'visu_smartvisu': value not found in plugin configuration file for parameter 'handle_widgets' -> using default value 'True' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:58 INFO     Main         plugin 'visu_smartvisu': value not found in plugin configuration file for parameter 'instance' -> using default value '' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:58 INFO     Main         Initialized plugin 'visu_smartvisu' from from section 'smartvisu'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:15:58 INFO     Main         Loading '/usr/local/smarthome/plugins/database/plugin.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:00 INFO     Main         plugin 'database': Metadata paramlist = '['driver', 'connect', 'prefix', 'cycle', 'precision']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:00 INFO     Main         plugin 'database': Metadata itemdeflist = '['database']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:00 INFO     Main         plugin 'database': Metadata plugin_functionlist = '['id', 'db', 'dump', 'insertLog', 'updateLog', 'readLog', 'deleteLog', 'readLogs', 'insertItem', 'updateItem', 'readItem', 'readItems', 'deleteItem', 'cleanup']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:00 INFO     Main         plugin 'database': Metadata get_plugin_function_defstrings -> '['cleanup()', 'db()', 'deleteItem(id)', 'deleteLog(id, time, time_start, time_end, changed, changed_start, changed_end, cur)', 'dump(dumpfile, id, time, time_start, time_end, changed, changed_start, changed_end, cur)', 'id(item)', 'insertItem(name, cur)', 'insertLog(id, time, duration, val, it, changed, cur)', 'readItem(id, cur)', 'readItems(id, cur)', 'readLog(id, time)', 'readLogs(id, time, time_start, time_end, changed, changed_start, changed_end, cur)', 'updateItem(id, time, duration, val, it, changed, cur)', 'updateLog(id, time, duration, val, it, changed, cur)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:00 INFO     Main         plugin 'database': Metadata get_plugin_function_defstrings -> '['cleanup()', 'db()', 'deleteItem(id:int)', 'deleteLog(id:int, time:int, time_start:int, time_end:int, changed:int, changed_start:int, changed_end:int, cur:foo)', 'dump(dumpfile:str, id:int, time:int, time_start:int, time_end:int, changed:int, changed_start:int, changed_end:int, cur:foo)', 'id(item:foo)', 'insertItem(name:str, cur:foo)', 'insertLog(id:int, time:int, duration:int, val:str, it:str, changed:int, cur:foo)', 'readItem(id:int, cur:foo)', 'readItems(id:int, cur:foo)', 'readLog(id:int, time:int)', 'readLogs(id:int, time:int, time_start:int, time_end:int, changed:int, changed_start:int, changed_end:int, cur:foo)', 'updateItem(id:int, time:int, duration:int, val:str, it:str, changed:int, cur:foo)', 'updateLog(id:int, time:int, duration:int, val:str, it:str, changed:int, cur:foo)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:00 INFO     Main         plugin 'database': Metadata get_plugin_function_defstrings -> '['cleanup()', 'db()', 'deleteItem(id)', 'deleteLog(id, time, time_start, time_end, changed, changed_start, changed_end, cur)', 'dump(dumpfile, id, time, time_start, time_end, changed, changed_start, changed_end, cur)', 'id(item)', 'insertItem(name, cur)', 'insertLog(id, time, duration, val, it, changed, cur)', 'readItem(id, cur)', 'readItems(id, cur)', 'readLog(id, time)', 'readLogs(id, time, time_start, time_end, changed, changed_start, changed_end, cur)', 'updateItem(id, time, duration, val, it, changed, cur)', 'updateLog(id, time, duration, val, it, changed, cur)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:00 INFO     Main         plugin 'database': Metadata get_plugin_function_defstrings -> '['cleanup()', 'db()', 'deleteItem(id:int)', 'deleteLog(id:int, time:int, time_start:int, time_end:int, changed:int, changed_start:int, changed_end:int, cur:foo)', 'dump(dumpfile:str, id:int, time:int, time_start:int, time_end:int, changed:int, changed_start:int, changed_end:int, cur:foo)', 'id(item:foo)', 'insertItem(name:str, cur:foo)', 'insertLog(id:int, time:int, duration:int, val:str, it:str, changed:int, cur:foo)', 'readItem(id:int, cur:foo)', 'readItems(id:int, cur:foo)', 'readLog(id:int, time:int)', 'readLogs(id:int, time:int, time_start:int, time_end:int, changed:int, changed_start:int, changed_end:int, cur:foo)', 'updateItem(id:int, time:int, duration:int, val:str, it:str, changed:int, cur:foo)', 'updateLog(id:int, time:int, duration:int, val:str, it:str, changed:int, cur:foo)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:00 INFO     Main         Loading '/usr/local/smarthome/plugins/database/locale.yaml' to 'dict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:00 INFO     Main         Plugin 'database': Loaded plugin translations = {'Datenbank-Cleanup': {'de': '=', 'en': 'Database Cleanup'}, 'Historische Daten': {'de': 'Historische Daten', 'en': 'Historical Data'}, 'Zeige Einträge vom': {'de': 'Zeige Einträge vom', 'en': 'Show entries from'}, 'CSV Export der Werte': {'de': 'CSV Export der Werte', 'en': 'CSV Export of Values'}, 'in der Tabelle "log" wurde erfolgreich initiiert!': {'de': 'in der Tabelle "log" wurde erfolgreich initiiert!', 'en': 'in table "log" successfully initiated.'}, 'Item-ID in der Datenbank': {'de': 'Item-ID in der Datenbank', 'en': 'Item ID within the database'}, 'Wert löschen': {'de': 'Wert löschen', 'en': 'Delete Value'}, 'Verbunden': {'de': 'Verbunden', 'en': 'Connected'}, 'Löschauftrag für die Einträge von Item ID': {'de': 'Löschauftrag für die Einträge von Item ID', 'en': 'Deletion of data for the entries of item ID'}, 'Datensätze': {'de': 'Datensätze', 'en': 'Data Sets'}, 'Die folgenden Einträge entstammen der log Tabelle mit historischen Daten für das Item {{ item_path }} (Datenbank-ID: {{ item_id }})': {'de': 'Die folgenden Einträge entstammen der log Tabelle mit historischen Daten für das Item', 'en': 'The following entries are derived from the log table with historical data for item )'}, 'Ja': {'de': 'Ja', 'en': 'Yes'}, 'Zeit': {'de': 'Zeit', 'en': 'Time'}, 'Übersicht': {'de': 'Übersicht', 'en': 'Overview'}, 'Löschauftrag in der Tabelle "log" wurde erfolgreich initiiert!': {'de': 'Löschauftrag in der Tabelle "log" wurde erfolgreich initiiert!', 'en': 'Deletion of data set successfully initiated!'}, 'Wollen Sie den Datensatz (Tabelle log) dieses Items wirklich löschen?': {'de': 'Wollen Sie den Datensatz (Tabelle log) dieses Items wirklich löschen?', 'en': 'Do you really want to delete the historic dataset (table log) of this item?'}, 'Wollen Sie die historischen Daten (Tabelle log) dieses Items wirklich löschen?': {'de': 'Wollen Sie die historischen Daten (Tabelle log) dieses Items wirklich löschen?', 'en': 'Do you really want to delete the historical data (table log) of this item?'}, 'Datenbank-Cleanup wurde erfolgreich initiiert!': {'de': '=', 'en': 'Database cleanup successfully initiated!'}, 'Anzahl Einträge in LOG Tabelle für Item': {'de': '=', 'en': 'Number of data sets in LOG table for item'}, 'Wertehistorie löschen': {'de': 'Wertehistorie löschen', 'en': 'Delete Historical Data'}, 'Geändert': {'de': 'Geändert', 'en': 'Changed'}, 'Item ID': {'de': 'Item ID', 'en': 'Item ID'}, 'am': {'de': 'am', 'en': 'on the'}, 'Aktionen': {'de': 'Aktionen', 'en': 'Actions'}, 'Anzahl Datensätze in LOG Tabelle': {'de': '=', 'en': 'Number of data sets in LOG table'}, 'Die folgenden Items sind dieser Instanz des Database Plugins zugewiesen': {'de': 'Die folgenden Items sind dieser Instanz des Database Plugins zugewiesen', 'en': 'The following items are assigned to this instance of the database plugin'}, 'Plugin-API': {'en': 'Plugin API', 'fr': '', 'de': '='}, 'Aktueller Wert': {'de': '=', 'en': 'Recent Value'}, 'Typ': {'de': '=', 'en': 'Type'}, 'Wollen Sie alle Datensätze ohne zugehöriges Item wirklich löschen?': {'de': '=', 'en': 'Do you really want to delete all data sets without corresponding item?'}, 'Nein': {'de': 'Nein', 'en': 'No'}, 'Das Löschen von Einträgen, für die es keine Items mehr gibt, kann noch kurze Zeit dauern, da die Ausführung erst nach Abschluß der bestehenden Transaktionen erfolgen kann.': {'de': '=', 'en': 'The cleanup of entries, for which no items exist anymore, can take a while, as it can only be processed after the end of already existing database transactions.'}, 'Datenbank-ID': {'de': 'Datenbank-ID', 'en': 'Database ID'}, 'Das Löschen kann noch kurze Zeit dauern, da die Ausführung des Delete Queries erst nach Abschluß der bestehenden Transaktionen erfolgen kann.': {'de': 'Das Löschen kann noch kurze Zeit dauern, da die Ausführung des Delete Queries erst nach Abschluß der bestehenden Transaktionen erfolgen kann.', 'en': 'The deletion could take a short time, as the DELETE query will be processed after the end of already existing database transactions.'}, 'Database Items': {'en': '=', 'fr': '', 'de': '='}, 'Dauer': {'de': 'Dauer', 'en': 'Duration'}, 'Loading...': {'de': '=', 'en': '='}, 'Datenbank-Dump': {'de': 'Datenbank-Dump', 'en': 'Database Dump'}, 'Parameter': {'en': 'Parameters', 'fr': '', 'de': '='}, 'Tabelle': {'de': '=', 'en': 'Table'}, 'Die folgenden Einträge entstammen der log Tabelle mit historischen Daten für das Item': {'de': 'Die folgenden Einträge entstammen der log Tabelle mit historischen Daten für das Item', 'en': 'The following entries are derived from the log table with historical data for item )'}}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:00 INFO     Main         plugin 'database': value not found in plugin configuration file for parameter 'prefix' -> using default value '' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:00 INFO     Main         plugin 'database': value not found in plugin configuration file for parameter 'cycle' -> using default value '60' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:00 INFO     Main         plugin 'database': value not found in plugin configuration file for parameter 'precision' -> using default value '2' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:00 INFO     Main         Database [Database]: Connected with <pymysql.connections.Connection object at 0x69c88f90> using "pyformat" style[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:00 INFO     Main         Database [Database]: Version 6 found[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:00 INFO     Main         Module http: Registering webinterface 'database_mysqldb' of plugin 'database' from pluginclass 'Database' instance 'mysqldb'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:00 INFO     Main          - conf dict: '{'/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}, '/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/': {'tools.staticdir.root': '/usr/local/smarthome/plugins/database/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.checkpassword': <bound method Http.validate_password of <modules.http.Http object at 0x75ca21d0>>, 'tools.auth_basic.realm': 'shng_http_webif'}}'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:00 INFO     Main         self._applications['database_mysqldb'] = {'Mount': '/database_mysqldb', 'Pluginname': 'database', 'Instance': 'mysqldb', 'Pluginclass': 'Database', 'Description': 'Webinterface database_mysqldb of plugin database', 'Webifname': 'database_mysqldb', 'Conf': {'/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}, '/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/': {'tools.staticdir.root': '/usr/local/smarthome/plugins/database/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.checkpassword': <bound method Http.validate_password of <modules.http.Http object at 0x75ca21d0>>, 'tools.auth_basic.realm': 'shng_http_webif'}}}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:00 INFO     Main         Initialized plugin 'database' instance 'mysqldb' from from section 'database'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:00 INFO     Main         Loading '/usr/local/smarthome/plugins/uzsu/plugin.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:01 INFO     Main         plugin 'uzsu': Metadata paramlist = '['remove_duplicates']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:01 INFO     Main         plugin 'uzsu': Metadata itemdeflist = '['uzsu_item']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:01 INFO     Main         plugin 'uzsu': Metadata plugin_functionlist = '['planned', 'clear', 'activate', 'interpolation']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:01 INFO     Main         plugin 'uzsu': Metadata get_plugin_function_defstrings -> '['activate()', 'clear()', 'interpolation(type, interval, backintime)', 'planned()']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:01 INFO     Main         plugin 'uzsu': Metadata get_plugin_function_defstrings -> '['activate()', 'clear()', 'interpolation(type:str, interval:int, backintime:int)', 'planned()']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:01 INFO     Main         plugin 'uzsu': Metadata get_plugin_function_defstrings -> '['activate()', 'clear()', "interpolation(type= 'none', interval=5, backintime=0)", 'planned()']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:01 INFO     Main         plugin 'uzsu': Metadata get_plugin_function_defstrings -> '['activate()', 'clear()', "interpolation(type:str= 'none', interval:int=5, backintime:int=0)", 'planned()']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:01 INFO     Main         plugin 'uzsu': Metadata itemstructlist = '[]'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:01 INFO     Main         add_struct_definition: struct 'uzsu.child' = OrderedDict([('name', 'Vorlage-Struktur für Zeitschaltuhren'), ('uzsu', OrderedDict([('type', 'dict'), ('uzsu_item', '..'), ('cache', True), ('visu_acl', 'rw'), ('active', OrderedDict([('remark', 'Use this item to easily turn on or off your UZSU'), ('type', 'bool'), ('eval', 'sh...activate(value)'), ('visu_acl', 'rw'), ('status', OrderedDict([('type', 'bool'), ('eval', 'sh....activate()'), ('eval_trigger', ['..', '...']), ('on_change', '.. = value'), ('crontab', 'init = 0')]))]))]))])[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:01 INFO     Main         Loading '/usr/local/smarthome/plugins/uzsu/locale.yaml' to 'dict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:01 INFO     Main         Plugin 'uzsu': Loaded plugin translations = {'Back in Time': {'de': '=', 'en': '='}, 'Uhr': {'de': '=', 'en': "o'clock"}, 'Init Information fehlt!': {'de': '=', 'en': 'Init entry missing!'}, 'Interpolation (Intervall)': {'de': '=', 'en': 'Interpolation (interval)'}, 'Item existiert nicht!': {'de': '=', 'en': 'Item does not exist!'}, 'Sonnenuntergang': {'de': '=', 'en': 'sun set'}, 'Interpolationsinformation fehlt!': {'de': '=', 'en': 'Interpolation entry missing!'}, 'Sonnenaufgang': {'de': '=', 'en': 'sun rise'}, 'UZSU Item': {'de': '=', 'en': '='}, 'Wert des abhängigen Items': {'de': '=', 'en': 'Value of dependant Item'}, 'Klick auf ein Item um dessen Konfiguration anzuzeigen': {'de': '=', 'en': 'Click on an item to show its configuration'}, 'Abhängige Items (mit Typ)': {'de': '=', 'en': 'Dependant Item (with type)'}, 'Aktives Item, keine (aktiven) Einträge!': {'de': '=', 'en': 'Active item, no (active) entries!'}, 'Die folgenden Items sind dem UZSU Plugin zugewiesen': {'de': '=', 'en': 'The following items are assigned to the UZSU plugin'}}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:01 INFO     Main         plugin 'uzsu': value not found in plugin configuration file for parameter 'remove_duplicates' -> using default value 'True' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:01 INFO     Main         Module http: Registering webinterface 'uzsu' of plugin 'uzsu' from pluginclass 'UZSU' instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:01 INFO     Main          - conf dict: '{'/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}, '/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/': {'tools.staticdir.root': '/usr/local/smarthome/plugins/uzsu/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.checkpassword': <bound method Http.validate_password of <modules.http.Http object at 0x75ca21d0>>, 'tools.auth_basic.realm': 'shng_http_webif'}}'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:01 INFO     Main         self._applications['uzsu'] = {'Mount': '/uzsu', 'Pluginname': 'uzsu', 'Instance': '', 'Pluginclass': 'UZSU', 'Description': 'Webinterface uzsu of plugin uzsu', 'Webifname': 'uzsu', 'Conf': {'/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}, '/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/': {'tools.staticdir.root': '/usr/local/smarthome/plugins/uzsu/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.checkpassword': <bound method Http.validate_password of <modules.http.Http object at 0x75ca21d0>>, 'tools.auth_basic.realm': 'shng_http_webif'}}}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:01 INFO     Main         Init with timezone tzfile('/usr/share/zoneinfo/Europe/Berlin')[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:01 INFO     Main         Initialized plugin 'uzsu' from from section 'uzsu'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:01 INFO     Main         Loading '/usr/local/smarthome/plugins/network/plugin.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:02 INFO     Main         plugin 'network': Metadata paramlist = '['ip', 'port', 'udp', 'tcp', 'http', 'udp_acl', 'tcp_acl', 'http_acl']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:02 INFO     Main         plugin 'network': Metadata itemdeflist = '['nw', 'nw_acl', 'nw_udp_listen', 'nw_tcp_listen', 'nw_udp_send']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:02 INFO     Main         plugin 'network': Metadata logic_paramlist = '['nw', 'nw_acl', 'nw_udp_listen', 'nw_tcp_listen']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:02 INFO     Main         plugin 'network': Metadata plugin_functionlist = '['udp']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:02 INFO     Main         plugin 'network': Metadata get_plugin_function_defstrings -> '['udp(host, port, data)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:02 INFO     Main         plugin 'network': Metadata get_plugin_function_defstrings -> '['udp(host:str, port:int, data:foo)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:02 INFO     Main         plugin 'network': Metadata get_plugin_function_defstrings -> '['udp(host, port, data)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:02 INFO     Main         plugin 'network': Metadata get_plugin_function_defstrings -> '['udp(host:str, port:int, data:foo)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:02 INFO     Main         plugin 'network': has no item-struct definitions in metadata[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:02 INFO     Main         Loading '/usr/local/smarthome/plugins/network/locale.yaml' to 'dict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:02 INFO     Main         plugin 'network': value not found in plugin configuration file for parameter 'ip' -> using default value '0.0.0.0' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:02 INFO     Main         plugin 'network': value not found in plugin configuration file for parameter 'port' -> using default value '2727' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:02 INFO     Main         plugin 'network': value not found in plugin configuration file for parameter 'udp' -> using default value 'no' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:02 INFO     Main         plugin 'network': value not found in plugin configuration file for parameter 'http' -> using default value 'no' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:02 INFO     Main         plugin 'network': value not found in plugin configuration file for parameter 'udp_acl' -> using default value '['*']' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:02 INFO     Main         plugin 'network': value not found in plugin configuration file for parameter 'http_acl' -> using default value '['*']' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:02 INFO     Main         Initialized plugin 'network' from from section 'nw'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:03 INFO     Main         Loading '/usr/local/smarthome/plugins/webservices/plugin.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:03 INFO     Main         plugin 'webservices': Metadata paramlist = '['mode']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:03 INFO     Main         plugin 'webservices': Metadata itemdeflist = '['webservices_set', 'webservices_data']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:03 INFO     Main         Loading '/usr/local/smarthome/plugins/webservices/locale.yaml' to 'dict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:03 INFO     Main         Plugin 'WebServices': Loaded plugin translations = {'Alle Items': {'de': '=', 'en': 'All items'}, 'Tipp: Durch Anhängen des Parameters "?mode=val|full" kann erzwungen werden, dass das Item / Itemset mit vollen oder einfachen Daten zurückgeliefert wird. Ansonsten greift die Konfiguration im Item via webservices_data.': {'de': '=', 'en': 'Hint: By adding the parameter "?mode=val|full" to the URL, it can be enforced that the Item / Itemset is returned with full / simple data. Otherwise the configuration within the item (webservices_data) applies.'}, 'Die folgenden Items und Sets können über die REST und die Simple WebService API gelesen und (bei str, num und bool Items) verändert werden': {'de': '=', 'en': 'The following items and sets can be read through the REST and the Simple WebService API. Values of str, num, and bool items can also be changed.'}, 'Modus': {'de': '=', 'en': 'Mode'}, 'Alle zugreifbaren Items': {'de': '=', 'en': 'All Accessible Items'}, 'Nur in Sets definierte Items': {'de': '=', 'en': 'Only items defined in sets'}}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:03 INFO     Main         Module http: Registering service 'rest' of plugin 'webservices' from pluginclass 'WebServices' instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:03 INFO     Main          - conf dict: '{'/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/': {'tools.staticdir.root': '/usr/local/smarthome/plugins/webservices/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.checkpassword': <bound method Http.validate_service_password of <modules.http.Http object at 0x75ca21d0>>, 'tools.auth_basic.realm': 'shng_http_service'}}'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:03 INFO     Main         self._services['rest'] = {'Mount': '/rest', 'Pluginname': 'webservices', 'Instance': '', 'Pluginclass': 'WebServices', 'Description': 'WebService Plugin für SmartHomeNG (REST)', 'Conf': {'/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/': {'tools.staticdir.root': '/usr/local/smarthome/plugins/webservices/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.checkpassword': <bound method Http.validate_service_password of <modules.http.Http object at 0x75ca21d0>>, 'tools.auth_basic.realm': 'shng_http_service'}}, 'Servicename': 'rest'}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:03 INFO     Main         Module http: Registering service 'ws' of plugin 'webservices' from pluginclass 'WebServices' instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:03 INFO     Main          - conf dict: '{'/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/': {'tools.staticdir.root': '/usr/local/smarthome/plugins/webservices/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.checkpassword': <bound method Http.validate_service_password of <modules.http.Http object at 0x75ca21d0>>, 'request.dispatch': <function VirtualHost.<locals>.vhost_dispatch at 0x67e13078>, 'tools.auth_basic.realm': 'shng_http_service'}}'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:03 INFO     Main         self._services['ws'] = {'Mount': '/ws', 'Pluginname': 'webservices', 'Instance': '', 'Pluginclass': 'WebServices', 'Description': 'Webservice-Plugin für SmartHomeNG (simple)', 'Conf': {'/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/': {'tools.staticdir.root': '/usr/local/smarthome/plugins/webservices/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.checkpassword': <bound method Http.validate_service_password of <modules.http.Http object at 0x75ca21d0>>, 'request.dispatch': <function VirtualHost.<locals>.vhost_dispatch at 0x67e13078>, 'tools.auth_basic.realm': 'shng_http_service'}}, 'Servicename': 'ws'}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:03 INFO     Main         Module http: Registering webinterface 'webservices' of plugin 'webservices' from pluginclass 'WebServices' instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:03 INFO     Main          - conf dict: '{'/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}, '/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/': {'tools.staticdir.root': '/usr/local/smarthome/plugins/webservices/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.checkpassword': <bound method Http.validate_password of <modules.http.Http object at 0x75ca21d0>>, 'request.dispatch': <function VirtualHost.<locals>.vhost_dispatch at 0x67e13198>, 'tools.auth_basic.realm': 'shng_http_webif'}}'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:03 INFO     Main         self._applications['webservices'] = {'Mount': '/webservices', 'Pluginname': 'webservices', 'Instance': '', 'Pluginclass': 'WebServices', 'Description': 'Webservice-Plugin für SmartHomeNG (Frontend)', 'Webifname': 'webservices', 'Conf': {'/gstatic': {'tools.staticdir.on': True, 'tools.staticdir.dir': '/usr/local/smarthome/modules/http/webif/gstatic'}, '/static': {'tools.staticdir.on': True, 'tools.staticdir.dir': 'static'}, '/': {'tools.staticdir.root': '/usr/local/smarthome/plugins/webservices/webif', 'tools.auth_basic.on': False, 'tools.auth_basic.checkpassword': <bound method Http.validate_password of <modules.http.Http object at 0x75ca21d0>>, 'request.dispatch': <function VirtualHost.<locals>.vhost_dispatch at 0x67e13198>, 'tools.auth_basic.realm': 'shng_http_webif'}}}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:03 INFO     Main         Initialized plugin 'webservices' from from section 'WebServices'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:03 INFO     Main         Loading '/usr/local/smarthome/plugins/nut/plugin.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:03 INFO     Main         plugin 'nut': Metadata paramlist = '['ups', 'cycle', 'host', 'port', 'timeout']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:03 INFO     Main         plugin 'nut': Metadata itemdeflist = '['nut_var']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:03 INFO     Main         Section nut (plugin_name None) is disabled - Plugin not loaded[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:05 DEBUG    Main          Read 25 on Register: 5000[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:05 INFO     Main         device: aerosilent exos[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:05 DEBUG    Main         Opened command file <codecs.StreamReaderWriter object at 0x67e0e1f0>[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:05 INFO     Main         Loading '/usr/local/smarthome/plugins/kodi/plugin.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': Metadata paramlist = '['host', 'port', 'instance', 'autoreconnect', 'connect_retries', 'connect_cycle', 'send_retries']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': Metadata itemdeflist = '['kodi_item']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': Metadata plugin_functionlist = '['notify']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': Metadata get_plugin_function_defstrings -> '['notify(title, message, image, display_time)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': Metadata get_plugin_function_defstrings -> '['notify(title:str, message:str, image:str, display_time:int)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': Metadata get_plugin_function_defstrings -> '['notify(title, message, image=None, display_time=10000)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': Metadata get_plugin_function_defstrings -> '['notify(title:str, message:str, image:str=None, display_time:int=10000)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': Metadata itemstructlist = '[]'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         add_struct_definition: struct 'kodi.query' = OrderedDict([('name', 'Vorlage-Struktur für Kodi Infos, die nicht aktiv verämndert werden können.'), ('state', OrderedDict([('kodi_item@instance', 'state'), ('type', 'str'), ('visu_acl', 'ro')])), ('title', OrderedDict([('kodi_item@instance', 'title'), ('type', 'str'), ('visu_acl', 'ro')])), ('media', OrderedDict([('kodi_item@instance', 'media'), ('type', 'str'), ('visu_acl', 'ro')])), ('player', OrderedDict([('kodi_item@instance', 'player'), ('type', 'num'), ('visu_acl', 'rw'), ('enforce_updates', True)]))])[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         add_struct_definition: struct 'kodi.control' = OrderedDict([('name', 'Vorlage-Struktur für Kodi Befehle zum Steuern'), ('mute', OrderedDict([('kodi_item@instance', 'mute'), ('type', 'bool'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('volume', OrderedDict([('kodi_item@instance', 'volume'), ('type', 'num'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('speed', OrderedDict([('kodi_item@instance', 'speed'), ('type', 'num'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('on_off', OrderedDict([('kodi_item@instance', 'on_off'), ('enforce_updates', True), ('type', 'bool'), ('visu_acl', 'rw')])), ('input', OrderedDict([('kodi_item@instance', 'input'), ('type', 'str'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('favourites', OrderedDict([('kodi_item@instance', 'favourites'), ('type', 'str'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('macro', OrderedDict([('kodi_item@instance', 'macro'), ('type', 'str'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('audiostream', OrderedDict([('kodi_item@instance', 'audiostream'), ('type', 'foo'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('subtitle', OrderedDict([('kodi_item@instance', 'subtitle'), ('type', 'list'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('seek', OrderedDict([('kodi_item@instance', 'seek'), ('type', 'num'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('home', OrderedDict([('kodi_item@instance', 'home'), ('type', 'bool'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('stop', OrderedDict([('type', 'bool'), ('eval', "sh...input('stop')"), ('enforce_updates', True)])), ('play', OrderedDict([('type', 'bool'), ('eval', "sh...input('play')"), ('enforce_updates', True)])), ('pause', OrderedDict([('type', 'bool'), ('eval', "sh...input('pause')"), ('enforce_updates', True)])), ('previous', OrderedDict([('type', 'bool'), ('eval', "sh...input('skipprevious')"), ('enforce_updates', True)])), ('next', OrderedDict([('type', 'bool'), ('eval', "sh...input('skipnext')"), ('enforce_updates', True)])), ('select', OrderedDict([('type', 'bool'), ('eval', "sh...input('select')"), ('enforce_updates', True)])), ('contextmenu', OrderedDict([('type', 'str'), ('eval', "sh...input('contextmenu')"), ('enforce_updates', True)]))])[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         Loading '/usr/local/smarthome/plugins/kodi/locale.yaml' to 'dict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': value not found in plugin configuration file for parameter 'port' -> using default value '9090' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': value not found in plugin configuration file for parameter 'instance' -> using default value '' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': value not found in plugin configuration file for parameter 'connect_retries' -> using default value '10' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': value not found in plugin configuration file for parameter 'connect_cycle' -> using default value '5' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': value not found in plugin configuration file for parameter 'send_retries' -> using default value '5' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         Init Kodi Plugin[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         Initializing a connection to 192.168.1.81 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 DEBUG    Main         192.168.1.81 is a valid IP address[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         Initialized plugin 'kodi' instance 'wohnzimmer' from from section 'kodi'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         Loading '/usr/local/smarthome/plugins/kodi/plugin.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': Metadata paramlist = '['host', 'port', 'instance', 'autoreconnect', 'connect_retries', 'connect_cycle', 'send_retries']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': Metadata itemdeflist = '['kodi_item']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': Metadata plugin_functionlist = '['notify']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': Metadata get_plugin_function_defstrings -> '['notify(title, message, image, display_time)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': Metadata get_plugin_function_defstrings -> '['notify(title:str, message:str, image:str, display_time:int)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': Metadata get_plugin_function_defstrings -> '['notify(title, message, image=None, display_time=10000)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': Metadata get_plugin_function_defstrings -> '['notify(title:str, message:str, image:str=None, display_time:int=10000)']'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': Metadata itemstructlist = '[]'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         add_struct_definition: struct 'kodi.query' = OrderedDict([('name', 'Vorlage-Struktur für Kodi Infos, die nicht aktiv verämndert werden können.'), ('state', OrderedDict([('kodi_item@instance', 'state'), ('type', 'str'), ('visu_acl', 'ro')])), ('title', OrderedDict([('kodi_item@instance', 'title'), ('type', 'str'), ('visu_acl', 'ro')])), ('media', OrderedDict([('kodi_item@instance', 'media'), ('type', 'str'), ('visu_acl', 'ro')])), ('player', OrderedDict([('kodi_item@instance', 'player'), ('type', 'num'), ('visu_acl', 'rw'), ('enforce_updates', True)]))])[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         add_struct_definition: struct 'kodi.control' = OrderedDict([('name', 'Vorlage-Struktur für Kodi Befehle zum Steuern'), ('mute', OrderedDict([('kodi_item@instance', 'mute'), ('type', 'bool'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('volume', OrderedDict([('kodi_item@instance', 'volume'), ('type', 'num'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('speed', OrderedDict([('kodi_item@instance', 'speed'), ('type', 'num'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('on_off', OrderedDict([('kodi_item@instance', 'on_off'), ('enforce_updates', True), ('type', 'bool'), ('visu_acl', 'rw')])), ('input', OrderedDict([('kodi_item@instance', 'input'), ('type', 'str'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('favourites', OrderedDict([('kodi_item@instance', 'favourites'), ('type', 'str'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('macro', OrderedDict([('kodi_item@instance', 'macro'), ('type', 'str'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('audiostream', OrderedDict([('kodi_item@instance', 'audiostream'), ('type', 'foo'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('subtitle', OrderedDict([('kodi_item@instance', 'subtitle'), ('type', 'list'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('seek', OrderedDict([('kodi_item@instance', 'seek'), ('type', 'num'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('home', OrderedDict([('kodi_item@instance', 'home'), ('type', 'bool'), ('visu_acl', 'rw'), ('enforce_updates', True)])), ('stop', OrderedDict([('type', 'bool'), ('eval', "sh...input('stop')"), ('enforce_updates', True)])), ('play', OrderedDict([('type', 'bool'), ('eval', "sh...input('play')"), ('enforce_updates', True)])), ('pause', OrderedDict([('type', 'bool'), ('eval', "sh...input('pause')"), ('enforce_updates', True)])), ('previous', OrderedDict([('type', 'bool'), ('eval', "sh...input('skipprevious')"), ('enforce_updates', True)])), ('next', OrderedDict([('type', 'bool'), ('eval', "sh...input('skipnext')"), ('enforce_updates', True)])), ('select', OrderedDict([('type', 'bool'), ('eval', "sh...input('select')"), ('enforce_updates', True)])), ('contextmenu', OrderedDict([('type', 'str'), ('eval', "sh...input('contextmenu')"), ('enforce_updates', True)]))])[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         Loading '/usr/local/smarthome/plugins/kodi/locale.yaml' to 'dict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': value not found in plugin configuration file for parameter 'port' -> using default value '9090' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': value not found in plugin configuration file for parameter 'instance' -> using default value '' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': value not found in plugin configuration file for parameter 'connect_retries' -> using default value '10' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': value not found in plugin configuration file for parameter 'connect_cycle' -> using default value '5' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         plugin 'kodi': value not found in plugin configuration file for parameter 'send_retries' -> using default value '5' instead[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         Init Kodi Plugin[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         Initializing a connection to 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 DEBUG    Main         192.168.1.82 is a valid IP address[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         Initialized plugin 'kodi' instance 'schlafzimmer' from from section 'kodiSZ'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         Load of plugins finished[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         Start initialization of items[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:06 INFO     Main         Loading '/usr/local/smarthome/etc/struct.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:07 INFO     Main         add_struct_definition: struct 'dimmervorlage' = OrderedDict([('name', 'vorlage'), ('sv_widget', "{{ device.dimmer('', 'item.name', 'item.schalten', 'item.dimmen', 0, 100) }}<br/> {{ basic.flip('', 'item.sperren', 'sperren', 'freigeben') }}"), ('schalten', OrderedDict([('type', 'bool'), ('knx_dpt', 1), ('knx_send', '1/0/5'), ('knx_cache', '1/0/8'), ('visu_acl', 'rw'), ('enforce_updates', 'yes')])), ('dimmen', OrderedDict([('type', 'num'), ('knx_dpt', 5.001), ('knx_cache', '1/0/9'), ('knx_send', '1/0/7'), ('visu_acl', 'rw')])), ('sperren', OrderedDict([('type', 'bool'), ('knx_dpt', 1), ('knx_cache', '6/0/2'), ('knx_send', '6/0/2'), ('visu_acl', 'rw')]))])[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:07 INFO     Main         add_struct_definition: struct 'anwesenheit' = OrderedDict([('type', 'bool'), ('knx_dpt', 1), ('knx_listen', '0/0/0'), ('visu_acl', 'r')])[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:07 INFO     Main         add_struct_definition: struct 'rollladen' = OrderedDict([('name', 'Rollladen Vorlage'), ('sv_widget', "{{ device.shutter ('', 'item.name', 'item.move', 'item.stop', 'item.absolut', '', '', '', '0', '100') }}<br/>{{ basic.flip('', 'item.sperren', 'sperren', 'freigeben') }}"), ('move', OrderedDict([('type', 'bool'), ('knx_dpt', 1), ('knx_send', '3/2/40'), ('visu_acl', 'rw'), ('enforce_updates', 'yes')])), ('stop', OrderedDict([('type', 'bool'), ('knx_dpt', 1), ('knx_send', '3/2/41'), ('visu_acl', 'rw'), ('enforce_updates', 'yes')])), ('absolut', OrderedDict([('type', 'num'), ('knx_dpt', 5.001), ('knx_send', '3/2/46'), ('knx_cache', '3/2/43'), ('visu_acl', 'rw'), ('cache', 'yes')])), ('sperren', OrderedDict([('type', 'bool'), ('knx_dpt', 1), ('knx_send', '3/2/42'), ('knx_cache', '3/2/42'), ('visu_acl', 'rw'), ('enforce_updates', 'yes')]))])[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:07 INFO     Main         add_struct_definition: struct 'zaehlerstaende' = OrderedDict([('letzteFuenfzehn', OrderedDict([('type', 'num'), ('crontab', '0-59 * * * = 1'), ('eval', "sh...db('max', '15i')-sh...db('min', '15i')"), ('enforce_updates', 'yes')])), ('Fuenfzehn', OrderedDict([('type', 'num'), ('crontab', '0,15,30,45 * * * = 1'), ('eval', "sh...db('max', '15i')-sh...db('min', '15i')"), ('enforce_updates', 'yes')])), ('letzteStunde', OrderedDict([('type', 'num'), ('crontab', '0-59 * * * = 1'), ('eval', "sh...db('max', '1h')-sh...db('min', '1h')"), ('enforce_updates', 'yes')])), ('Stunde', OrderedDict([('type', 'num'), ('crontab', '0 * * * = 1'), ('eval', "sh...db('max', '1h')-sh...db('min', '1h')"), ('enforce_updates', 'yes')])), ('Tag', OrderedDict([('type', 'num'), ('crontab', '0 0 * * = 1'), ('eval', "sh...db('max', '24h')-sh...db('min', '24h')"), ('enforce_updates', 'yes'), ('database@mysqldb', 'init')])), ('Woche', OrderedDict([('type', 'num'), ('crontab', '0 0 * * = 1'), ('eval', "sh...db('max', '1w')-sh...db('min', '1w')"), ('enforce_updates', 'yes'), ('database@mysqldb', 'init')])), ('Monat', OrderedDict([('type', 'num'), ('crontab', '0 0 1 * = 1'), ('eval', "sh...db('max', '1m')-sh...db('min', '1m')"), ('enforce_updates', 'yes'), ('database@mysqldb', 'init')]))])[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:07 WARNING  Main         load_itemdefinitions(): For testing the joined item structs are saved to /usr/local/smarthome/etc/structs_joined.yaml[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:07 INFO     Main         Saving 'OrderedDict' to '/usr/local/smarthome/etc/structs_joined.yaml'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:07 INFO     Main         parse_itemsdir: Beginning to parse items directory /usr/local/smarthome/lib/env/[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:07 INFO     Main         Loading '/usr/local/smarthome/lib/env/core.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:07 INFO     Main         Loading '/usr/local/smarthome/lib/env/location.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:07 INFO     Main         parse_itemsdir: skipping logic definition file = /usr/local/smarthome/lib/env/logic.yaml[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:07 INFO     Main         Loading '/usr/local/smarthome/lib/env/system.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:07 INFO     Main         parse_itemsdir: Finished parsing items directory /usr/local/smarthome/lib/env/[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:07 INFO     Main         parse_itemsdir: Beginning to parse items directory /usr/local/smarthome/items/[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:07 INFO     Main         Loading '/usr/local/smarthome/items/0Licht.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'dimmervorlage' reference found in item 'EG.Bad.Licht.Decke', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'anwesenheit' reference found in item 'EG.Bad.Anwesenheit', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'dimmervorlage' reference found in item 'EG.Gang.Licht.Decke', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'dimmervorlage' reference found in item 'EG.Gang.Licht.Stiege', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'anwesenheit' reference found in item 'EG.Gang.Anwesenheit', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'dimmervorlage' reference found in item 'EG.WC.Licht.Decke', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'anwesenheit' reference found in item 'EG.WC.Anwesenheit', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'dimmervorlage' reference found in item 'EG.Sabi_Buero.Licht.Decke', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'anwesenheit' reference found in item 'EG.Sabi_Buero.Anwesenheit', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'dimmervorlage' reference found in item 'EG.Abstellraum.Licht.Decke', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'anwesenheit' reference found in item 'EG.Abstellraum.Anwesenheit', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'dimmervorlage' reference found in item 'EG.Kueche_Esszimmer.Licht.Decke', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'dimmervorlage' reference found in item 'EG.Kueche_Esszimmer.Licht.Kuechenzeile', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'dimmervorlage' reference found in item 'EG.Kueche_Esszimmer.Licht.Esszimmerlampe', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'anwesenheit' reference found in item 'EG.Kueche_Esszimmer.Anwesenheit', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'anwesenheit' reference found in item 'EG.Wohnzimmer.Anwesenheit', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'dimmervorlage' reference found in item 'EG.Markus_Buero.Licht.Decke', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'anwesenheit' reference found in item 'EG.Markus_Buero.Anwesenheit', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'dimmervorlage' reference found in item 'OG.Kizi_Nord.Licht.Decke', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'anwesenheit' reference found in item 'OG.Kizi_Nord.Anwesenheit', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'anwesenheit' reference found in item 'OG.Gang.Anwesenheit_Nord', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'anwesenheit' reference found in item 'OG.Gang.Anwesenheit_Sued', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'dimmervorlage' reference found in item 'OG.WC.Licht.Decke', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'anwesenheit' reference found in item 'OG.WC.Anwesenheit', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'dimmervorlage' reference found in item 'OG.Bad.Licht.Decke', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'anwesenheit' reference found in item 'OG.Bad.Anwesenheit', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'dimmervorlage' reference found in item 'OG.Schrankraum.Licht.Decke', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'anwesenheit' reference found in item 'OG.Schrankraum.Anwesenheit', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'dimmervorlage' reference found in item 'OG.Schlafzimmer.Licht.Decke', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'anwesenheit' reference found in item 'OG.Schlafzimmer.Anwesenheit', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'dimmervorlage' reference found in item 'OG.Kizi_Sued.Licht.Decke', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         add_struct_to_template: 'struct' 'anwesenheit' reference found in item 'OG.Kizi_Sued.Anwesenheit', instance ''[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:09 INFO     Main         Loading '/usr/local/smarthome/items/0Visu.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:11 INFO     Main         Loading '/usr/local/smarthome/items/Kodi.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.wohnzimmer.query.state[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.wohnzimmer.query.title[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.wohnzimmer.query.media[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.wohnzimmer.query.player[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.wohnzimmer.control.mute[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.wohnzimmer.control.volume[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.wohnzimmer.control.speed[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.wohnzimmer.control.on_off[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.wohnzimmer.control.input[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.wohnzimmer.control.favourites[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.wohnzimmer.control.macro[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.wohnzimmer.control.audiostream[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.wohnzimmer.control.subtitle[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.wohnzimmer.control.seek[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.wohnzimmer.control.home[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 INFO     Main         Sonder.Kodi.wohnzimmer.control.stop.get_absolutepath('..input'): Result = 'Sonder.Kodi.wohnzimmer.control.input' (for attribute 'eval')[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 INFO     Main         Sonder.Kodi.wohnzimmer.control.play.get_absolutepath('..input'): Result = 'Sonder.Kodi.wohnzimmer.control.input' (for attribute 'eval')[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 INFO     Main         Sonder.Kodi.wohnzimmer.control.pause.get_absolutepath('..input'): Result = 'Sonder.Kodi.wohnzimmer.control.input' (for attribute 'eval')[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 INFO     Main         Sonder.Kodi.wohnzimmer.control.previous.get_absolutepath('..input'): Result = 'Sonder.Kodi.wohnzimmer.control.input' (for attribute 'eval')[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 INFO     Main         Sonder.Kodi.wohnzimmer.control.next.get_absolutepath('..input'): Result = 'Sonder.Kodi.wohnzimmer.control.input' (for attribute 'eval')[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 INFO     Main         Sonder.Kodi.wohnzimmer.control.select.get_absolutepath('..input'): Result = 'Sonder.Kodi.wohnzimmer.control.input' (for attribute 'eval')[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 INFO     Main         Sonder.Kodi.wohnzimmer.control.contextmenu.get_absolutepath('..input'): Result = 'Sonder.Kodi.wohnzimmer.control.input' (for attribute 'eval')[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 ERROR    Main         Item Sonder.Kodi.wohnzimmer.notify.parameters.display_time: type 'int' unknown. Please use one of: scene, num, bool, str, foo, dict, list.[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 ERROR    Main         Item Sonder.Kodi.wohnzimmer.notify.parameters.display_time: problem creating:[/TD]
           		[/TR]
           		[TR]
           			[TD]Traceback (most recent call last):[/TD]
           		[/TR]
           		[TR]
           			[TD]File "/usr/local/smarthome/lib/item.py", line 683, in __init__[/TD]
           		[/TR]
           		[TR]
           			[TD]  child = Item(smarthome, self, child_path, value)[/TD]
           		[/TR]
           		[TR]
           			[TD]File "/usr/local/smarthome/lib/item.py", line 712, in __init__[/TD]
           		[/TR]
           		[TR]
           			[TD]  raise AttributeError[/TD]
           		[/TR]
           		[TR]
           			[TD]AttributeError[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.schlafzimmer.query.state[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.schlafzimmer.query.title[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.schlafzimmer.query.media[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.schlafzimmer.query.player[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.schlafzimmer.control.mute[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.schlafzimmer.control.volume[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.schlafzimmer.control.speed[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.schlafzimmer.control.on_off[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.schlafzimmer.control.input[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.schlafzimmer.control.favourites[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.schlafzimmer.control.macro[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.schlafzimmer.control.audiostream[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.schlafzimmer.control.subtitle[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.schlafzimmer.control.seek[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 DEBUG    Main         Registering item: Sonder.Kodi.schlafzimmer.control.home[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 INFO     Main         Sonder.Kodi.schlafzimmer.control.stop.get_absolutepath('..input'): Result = 'Sonder.Kodi.schlafzimmer.control.input' (for attribute 'eval')[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 INFO     Main         Sonder.Kodi.schlafzimmer.control.play.get_absolutepath('..input'): Result = 'Sonder.Kodi.schlafzimmer.control.input' (for attribute 'eval')[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 INFO     Main         Sonder.Kodi.schlafzimmer.control.pause.get_absolutepath('..input'): Result = 'Sonder.Kodi.schlafzimmer.control.input' (for attribute 'eval')[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 INFO     Main         Sonder.Kodi.schlafzimmer.control.previous.get_absolutepath('..input'): Result = 'Sonder.Kodi.schlafzimmer.control.input' (for attribute 'eval')[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 INFO     Main         Sonder.Kodi.schlafzimmer.control.next.get_absolutepath('..input'): Result = 'Sonder.Kodi.schlafzimmer.control.input' (for attribute 'eval')[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 INFO     Main         Sonder.Kodi.schlafzimmer.control.select.get_absolutepath('..input'): Result = 'Sonder.Kodi.schlafzimmer.control.input' (for attribute 'eval')[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 INFO     Main         Sonder.Kodi.schlafzimmer.control.contextmenu.get_absolutepath('..input'): Result = 'Sonder.Kodi.schlafzimmer.control.input' (for attribute 'eval')[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 ERROR    Main         Item Sonder.Kodi.schlafzimmer.notify.parameters.display_time: type 'int' unknown. Please use one of: scene, num, bool, str, foo, dict, list.[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:21 ERROR    Main         Item Sonder.Kodi.schlafzimmer.notify.parameters.display_time: problem creating:[/TD]
           		[/TR]
           		[TR]
           			[TD]Traceback (most recent call last):[/TD]
           		[/TR]
           		[TR]
           			[TD]File "/usr/local/smarthome/lib/item.py", line 683, in __init__[/TD]
           		[/TR]
           		[TR]
           			[TD]  child = Item(smarthome, self, child_path, value)[/TD]
           		[/TR]
           		[TR]
           			[TD]File "/usr/local/smarthome/lib/item.py", line 712, in __init__[/TD]
           		[/TR]
           		[TR]
           			[TD]  raise AttributeError[/TD]
           		[/TR]
           		[TR]
           			[TD]AttributeError[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:25 INFO     CP Server Thread-13 AuthController.update(): /renew[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:26 INFO     CP Server Thread-13 AuthController.renew_token(): remote.ip = 192.168.1.142, user = Autologin[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:26 INFO     CP Server Thread-13 192.168.1.142 - - [18/Nov/2019:10:16:26] "PUT /api/authenticate/renew HTTP/1.1" 200 314 "http://192.168.1.20:8383/admin/items/config" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:26 INFO     Main         Items initialization finished, 1051 items loaded[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:26 INFO     Main         Start Logics[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:26 INFO     Main         Loading '/usr/local/smarthome/lib/env/logic.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:26 INFO     Main         Loading '/usr/local/smarthome/etc/logic.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:26 INFO     Main         Start plugins[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:26 INFO     smartvisu    Loading '/usr/local/smarthome/etc/plugin.yaml' to 'OrderedDict'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:26 INFO     uzsu         Adding sun update schedule for midnight[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:26 DEBUG    kodi         Plugin 'kodi': run method called[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:26 DEBUG    kodi         Kodi connection initialized by run[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:26 INFO     Main         Start of plugins finished[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:26 DEBUG    kodiSZ       Plugin 'kodi': run method called[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:26 DEBUG    kodiSZ       Kodi connection initialized by run[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:26 DEBUG    TCP_Connect  Starting connection cycle for 192.168.1.81[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:26 DEBUG    TCP_Connect  Starting connection cycle for 192.168.1.82[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Connecting to 192.168.1.81 using IPv4 192.168.1.81 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 INFO     TCP_Connect  Connected to 192.168.1.81 on TCP port 9090[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Kodi running onconnect started by TCP_Connect. Connection: True. Selfcommands [][/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Sending command after connect: {'method': 'JSONRPC.Ping'}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Sending method JSONRPC.Ping. Alive: True[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Command lock acquired[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Sendcommands while sending: [][/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Sendcommands while sending: [{'jsonrpc': '2.0', 'method': 'JSONRPC.Ping', 'id': 'JSONRPC.Ping'}][/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Kodi sending: {"jsonrpc":"2.0","method":"JSONRPC.Ping","id":"JSONRPC.Ping"}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Command lock released[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Sending command after connect: {'params': {'properties': ['window', 'path', 'thumbnail', 'windowparameter']}, 'method': 'Favourites.GetFavourites'}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Sending method Favourites.GetFavourites. Alive: True[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Command lock acquired[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Sendcommands while sending: [{'jsonrpc': '2.0', 'method': 'JSONRPC.Ping', 'id': 'JSONRPC.Ping'}][/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Sendcommands while sending: [{'jsonrpc': '2.0', 'method': 'JSONRPC.Ping', 'id': 'JSONRPC.Ping'}, {'params': {'properties': ['window', 'path', 'thumbnail', 'windowparameter']}, 'jsonrpc': '2.0', 'method': 'Favourites.GetFavourites', 'id': 'Favourites.GetFavourites'}][/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Kodi sending: {"params":{"properties":["window","path","thumbnail","windowparameter"]},"jsonrpc":"2.0","method":"Favourites.GetFavourites","id":"Favourites.GetFavourites"}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Command lock released[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Sending command after connect: {'method': 'Player.GetActivePlayers'}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Sending method Player.GetActivePlayers. Alive: True[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Command lock acquired[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Sendcommands while sending: [{'jsonrpc': '2.0', 'method': 'JSONRPC.Ping', 'id': 'JSONRPC.Ping'}, {'params': {'properties': ['window', 'path', 'thumbnail', 'windowparameter']}, 'jsonrpc': '2.0', 'method': 'Favourites.GetFavourites', 'id': 'Favourites.GetFavourites'}][/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Sendcommands while sending: [{'jsonrpc': '2.0', 'method': 'JSONRPC.Ping', 'id': 'JSONRPC.Ping'}, {'params': {'properties': ['window', 'path', 'thumbnail', 'windowparameter']}, 'jsonrpc': '2.0', 'method': 'Favourites.GetFavourites', 'id': 'Favourites.GetFavourites'}, {'jsonrpc': '2.0', 'method': 'Player.GetActivePlayers', 'id': 'Player.GetActivePlayers'}][/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Kodi sending: {"jsonrpc":"2.0","method":"Player.GetActivePlayers","id":"Player.GetActivePlayers"}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Command lock released[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Sending command after connect: {'params': {'properties': ['volume', 'muted']}, 'method': 'Application.GetProperties'}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Sending method Application.GetProperties. Alive: True[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Command lock acquired[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Sendcommands while sending: [{'jsonrpc': '2.0', 'method': 'JSONRPC.Ping', 'id': 'JSONRPC.Ping'}, {'params': {'properties': ['window', 'path', 'thumbnail', 'windowparameter']}, 'jsonrpc': '2.0', 'method': 'Favourites.GetFavourites', 'id': 'Favourites.GetFavourites'}, {'jsonrpc': '2.0', 'method': 'Player.GetActivePlayers', 'id': 'Player.GetActivePlayers'}][/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Sendcommands while sending: [{'jsonrpc': '2.0', 'method': 'JSONRPC.Ping', 'id': 'JSONRPC.Ping'}, {'params': {'properties': ['window', 'path', 'thumbnail', 'windowparameter']}, 'jsonrpc': '2.0', 'method': 'Favourites.GetFavourites', 'id': 'Favourites.GetFavourites'}, {'jsonrpc': '2.0', 'method': 'Player.GetActivePlayers', 'id': 'Player.GetActivePlayers'}, {'params': {'properties': ['volume', 'muted']}, 'jsonrpc': '2.0', 'method': 'Application.GetProperties', 'id': 'Application.GetProperties'}][/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Kodi sending: {"params":{"properties":["volume","muted"]},"jsonrpc":"2.0","method":"Application.GetProperties","id":"Application.GetProperties"}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Connect  Command lock released[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Client_KodiTCPConnection Kodi receiving: {"id":"JSONRPC.Ping","jsonrpc":"2.0","result":"pong"}{"id":"Favourites.GetFavourites","jsonrpc":"2.0","result":{"favourites":null,"limits":{"end":0,"start":0,"total":0}}}{"id":"Player.GetActivePlayers","jsonrpc":"2.0","result":[{"playerid":1,"playertype":"internal","type":"video"}]}{"id":"Application.GetProperties","jsonrpc":"2.0","result":{"muted":false,"volume":100}}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Client_KodiTCPConnection Kodi checking from multianswer: {'result': 'pong', 'id': 'JSONRPC.Ping', 'jsonrpc': '2.0'}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Client_KodiTCPConnection Sent successfully {'jsonrpc': '2.0', 'method': 'JSONRPC.Ping', 'id': 'JSONRPC.Ping'}.[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Client_KodiTCPConnection Sendcommands after receiving: [{'params': {'properties': ['window', 'path', 'thumbnail', 'windowparameter']}, 'jsonrpc': '2.0', 'method': 'Favourites.GetFavourites', 'id': 'Favourites.GetFavourites'}, {'jsonrpc': '2.0', 'method': 'Player.GetActivePlayers', 'id': 'Player.GetActivePlayers'}, {'params': {'properties': ['volume', 'muted']}, 'jsonrpc': '2.0', 'method': 'Application.GetProperties', 'id': 'Application.GetProperties'}][/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Client_KodiTCPConnection Kodi checking from multianswer: {'result': {'limits': {'start': 0, 'total': 0, 'end': 0}, 'favourites': None}, 'id': 'Favourites.GetFavourites', 'jsonrpc': '2.0'}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Client_KodiTCPConnection No favourites found.[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Client_KodiTCPConnection Sendcommands after receiving: [{'jsonrpc': '2.0', 'method': 'Player.GetActivePlayers', 'id': 'Player.GetActivePlayers'}, {'params': {'properties': ['volume', 'muted']}, 'jsonrpc': '2.0', 'method': 'Application.GetProperties', 'id': 'Application.GetProperties'}][/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Client_KodiTCPConnection Kodi checking from multianswer: {'result': [{'playertype': 'internal', 'type': 'video', 'playerid': 1}], 'id': 'Player.GetActivePlayers', 'jsonrpc': '2.0'}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Client_KodiTCPConnection Getting player info for [{'playertype': 'internal', 'type': 'video', 'playerid': 1}][/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Client_KodiTCPConnection Getting player info. Checking 1[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Client_KodiTCPConnection Sendcommands after receiving: [{'params': {'properties': ['volume', 'muted']}, 'jsonrpc': '2.0', 'method': 'Application.GetProperties', 'id': 'Application.GetProperties'}][/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Client_KodiTCPConnection Kodi checking from multianswer: {'result': {'volume': 100, 'muted': False}, 'id': 'Application.GetProperties', 'jsonrpc': '2.0'}[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Client_KodiTCPConnection Received GetProperties: Change mute to False and volume to 100[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:27 DEBUG    TCP_Client_KodiTCPConnection Sendcommands after receiving: [][/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:28 INFO     kodiSZ       Could not establish a connection to Kodi Server[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:29 INFO     Main         VISU: Websocket handler uses protocol version 4[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:29 INFO     CP Server Thread-13 REST_dispatch_execute(): public_root = 'False'[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:29 INFO     CP Server Thread-13 LogsController.read(None, chunk=1)[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:29 INFO     CP Server Thread-13 192.168.1.142 - - [18/Nov/2019:10:16:29] "GET /api/logs/ HTTP/1.1" 200 732 "http://192.168.1.20:8383/admin/logs/display" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:29 WARNING  Main         Client 192.168.1.142:57845 requested to monitor item EG.Wohnzimmer.Licht..Decke_Strips.sperren which can not be found[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:30 INFO     CP Server Thread-13 LogsController.read(smarthome.log, chunk=1)[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:30 INFO     CP Server Thread-13 192.168.1.142 - - [18/Nov/2019:10:16:30] "GET /api/logs/smarthome.log?chunk=1 HTTP/1.1" 200 177721 "http://192.168.1.20:8383/admin/logs/display" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:32 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error timed out. Counter: 1/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:35 INFO     CP Server Thread-13 LogsController.read(knx_kodi.log, chunk=1)[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:35 INFO     CP Server Thread-13 192.168.1.142 - - [18/Nov/2019:10:16:35] "GET /api/logs/knx_kodi.log?chunk=1 HTTP/1.1" 200 11977 "http://192.168.1.20:8383/admin/logs/display" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:37 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:40 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 2/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:45 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:48 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 3/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:53 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:16:56 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 4/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:17:00 INFO     Scheduler    Adding worker thread. Total: 6[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:17:01 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:17:04 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 5/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:17:09 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:17:12 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 6/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:17:17 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:17:20 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 7/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:17:25 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:17:29 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 8/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:17:34 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:17:37 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 9/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:17:42 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:17:45 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 10/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:18:15 INFO     CP Server Thread-14 LogsController.read(smarthome.log, chunk=1)[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:18:15 INFO     CP Server Thread-14 192.168.1.142 - - [18/Nov/2019:10:18:15] "GET /api/logs/smarthome.log?chunk=1 HTTP/1.1" 200 177721 "http://192.168.1.20:8383/admin/logs/display" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:18:20 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:18:21 INFO     CP Server Thread-14 LogsController.read(smarthome.log, chunk=0)[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:18:21 INFO     CP Server Thread-14 192.168.1.142 - - [18/Nov/2019:10:18:21] "GET /api/logs/smarthome.log?chunk=0 HTTP/1.1" 200 55693 "http://192.168.1.20:8383/admin/logs/display" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:18:23 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 1/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:18:28 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:18:31 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 2/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:18:33 INFO     CP Server Thread-15 LogsController.read(smarthome.log, chunk=8)[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:18:34 INFO     CP Server Thread-15 192.168.1.142 - - [18/Nov/2019:10:18:34] "GET /api/logs/smarthome.log?chunk=8 HTTP/1.1" 200 305521 "http://192.168.1.20:8383/admin/logs/display" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:18:36 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:18:39 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 3/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:18:44 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:18:48 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 4/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:18:53 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:18:56 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 5/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:18:56 INFO     CP Server Thread-16 LogsController.read(smarthome.log, chunk=0)[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:18:57 INFO     CP Server Thread-16 192.168.1.142 - - [18/Nov/2019:10:18:57] "GET /api/logs/smarthome.log?chunk=0 HTTP/1.1" 200 61000 "http://192.168.1.20:8383/admin/logs/display" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:19:00 INFO     Scheduler    Adding worker thread. Total: 7[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:19:01 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:19:04 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 6/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:19:09 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:19:12 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 7/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:19:17 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:19:20 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 8/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:19:25 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:19:28 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 9/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:19:33 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:19:37 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 10/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:20:12 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:20:15 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 1/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:20:20 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:20:23 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 2/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:20:28 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:20:31 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 3/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:20:36 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:20:39 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 4/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:20:44 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:20:47 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 5/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:20:52 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:20:56 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 6/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:21:01 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:21:04 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 7/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:21:09 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:21:12 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 8/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:21:17 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:21:20 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 9/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:21:25 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:21:28 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 10/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:22:03 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:22:06 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 1/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:22:11 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:22:14 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 2/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:22:19 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:22:23 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 3/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:22:28 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:22:31 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 4/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:22:36 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:22:39 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 5/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:22:44 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:22:47 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 6/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:22:52 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:22:55 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 7/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:23:00 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:23:03 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 8/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:23:08 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:23:12 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 9/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:23:17 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:23:20 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 10/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:23:55 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:23:58 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 1/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:24:03 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:24:06 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 2/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:24:11 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:24:14 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 3/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:24:19 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:24:22 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 4/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:24:27 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:24:31 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 5/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:24:36 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:24:39 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 6/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:24:44 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:24:47 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 7/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:24:52 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:24:55 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 8/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:25:00 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:25:03 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 9/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:25:08 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:25:11 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 10/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:25:46 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:25:50 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 1/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:25:55 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:25:58 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 2/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:26:03 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:26:06 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 3/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:26:11 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:26:14 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 4/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:26:19 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:26:22 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 5/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:26:27 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:26:30 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 6/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:26:33 INFO     CP Server Thread-17 LogsController.read(smarthome.log, chunk=1)[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:26:33 INFO     CP Server Thread-17 192.168.1.142 - - [18/Nov/2019:10:26:33] "GET /api/logs/smarthome.log?chunk=1 HTTP/1.1" 200 177721 "http://192.168.1.20:8383/admin/logs/display" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:26:35 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:26:38 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 7/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:26:43 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:26:47 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 8/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:26:52 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:26:55 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 9/10[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:27:00 DEBUG    TCP_Connect  Connecting to 192.168.1.82 using IPv4 192.168.1.82 on TCP port 9090 with autoreconnect[/TD]
           		[/TR]
           		[TR]
           			[TD]2019-11-18  10:27:03 WARNING  TCP_Connect  TCP connection to 192.168.1.82:9090 failed with error [Errno 113] Keine Route zum Zielrechner. Counter: 10/10[/TD]
           		[/TR]
           	 [/TABLE]
          plugin.yaml:

          Code:
          kodi:
              plugin_name: kodi
              host: 192.168.1.81
              autoreconnect: True
              instance: 'wohnzimmer'
              
          kodiSZ:
              plugin_name: kodi
              host: 192.168.1.82
              autoreconnect: True
              instance: 'schlafzimmer'
          item.yaml:

          Code:
          #Kodi.yaml
          Sonder:
              Kodi:
                  wohnzimmer:
                      query:
                          name: Vorlage-Struktur für Kodi Infos, die nicht aktiv verämndert werden können.
          
                          state:
                            kodi_item@wohnzimmer: state
                            type: str
                            visu_acl: ro
          
                          title:
                            kodi_item@wohnzimmer: title
                            type: str
                            visu_acl: ro
          
                          media:
                            kodi_item@wohnzimmer: media
                            type: str
                            visu_acl: ro
          
                          player:
                            kodi_item@wohnzimmer: player
                            type: num
                            visu_acl: rw
                            enforce_updates: true
          
                      control:
                          name: Vorlage-Struktur für Kodi Befehle zum Steuern
          
                          mute:
                            kodi_item@wohnzimmer: mute
                            type: bool
                            visu_acl: rw
                            enforce_updates: true
          
                          volume:
                            kodi_item@wohnzimmer: volume
                            type: num
                            visu_acl: rw
                            enforce_updates: true
          
                          speed:
                            kodi_item@wohnzimmer: speed
                            type: num
                            visu_acl: rw
                            enforce_updates: true
          
                          on_off:
                            kodi_item@wohnzimmer: on_off
                            enforce_updates: true
                            type: bool
                            visu_acl: rw
          
                          input:
                            kodi_item@wohnzimmer: input
                            type: str
                            visu_acl: rw
                            enforce_updates: true
          
                          favourites:
                            kodi_item@wohnzimmer: favourites
                            type: str
                            visu_acl: rw
                            enforce_updates: true
          
                          macro:
                            kodi_item@wohnzimmer: macro
                            type: str
                            visu_acl: rw
                            enforce_updates: true
          
                          audiostream:
                            kodi_item@wohnzimmer: audiostream
                            type: foo
                            visu_acl: rw
                            enforce_updates: true
          
                          subtitle:
                            kodi_item@wohnzimmer: subtitle
                            type: list
                            visu_acl: rw
                            enforce_updates: true
          
                          seek:
                            kodi_item@wohnzimmer: seek
                            type: num
                            visu_acl: rw
                            enforce_updates: true
          
                          home:
                              kodi_item@wohnzimmer: home
                              type: bool
                              visu_acl: rw
                              enforce_updates: true
          
                          stop:
                              type: bool
                              eval: sh...input('stop')
                              enforce_updates: True
          
                          play:
                              type: bool
                              eval: sh...input('play')
                              enforce_updates: True
          
                          pause:
                              type: bool
                              eval: sh...input('pause')
                              enforce_updates: True
          
                          previous:
                              type: bool
                              eval: sh...input('skipprevious')
                              enforce_updates: True
          
                          next:
                              type: bool
                              eval: sh...input('skipnext')
                              enforce_updates: True
          
                          select:
                              type: bool
                              eval: sh...input('select')
                              enforce_updates: True
          
                          contextmenu:
                              type: str
                              eval: sh...input('contextmenu')
                              enforce_updates: True
                      notify:
                          type: str
                          description:
                              de: "Diese Funktion ermöglicht es, Mitteilungen an Kodi zu schicken. Beispiel: sh.living.kodi.notify('Door', 'Ding Dong')"
                              en: "This function provies the functionallity to send notification messages to Kodi. Example: sh.living.kodi.notify('Door', 'Ding Dong')"
          
                          parameters:
                              title:
                                  type: str
                                  description:
                                      de: 'Überschrift der Mitteilung'
                                      en: ''
          
                              message:
                                  type: str
                                  description:
                                      de: 'Text der Mitteilung'
                                      en: ''
          
                              image:
                                  type: str
                                  default: None*
                                  description:
                                      de: "Url des anzuzeigenden Bildes (z.B.: 'http://smarthome.local/img/phone.png')"
                                      en: ''
          
                              display_time:
                                  type: int
                                  default: 10000
                                  description:
                                      de: 'Dauer der Anzeige in msec'
                                      en: ''
                  schlafzimmer:
                      query:
                          name: Vorlage-Struktur für Kodi Infos, die nicht aktiv verämndert werden können.
          
                          state:
                            kodi_item@schlafzimmer: state
                            type: str
                            visu_acl: ro
          
                          title:
                            kodi_item@schlafzimmer: title
                            type: str
                            visu_acl: ro
          
                          media:
                            kodi_item@schlafzimmer: media
                            type: str
                            visu_acl: ro
          
                          player:
                            kodi_item@schlafzimmer: player
                            type: num
                            visu_acl: rw
                            enforce_updates: true
          
                      control:
                          name: Vorlage-Struktur für Kodi Befehle zum Steuern
          
                          mute:
                            kodi_item@schlafzimmer: mute
                            type: bool
                            visu_acl: rw
                            enforce_updates: true
          
                          volume:
                            kodi_item@schlafzimmer: volume
                            type: num
                            visu_acl: rw
                            enforce_updates: true
          
                          speed:
                            kodi_item@schlafzimmer: speed
                            type: num
                            visu_acl: rw
                            enforce_updates: true
          
                          on_off:
                            kodi_item@schlafzimmer: on_off
                            enforce_updates: true
                            type: bool
                            visu_acl: rw
          
                          input:
                            kodi_item@schlafzimmer: input
                            type: str
                            visu_acl: rw
                            enforce_updates: true
          
                          favourites:
                            kodi_item@schlafzimmer: favourites
                            type: str
                            visu_acl: rw
                            enforce_updates: true
          
                          macro:
                            kodi_item@schlafzimmer: macro
                            type: str
                            visu_acl: rw
                            enforce_updates: true
          
                          audiostream:
                            kodi_item@schlafzimmer: audiostream
                            type: foo
                            visu_acl: rw
                            enforce_updates: true
          
                          subtitle:
                            kodi_item@schlafzimmer: subtitle
                            type: list
                            visu_acl: rw
                            enforce_updates: true
          
                          seek:
                            kodi_item@schlafzimmer: seek
                            type: num
                            visu_acl: rw
                            enforce_updates: true
          
                          home:
                              kodi_item@schlafzimmer: home
                              type: bool
                              visu_acl: rw
                              enforce_updates: true
          
                          stop:
                              type: bool
                              eval: sh...input('stop')
                              enforce_updates: True
          
                          play:
                              type: bool
                              eval: sh...input('play')
                              enforce_updates: True
          
                          pause:
                              type: bool
                              eval: sh...input('pause')
                              enforce_updates: True
          
                          previous:
                              type: bool
                              eval: sh...input('skipprevious')
                              enforce_updates: True
          
                          next:
                              type: bool
                              eval: sh...input('skipnext')
                              enforce_updates: True
          
                          select:
                              type: bool
                              eval: sh...input('select')
                              enforce_updates: True
          
                          contextmenu:
                              type: str
                              eval: sh...input('contextmenu')
                              enforce_updates: True
                      notify:
                          type: str
                          description:
                              de: "Diese Funktion ermöglicht es, Mitteilungen an Kodi zu schicken. Beispiel: sh.living.kodi.notify('Door', 'Ding Dong')"
                              en: "This function provies the functionallity to send notification messages to Kodi. Example: sh.living.kodi.notify('Door', 'Ding Dong')"
          
                          parameters:
                              title:
                                  type: str
                                  description:
                                      de: 'Überschrift der Mitteilung'
                                      en: ''
          
                              message:
                                  type: str
                                  description:
                                      de: 'Text der Mitteilung'
                                      en: ''
          
                              image:
                                  type: str
                                  default: None*
                                  description:
                                      de: "Url des anzuzeigenden Bildes (z.B.: 'http://smarthome.local/img/phone.png')"
                                      en: ''
          
                              display_time:
                                  type: int
                                  default: 10000
                                  description:
                                      de: 'Dauer der Anzeige in msec'
                                      en: ''
          Zuletzt geändert von artner; 18.11.2019, 10:47.

          Kommentar


            #6
            das erste was mir auffällt: es gibt keine Items vom TYPE: INT. Es gibt nur Items vom TYPE: NUM

            Zu "Keine Route zum Zielrechner" -> schon mal probiert ob Du den Zielrechner pingen kannst? ich vermute der Netzwerkzugriff geht schlichtweg nicht.

            Kommentar


              #7
              Bezüglich Items kann ich nur empfehlen, die structs zu nutzen
              Code:
                      struct:
                        - kodi.query
                        - kodi.control
                      instance: schlafzimmer
              Ich glaube, der Fehler liegt in der plugin.yaml des Plugins. Entferne dort bitte mal unter parameters den "instance" Eintrag. Der hat dort eigentlich nix verloren und wär für mich die Ursache des Übels!

              Kommentar


                #8
                das erste was mir auffällt: es gibt keine Items vom TYPE: INT. Es gibt nur Items vom TYPE: NUM
                hab ich aus Unwissenheit der structs aus plugin/kodi/plugin.yaml kopiert (da ich nicht wusste dass instance sich anscheinend so überschreiben lässt)

                Zu "Keine Route zum Zielrechner" -> schon mal probiert ob Du den Zielrechner pingen kannst? ich vermute der Netzwerkzugriff geht schlichtweg nicht.
                ping funktioniert (von smarthomeng server), Kore (vom handy) funktioniert, Diverse Anzeigen im Plugin funktioniert nicht (title, volume, etc) - grundlegend dürfte aber eine Verbindung da sein, da play, pause, etc funktionieren

                Ich glaube, der Fehler liegt in der plugin.yaml des Plugins. Entferne dort bitte mal unter parameters den "instance" Eintrag. Der hat dort eigentlich nix verloren und wär für mich die Ursache des Übels!
                wobei mir dann völlig unklar ist wo ich definiere dass 192.168.1.81 das Wohnzimmer und 192.168.1.82 das Schlafzimmer ist
                plugin.yaml schaut jetzt mal so aus - ohne instance krieg ich keine Verbindung (wenn das Item eine instance hat)
                Code:
                kodi:
                    plugin_name: kodi
                    host: 192.168.1.82
                    instance: 'schlafzimmer' 
                    autoreconnect: True
                Zuletzt geändert von artner; 19.11.2019, 10:46.

                Kommentar


                  #9
                  Nene in der plugin.yaml des Plugins nicht in etc!

                  Kommentar


                    #10
                    So, ich habe auf Hinweis von Onkelandy und anderen mal das Plugin etwas auf den Kopf gestellt. Dabei habe ich versucht, die Kompatibilität zu vorhandenen Installationen so weit wie möglich beizubehalten; in der Folge ist die Benennung von shng-Items und kodi-Items nicht mehr immer ganz schlüssig; mit der jetzt gelieferten plugin.yaml sollten aber (bis auf die Benennung des struct) alle bisherigen Funktionen weiter funktionieren.

                    Die Konfiguration wurde komplett überarbeitet, generalisiert und in eine externe Datei (commands.py) ausgelagert. Soweit es schreibende Kommandos angeht, kann das Plugin ausschließlich durch Änderungen an der commands.py erweitert werden. Für lesende Kommandos muss der Parsing-Code immer noch angefasst werden. Vielleicht schaffe ich es irgendwann auch noch, das zu generalisieren

                    Für die Entwicklungsreife: Es funktioniert, man kann es grundsätzlich mindestens so weit wie vorher nutzen. Es läuft - bei mir - stabil. Im Code habe ich insbesondere die Docstring-Einträge, die Aufteilung von Methoden und Eigenschaften in public und protected und die Metadaten inkl. Dokumentation überarbeitet.

                    Seid so lieb und testet das Plugin mal auf Herz und Nieren, und vor allem: schreibt mir, wenn Fehler auftreten. Im Debug-Modus ist das Plugin ziemlich gesprächig; oberhalb von Debug ist es ziemlich still. Bei der Prüfung von Konfigurationen erzeugt es hauptsächlich Error-Meldungen, weil es dann nicht lauffähig wäre.

                    Sachen, die ich noch prüfen/fixen muss:
                    • Anzeige/Auswahl von Tonspur und Untertitel (wird als dict angezeigt, aber das Plugin nimmt an der Stelle kein dict an.)
                    • Logging auf Ebene Info verbessern
                    • Den Empfangs- und Verarbeitungscode verstehen und entknoten. (das Parsing bin ich schon angegangen, aber die Variante des Befehlsqueueings und der Entflechtung der Antworten braucht mehr Alkohol... )
                    • Arbeiten mit mehreren Instanzen. Ging wohl vorher, konnte ich aber noch nicht testen (es gibt aber eigentlich keinen Grund, wieso es nicht mehr gehen sollte)
                    • Notifications, insbesondere das automatisierte Aktualisieren von Wiedergabeinformationen (playtime usw). Geht derzeit nur über Trigger-Item 'update'; aufgrund von Wartezeiten auf die Antworten braucht ein Zyklus der Aktualisierung (getriggert) 2-3 Sekunden. Wenn Kodi das "automatisch" senden würde, könnte es problemlos im Sekundentakt laufen. Dann müsste ich die Items noch erweitern.
                    Happy testing!

                    Achso - https://github.com/Morg42/plugins/tree/develop/kodi (ist ein fork von shng/plugins, also bitte ggf. vorsichtig benutzen)

                    Kommentar


                      #11
                      So, nach weiteren Testen und noch einigen Fehlerchen, die insbesondere in Bezug auf Audiostreams/Untertitel aufgetreten sind (der Rest ging ja gestern schon), habe ich nochmal "zurück auf Start" gespielt.

                      Ich habe regelmäßig Lockups gehabt und war nicht in der Lage festzustellen, wer an welcher Stelle welches Lock blockiert (und warum!). Mir schien auch die ganze Locking-Mimik etwas überzogen, wenn das Nachrichtenprotokoll im Kern auf Asynchronität ausgerichtet ist.
                      Das bis zu fünfmalige Wiederholen eines Kommandos, das schon beim ersten Mal einen Fehler verursacht hat, leuchtet mir überhaupt nicht ein. Wenn ein Fehler drin ist, muss ich den Fehler nicht nochmal senden.
                      Eine Zuordnung von Antworten zu Anfragen ist zwar ohne größeren Aufwand möglich, aber in diesem Zusammenhang nicht wirklich sinnvoll.

                      Also habe ich den Sende- und Empfangscode auch über der Haufen geworfen und neu geschrieben.

                      Beim Senden - getriggert durch update_item() oder aus einem Auswerteprozess (aktiver Player gefunden -> Infos abfragen) wird das Paket gebaut und in eine Queue gesteckt. (Die Queue stellt exklusiven Zugriff sicher, ist ein Python-Standardmodul). Am Ende der Sendefunktion wird versucht, alles zu senden, was in der Queue steckt. Wenn ich dabei konkurrierende Threads habe, ist das egal, weil durch das Queue-Objekt jedes Sendeobjekt nur einmal "verteilt" werden kann. Die Netzwerkebene sollte beim Sende und beim Empfänger ausreichend stabil sein, um ggf. auch gleichzeitige Verbindungen zu vertragen. Die gesendeten Kommandos werden in einer Liste gespeichert (ohne Locking).

                      Beim Empfangen - als Callback vom TCPConnection-Objekt - wird das Paket auf Plausibilität geprüft, in ein Objekt überführt, Fehler werden geloggt. Wenn es eine Antwort auf ein gesendetes Paket ist - nur dann enthält es eine MessageID - , dann wird das gesendete Paket aus der Liste der gesendeten Pakete gelöscht und als "erfolgreich" oder "Fehler" geloggt. Danach wird das Paket zur Auswertung abgegeben. Da jede Netzwerkverbindung einen eigenen Callback auslöst, kann jeder Callback seine eigenen Daten verarbeiten (lassen) und es bleibt nichts übrig, also brauche ich kein Locking und keine Queues.

                      Durch die Liste von gesendeten Nachrichten kann ich - mit einem bestimmten Zeitversatz - feststellen, ob Anfragen unbeantwortet geblieben sind. Das wird derzeit noch nicht ausgewertet.

                      Durch die Vergabe von eindeutigen MessageIDs könnte man weitere Nachverfolgung machen, ich sehe darin derzeit aber keinen Mehrwert.

                      Notifications (Statusmitteilungen des Players ohne vorherige Abfrage) werden über das Callback genauso bearbeitet wie alle anderen Anfragen. Solange parse_response() damit umgehen kann, kann alles verarbeitet werden.

                      Durch die - jetzt nochmal - neue Struktur lassen sich neue Funktionen über a) die commands.py auf Sendeseite und b) die Methode _parse_response() umsetzen; eine umfassende Anpassung von vielen Methoden (senden, empfangen, auswerten, Zählen, Status abfragen) entfällt.

                      Ich hoffe, dass damit zumindest mittelfristig die Nutz- und Wartbarkeit des Codes deutlich verbessert wurde. Ich werde heute noch weiter testen und ggf. Updates pushen, aber grundsätzlich funktioniert das schonmal alles.

                      Wie immer - bitte ausgiebig testen und insbesondere Fehler zurückmelden oder selber beheben...

                      Kommentar


                        #12

                        Schöne Sache - eine solide Codebasis kann bestimmt dann auch für ähnliche Plugins herangezogen werden wie schon diskutiert.
                        Mehrfaches Senden eines Befehls... weiß auch nicht mehr genau, warum ich das gemacht hab. Bei einigen Geräten (avdevice) schien das Sinn zu machen. Nur weils das erste Mal nicht geklappt hat, heißt es ja nicht zwingend, dass es ein fehlerhafter Befehl war.
                        Das Nutzen der Message ID, um zu eruieren, ob der Befehl erfolgreich war oder nicht, fände ich praktisch, aber ist sicher nicht zwingend nötig.

                        Ich hab jetzt mal ein paar Sache probiert. Hat großteils gut funktioniert. Allerdings ist auch nach Stoppen eines Films der Player auf "1" geblieben, obgleich kein aktiver Player vorhanden. "Play" läuft dann ins Leere, kriegt man aber eigentlich nicht mit. Ob das schlimm ist, sei dahin gestellt.

                        Danke für das Update!

                        Kommentar


                          #13
                          Ich muss gestehen, dass ich durch die alte Logik nicht 100% durchgestiegen bin; aber soweit ich das nachvollziehen konnte, hat er bei einer Fehlermeldung den Befehl nochmal in die Queue gepackt, das ist natürlich Unsinn.

                          Mit MsgID zu prüfen, ob der Befehl erfolgreich war, ist jetzt schon drin, das Ergebnis (OK oder Fehler) wird auch geloggt. Die Liste der "offenen" Befehle wird entsprechend aktualisiert. Was momentan noch nicht passiert, ist alle Befehle älter als x Sekunden, die noch in der "offen"-Liste stehen, zu bearbeiten (nochmal senden, Fehler melden...); derzeit bleibt die Liste stehen und wird ggf. immer länger.

                          Das mit Stop schaue ich mir gleich mal an.

                          Kommentar


                            #14
                            So, habe den Fehler mit "stop" gefixed (war mein Fehler - ich habe state auf "Stopped" gesetzt, dabei wird der aktive Player beendet, nicht in Status "stop" gesetzt).

                            Weiterhin habe ich mal versucht, einen Mechanismus zu implementieren, der "regelmäßig" unbeantwortete Kommandos prüft. Da ich für "regelmäßig" weder einen Scheduler noch eine Schleife bauen wollte, macht er das jedesmal, wenn er Daten empfangen hat, allerdings höchstens alle 'command_repeat'/2 Sekunden. Dazu hat er eine timer-Variable.

                            Wenn die Zeit überschritten ist (ohne Aktivität erfolgt auch keine Prüfung!), geht er alle gespeicherten und nicht beantworteten Kommandos durch und prüft jeweils, ob die schon oft genug wiederholt wurden. Falls ja, fliegen sie raus; falls nein, werden sie nochmal gesendet.

                            Da das Ereignis "nicht beantwortet" bei mir nicht aufgetaucht ist, ist das Testen schwierig. Ich habe also bei "Kommando beantwortet" es nicht aus der Liste löschen lassen, so dass diese sich immer füllt. Das wiederholte Senden und Hochzählen klappt, auch das Löschen beim Erreichen der maximalen Wiederholung. Wie sich das im "echten" Betrieb verhält, müssen wir mal beobachten.

                            Fazit derzeit: läuft, wirft keine Fehler, den Rest müssen wir testen. Wie immer - bitte um Feedback

                            Kommentar


                              #15
                              So, nach noch einigen Arbeiten sollten wir jetzt einen guten und stabilen Stand erreicht haben. Neu- und Wiederverbindung klappt, Status wird entsprechend gelesen und gesetzt, und bis auf Netzwerkkabel ziehen kann das Plugin mit den meisten Problemen umgehen

                              Wer möchte, gerne mal testen. Ist derzeit noch im PR, demnächst hoffentlich in develop

                              Kommentar

                              Lädt...
                              X