Es ist und bleibt die Schnittstelle bzw. der Adapter. Solange das nicht läuft, wird auch dieser konkrete Fehler nicht verschwinden. Da kann man an den Linux- und Plugin-Einstellungen biegen, wie man will - läuft die Schnittstelle physisch nicht oder mit falschen Einstellungen, bringt Dir die tollste socat-Schnittstelle und das tollste Logging nichts. Weiteres Indiz dafür: Dein Windows-PC kann ja mit Trovis View auch nicht connecten ....
Wie die Datenpakete im Sniffer korrekt aussehen müssen, findest Du auf Seite 1 dieses Threads - das sieht bei Dir komplett anders aus, und es sendet auch nur eine Adresse (vermutlich shNG, denn ohne Anforderung schickt die Trovis keine Daten).
Ich schließe mittlerweile nicht mal mehr aus, dass Du Dir mit dem "Try and Error" bei der Verkabelung die RS232-Seite des Adapters zerlegt hast. Masse an Tx und 5V konstante Gleichspannung an Rx kann die tollsten Effekte zaubern.
Ansonsten: Nochmal 19200 probieren (obwohl die Datenpakete bei Dir zumindest strukturiert aussehen, das wäre bei falscher Geschwindkeit meist nicht so), andere Schnittstelleneinstellungen im Adapter probieren (7N1 usw - wäre aber ungewöhnlich), Verkabelung prüfen (sitzt der Stecker überhaupt richtig drin in der Trovis drin - 'klick' muss es machen).
Schwierig ...
/tom
Ankündigung
Einklappen
Keine Ankündigung bisher.
Trovis 557x Heizungsregler Plugin
Einklappen
X
-
Danke. Habe da mein Glück versucht. Hilft der etwas ausführlichere Fehler weiter?
Code:2021-08-28 16:53:24 ERROR plugins.trovis557x.poll_device Method plugins.trovis557x.poll_device exception: can only concatenate str (not "AttributeError") to str > Traceback (most recent call last): > File "/usr/local/smarthome/plugins/trovis557x/__init__.py", line 213, in leseTrovis > for wert in werte.registers: > AttributeError: 'ModbusIOException' object has no attribute 'registers' During handling of the above exception, another exception occurred: > Traceback (most recent call last): > File "/usr/local/smarthome/lib/scheduler.py", line 664, in _task > obj() > File "/usr/local/smarthome/plugins/trovis557x/__init__.py", line 81, in poll_device > ids_mit_werten = self.leseTrovis(bereich, 'register') > File "/usr/local/smarthome/plugins/trovis557x/__init__.py", line 232, in leseTrovis > self.logger.debug('Fehlerobjekt von Schnittstelle: ' + e) > TypeError: can only concatenate str (not "AttributeError") to str
Einen Kommentar schreiben:
-
Da die Foren-Software keine Tabs akzeptiert, habe ich den Code mit Leerzeichen aufgefüllt, damit die Einrückungen stimmen. Das musst Du in Deinem Editor konsistent zu den anderen Eindrücken machen.
Einen Kommentar schreiben:
-
Wohl ein Fehler im neuen Error-Logging:
Code:2021-08-28 14:43:50 ERROR lib.plugin Plugin 'trovis557x' exception during import of __init__.py: inconsistent use of tabs and spaces in indentation (__init__.py, line 229) > Traceback (most recent call last): > File "/usr/local/smarthome/lib/plugin.py", line 547, in __init__ > exec("import {0}".format(classpath)) > File "<string>", line 1, in <module> > File "/usr/local/smarthome/plugins/trovis557x/__init__.py", line 229 > if hasattr(e, 'message'): > ^
Einen Kommentar schreiben:
-
Ich kenne nur PEBKAC ;-) Was ist Klok?Zitat von mza Beitrag anzeigen
Oder Klok
Einen Kommentar schreiben:
-
Ja, ich hatte die # an den beiden von dir genannten Stellen auskommentiert. Werde das mit dem zusätzlichen Code zum Logging mal testen...bin ja verzweifelt und teste alles!Zitat von wvhn Beitrag anzeigenDu hast die Zeile 236 für das debug-Log aktiviert, oder? Dann tritt derselbe Fehler ('_ids_mit_werten' enthält vermutlich die Fehlermeldung bzw. Exception) einfach nur früher auf. Ich hatte gehofft, dass man trotzdem etwas mehr über den Fehler erfährt, aber dazu müsste man das Logging nochmal ändern. Beispielsweise statt Zeilen 228 / 229 folgendes einsetzen:
Ich weiß aber nicht, ob Dich das wirklich weiter bringt. Ich würde eher versuchen, die Kette von der Schnittstelle her Schritt für Schritt zu verifizieren. (Pinbelegung sieht für mich OK aus.)Code:except Exception as e: if hasattr(e, 'message'): self.logger.debug('Fehlermeldung von Schnittstelle: ' + e.message) else: self.logger.debug('Fehlerobjekt von Schnittstelle: ' + e) _ids_mit_werten = e
Wenn Du das Debug-Logging aktiviert hast, müsstest Du schon sehen können, ob der Verbindungsaufbau zum Trovis geklappt hat. Das kannst Du im Admin-Interface von shNG einstellen und einsehen.
Debug-Logging im Trovis-Plugin oder in den Admin-Interface shNG allgemein?
Einen Kommentar schreiben:
-
Oder KlokZitat von TheStig Beitrag anzeigenOk, dem Rechte-Problem widme ich mich später. Ich bekomme es zumindest hin, dass der Fehler bis zu einem Neustart nicht auftritt.
Helft mal bitte mit mit der Verkabelung. Ich werde da irre. Hier ein möglichst gutes Foto vom Stecker:
2021-08-28 12_20_37-IMG_1883 (002).jpg - Fotos.png
Ist ja spiegelverkehrt zu hier: https://github.com/Tom-Bom-badil/sam...ie-beschaltung
Fangen wir mit dem leichten an:
5V = Braun/Weiß (Kabel neben dem Braunen)
Grd = Orange
Wenn das korrekt ist müsste TXD und RXD wie folgt sein:
RXD = Grün
TXD = Schwer zu erkennen von der Farbe. Entweder Grün/Weiß oder Blau/Weiß mit Tendenz zu Grün/Weiß (allerdings waren im Kabel die Adern Blau und Blau/Weiß miteinander verdrillt)
RXD vom Kabel dann an TXT vom Adapter und umgekehrt.
Wo liegt mein Denkfehler?
EDIT: Aktueller Fehler im Log (etwas anders als vorher):
Code:2021-08-28 12:30:29 ERROR plugins.trovis557x.poll_device Method plugins.o.poll_device exception: 'AttributeError' object is not subscriptable > Traceback (most recent call last): > File "/usr/local/smarthome/lib/scheduler.py", line 664, in _task > obj() > File "/usr/local/smarthome/plugins/trovis557x/__init__.py", line 84, in poll_device > self.verarbeiteWerte(ids_mit_werten, 'register') > File "/usr/local/smarthome/plugins/trovis557x/__init__.py", line 236, in verarbeiteWerte > self.logger.debug('Verarbeite ' + _datentyp + ' ' + str(_ids_mit_werten[0][0]) + '-' + str(_ids_mit_werten[len(_ids_mit_werten)-1][0]) + ':') > TypeError: 'AttributeError' object is not subscriptable
Einen Kommentar schreiben:
-
Du hast die Zeile 236 für das debug-Log aktiviert, oder? Dann tritt derselbe Fehler ('_ids_mit_werten' enthält vermutlich die Fehlermeldung bzw. Exception) einfach nur früher auf. Ich hatte gehofft, dass man trotzdem etwas mehr über den Fehler erfährt, aber dazu müsste man das Logging nochmal ändern. Beispielsweise statt Zeilen 228 / 229 folgendes einsetzen:
Ich weiß aber nicht, ob Dich das wirklich weiter bringt. Ich würde eher versuchen, die Kette von der Schnittstelle her Schritt für Schritt zu verifizieren. (Pinbelegung sieht für mich OK aus.)Code:except Exception as e: if hasattr(e, 'message'): self.logger.debug('Fehlermeldung von Schnittstelle: ' + e.message) else: self.logger.debug('Fehlerobjekt von Schnittstelle: ' + e) _ids_mit_werten = e
Wenn Du das Debug-Logging aktiviert hast, müsstest Du schon sehen können, ob der Verbindungsaufbau zum Trovis geklappt hat. Das kannst Du im Admin-Interface von shNG einstellen und einsehen.Zuletzt geändert von wvhn; 28.08.2021, 12:59.
Einen Kommentar schreiben:
-
Ok, dem Rechte-Problem widme ich mich später. Ich bekomme es zumindest hin, dass der Fehler bis zu einem Neustart nicht auftritt.
Helft mal bitte mit mit der Verkabelung. Ich werde da irre. Hier ein möglichst gutes Foto vom Stecker:
2021-08-28 12_20_37-IMG_1883 (002).jpg - Fotos.png
Ist ja spiegelverkehrt zu hier: https://github.com/Tom-Bom-badil/sam...ie-beschaltung
Fangen wir mit dem leichten an:
5V = Braun/Weiß (Kabel neben dem Braunen)
Grd = Orange
Wenn das korrekt ist müsste TXD und RXD wie folgt sein:
RXD = Grün
TXD = Schwer zu erkennen von der Farbe. Entweder Grün/Weiß oder Blau/Weiß mit Tendenz zu Grün/Weiß (allerdings waren im Kabel die Adern Blau und Blau/Weiß miteinander verdrillt)
RXD vom Kabel dann an TXT vom Adapter und umgekehrt.
Wo liegt mein Denkfehler?
EDIT: Aktueller Fehler im Log (etwas anders als vorher):
Code:2021-08-28 12:30:29 ERROR plugins.trovis557x.poll_device Method plugins.trovis557x.poll_device exception: 'AttributeError' object is not subscriptable > Traceback (most recent call last): > File "/usr/local/smarthome/lib/scheduler.py", line 664, in _task > obj() > File "/usr/local/smarthome/plugins/trovis557x/__init__.py", line 84, in poll_device > self.verarbeiteWerte(ids_mit_werten, 'register') > File "/usr/local/smarthome/plugins/trovis557x/__init__.py", line 236, in verarbeiteWerte > self.logger.debug('Verarbeite ' + _datentyp + ' ' + str(_ids_mit_werten[0][0]) + '-' + str(_ids_mit_werten[len(_ids_mit_werten)-1][0]) + ':') > TypeError: 'AttributeError' object is not subscriptableZuletzt geändert von TheStig; 28.08.2021, 11:33.
Einen Kommentar schreiben:
-
Für das Problem mit den Rechten des /dev/ttytrovis findest Du in #12 dieses Threads einen Hinweis.
Einen Kommentar schreiben:
-
Danke euch weiterhin. Der Sniffer zeigt folgendes:
2021-08-28 07_50_12-USR-VCOM Virtual Serial Port Server V3.7.2.525.png
Dann muss ich wohl (wieder) die Verkabelung anschauen. Wobei so viel kann selbst ich da ja eigentlich nicht falsch machen...Logging wird jetzt mal aktiviert!
Wobei ich bei jedem Restart immer noch das Problem der fehlenden Rechte auf /dev/trovis habe...boah...Zuletzt geändert von TheStig; 28.08.2021, 06:58.
Einen Kommentar schreiben:
-
Du könntest in der __init__.py des Trovis Plugins das Logging aktivieren (Zeile 236 und 313). Nach kurzer Durchsicht des Sourcecodes bin ich der gleichen Meinung wie Tom. Die Daten werden nicht eingelesen. Dadurch steht in der Variable "_ids_mit_werten" nur die Fehlermeldung aus der Exception, die natürlich keine Array-Form hat, also nicht "iterable" ist. Das führt zu dem Fehler in Zeile 238.
Gruß
WolframZuletzt geändert von wvhn; 27.08.2021, 22:44.
- Likes 1
Einen Kommentar schreiben:
-
Minütlich macht Sinn, da die Trovis im Minutentakt abgefragt wird.Zitat von TheStig Beitrag anzeigen'AttributeError' object is not iterable
Diesen konkreten Fehler bekomme ich dann, wenn keine oder keine sinnvollen Daten über die Schnittstelle ankommen
(z.B. wenn ich den Adapter vom Netzwerk abziehe).
Irgendwas stimmt da immer noch nicht mit der Verbindung zum Adapter oder/und der socat-Schnittstelle.
Was sagt der Sniffer auf dem Windows-PC, während das Plugin läuft?
/tom
Einen Kommentar schreiben:
-
Ok, ich schreite fort. Das Permission denied habe ich (denke ich) geklärt durch: https://github.com/esp8266/source-co...ples/issues/26
Jetzt folgender Fehler. Ist die Fehlermeldung der sqlite-DB ein Problem für die Trovis?
Code:2021-08-27 07:50:39 WARNING lib.smarthome.main -------------------- Init SmartHomeNG 1.8.2.master (0f462a1e) -------------------- 2021-08-27 07:50:39 WARNING lib.smarthome.main Running in Python interpreter 'v3.8.10 final', from directory /usr/local/smarthome 2021-08-27 07:50:39 WARNING lib.smarthome.main - on Linux-5.4.0-1042-raspi-armv7l-with-glibc2.29 (pid=2303) 2021-08-27 07:50:40 WARNING lib.smarthome.main - Nutze Feiertage für Land 'DE', Provinz 'NW', 1 benutzerdefinierte(r) Feiertag(e) definiert 2021-08-27 07:50:48 ERROR lib.db Database [Database]: Could not connect to the database using 'sqlite3': unable to open database file 2021-08-27 07:50:48 CRITICAL plugins.database Database: Initialization failed: unable to open database file 2021-08-27 07:50:48 WARNING lib.smarthome.main -------------------- SmartHomeNG restarting, initiated by SmartHomeNG (Database plugin stalled) -------------------- 2021-08-27 07:51:09 WARNING lib.smarthome.main -------------------- SmartHomeNG stopped -------------------- 2021-08-27 07:51:15 WARNING lib.smarthome.main -------------------- Init SmartHomeNG 1.8.2.master (0f462a1e) -------------------- 2021-08-27 07:51:15 WARNING lib.smarthome.main Running in Python interpreter 'v3.8.10 final', from directory /usr/local/smarthome 2021-08-27 07:51:15 WARNING lib.smarthome.main - on Linux-5.4.0-1042-raspi-armv7l-with-glibc2.29 (pid=2377) 2021-08-27 07:51:16 WARNING lib.smarthome.main - Nutze Feiertage für Land 'DE', Provinz 'NW', 1 benutzerdefinierte(r) Feiertag(e) definiert 2021-08-27 07:51:25 WARNING lib.item.items Plugins 'smartvisu' and 'trovis557x' define the same item-attribute 'visu_acl' 2021-08-27 07:51:28 WARNING lib.metadata Item 'heizung.rk3.heizkurve.minsoll', attribute 'werte': Attribute is undefined and has value '[20.0, 25.0, 30.0, 35.0, 40.0, 45.0, 50.0, 55.0, 60.0, 65.0, 70.0, 75.0, 80.0, 85.0, 90.0]' (defined in trovis.yaml) 2021-08-27 07:51:28 WARNING lib.metadata Item 'heizung.rk3.heizkurve.solltemperatur', attribute 'werte': Attribute is undefined and has value '[20.0, 25.0, 30.0, 35.0, 40.0, 45.0, 50.0, 55.0, 60.0, 65.0, 70.0, 75.0, 80.0, 85.0, 90.0]' (defined in trovis.yaml) 2021-08-27 07:51:28 WARNING lib.metadata Item 'heizung.rk3.heizkurve.maxsoll', attribute 'werte': Attribute is undefined and has value '[20.0, 25.0, 30.0, 35.0, 40.0, 45.0, 50.0, 55.0, 60.0, 65.0, 70.0, 75.0, 80.0, 85.0, 90.0]' (defined in trovis.yaml) 2021-08-27 09:51:28 WARNING lib.smarthome.main -------------------- SmartHomeNG initialization finished -------------------- 2021-08-27 09:51:43 WARNING pymodbus.client.sync Cleanup recv buffer before send: 0x0 0x1 0xff 0xfe 0x16 0x16 0x0 0x1 0xff 0xfe 0x1b 0x1b 0x0 0x1 0xff 0xfe 0x1b 0x1b 0x0 0x1 0xff 0xfe 0x1f 0x1b 0x0 0x1 0xff 0xfe 0x13 0x13 0x0 0x1 0xff 0xfe 0x1d 0x19 0x0 0x1 0xff 0xfe 0x13 0x12 0x0 0x1 0xff 0xfe 0x16 0x6 0x0 0x1 0xff 0xfe 0x12 0x16 0x0 0x1 0xff 0xfe 0x19 0x19 0x0 0x1 0xff 0xfe 0x1f 0x1b 0x0 0x1 0xff 0xfe 0x1f 0x1b 0x0 0x1 0xff 0xfe 0x1f 0x1b 0x0 0x1 0xff 0xfe 0x16 0x1a 0x0 0x1 0xff 0xfe 0x13 0x12 0x0 0x1 0xff 0xfe 0x17 0x16 0x0 0x1 0xff 0xfe 0x1d 0x1b 2021-08-27 09:51:43 ERROR plugins.trovis557x.poll_device Method plugins.trovis557x.poll_device exception: 'AttributeError' object is not iterable > Traceback (most recent call last): > File "/usr/local/smarthome/lib/scheduler.py", line 664, in _task > obj() > File "/usr/local/smarthome/plugins/trovis557x/__init__.py", line 84, in poll_device > self.verarbeiteWerte(ids_mit_werten, 'register') > File "/usr/local/smarthome/plugins/trovis557x/__init__.py", line 238, in verarbeiteWerte > for id, buswert in _ids_mit_werten: > TypeError: 'AttributeError' object is not iterable 2021-08-27 09:52:43 ERROR plugins.trovis557x.poll_device Method plugins.trovis557x.poll_device exception: 'AttributeError' object is not iterable > Traceback (most recent call last): > File "/usr/local/smarthome/lib/scheduler.py", line 664, in _task > obj() > File "/usr/local/smarthome/plugins/trovis557x/__init__.py", line 84, in poll_device > self.verarbeiteWerte(ids_mit_werten, 'register') > File "/usr/local/smarthome/plugins/trovis557x/__init__.py", line 238, in verarbeiteWerte > for id, buswert in _ids_mit_werten: > TypeError: 'AttributeError' object is not iterable 2021-08-27 09:53:43 ERROR plugins.trovis557x.poll_device Method plugins.trovis557x.poll_device exception: 'AttributeError' object is not iterable > Traceback (most recent call last): > File "/usr/local/smarthome/lib/scheduler.py", line 664, in _task > obj() > File "/usr/local/smarthome/plugins/trovis557x/__init__.py", line 84, in poll_device > self.verarbeiteWerte(ids_mit_werten, 'register') > File "/usr/local/smarthome/plugins/trovis557x/__init__.py", line 238, in verarbeiteWerte > for id, buswert in _ids_mit_werten: > TypeError: 'AttributeError' object is not iterable
Einen Kommentar schreiben:


Einen Kommentar schreiben: