Silence S01/Seat Mo: CAN-Bus mit Tasmota auslesen
Verfasst: Di 19. Sep 2023, 10:36
Wie bereits angekündigt viewtopic.php?p=330053#p330053[/url] hier die Beschreibung meiner Tasmota Lösung zur Interpretation der CAN-Bus Daten des Silence S01/Seat Mo 125.
Die Tasmota Software https://www.tasmota.info/ wurde ursprünglich entwickelt, um die Firmware von Sonoff Komponenten zur ersetzen. Die original Sonoff Firmware arbeitet auf einem ESP8266 Chip und ermöglicht die Steuerung der Sonoffs (Relais/Stechdosen/Lampen) per App über eine chinesische Cloudanbindung. Die Tasmotaanwendung ermöglicht dagegen die Steuerung dieser Geräte ohne Cloudanbindung direkt über den eigenen Webbrowser bzw. per mqtt auch über die gängigen Open Source Smarthomeanwendungen. Die Daten werden dazu über das eigene Wlan Netz übertragen.
Die Software wird ständig weiterentwickelt, um auch Geräte mit ESP8266 anderer Hersteller oder um auch allgemein Sensoren zu betreiben, die an den ESP anschließbar sind. Tasmota ist modular aufgebaut, d.h. neue Sensoren können durch Hinzufügen eines neuen Moduls integriert werden. Neuerdings wird auch der ESP32 unterstützt, ich selbst aber habe Tasmota bisher noch nicht auf diesem Chip getestet.
Mittlerweile wurde auch ein Modul entwickelt, welches über einen MCP2515 die CAN-Bus Daten eines Freedom Won Akkus ausliest und diese an einen Webbrowser bzw. mqtt-Server weitergibt. Dieses Modul kann durch einfache Anpassung auch für das Lesen der CAN-Bus Daten des Silence/Seat verwendet werden. Ich habe dazu in diesem Modul die Freedom Won Daten durch die Silencespezifischen ersetzt.
Hardware:
Zum Betrieb der Anwendung wird ein Entwicklungsboard (Nodemcu oder Wemos D1), das mit einem ESP8266 Chip bestückt ist und eine MCP2515 benötigt. Zur Verbindung des MCP mit dem Roller ist ein OBD-Stecker hilfreich. Die Verkabelung des Boards mit dem MCP ist im Netz beschrieben. Da der ESP mit einer Betriebsspannung von 3,3V, der MCP aber mit 5V arbeitet, muss dies bei der Verkabelung berücksichtigt werden. Es gibt aber auch MCP's https://joy-it.net/de/products/SBC-CAN01, die direkt an 3,3V Chips angeschlossen werden können. Zum Flashen der Software wird das Board über USB an einen Rechner angeschlossen, über USB erfolgt während des Betriebs auch die Stromversorgung des Boards.
Tasmota:
Der Tasmota Code kann von hier https://github.com/arendst/Tasmota/tree/prerelease-13.1 in Form einer Zip-Datei heruntergeladen werden. Die entpackte Zip enthält im Ordner ".../Tasmota-Master/tasmota/xsns-sensors" die Datei xsns_87_mcp2515.ino. Diese enthält das Modul zum Lesen der CAN Daten und muss vor dem Flashen von Tasmota durch die im Amhang beigefügte Datei xsns_87_mcp2515.ino.txt (die Endung .txt vorher entfernen) ersetzt werden.
In dieser Datei wurden die silencespezifischen Anpassung in den Funktionen MCP2515_Read und MCP2515_Show vorgenommen. In MCP2515_Read werden aus den gelesenen CAN-Daten die ID's selektiert, welche die gewünschten darzustellenden Werte enthalten und die Parameter aus den zugehörigen Datenbytes der jeweiligen ID selektiert. Die Dekodierung erfolgte an Hand der Tabelle aus dem Post viewtopic.php?p=286516#p286516. In MCP2515_Show werden die Parameter für die Darstellung über mqtt (Jason-Zweig) bzw. auf dem Browser (Webserver-Zweig) aufbereitet.
Will man weitere/andere CAN-Daten des Rollers anzeigen, muss man beide Funktionen entsprechend anpassen.
Tasmota wird mit Hilfe der PlatformIO ([url]ttps://platformio.org/[/url] kompiliert und auf den ESP8266 geflasht. Anleitungen zur Installation und Bedienung der PlatformIO findet man im Netz, sowie in der Tasmota Doku https://tasmota.github.io/docs/.
Vor dem Flashen müssen noch folgende Konfigurationsanpassungen vorgenommen werden:
- Der MCP besitzt einen Quartz, der mit 8 bzw. 16 Mhz getaktet ist. Die Taktfrequenz wird in Zeile 45 von xns_87_mcp2515.ino eingetragen.
- In der Datei ".../Tasmota-Master/tasmota/my_user_cofig.h" müssen in den Zeilen 364, 765 und 781 jeweils die beiden Schrägstriche ("//") am
Zeilenanfang entfernt werden. Damit wird die deutsche Sprachunterstützung eingestellt und die Moduldatei xsns_87_mcp2515.ino beim
Kompilieren von Tasmota mitberücksichtigt.
- in der Datei ".../Tasmota-Master/tasmota/user_config_overide.h" können in den Zeilen 46 und 49 die SSID und das Passwort des Hausnetzes
eingegeben werden. Damit wird die Anbindung in das Hausnetz vereinfacht.
Nach dem Flashen muss Tasmota noch konfiguriert werden. Dazu wird im Webbrowser unter dem Reiter "Einstellungen --> Gerät konfigurieren" die Geräte-Einstellung wie folgt vorgenommen. Falls der CS-Pin des MCP nicht am GPIO5 des ESP's angeschlossen wurde, muss dies hier geändert werden.
Die Tasmota Software https://www.tasmota.info/ wurde ursprünglich entwickelt, um die Firmware von Sonoff Komponenten zur ersetzen. Die original Sonoff Firmware arbeitet auf einem ESP8266 Chip und ermöglicht die Steuerung der Sonoffs (Relais/Stechdosen/Lampen) per App über eine chinesische Cloudanbindung. Die Tasmotaanwendung ermöglicht dagegen die Steuerung dieser Geräte ohne Cloudanbindung direkt über den eigenen Webbrowser bzw. per mqtt auch über die gängigen Open Source Smarthomeanwendungen. Die Daten werden dazu über das eigene Wlan Netz übertragen.
Die Software wird ständig weiterentwickelt, um auch Geräte mit ESP8266 anderer Hersteller oder um auch allgemein Sensoren zu betreiben, die an den ESP anschließbar sind. Tasmota ist modular aufgebaut, d.h. neue Sensoren können durch Hinzufügen eines neuen Moduls integriert werden. Neuerdings wird auch der ESP32 unterstützt, ich selbst aber habe Tasmota bisher noch nicht auf diesem Chip getestet.
Mittlerweile wurde auch ein Modul entwickelt, welches über einen MCP2515 die CAN-Bus Daten eines Freedom Won Akkus ausliest und diese an einen Webbrowser bzw. mqtt-Server weitergibt. Dieses Modul kann durch einfache Anpassung auch für das Lesen der CAN-Bus Daten des Silence/Seat verwendet werden. Ich habe dazu in diesem Modul die Freedom Won Daten durch die Silencespezifischen ersetzt.
Hardware:
Zum Betrieb der Anwendung wird ein Entwicklungsboard (Nodemcu oder Wemos D1), das mit einem ESP8266 Chip bestückt ist und eine MCP2515 benötigt. Zur Verbindung des MCP mit dem Roller ist ein OBD-Stecker hilfreich. Die Verkabelung des Boards mit dem MCP ist im Netz beschrieben. Da der ESP mit einer Betriebsspannung von 3,3V, der MCP aber mit 5V arbeitet, muss dies bei der Verkabelung berücksichtigt werden. Es gibt aber auch MCP's https://joy-it.net/de/products/SBC-CAN01, die direkt an 3,3V Chips angeschlossen werden können. Zum Flashen der Software wird das Board über USB an einen Rechner angeschlossen, über USB erfolgt während des Betriebs auch die Stromversorgung des Boards.
Tasmota:
Der Tasmota Code kann von hier https://github.com/arendst/Tasmota/tree/prerelease-13.1 in Form einer Zip-Datei heruntergeladen werden. Die entpackte Zip enthält im Ordner ".../Tasmota-Master/tasmota/xsns-sensors" die Datei xsns_87_mcp2515.ino. Diese enthält das Modul zum Lesen der CAN Daten und muss vor dem Flashen von Tasmota durch die im Amhang beigefügte Datei xsns_87_mcp2515.ino.txt (die Endung .txt vorher entfernen) ersetzt werden.
In dieser Datei wurden die silencespezifischen Anpassung in den Funktionen MCP2515_Read und MCP2515_Show vorgenommen. In MCP2515_Read werden aus den gelesenen CAN-Daten die ID's selektiert, welche die gewünschten darzustellenden Werte enthalten und die Parameter aus den zugehörigen Datenbytes der jeweiligen ID selektiert. Die Dekodierung erfolgte an Hand der Tabelle aus dem Post viewtopic.php?p=286516#p286516. In MCP2515_Show werden die Parameter für die Darstellung über mqtt (Jason-Zweig) bzw. auf dem Browser (Webserver-Zweig) aufbereitet.
Will man weitere/andere CAN-Daten des Rollers anzeigen, muss man beide Funktionen entsprechend anpassen.
Tasmota wird mit Hilfe der PlatformIO ([url]ttps://platformio.org/[/url] kompiliert und auf den ESP8266 geflasht. Anleitungen zur Installation und Bedienung der PlatformIO findet man im Netz, sowie in der Tasmota Doku https://tasmota.github.io/docs/.
Vor dem Flashen müssen noch folgende Konfigurationsanpassungen vorgenommen werden:
- Der MCP besitzt einen Quartz, der mit 8 bzw. 16 Mhz getaktet ist. Die Taktfrequenz wird in Zeile 45 von xns_87_mcp2515.ino eingetragen.
- In der Datei ".../Tasmota-Master/tasmota/my_user_cofig.h" müssen in den Zeilen 364, 765 und 781 jeweils die beiden Schrägstriche ("//") am
Zeilenanfang entfernt werden. Damit wird die deutsche Sprachunterstützung eingestellt und die Moduldatei xsns_87_mcp2515.ino beim
Kompilieren von Tasmota mitberücksichtigt.
- in der Datei ".../Tasmota-Master/tasmota/user_config_overide.h" können in den Zeilen 46 und 49 die SSID und das Passwort des Hausnetzes
eingegeben werden. Damit wird die Anbindung in das Hausnetz vereinfacht.
Nach dem Flashen muss Tasmota noch konfiguriert werden. Dazu wird im Webbrowser unter dem Reiter "Einstellungen --> Gerät konfigurieren" die Geräte-Einstellung wie folgt vorgenommen. Falls der CS-Pin des MCP nicht am GPIO5 des ESP's angeschlossen wurde, muss dies hier geändert werden.