Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
2013-10-11 21:59:08,436 INFO System System.Smarthome.Laufzeit = 0h 25m via Logic None -- item.py:_update:254
2013-10-11 21:59:08,438 INFO System Threads (8): Scheduler: 1, System: 1, Main: 1, 1w-io: 1, idle: 3, 1w-sen: 1 -- system.py:<module>:23
2013-10-11 21:59:08,472 INFO System Objects (Top 10): tuple: 92, WeakSet: 113, ExtensionFileLoader: 114, str: 151, SourceFileLoader: 161, BaseException: 196, Exception: 244, Item: 474, Condition: 507, object: 1439 -- system.py:<module>:44
gc: collectable <FeedParser 0x7f52bd22a310>
gc: collectable <cell 0x7f52bd22b520>
gc: collectable <dict 0x7f52bd2f5320>
gc: collectable <tuple 0x7f52bd246210>
gc: collectable <function 0x7f52bcfd6320>
gc: collectable <BufferedSubFile 0x7f52bd22a390>
gc: collectable <list 0x7f52bd2215f0>
gc: collectable <dict 0x7f52bd2ab320>
gc: collectable <list 0x7f52bd2ab050>
gc: collectable <list 0x7f52bd2ab128>
gc: collectable <generator 0x7f52bcfcd370>
gc: collectable <method-wrapper 0x7f52bd22a150>
gc: collectable <HTTPMessage 0x7f52bd22a290>
gc: collectable <dict 0x7f52bcf11320>
gc: collectable <list 0x7f52bd2ab248>
gc: collectable <list 0x7f52bd2ab098>
2013-10-11 21:59:08,495 WARNING System Garbage: [<email.feedparser.FeedParser object at 0x7f52bd22a310>, <cell at 0x7f52bd22b520: FeedParser object at 0x7f52bd22a310>, {'_headersonly': False, '_parse': <method-wrapper '__next__' of generator object at 0x7f52bcfcd370>, '_factory': <class 'http.client.HTTPMessage'>, 'policy': Compat32(), '_cur': None, '_msgstack': [], '_input': <email.feedparser.BufferedSubFile object at 0x7f52bd22a390>, '_factory_kwds': <function FeedParser.__init__.<locals>.<lambda> at 0x7f52bcfd6320>, '_last': <http.client.HTTPMessage object at 0x7f52bd22a290>}, (<cell at 0x7f52bd22b520: FeedParser object at 0x7f52bd22a310>,), <function FeedParser.__init__.<locals>.<lambda> at 0x7f52bcfd6320>, <email.feedparser.BufferedSubFile object at 0x7f52bd22a390>, [], {'_partial': '', '_closed': True, '_lines': [], '_eofstack': []}, [], [], <generator object _parsegen at 0x7f52bcfcd370>, <method-wrapper '__next__' of generator object at 0x7f52bcfcd370>, <http.client.HTTPMessage object at 0x7f52bd22a290>, {'_payload': '', 'defects': [], 'epilogue': None, '_unixfrom': None, '_headers': [('Server', 'nginx/0.8.55'), ('Date', 'Fri, 11 Oct 2013 19:44:37 GMT'), ('Content-Type', 'text/xml; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Connection', 'keep-alive'), ('Vary', 'Accept-Encoding'), ('Cache-Control', 'private'), ('Alternate-Protocol', '443:quic')], '_charset': None, 'policy': Compat32(), '_default_type': 'text/plain', 'preamble': None}, [('Server', 'nginx/0.8.55'), ('Date', 'Fri, 11 Oct 2013 19:44:37 GMT'), ('Content-Type', 'text/xml; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Connection', 'keep-alive'), ('Vary', 'Accept-Encoding'), ('Cache-Control', 'private'), ('Alternate-Protocol', '443:quic')], []] -- system.py:<module>:53
2013-10-11 21:59:08,496 DEBUG System Load: 0.01, 0.03, 0.05 -- system.py:<module>:58
2013-10-11 21:59:08,497 INFO System System.Last = 0.03 via Logic None -- item.py:_update:254
2013-10-11 21:59:08,509 INFO System System.Laufzeit = 3d 12h 58m via Logic None -- item.py:_update:254
Wieder kam die eMail korrekt an. Das einzige was evtl. auch noch reinspielen könnte: Momentan scheint sh.py die Zeitzone nicht richtig zu haben. Die eMail ist von 21:44, das (Debug-)log zeigt auch korrekt die Zeiten, aber in dem Garbage-Dump und auch die contabs werden jeweils zwei Stunden zu früh angezeigt/ausgeführt...
# check if presence changed to true while all entrances were locked if ('Anwesenheit' in trigger['source']) and sh.Ueberwachung.Anwesenheit() and sh.Ueberwachung.Verriegelung.Alle(): sh.mail('robert.bxxxxx@gmx.net', 'Bewegung ohne Öffnung', 'Bewegung ohne Öffnung') sh.nma('Bewegung ohne Öffnung', 'Bewegung ohne Öffnung')
Ist halt nix drin außer Umlauten. Habe jetzt gerade noch mal geupdated - außer boxcar und artnet kam da aber nix...
Dann ein frischer Bug:
Code:
2013-10-12 05:03:41 ERROR series Problem updating series for {'update': True, 'item': 'Wechselrichter.DC_Leistung_String2', 'sid': 'Wechselrichter.DC_Leistung_String2|avg|1d|now', 'func': 'avg', 'end': 'now', 'step': 0, 'start': 1381543311185}: list index out of range
Traceback (most recent call last):
File "/usr/local/smarthome/plugins/visu/__init__.py", line 234, in update_series
reply = self.items[series['params']['item']].series(**series['params'])
File "/usr/local/smarthome/plugins/sqlite/__init__.py", line 329, in _series
lval = tuples[-1][1]
IndexError: list index out of range
2013-10-12 05:03:42 INFO Modbus Waermepumpe.Warmwasser.Ist = 43.2 via Modbus Reg 1681
2013-10-12 05:03:42 INFO Scheduler Adding worker thread. Total: 7
2013-10-12 05:03:42 INFO Scheduler Current Threads: Main, Scheduler, Modbus, 1w-io, Modbus, Modbus, series, Modbus, idle, Thread-7
2013-10-12 05:03:47 INFO Modbus Waermepumpe.Warmwasser.Ist = 43.3 via Modbus Reg 1681
2013-10-12 05:04:43 INFO Scheduler Adding worker thread. Total: 8
2013-10-12 05:04:43 INFO Scheduler Current Threads: Main, Scheduler, Modbus, 1w-io, Modbus, Thread-8, Modbus, series, Modbus, Modbus, series
2013-10-12 05:05:45 INFO Scheduler Adding worker thread. Total: 9
na, das Speicherleck ist in dem NMA Plugin! Fix erst einmal das, dann sehen wir weiter ob bei dem Mail-Versenden noch ein Problem ist.
Du kannst ja mal lib/tools.py fetch_url ansehen, oder verwenden.
Also irgendwas ist aber bei der Timezone schon schief. Ein Item-Crontab 19:15 wird als 19:15:00+00 im Scheduler eingetragen und auch nicht um 19:15 Lokalzeit ausgeführt. Fände ich aber richtig.
Also irgendwas ist aber bei der Timezone schon schief. Ein Item-Crontab 19:15 wird als 19:15:00+00 im Scheduler eingetragen und auch nicht um 19:15 Lokalzeit ausgeführt. Fände ich aber richtig.
Ack.
Wie gesagt, crontab ist (45 5 * 1,2,3,4,5), aber wird erst um 7:45 ausgeführt. Gleiches mit dem Verriegeln der Haustür um 21 Uhr -> 23 Uhr. Hatte schon ein dpkg-reconfigure tzdata gemacht - ist aber alles korrekt!?
Ich habe leider immer noch diverse Probleme mit der Stabilität...
Ein Problem: Die Garbage-Collection scheint sich irgendwie selber zu replizieren. Es werden immer mehr Backticks ('\') den eigentlichen Objekten voran- und nachgestellt, so dass ich jetzt zum dritten mal Log-Dateien von über 2GB hatte, die dann zum Exitus führten. Also nicht (nur) fehlender Speicher, sondern sh.py schreibt sich nen Wolf...
Dann habe ich noch:
Code:
2013-10-13 23:59:39 ERROR series SQLite: problem generating series value: '[]': list index out of range
Traceback (most recent call last):
File "/usr/local/smarthome/plugins/sqlite/__init__.py", line 336, in _series
lval = tuples[-1][1]
IndexError: list index out of range
danach gehen die workerthreads hoch bis Stillstand.
Was das Speicherleck im NMA-Plugin angeht:
MIttlerweile ist das NMA-Plugin quasi eine Kopie des Prowl-Plugins (evtl. könnte man das doch über zwei Parametersätze in einem Dict zusammenfassen?):
PHP-Code:
#!/usr/bin/env python3 # vim: set encoding=utf-8 tabstop=4 softtabstop=4 shiftwidth=4 expandtab ######################################################################### # Copyright 2011 KNX-User-Forum e.V. https://knx-user-forum.de/ ######################################################################### # This file is part of SmartHome.py. http://smarthome.sourceforge.net/ # # SmartHome.py is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # SmartHome.py is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with SmartHome.py. If not, see <http://www.gnu.org/licenses/>. #########################################################################
def __call__(self, event='', description='', priority=None, url=None, apikey=None, application='SmartHome'): data = {} headers = {'User-Agent': "SmartHome.py", 'Content-Type': "application/x-www-form-urlencoded"} data['event'] = event[:1000].encode() data['description'] = description[:1000].encode() data['application'] = application[:256].encode() if apikey: data['apikey'] = apikey else: data['apikey'] = self._apikey if priority: data['priority'] = priority if url: data['url'] = url[:2000] try: conn = http.client.HTTPSConnection(self._host, timeout=4) conn.request("POST", self._api, urllib.parse.urlencode(data), headers) resp = conn.getresponse() conn.close() if (resp.status == 200): logger.debug("NMA returns: Notification submitted.") elif (resp.status == 400): logger.warning("NMA returns: The data supplied is in the wrong format, invalid length or null.") elif (resp.status == 401): logger.warning("NMA returns: None of the API keys provided were valid.") elif (resp.status == 402): logger.warning("NMA returns: Maximum number of API calls per hour exceeded.") elif (resp.status == 500): logger.warning("NMA returns: Internal server error. Please contact our support if the problem persists.") else: logger.error("NAME returns unknown HTTP status code = {0}".format(p.getcode())) except Exception as e: logger.warning("Could not send NMA notification: {0}. Error: {1}".format(event, e))
Wie kann da was über bleiben? Bzw. wenn, dann müsste das Prowl-Plugin auch Probleme haben!?
Ist evtl. das conn.close(9 ein Problem, wenn es vorher schon eine Exception gab? Allerdings habe ich im ganzen Log keine Fehlermeldung (Exception bzw. Teilstring der Fehlermeldung).
deaktiviere bitte die System-Logik von mir. In develop gibt es einen Item Bereich "env" der die entsprechenden Informationen generiert. Darin sollte auch das Problem der selbst referenzierenden Warnings behoben sein.
Kannst Du mir evtl. das komplette Log zur Verfügung stellen (z.B. Webserver).
Mit den Schnipseln kann ich nur sehr schwer Zusammenhänge erkennen.
bzgl des NMA Plugins, war es schon vorher identisch mit dem Prowl Plugin?
Und wie lauten die Fehlermeldungen, bevor der Garbage erzeugt wird?
Ich denke, ich habe gerade ein Problem bzgl der ausufernden WorkerThreads gefunden. Mal sehen.
bzgl des NMA Plugins, war es schon vorher identisch mit dem Prowl Plugin?
Und wie lauten die Fehlermeldungen, bevor der Garbage erzeugt wird?
Vorher war es schon quasi-identisch, bei der Adaption für Python3 habe ich es fast komplett übernommen. Jetzt habe ich den Code sogar noch gleich sortiert um Abweichungen zu finden. Evtl. sollten die Plugins als "Notification"-Plugin zusammengefasst werden?
Fehlermeldungen gibt es keine! D.h. die Exception tritt nicht auf, genauso wenig wie HTTP-Fehlercodes. Hatte es jetzt erstmal deaktiviert, da momentan der WAF leidet...
Ich habe noch zwei Meldungen aufgetan, die als "Errors" deklariert sind, aber scheinbar keine weiteren Folgen haben:
Code:
2013-10-15 12:51:37 ERROR Main WebSocketHandler: [Errno 110] Die Wartezeit für die Verbindung ist abgelaufen
2013-10-15 12:51:37 ERROR Main Connections: 14
2013-10-15 18:23:47 ERROR Main WebSocketHandler: [Errno 110] Die Wartezeit für die Verbindung ist abgelaufen
2013-10-15 18:23:47 ERROR Main Connections: 14
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar