Servus
Hier nun also ein neuer Thread, weil das mit dem Logo nichts mehr zu tun hat.
Wie bereits erwähnt, erscheint in der smartVISU, wenn man den Treiber auf SmartHomeNG stellt, links im Seitenmenü der Config-Pages ein neuer Eintrag.
shnglogo.png
Hier schon mit neuem Icon und geändertem Text (trivial). Verantwortlich dafür ist die Datei .../pages/base/system.html. Auszug daraus:
Das verweist auf die Datei smarthome.py.html und darin gibt es einige schöne Plots etc., die den Status von SmartHomeNG zeigen. Soweit, so schön und einfach.
smarthomestatus.png
Die Seite habe ich schon ein wenig bearbeitet, weil mich Sonnenaufgang, Monduntergang etc. an dieser Stelle nun gar nicht interessieren.
Die Plots sind kein Thema, kann man nach seinen Bedürfnissen recht einfach anpassen und verwenden die env.system... und env.core... items aus SHNG.
Allerdings werden noch die alten plot.period Widgets verwendet, die zwar noch funktionieren, aber als deprecated gekennzeichnet sind. Das müsste man mal ändern. Könnte ich machen und dann eine geänderte smarthome.py.html hier rein stellen falls gwünscht, auch wenn vielleicht jeder so seine eigenen Vorstellungen hat, aber ändern kann man es ja immer noch individuell.
Das eigentliche Problem, was ich noch nicht durchschaut habe, ist die Liste der Logeinträge. Finde ich sehr nützlich, aber was rauskommt ist für mich nicht immer nachvollziehbar.
Durch die Hilfe von bmx und Msinn ist nun klar, dass das item env.core.log im Itembaum gar nicht erscheint und von einem eigenen Logger nur im Memory versorgt wird, irgendwie gefiltert.
Was ich dabei noch nicht nachvollziehen konnte:
Die angezeigten Logeinträge korrespondieren selten bis gar nicht mit den Einträgen in den Log Dateien. Hier mal die aktuelle Log Datei (warnings oder details, sind momentan eh identisch.):
Sind also alles Warnings. Das Problem trat aber auch schon auf, als ich ca. 30 Einträge von Errors und Warnings hatte.
Angezeigt wird davon momentan exakt die letzte Zeile (siehe weiter oben im Screenshot). Das ist nach jedem Neustart des Cores so. Vermutung: Da ist der Logger noch nicht soweit, dass er die Neustart-Zeilen davor auch schon im Memory hat.
Von jetzt an, wenn also der Core durchläuft und neue Einträge geschrieben werden, scheint es zu klappen, aber augenscheinlich werden manche Einträge nicht angezeigt, was an einem Filter liegen könnte. Ich hatte z.B. vor ein paar Tagen eine längere Liste von Einträgen in der Visu, die definitiv mit Logeinträgen von den drei letzten Log Dateien (Tage) zumindest partiell übereinstimmten. Aber eben nicht vollständig. Und das nach mehreren Neustarts. Was ja eigentlich nicht sein kann, da das Memory Log dann leer sein müsste, oder? Nach meinem Verständnis müsste er entweder alle Warnings und Errors der letzten Tage anzeigen oder nichts. Natürlich limitiert durch den Parameter der max. Zeilenanzahl.
Jetzt, wo ich weiß, dass das alles im Memory abläuft, weiß ich auch, warum meine Tests mit den Log Dateien erfolglos waren. Denn was da drin steht (und wieviel) interessiert env.core.log nicht. Um es besser zu verstehen und am Ende vielleicht sogar festzustellen, dass mein Problem gar keins ist, müsste ich mal Logeinträge provozieren, weiß aber grad nicht, wie ich das am geschicktesten anstelle. Also Info, Error, Warning.
Gruß, Martin
Hier nun also ein neuer Thread, weil das mit dem Logo nichts mehr zu tun hat.
Wie bereits erwähnt, erscheint in der smartVISU, wenn man den Treiber auf SmartHomeNG stellt, links im Seitenmenü der Config-Pages ein neuer Eintrag.
shnglogo.png
Hier schon mit neuem Icon und geändertem Text (trivial). Verantwortlich dafür ist die Datei .../pages/base/system.html. Auszug daraus:
Code:
{% if config_driver == 'smarthome.py' %} <li data-icon="false">[INDENT]<a href="index.php?page=smarthome.py">[/INDENT][INDENT=2]<img class="icon" src="{{ icon0 }}logo_Forum_white.svg" alt="SmartHomeNG" />[/INDENT][INDENT=2]<h3>SmartHomeNG</h3>[/INDENT][INDENT]</a>[/INDENT] </li> {% endif %}
smarthomestatus.png
Die Seite habe ich schon ein wenig bearbeitet, weil mich Sonnenaufgang, Monduntergang etc. an dieser Stelle nun gar nicht interessieren.
Die Plots sind kein Thema, kann man nach seinen Bedürfnissen recht einfach anpassen und verwenden die env.system... und env.core... items aus SHNG.
Allerdings werden noch die alten plot.period Widgets verwendet, die zwar noch funktionieren, aber als deprecated gekennzeichnet sind. Das müsste man mal ändern. Könnte ich machen und dann eine geänderte smarthome.py.html hier rein stellen falls gwünscht, auch wenn vielleicht jeder so seine eigenen Vorstellungen hat, aber ändern kann man es ja immer noch individuell.
Das eigentliche Problem, was ich noch nicht durchschaut habe, ist die Liste der Logeinträge. Finde ich sehr nützlich, aber was rauskommt ist für mich nicht immer nachvollziehbar.
Durch die Hilfe von bmx und Msinn ist nun klar, dass das item env.core.log im Itembaum gar nicht erscheint und von einem eigenen Logger nur im Memory versorgt wird, irgendwie gefiltert.
Was ich dabei noch nicht nachvollziehen konnte:
Die angezeigten Logeinträge korrespondieren selten bis gar nicht mit den Einträgen in den Log Dateien. Hier mal die aktuelle Log Datei (warnings oder details, sind momentan eh identisch.):
Code:
2020-04-15 16:23:02 WARNING modules.admin.api_config Update: self.mqtt_conf = {'module': {'classname': 'Mqtt', 'version': '1.7.0', 'sh_minversion': '1.6a', 'description': {'de': 'Modul implementiert das MQTT Protokoll zur Nutzung in Logiken und Plugins', 'en': 'Module implements the MQTT protocol for use in logics and plugins plugins'}}, 'parameters': {'enabled': {'type': 'bool', 'default': False, 'description': {'de': 'MQTT Unterstützung aktivieren oder deaktivieren', 'en': 'Enable or disable MQTT support'}}, 'broker_host': {'type': 'ip', 'default': '127.0.0.1', 'description': {'de': 'Adresse des MQTT Brokers', 'en': 'Address of MQTT broker'}, 'description_long': {'de': '**Adresse des MQTT Brokers**: Spezifiziert die IP Adresse des MQTT Brokers.\nWenn der MQTT Broker auf dem selben Rechner auf dem auch SmartHomeNG läuft,\nmuss dieser Parameter nicht angegeben werden.\n', 'en': "**Address of MQTT broker**: Specifies the IP adress of the MQTT broker to use.\nIf you use a broker on the computer you are running SmartHomeNG on, you don't\nneed to specify this parameter. In this case it is assumed, that the MQTT broker\nruns on the same machine as SmartHomeNG and 127.0.0.1 (for localhost) is used.\n"}}, 'broker_port': {'type': 'int', 'default': 1883, 'valid_min': 0, 'valid_max': 65535, 'description': {'de': 'Vom Broker benutzter Port', 'en': 'Port used by broker'}, 'description_long': {'de': '**Vom Broker benutzter Port**: Port 1883 und 8883 sind bei der IANA reservierte Ports für MQTT.\\n\n\\n\n- 1883: Der Standard MQTT Port. Er ist bei IANA definiert als **MQTT over TCP**\\n\n- 8883: Der Standard MQTT Port. Er ist bei IANA definiert als **Secure MQTT**\\n\n\\n\nIn einem Standard Setup muss dieser Parameter nicht angegeben werden.\n', 'en': '**Port used by broker**: Port 1883 and 8883 are the IANA reserved ports for MQTT.\\n\n\\n\n- 1883: This is the default MQTT port. It is defined at IANA as MQTT over TCP\\n\n- 8883: This is the default MQTT port for MQTT over TLS. It’s registered at IANA for Secure MQTT\\n\n\\n\nIn a standard setup you should not need to configure this parameter.\n'}}, 'user': {'type': 'str', 'default': '', 'description': {'de': 'Username für das Broker Login (optional)', 'en': 'Username for login to the broker (optional)'}, 'description_long': {'de': 'Username zum Login beim MQTT Broker, falls der Broker für user/password Authentifizierung konfiguriert ist.\\n\n\\n\n**ACHTUNG**: Bis zur Implementierung von TLS, werden Username und Password unverschlüsselt übertragen.\n', 'en': 'Username to login to the MQTT broker, if the broker is configured for user/password authentication.\\n\n\\n\n**NOTICE**: Until Implementation of TLS, username and password are transmitted unencrypted.\n'}}, 'password': {'type': 'str', 'default': '', 'hide': True, 'description': {'de': 'Passwort für das Broker Login (optional)', 'en': 'Password for login to the broker'}, 'description_long': {'de': 'Passwort zum Login beim MQTT Broker, falls der Broker für user/password Authentifizierung konfiguriert ist.\\n\n\\n\n**ACHTUNG**:\\n\n\\n\n- Bis zur Implementierung von TLS, werden Username und Password unverschlüsselt übertragen.\\n\n- Bei der jetzigen Implementierung wird das Passwort in **../etc/plugin.yaml** im Klartext gespeichert.\\n\n\\n\n\\n\n', 'en': 'Password to login to the MQTT broker, if the broker is configured for user/password authentication.\\n\n\\n\n**NOTICE**:\\n\n\\n\n- Until Implementation of TLS, username and password are transmitted unencrypted.\\n\n- At this stage of implementation the Password is stored in the plugin.yaml file as clear text.\\n\n\\n\n\\n\n'}}, 'broker_monitoring': {'type': 'bool', 'default': False, 'description': {'de': 'Ermöglicht das Monitoring einiger Broker Werte durch das Web Interfase.', 'en': 'Enables monitoring some broker data through the web interface.'}}, 'qos': {'type': 'int', 'default': 1, 'valid_list': [0, 1, 2], 'description': {'de': 'Quality of Service', 'en': 'Quality of Service'}, 'description_long': {'de': '**Quality-Of-Service**: QoS definiert den Standard Quality-of-Service Level für die Kommunikation mit dem Broker. Der Level kann durch setzen des ** mqtt_qos** Attributes in den individuellen Items überschrieben werden.\\n\n\\n\nMQTT unterstützt drei Level für den Quality-of-Service (0=at most once, 1=at least once, 2=excactly once). QoS 2 hat den meisten Overhead und sollte nur genutzt werden, wenn unbedingt nötig.\\n\n\\n\nEine gute Erläuterung zu QoS im MQTT Protokoll kann hier gefunden werden: http://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels (Englisch).\\n\n', 'en': '**Quality-Of-Service**: qos defines the default quality of service level used when communicating with the broker. It can be overwritten by setting the mqtt_qos attribute on an individual item.\n\n\n\nMQTT supports three levels for Quality-Of-Service (0=at most once, 1=at least once, 2=excactly once). QoS 2 has the most overhead and should be used only if needed.\n\n\n\nA good explanation about Quality-of-Service in MQTT can be found here: http://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels.\n\n'}}, 'bool_values': {'type': 'list', 'default': 'None*', 'description': {'de': "Gewünschte Werte (im MQTT Payload) für Publish und Subscribe von boolsche Werten (z.B. ['Falsch','Wahr'])", 'en': "Values (in MQTT payload) for publish and subscribe of boolean values (e.g. ['Wrong','Right'])"}}, 'last_will_topic': {'type': 'str', 'gui_type': 'wide_str', 'default': '', 'description': {'de': 'Topic für Last-Will Telegramm', 'en': 'Topic for the last will telegram'}, 'description_long': {'de': '**MQTT testament Message**: Wenn kein **last_will_topic** angegeben wird,\nwird keine MQTT last-will-message gesendet. Als Standard wird eine last-will\nmessage durch den Broker nur versendet wenn die Verbindung des Clients zum Broker\nabbricht (sie also nicht ordnungsgemäß geschlossen wird).\\n\n\\n\n-> Last-will-messages werden mit dem Standard QoS gesendet.\\n\n\\n\nFalls eine birth-message konfiguriert ist, wird die last-will-message mit\ngesetztem retain Flag gesendet und die last-will-message wird auch gesendet\nwenn die Verbindung ordnungsgemäß geschlossen wird (z.B. beim Beenden\nvon SmartHomeNG).\n', 'en': '**MQTT testament message**: if **last_will_topic** is not specified, there will\nbe no MQTT last-will-message sent. As a standard the last-will message will only\nbe sent if the connection to the broker aborts (is not closed in an orderly manner).\\n\n\\n\nLast-will-messages will be sent with the default QoS.\\n\n\\n\nIf you specify a birth-message, the last-will-message will be sent with the\nretain flag set and the last-will-message will also be sent if the connection\nis closed orderly (by shutting down SmartHomeNG).\n'}}, 'last_will_payload': {'type': 'str', 'gui_type': 'wide_str', 'default': '', 'description': {'de': 'Payload für die MQTT testament message. Wenn keine **last_will_payload** angegeben wird, wird kein Last-Will Telegramm gesendet.', 'en': 'Payload for the MQTT testament message. If **last_will_payload** is not specified, there will be no last-will message sent.'}}, 'birth_topic': {'type': 'str', 'gui_type': 'wide_str', 'default': '', 'description': {'de': 'Topic für das Birth Telegramm', 'en': 'Topic for the birth telegramm'}, 'description_long': {'de': 'Die birth-Message ist das Gegenteil zur MQTT Testament Message und wird gesendet, wenn das Plugin startet. Falls kein **birth_topic** konfiguriert ist, wird das **last_will_topic** auch für die Birth-Message verwendet. Birth-Messages werden mit der Standard QoS und gesetztem Retain Flag gesendet.', 'en': 'The birth message is the opposite to the MQTT Testament message and sent, when the plugin starts up. if birth_topic is not specified, the last_will_topic will be used for the birth message too. Birth-messages will be sent with the default QoS and the retain flag set.'}}, 'birth_payload': {'type': 'str', 'gui_type': 'wide_str', 'default': '', 'description': {'de': 'Payload für das Birth Telegramm. Wenn keine birth_payload konfiguriert ist, wird keine Birth Message gesendet. In diesem Fall wird auch keine last-will message gesendet, falls die Verbindung ordnungsgemäß geschlossen wird (beim Beenden von SmartHomeNG).', 'en': 'Payload for the birth telegram. if birth_payload is not specified, no birth message will be sent. In this case there will be no last-will message sent, if the connection is closed orderly (by shutting down SmartHomeNG).'}}}} 2020-04-15 16:23:02 WARNING modules.admin.api_config Update: ['mqtt'] = ordereddict([('module_name', 'mqtt')]) 2020-04-15 16:23:02 WARNING modules.admin.api_config Update: enabled = None 2020-04-15 16:23:05 WARNING __main__ SmartHomeNG restarting, initiated by admin interface 2020-04-15 16:23:11 WARNING __main__ SmartHomeNG stopped 2020-04-15 16:23:12 WARNING __main__ -------------------- Init SmartHomeNG 1.7.1.master (cf2f7d85) -------------------- 2020-04-15 16:23:12 WARNING __main__ Running in Python interpreter 'v3.7.3 final' (pid=29597) on linux platform 2020-04-15 16:23:12 WARNING lib.shtime Nutze Feiertage für Land 'DE', Provinz 'BY', State '', 1 benutzerdefinierte Feiertagsdefinition(en) definiert 2020-04-15 16:23:13 WARNING lib.item load_itemdefinitions(): For testing the joined item structs are saved to /usr/local/smarthome/etc/structs_joined.yaml 2020-04-15 16:39:40 WARNING modules.admin.api_loggers set_active_logger_level(): logger=logics, level=ERROR 2020-04-15 16:39:40 WARNING modules.admin.api_loggers set_active_logger_level(): lg=<Logger logics (WARNING)>, lglevel=40 2020-04-15 16:39:40 WARNING modules.admin.api_loggers load_logging_config: shng_version=None 2020-04-15 16:39:40 WARNING modules.admin.api_loggers REST_dispatch_execute: logics: 'LoggersController' object has no attribute 'create_backupfile' 2020-04-15 16:39:43 WARNING modules.admin.api_loggers set_active_logger_level(): logger=logics, level=WARNING 2020-04-15 16:39:43 WARNING modules.admin.api_loggers set_active_logger_level(): lg=<Logger logics (ERROR)>, lglevel=30 2020-04-15 16:39:43 WARNING modules.admin.api_loggers load_logging_config: shng_version=None 2020-04-15 16:39:43 WARNING modules.admin.api_loggers REST_dispatch_execute: logics: 'LoggersController' object has no attribute 'create_backupfile' 2020-04-15 16:39:45 WARNING modules.admin.api_loggers set_active_logger_level(): logger=logics, level=INFO 2020-04-15 16:39:45 WARNING modules.admin.api_loggers set_active_logger_level(): lg=<Logger logics (WARNING)>, lglevel=20 2020-04-15 16:39:45 WARNING modules.admin.api_loggers load_logging_config: shng_version=None 2020-04-15 16:39:45 WARNING modules.admin.api_loggers REST_dispatch_execute: logics: 'LoggersController' object has no attribute 'create_backupfile' 2020-04-15 16:39:49 WARNING modules.admin.api_loggers set_active_logger_level(): logger=logics, level=DEBUG 2020-04-15 16:39:49 WARNING modules.admin.api_loggers set_active_logger_level(): lg=<Logger logics (INFO)>, lglevel=10 2020-04-15 16:39:49 WARNING modules.admin.api_loggers load_logging_config: shng_version=None 2020-04-15 16:39:49 WARNING modules.admin.api_loggers REST_dispatch_execute: logics: 'LoggersController' object has no attribute 'create_backupfile' 2020-04-15 16:39:53 WARNING modules.admin.api_loggers set_active_logger_level(): logger=logics, level=WARNING 2020-04-15 16:39:53 WARNING modules.admin.api_loggers set_active_logger_level(): lg=<Logger logics (DEBUG)>, lglevel=30 2020-04-15 16:39:53 WARNING modules.admin.api_loggers load_logging_config: shng_version=None 2020-04-15 16:39:53 WARNING modules.admin.api_loggers REST_dispatch_execute: logics: 'LoggersController' object has no attribute 'create_backupfile' 2020-04-15 16:49:01 WARNING modules.admin.api_config Update: self.mqtt_conf = {'module': {'classname': 'Mqtt', 'version': '1.7.0', 'sh_minversion': '1.6a', 'description': {'de': 'Modul implementiert das MQTT Protokoll zur Nutzung in Logiken und Plugins', 'en': 'Module implements the MQTT protocol for use in logics and plugins plugins'}}, 'parameters': {'enabled': {'type': 'bool', 'default': False, 'description': {'de': 'MQTT Unterstützung aktivieren oder deaktivieren', 'en': 'Enable or disable MQTT support'}}, 'broker_host': {'type': 'ip', 'default': '127.0.0.1', 'description': {'de': 'Adresse des MQTT Brokers', 'en': 'Address of MQTT broker'}, 'description_long': {'de': '**Adresse des MQTT Brokers**: Spezifiziert die IP Adresse des MQTT Brokers.\nWenn der MQTT Broker auf dem selben Rechner auf dem auch SmartHomeNG läuft,\nmuss dieser Parameter nicht angegeben werden.\n', 'en': "**Address of MQTT broker**: Specifies the IP adress of the MQTT broker to use.\nIf you use a broker on the computer you are running SmartHomeNG on, you don't\nneed to specify this parameter. In this case it is assumed, that the MQTT broker\nruns on the same machine as SmartHomeNG and 127.0.0.1 (for localhost) is used.\n"}}, 'broker_port': {'type': 'int', 'default': 1883, 'valid_min': 0, 'valid_max': 65535, 'description': {'de': 'Vom Broker benutzter Port', 'en': 'Port used by broker'}, 'description_long': {'de': '**Vom Broker benutzter Port**: Port 1883 und 8883 sind bei der IANA reservierte Ports für MQTT.\\n\n\\n\n- 1883: Der Standard MQTT Port. Er ist bei IANA definiert als **MQTT over TCP**\\n\n- 8883: Der Standard MQTT Port. Er ist bei IANA definiert als **Secure MQTT**\\n\n\\n\nIn einem Standard Setup muss dieser Parameter nicht angegeben werden.\n', 'en': '**Port used by broker**: Port 1883 and 8883 are the IANA reserved ports for MQTT.\\n\n\\n\n- 1883: This is the default MQTT port. It is defined at IANA as MQTT over TCP\\n\n- 8883: This is the default MQTT port for MQTT over TLS. It’s registered at IANA for Secure MQTT\\n\n\\n\nIn a standard setup you should not need to configure this parameter.\n'}}, 'user': {'type': 'str', 'default': '', 'description': {'de': 'Username für das Broker Login (optional)', 'en': 'Username for login to the broker (optional)'}, 'description_long': {'de': 'Username zum Login beim MQTT Broker, falls der Broker für user/password Authentifizierung konfiguriert ist.\\n\n\\n\n**ACHTUNG**: Bis zur Implementierung von TLS, werden Username und Password unverschlüsselt übertragen.\n', 'en': 'Username to login to the MQTT broker, if the broker is configured for user/password authentication.\\n\n\\n\n**NOTICE**: Until Implementation of TLS, username and password are transmitted unencrypted.\n'}}, 'password': {'type': 'str', 'default': '', 'hide': True, 'description': {'de': 'Passwort für das Broker Login (optional)', 'en': 'Password for login to the broker'}, 'description_long': {'de': 'Passwort zum Login beim MQTT Broker, falls der Broker für user/password Authentifizierung konfiguriert ist.\\n\n\\n\n**ACHTUNG**:\\n\n\\n\n- Bis zur Implementierung von TLS, werden Username und Password unverschlüsselt übertragen.\\n\n- Bei der jetzigen Implementierung wird das Passwort in **../etc/plugin.yaml** im Klartext gespeichert.\\n\n\\n\n\\n\n', 'en': 'Password to login to the MQTT broker, if the broker is configured for user/password authentication.\\n\n\\n\n**NOTICE**:\\n\n\\n\n- Until Implementation of TLS, username and password are transmitted unencrypted.\\n\n- At this stage of implementation the Password is stored in the plugin.yaml file as clear text.\\n\n\\n\n\\n\n'}}, 'broker_monitoring': {'type': 'bool', 'default': False, 'description': {'de': 'Ermöglicht das Monitoring einiger Broker Werte durch das Web Interfase.', 'en': 'Enables monitoring some broker data through the web interface.'}}, 'qos': {'type': 'int', 'default': 1, 'valid_list': [0, 1, 2], 'description': {'de': 'Quality of Service', 'en': 'Quality of Service'}, 'description_long': {'de': '**Quality-Of-Service**: QoS definiert den Standard Quality-of-Service Level für die Kommunikation mit dem Broker. Der Level kann durch setzen des ** mqtt_qos** Attributes in den individuellen Items überschrieben werden.\\n\n\\n\nMQTT unterstützt drei Level für den Quality-of-Service (0=at most once, 1=at least once, 2=excactly once). QoS 2 hat den meisten Overhead und sollte nur genutzt werden, wenn unbedingt nötig.\\n\n\\n\nEine gute Erläuterung zu QoS im MQTT Protokoll kann hier gefunden werden: http://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels (Englisch).\\n\n', 'en': '**Quality-Of-Service**: qos defines the default quality of service level used when communicating with the broker. It can be overwritten by setting the mqtt_qos attribute on an individual item.\n\n\n\nMQTT supports three levels for Quality-Of-Service (0=at most once, 1=at least once, 2=excactly once). QoS 2 has the most overhead and should be used only if needed.\n\n\n\nA good explanation about Quality-of-Service in MQTT can be found here: http://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels.\n\n'}}, 'bool_values': {'type': 'list', 'default': 'None*', 'description': {'de': "Gewünschte Werte (im MQTT Payload) für Publish und Subscribe von boolsche Werten (z.B. ['Falsch','Wahr'])", 'en': "Values (in MQTT payload) for publish and subscribe of boolean values (e.g. ['Wrong','Right'])"}}, 'last_will_topic': {'type': 'str', 'gui_type': 'wide_str', 'default': '', 'description': {'de': 'Topic für Last-Will Telegramm', 'en': 'Topic for the last will telegram'}, 'description_long': {'de': '**MQTT testament Message**: Wenn kein **last_will_topic** angegeben wird,\nwird keine MQTT last-will-message gesendet. Als Standard wird eine last-will\nmessage durch den Broker nur versendet wenn die Verbindung des Clients zum Broker\nabbricht (sie also nicht ordnungsgemäß geschlossen wird).\\n\n\\n\n-> Last-will-messages werden mit dem Standard QoS gesendet.\\n\n\\n\nFalls eine birth-message konfiguriert ist, wird die last-will-message mit\ngesetztem retain Flag gesendet und die last-will-message wird auch gesendet\nwenn die Verbindung ordnungsgemäß geschlossen wird (z.B. beim Beenden\nvon SmartHomeNG).\n', 'en': '**MQTT testament message**: if **last_will_topic** is not specified, there will\nbe no MQTT last-will-message sent. As a standard the last-will message will only\nbe sent if the connection to the broker aborts (is not closed in an orderly manner).\\n\n\\n\nLast-will-messages will be sent with the default QoS.\\n\n\\n\nIf you specify a birth-message, the last-will-message will be sent with the\nretain flag set and the last-will-message will also be sent if the connection\nis closed orderly (by shutting down SmartHomeNG).\n'}}, 'last_will_payload': {'type': 'str', 'gui_type': 'wide_str', 'default': '', 'description': {'de': 'Payload für die MQTT testament message. Wenn keine **last_will_payload** angegeben wird, wird kein Last-Will Telegramm gesendet.', 'en': 'Payload for the MQTT testament message. If **last_will_payload** is not specified, there will be no last-will message sent.'}}, 'birth_topic': {'type': 'str', 'gui_type': 'wide_str', 'default': '', 'description': {'de': 'Topic für das Birth Telegramm', 'en': 'Topic for the birth telegramm'}, 'description_long': {'de': 'Die birth-Message ist das Gegenteil zur MQTT Testament Message und wird gesendet, wenn das Plugin startet. Falls kein **birth_topic** konfiguriert ist, wird das **last_will_topic** auch für die Birth-Message verwendet. Birth-Messages werden mit der Standard QoS und gesetztem Retain Flag gesendet.', 'en': 'The birth message is the opposite to the MQTT Testament message and sent, when the plugin starts up. if birth_topic is not specified, the last_will_topic will be used for the birth message too. Birth-messages will be sent with the default QoS and the retain flag set.'}}, 'birth_payload': {'type': 'str', 'gui_type': 'wide_str', 'default': '', 'description': {'de': 'Payload für das Birth Telegramm. Wenn keine birth_payload konfiguriert ist, wird keine Birth Message gesendet. In diesem Fall wird auch keine last-will message gesendet, falls die Verbindung ordnungsgemäß geschlossen wird (beim Beenden von SmartHomeNG).', 'en': 'Payload for the birth telegram. if birth_payload is not specified, no birth message will be sent. In this case there will be no last-will message sent, if the connection is closed orderly (by shutting down SmartHomeNG).'}}}} 2020-04-15 16:49:01 WARNING modules.admin.api_config Update: ['mqtt'] = ordereddict([('module_name', 'mqtt')]) 2020-04-15 16:49:01 WARNING modules.admin.api_config Update: enabled = None 2020-04-15 16:49:04 WARNING __main__ SmartHomeNG restarting, initiated by admin interface 2020-04-15 16:49:11 WARNING __main__ The following threads have not been terminated properly by their plugins (please report to the plugin's author): 2020-04-15 16:49:11 WARNING __main__ -Thread: Admin: Update blog links, still alive 2020-04-15 16:49:11 WARNING __main__ SmartHomeNG stopped 2020-04-15 16:49:11 WARNING __main__ -------------------- Init SmartHomeNG 1.7.1.master (cf2f7d85) -------------------- 2020-04-15 16:49:11 WARNING __main__ Running in Python interpreter 'v3.7.3 final' (pid=30049) on linux platform 2020-04-15 16:49:12 WARNING lib.shtime Nutze Feiertage für Land 'DE', Provinz 'BY', State '', 1 benutzerdefinierte Feiertagsdefinition(en) definiert 2020-04-15 16:49:13 WARNING lib.item load_itemdefinitions(): For testing the joined item structs are saved to /usr/local/smarthome/etc/structs_joined.yaml
Angezeigt wird davon momentan exakt die letzte Zeile (siehe weiter oben im Screenshot). Das ist nach jedem Neustart des Cores so. Vermutung: Da ist der Logger noch nicht soweit, dass er die Neustart-Zeilen davor auch schon im Memory hat.
Von jetzt an, wenn also der Core durchläuft und neue Einträge geschrieben werden, scheint es zu klappen, aber augenscheinlich werden manche Einträge nicht angezeigt, was an einem Filter liegen könnte. Ich hatte z.B. vor ein paar Tagen eine längere Liste von Einträgen in der Visu, die definitiv mit Logeinträgen von den drei letzten Log Dateien (Tage) zumindest partiell übereinstimmten. Aber eben nicht vollständig. Und das nach mehreren Neustarts. Was ja eigentlich nicht sein kann, da das Memory Log dann leer sein müsste, oder? Nach meinem Verständnis müsste er entweder alle Warnings und Errors der letzten Tage anzeigen oder nichts. Natürlich limitiert durch den Parameter der max. Zeilenanzahl.
Jetzt, wo ich weiß, dass das alles im Memory abläuft, weiß ich auch, warum meine Tests mit den Log Dateien erfolglos waren. Denn was da drin steht (und wieviel) interessiert env.core.log nicht. Um es besser zu verstehen und am Ende vielleicht sogar festzustellen, dass mein Problem gar keins ist, müsste ich mal Logeinträge provozieren, weiß aber grad nicht, wie ich das am geschicktesten anstelle. Also Info, Error, Warning.
Gruß, Martin
Kommentar