Ankündigung

Einklappen
Keine Ankündigung bisher.

Trovis 557x Heizungsregler Plugin

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

  • Tom Bombadil
    antwortet
    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
    Zuletzt geändert von Tom Bombadil; 28.08.2021, 16:50.

    Einen Kommentar schreiben:


  • TheStig
    antwortet
    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:


  • wvhn
    antwortet
    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:


  • TheStig
    antwortet
    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:


  • TheStig
    antwortet
    Zitat von mza Beitrag anzeigen

    Oder Klok
    Ich kenne nur PEBKAC ;-) Was ist Klok?

    Einen Kommentar schreiben:


  • TheStig
    antwortet
    Zitat von wvhn Beitrag anzeigen
    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:

    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
    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.)

    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.
    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!

    Debug-Logging im Trovis-Plugin oder in den Admin-Interface shNG allgemein?

    Einen Kommentar schreiben:


  • mza
    antwortet
    Zitat von TheStig Beitrag anzeigen
    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.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
    Oder Klok

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    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:

    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
    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.)

    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:


  • TheStig
    antwortet

    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 subscriptable
    Zuletzt geändert von TheStig; 28.08.2021, 11:33.

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Für das Problem mit den Rechten des /dev/ttytrovis findest Du in #12 dieses Threads einen Hinweis.

    Einen Kommentar schreiben:


  • TheStig
    antwortet
    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...
    Angehängte Dateien
    Zuletzt geändert von TheStig; 28.08.2021, 06:58.

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    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ß
    Wolfram
    Zuletzt geändert von wvhn; 27.08.2021, 22:44.

    Einen Kommentar schreiben:


  • Tom Bombadil
    antwortet
    Zitat von TheStig Beitrag anzeigen
    'AttributeError' object is not iterable
    Minütlich macht Sinn, da die Trovis im Minutentakt abgefragt wird.
    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:


  • TheStig
    antwortet
    Irgendwelche Linux-Gurus außer Tom noch mit einer Idee?
    Zuletzt geändert von TheStig; 27.08.2021, 14:16.

    Einen Kommentar schreiben:


  • TheStig
    antwortet
    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:

Lädt...
X