Seite 1 von 2

Timberwolf Modbus Profile Generator

Verfasst: Mi Jul 05, 2023 11:43 pm
von starwarsfan
Hallo miteinander,

nachdem hier die Frage aufgekommen ist, wie ich Modbus-Profile anlege, habe ich das Ganze nun mal gerade gezogen und in ein Github-Projekt verpackt. Entstanden ist dabei der Timberwolf-Modbus-Profile-Generator. :dance:
Eine Warnung zu Beginn:
Der Modbus-Profil-Import wurde nie dahingehend entwickelt, Profile zu importieren, welche von einem externen Tool erzeugt wurden! Aus diesem Grund kann ElabNET keinen Support leisten, wenn es Probleme nach dem Import eines fehlerhaften Profils gibt.


Einige Hinweise, um diesem Problem entgegen zu wirken:
  • Prüft die verwendeten Daten resp. das CSV doppelt und dreifach!
  • Legt ein Profil mit einigen wenigen relevanten Registern mit dem Profil-Editor auf dem Timberwolf an und exportiert dieses Profil. Nun legt ein Profil mit den gleichen Registern mit dem Profil-Generator an und vergleicht das Ergebnis mit dem Export vom Timberwolf.

Das README sollte eigentlich recht erschöpfend sein, daher hier nur die wichtigsten Eckpunkte:
  • Voraussetzung ist eine Bash mit installiertem "bc". Auch unter Windows mit WSL gar kein Problem.
  • Der Profile-Creator ist ein Bash-Script, welches basierend auf einem CSV-File Modbus-Profile für den TW generieren kann.
  • Der Aufbau des CSV-File kann weitestgehend über ein Konfigurationsfile definiert werden. Details dazu wie schon gesagt im README
  • Es werden alle Einheiten unterstützt, welche der TW kennt. Die Mappings dazu können nahezu beliebig erweitert werden.
  • Es werden aktuell die Range- und Umrechnungsdefinitionen von SMA unterstützt. Für weitere Mappings und Definitionen bitte entsprechende Feature-Requests bzw. PRs auf Github aufmachen. Im Notfall auch hier in diesem Thread... :whistle:
  • Im example-Verzeichnis befindet sich als Beispiel das CSV-File für den Eastron-Stromzähler
Ich lege mir die CSV-Files i.d.R. so an, dass ich im Hersteller-PDF die entsprechende Tabelle markiere, kopiere und in einem geeigneten Editor (IntelliJ, Notepad++) einfüge. Dort werden dann die entsprechenden Modifikationen vorgenommen, um ein sauberes CSV-File zu bekommen, welches der Profile-Generator verarbeiten kann. Das habe ich so nun schon erfolgreich für die Siemens-RVS-Steuerung, SMA-Wechselrichter sowie Eastron-Stromzähler gemacht.

Viel Spass beim Ausprobieren und immer her mit dem Feedback! :handgestures-thumbupright:

Re: Timberwolf Modbus Profile Generator

Verfasst: Do Jul 06, 2023 8:11 am
von Marino
Sehr cool. Vielen Dank, dass Du Dir die Arbeit gemacht hast, es für uns aufbereitet zur Verfügung zu stellen. Das wird sicher dem einen oder anderen zu Gute kommen.


Viele Grüße
Nils

Re: Timberwolf Modbus Profile Generator

Verfasst: Do Jul 06, 2023 1:14 pm
von Mibr85
He Yves
Sieht wieder nach einer sehr guten Arbeit von dir aus.
Ich denke diesen Post könnte man sogar im Modbus unterforum anpinnen.
Vielen Dank für deine Mühe.

Re: Timberwolf Modbus Profile Generator

Verfasst: Do Jul 06, 2023 2:05 pm
von StefanW
Hallo Yves,

vielen Dank, dass Du Deinen Generator, mit dem Du schon vor einem Jahr das GRÖMPAZ (das "größte Modbus Profile aller Zeiten") für die Siemens Wärmepumpensteuerung erzeugt hast, für die Nutzung durch jedermann freigegeben hast.

Allerdings muss ich folgenden Hinweis geben:


Sicherheitshinweis:

1. Das ElabNET Modbus Profil Format wurde zum Austausch von Modbus Profilen zwischen Timberwolf Servern geschaffen. Dabei sind wir davon ausgegangen, dass nur ein Timberwolf Server dieses Format schreibt, dessen Datengrundlage die bereits auf Gültigkeit geprüften Einträge in der internen Modbus Profil Datenbank sind, die zuvor vom Modbus Profil Editor erzeugt wurde.

2. Daher erfolgen alle Checks auf korrekte und sinnhafte Eingaben AUSSCHLIEßLICH im Modbus Profil Editor, bevor dieser die DB-Einträge in der internen Modbus Profil Datenbank anlegt. Die Weboberfläche leistet hier sehr viel Prüfungen und erlaubt auch nur bestimmte Einstellungen in Abhängigkeit von anderen Einstellungen.

3. Beim Import von selbst geschriebenen Modbus Profil Dateien - wie hier von Yves Tool erzeugt - erkennt der Timberwolf Server zwar, dass es keine offizielles Modbus Profil ist (digitale Signaturprüfung schlägt fehl) und gibt auch eine Warnung aus, importiert aber ansonsten die Datei wie sie ist - jedoch OHNE die ganzen Prüfungen auf zueinander konsistente Werte, so wie der Modbus Profil Editor dies beim Eingeben vornehmen würde. Da Software auch fertig werden muss, haben wir nicht die gleichen Prüfungen zweimal geschrieben, schließlich sollten es nur geprüfte Daten sein, die sich in einer Profildatei befinden.

Kurz: Der Import von Modbus Profilen ist NICHT DAHINGEHEND AUSGELEGT, eine umfangreiche Fehlerprüfung an fremd erzeugten Profildateien vorzunehmen. Wir haben einen solchen Import zwar nicht unterbunden, weil wir an den mündigen Nutzer glauben und im keine Vorschriften machen wollen, ABER es ist durchaus wahrscheinlich, damit ungültige Profile zu importieren, welche sich auf den Betrieb des Modbus Moduls im Timberwolf Server negativ auswirken.

Bei ElabNET ist die Erfahrung: "Was nicht getestet ist, funktioniert auch nicht" und daraus abgeleitet die goldene Regel, dass alles zu testen ist, was zum Kunden geht. Wir können aber schlicht nicht testen, was Ihr alles in das CSV eintragen werdet, das dem Tool als Grundlage dient und auch das Tool selbst haben wir nicht getestet. Wenn man etwas nicht selbst getestet hat, kann man auch keine Aussage darüber treffen, ob das alles auch funktionieren wird und auch unserem Support fehlt damit die Grundlage.

Es sollte jedem klar sein, dass Probleme in diesem Zusammenhang daher nicht vom Support umfasst sind und die Nutzung fremd erzeugter Import-Formate auf eigene Gefahr hin erfolgt. Wir raten dazu, dass dieses Toll nur von denjenigen genutzt wird, die bereits längere Erfahrung mit Modbus haben und auch wirklich den Zusammenhang der Einstellungen untereinander verstanden haben.

Bitte künftig bei veröffentlichen Profilen angeben, dass es sich um ein fremderzeugtes Profil handelt. Insbesondere bitten wir darum, bei allen Supportfällen anzugeben, das ein solchermaßen erzeugtes Profil genutzt wurde.


lg

Stefan

Re: Timberwolf Modbus Profile Generator

Verfasst: Do Jul 06, 2023 3:36 pm
von starwarsfan
Hallo Stefan
StefanW hat geschrieben: Do Jul 06, 2023 2:05 pm vielen Dank, dass Du Deinen Generator, mit dem Du schon vor einem Jahr das GRÖMPAZ (das "größte Modbus Profile aller Zeiten") für die Siemens Wärmepumpensteuerung erzeugt hast, für die Nutzung durch jedermann freigegeben hast.
:lol: :lol: :lol:

StefanW hat geschrieben: Do Jul 06, 2023 2:05 pm Allerdings muss ich folgenden Hinweis geben:

Sicherheitshinweis:
Klar, absolut verständlich. :handgestures-thumbupright:

StefanW hat geschrieben: Do Jul 06, 2023 2:05 pm 2. Daher erfolgen alle Checks auf korrekte und sinnhafte Eingaben AUSSCHLIEßLICH im Modbus Profil Editor, bevor dieser die DB-Einträge in der internen Modbus Profil Datenbank anlegt. Die Weboberfläche leistet hier sehr viel Prüfungen und erlaubt auch nur bestimmte Einstellungen in Abhängigkeit von anderen Einstellungen.
Da stellt sich mir die Frage, ob diese Prüfung erneut erfolgt, wenn man ein solches Profil im TW editiert? Sprich, wenn ich ein importiertes Profil editiere, wird es dann erneut geprüft? Oder wird ein imortiertes und danach kopiertes Profil erneut geprüft? Wenn dem so ist, dann wäre das IMHO ein gangbarer Weg, um allfälligen fehlerhaften Inhalt im Profil zu eliminieren!? :think:

StefanW hat geschrieben: Do Jul 06, 2023 2:05 pm Bei ElabNET ist die Erfahrung: "Was nicht getestet ist, funktioniert auch nicht" und daraus abgeleitet die goldene Regel, dass alles zu testen ist, was zum Kunden geht.
Genau so ist das. :handgestures-thumbupright:

Wir haben @work auch einige tausend Tests, welche bei jedem Build laufen und dazu dann jede Nacht einige tausend andere Tests des Gesamtsystems...

Re: Timberwolf Modbus Profile Generator

Verfasst: Do Jul 06, 2023 4:28 pm
von StefanW
Hi Yves,
starwarsfan hat geschrieben: Do Jul 06, 2023 3:36 pmDa stellt sich mir die Frage, ob diese Prüfung erneut erfolgt, wenn man ein solches Profil im TW editiert?
Das ist nicht so einfach. Denn zu diesem Zeitpunkt kann ja bereits ein fehlerhafter Wert "von hinten" in der DB stehen, den der Editor laden muss, dafür aber nicht ausgelegt ist, weil der Programmierer nie damit gerechnet hat, dass er an dieser Stelle einen bereits fehlerhaften Wert lädt.

Der Modbus Profil Editor ist dafür ausgelegt, MENSCHLICHE EINGABEN beim Eingeben in der Weboberfläche direkt zu validieren, womöglich zusätzlich noch ein Check in der Middleware und ERST DANN GEPRÜFTE Werte in der Modbus Profil Datenbank abzulegen. Der Modbus Profil Editor war NIE dafür AUSGELEGT, dass auch falsche, zueinander nicht konsistente Werte sich bereits beim Start des Editierens sich schon in der DB befinden könnten. Der Check erfolgt hinsichtlich der Eingaben des Kunden, nicht dem Laden von Daten (die ja eigentlich vorgeprüft sein sollten)

Die Sache ist einfach: Dieses Verfahren ist nicht getestet. Eine Vorhersage was passieren kann oder nicht, gibt es nicht, weil diese Betrachtung nicht angestellt wurde und nicht getestet wurde. Es können auf diese Weise völlig unplausible wenn nicht gar gefährlich falsche, nicht zum Modbus Standard passende, Parameter in das System gelangen. Die daraus resultierenden Probleme können nicht nur den Server selbst betreffen, sondern auch angeschlossene Geräte.

Wir können NICHT VORHERSAGEN, ob es eine Lösung oder ein praktikabler Weg ist, wenn man nach dem Import erst diesen oder jenen Knopf drückt oder eine bestimmte Reihenfolge in der Nutzung einhält oder dabei auf dem linken Bein hüpft.


Es ist ein undokumentierter Weg, zu dem wir nicht raten können.

Die Bandbreite möglicher Fehler ist enorm und ich habe Sorge, dass jemand der sich mit Modbus wenig auskennt und sich mit dem Editor gar nicht so genau beschäftigen möchte (wegen der vielen Details die man dort anklicken muss) und nun meint, es gibt einen kürzeren Weg, indem man nur eine Tabelle aus dem Datenblatt in ein CSV abtippt und der Rest wird sich dann schon magisch konfigurieren.

Wenn ich mir einen Vergleich erlauben darf: Es ist wie, als wenn es nun ein Tool auf Github gibt, dass für das Motorsteuergerät im eigenen KFZ eine neue Kennfelddatei erzeugen kann, indem es Daten aus einer CSV Datei (die ein Laie angelegt hat) ohne größere Validierung in das Format der Kennfelddatei übersetzt und man anschließend diese Datei in das Motersteuergerät einlesen kann. Das ist nur was für jemand, der sich damit wirklich auskennt und ggfls. einen geschrotteten Motor reparieren kann.

Wie gesagt, kann super sein in der Hand eines Experten und kann Schaden anrichten, in der Hand eines Laien. Darum bitte mit Vorsicht.

lg

Stefan

PS: Bitte nicht falsch verstehen, ich will niemandem den Spaß nehmen und ich freue mich für jede Community Entwicklung. Wirklich.

Aber der Timberwolf Server wird vor allem auch von Nutzern gekauft, die nicht mit Raspi & Co. und textbasierten Konfig-Dateien umgehen wollen, sondern die inkludierten Fehlerprüfungen und Hinweise der Eingabeassistenten und Editoren im Timberwolf Server genießen und sich davon hilfreich an die Hand genommen fühlen, weil man sich dann weniger einlesen muss. Einfach um auch mal am Abend nach Feierabend mit nachlassender Konzentration noch eben was einrichten zu können, ohne Gefahr zu laufen, dass danach der Server geschrottet ist und man Stress hat, das wieder in Ordnung zu bringen, weil jetzt im Haus das Licht nicht mehr leuchtet.

Es ist das Konzept des Timberwolf Servers, das man ziemlich gefahrlos auf so ziemlich alles Klicken kann und schon gewarnt wird, wenn man was wirklich dummes machen könnte mit der nächsten Bestätigung. Genau dieser Vorteil wird mit solchen Tools aber ausgehebelt und daher will ich darauf hinweisen, dass dies nur von denjenigen genutzt werden soll, die sich der möglichen Konsequenzen im klaren sind und auch damit leben können und darauf verzichten werden jemals "Hilfe, ich habe meinen Server geschrottet" Threads im Forum zu schreiben, weil das würde auf neue Käufer einen schlechten Eindruck machen. Schließlich ist der Server ist extra drauf ausgelegt, dass es keine "Hilfe ...." Threads geben muss und man keine externen Tools braucht, um was damit zu erreichen.

Re: Timberwolf Modbus Profile Generator

Verfasst: Do Jul 06, 2023 10:39 pm
von Mibr85
He Yves
schreib doch bitte oben noch einen Fetten Hinweis in den ersten Beitrag:
das die Benutzung auf eigene Gefahr ist und Elabnet keinen Support für durch das Tool evtl entstehenden Schaden übernimmt.
Falls jemand nicht alle Beiträge ließt.

Re: Timberwolf Modbus Profile Generator

Verfasst: Fr Jul 07, 2023 12:36 pm
von starwarsfan
Hi
Mibr85 hat geschrieben: Do Jul 06, 2023 10:39 pm schreib doch bitte oben noch einen Fetten Hinweis in den ersten Beitrag:
Würde ich ja gerne machen, nur lässt dass das Forum leider nicht zu. :handgestures-thumbdown:

Re: Timberwolf Modbus Profile Generator

Verfasst: Mo Jul 10, 2023 9:20 pm
von starwarsfan
Hallo miteinander
Mibr85 hat geschrieben: Do Jul 06, 2023 10:39 pm
schreib doch bitte oben noch einen Fetten Hinweis in den ersten Beitrag.
Erledigt, thx @Parsley :handgestures-thumbupright:

Re: Timberwolf Modbus Profile Generator

Verfasst: Mo Jul 10, 2023 10:41 pm
von Parsley
Hi Yves

Bitte, gern geschehen. Und danke für den fertigen Text. (Ich will mich ja nicht mit fremden Lorbeeren schmücken.) :handgestures-thumbupright: