Hallo zusammen,
dem Problem aus dem vorheigem Post konnte ich leider noch nicht nachgehen, habe aber weiter ein wenig mit dem LBS gespielt.
Nachdem die Anbindung meines SMA WR recht fix funktionierte, würde ich nun gern meine Strommesser anbinden.
Hier habe ich bspw. einen SDM230 im Einsatz, die Verbindung erfolgt über einen Elfin EE11.
Nun habe ich den LBS so konfiguriert:
LBS.jpg
Grundsätzlich sehe ich auch am EE11 und am SDM, dass eine Datenübertragung stattfindet. Aber leider bekomme ich es nicht hin, die Register sauber auszulesen.
Ein Auszug aus der Beschreibung der Register liegt vor:
Register.jpg
Jetzt bin ich mir nicht sicher, ob für mich das rot eingerahmte eine Bedeutung hat. Ich wüsste gerade nicht, wie ich den LBS damit füttern sollte.
Tatsache ist: Ich bekomme keine Werte geliefert.
Der Log sagt folgendes:
Log_LBS.jpg
Hat hier jemand vielleicht ne Idee?
Danke vorab und Grüße
Sven
Ankündigung
Einklappen
Keine Ankündigung bisher.
LBS19001586 ModBus Read GENERIC
Einklappen
X
-
Hallo zusammen,
nach anfänglicher Euphorie nun nach rd. 7 Tagen Laufzeit, nun auf erstem Blick wieder der Fehler, welcher auch im SMA-LBS entstanden ist (Leider habe ich diesen Fehler nie wirklich untersucht, daher passt der Vergleich jetzt natürlich nicht).
Im Fehlerlog finde ich folgenden Eintrag:
2021-06-15_08h35_07.png
Bei der IP-Adresse handelt es sich um den SMA-WR.
Den Fehlerlog des LBS kann ich leider nicht öffnen, da ich ihn noch auf 8 stehen hatte und die Einträge zu viel sind (zu wenig Speicher zum Öffnen).
Der LBS liest nun keine Werte mehr aus dem LBS. Das Problem hatten ja einige mit dem alten Baustein analog. Bin ich nun mit dem neuen Baustein der einzige mit dem Problem? Oder lohnt es, hier mal weiter nachzuforschen?
Sobald ich das Projekt einmal neu aktiviert habe, funktioniert die Datenverbindung sofort wieder...
Gruß
Sven
Einen Kommentar schreiben:
-
Das freut mich, zu hören, dass der LBS seine Funktion erfüllt und offenbar auch so leicht, wie erhofft.
Lieben Dank für deine Rückmeldung!
Einen Kommentar schreiben:
-
Hallo zusammen,
da ich hier reiner "Nutznießer" bin und nicht selbst in der Lage, LBSen zu erstellen, möchte ich an dieser Stelle mal DANKE sagen!
Ich habe bis heute den LBS für den SMA-Modbus genutzt, welcher, wie bei einigen anderen auch, zwischendurch mal neu gestartet werden wollte, damit die Werte wieder ausgelesen werden.
Nun habe ich den LBS19001586 installiert (übrigens völlig problemlos) und meine ModBus-Abfrage neu gestrickt. Ein bisschen musste ich herumprobieren, ich hatte hier irgendwie einen Fehler in meinem request... Dann... schwupps.... Alle benötigten Werte da!
Also an dieser Stelle vielen Dank für die Erstellung dieses super LBS. Nächster Einsatzbereich für den LBS wird es sein, SDM230 (bzw. SDM630) über Elfin EE11 abzufragen (hier fehlt mir leider noch das Anschlußkabel, welches ich Trottel nicht mitbestellt habe).
Gruß
Sven
Einen Kommentar schreiben:
-
Ich lese einfach 40 Bytes aus, beginnend ab Register 40067. Das 1. Register gibt E3DC beginnend mit 40068 an. D.h. ich muss 1 Byte früher mit dem Lesen beginnen.
Einen Kommentar schreiben:
-
Danke für die Screeenshots.Zitat von WagoKlemme Beitrag anzeigenIch habe das Problem vermutlich nicht richtig verstanden,
Es geht darum, das mit dem LBS von saegefisch scheinbar ein offset in den Registeradressen des E3DC nötig ist um die richtigen Werte zu bekommen. Hattest du das Problem auch bei deinem Baustein auch, oder sitzt das Problem in meinem Fall vor dem Bildschirm?
Einen Kommentar schreiben:
-
Sorry für die späte Antwort, ich bin zur Zeit viel unterwegs.Zitat von ChrisChros Beitrag anzeigenMomentan kann ich das leider nicht, verstehe es selbst nicht.
Eventuell kann WagoKlemme etwas dazu sagen, er kann ja mit seinem LBS das E3DC erfolgreich auslesen.
Ich habe das Problem vermutlich nicht richtig verstanden, deshalb setze ich hier mal einen Screenshot rein, wie das Byte zerlegt wird:
Bildschirmfoto 2021-06-06 um 14.03.29.png
Einen Kommentar schreiben:
-
ChrisChros : Sorry, jetzt muss ich Dir das mal sagen: Ich weiß nicht, was Du mir wiederholt mit der Art Deinen Rückmeldungen sagen willst. Ist es Deine Gnade, dass Du es "aber" mal versuchen möchtest? Was willst Du mir beweisen, dass der Offset dort mit = 0 notiert ist bei der anderen Lösung ist? Habe ich schon am gleichen Tag nach Deinem Link gesehen. Nur weil eine Bahn nur einen Stromabnehmer hat, fährt sie dennoch mit einem Stromkreis... nur weil Du etwas nicht siehst, werden erforderliche Dinge wohl "irgendwie" da sein und irgendwann dort mal hingekommen sein. Diese Lernkurve gehen wir gerade erst. So werden offenbar alle Dir bekannten Lösungen, die mit Deinem ModBus-Gerät klar kommen, irgendwie "unter der Haube" diese Offsets einrechnen. Es scheint mir unlogisch zu glauben, sie täten es nicht. Weil eben alle mit dem gleichen Wasser kochen. Vielleicht arbeitet die Bibliothek anders. Egal, alles hat seinen Preis, sie hat andere Vorteile. Es ist doch auch völlig egal, wenn am Ende die Ergebnisse verlässlich stimmen, oder?!?
Ich mache Dir und allen dieses Angebot. Und das sehr gerne! Und aus mehreren Gründen aus Überzeugung! Wenn Es Dir Mühe macht, meinen generischen LBS zu verwenden, dann verwende bitte unbedingt einen anderen. Wenn Du ehrlich Interesse hast, dann lass' uns positiv und gemeinsam weiter daran arbeiten, dass dieser generische LBS unterschiedliche Geräte abdeckt. Daher kann das Einrechnen von Offsets hier auch nicht "unter der Haube" geschehen, wie Du es gewohnt bist. Dies ist der Preis eines generischen Ansatzes. Und ich freue mich und danke Dir herzlich, wenn Du es bei Gelegenheit testest und mir eine Rückmeldung gibst. Das wäre klasse.
VG,
CarstenZuletzt geändert von saegefisch; 05.06.2021, 01:04.
Einen Kommentar schreiben:
-
Also ich habe mir die Liste mal aufbereitet und dabei ist aufgefallen, dass in der Liste zwar eine Spalte für einen Offset angegeben ist, aber alle Werte einen Offset = 0 haben.Zitat von saegefisch Beitrag anzeigenChrisChros Dein Link hat ja weiter rechts auch eine Offset-Spalte. Aufgrund der gemachten Erfahrungen halte ich es für unwahrscheinlich, dass ioBrocker das anders macht, die waren nur schon weiter mit gemachten Erfahrungen wie andere spezifische LBS hier auch schon: Die kochen ja auch mit Wasser... Aber ist ja kein Ding. Es wäre halt spannend zu wissen, was mit den anderen Typen ist: xxxx32 = -2, xxxxx16 = -1, fraglich ist float, Byte, Bit. Bei Byte und Bit vermutlich = 0. Bei float, keine Ahnung, wie lang das ist
Ich werde aber dein Update am Wochenende mal test und Feedback geben.Angehängte Dateien
Einen Kommentar schreiben:
-
Version V0.5 kommt mit neuem Eingang E19 zur Festlegung eines Register-Offsets entweder 0 oder statisch oder typ-basiert (Automatisch) oder eine Kombination von A und Wert sind möglich (Siehe folgendes Beispiel E19 = "A-10" mit 3x Register, davon 1 mit 16, 32 oder 64)
h1as und ChrisChros : Bitte mal testen. Wenn erfolgreich gerne auch ergänzende Infos spezifisch für Eure Geräte für die LBS-Hilfe zuliefern. Nehme ich gerne auf.Code:... 2021-06-03 23:59:17 841888 14827 debug EXE19001586 [v0.5]: Konstanter Offset angewendet: 30775 -> 30765 (150) 2021-06-03 23:59:17 842389 14827 debug EXE19001586 [v0.5]: Konstanter Offset angewendet: 30517 -> 30507 (150) 2021-06-03 23:59:17 842866 14827 debug EXE19001586 [v0.5]: Konstanter Offset angewendet: 30513 -> 30503 (150) 2021-06-03 23:59:17 843369 14827 debug EXE19001586 [v0.5]: Typ Offset angewendet (int32): 30765 -> 30763 (150) ...
Für Typ "float" wird derzeit keine Typ-Offset gemacht: Ich wäre dankbar über Meinungen oder Fakten dazu. Kann ich rasch nachliefern, wenn erforderlich. Ebenso für byte oder bit, aber dort erwarte ich auch keinen Offset; bei float bin ich unsicher.Zuletzt geändert von saegefisch; 03.06.2021, 23:49.
Einen Kommentar schreiben:
-
Ich denke es wäre zumindest einen Versuch wert.Zitat von saegefisch Beitrag anzeigenScheint Euch das plausibel und zielführend für Eure Gerätschaften? Oder anders! Lohnt der Einbau? Mit eurer Rückmeldung entscheide ich dann, ob und wie.
Wenn du möchtest, kannst du mir auch eine Vorabversion schicken und ich teste das dann mal bei mir. E3DC scheint ja doch etwas spezieller zu sein.
Einen Kommentar schreiben:
-
h1as : Danke für Deine Rückmeldungen zu FC3 und FC4, aber auch float. Damit funktioniert E18 offenbar gut und richtig, das freut mich. Den Typ float kann ich für mich dann auch als "getestet" abhaken.
Zum Offset: Es scheint ja offenbar 3 verschiedene "Systeme" zu geben:- 1:1 kann ein Register aus der Doku verwendet werden (z.B. SMA) -> Kein Offset erforderlich
- Offset abhängig vom Typ -> Je nach Registerlänge muss -1 oder -2 oder 0 abgezogen werden von den Registerangaben in der Doku des Herstellers
- Fester Offset --> ein fester Offset z.B. -40001 ist abzuziehen von den Registerangaben in der Doku des Herstellers
ChrisChros Dein Link hat ja weiter rechts auch eine Offset-Spalte. Aufgrund der gemachten Erfahrungen halte ich es für unwahrscheinlich, dass ioBrocker das anders macht, die waren nur schon weiter mit gemachten Erfahrungen wie andere spezifische LBS hier auch schon: Die kochen ja auch mit Wasser... Aber ist ja kein Ding. Es wäre halt spannend zu wissen, was mit den anderen Typen ist: xxxx32 = -2, xxxxx16 = -1, fraglich ist float, Byte, Bit. Bei Byte und Bit vermutlich = 0. Bei float, keine Ahnung, wie lang das ist
Wenn es keine Kombination aus festem Offset UND Typen-Abhängig, würde ich meinen letzten Vorschlag mal in eine V0.5 kippen mit E19:- E19 = 0 -> kein Offset
- E19 = <+/-Wert> -> fester Offset
- E19 = A -> Typ-abhängiger Offset -2, -1, 0
- zur Not halt noch E19 = A<+/-Offset> für die Kombination
Darf ich annehmen, dass jeder Offset IMMER negativ ist? Dann können wir uns die Vorzeichen sparen auch bei der Angabe E19.Zuletzt geändert von saegefisch; 01.06.2021, 20:30.
Einen Kommentar schreiben:
-
Hallo
Ich habe heute die V0.4 getestet. Sowohl die FC3 als auch die FC4 funktioniert perfekt. Danke dir! Bei meinem 2. Zähler sind alle Werte Datentyp float. Auch das funktioniert!Zitat von saegefisch Beitrag anzeigenIch habe eine neu Version 0.4 bereit gestellt. Mit dem neuen E18 kann man nun wählen, mit welcher Methode FC3 = HOLDING oder FC4 = INPUT gelesen werden soll. Bitte mal testen, ob damit Deine Register liefern (mit E18 = 4).
Das mit dem Offset bei den Adressen ist so dass ich bei den Registern immer 40001 bzw. 30001 abziehen muss. Möchte ich also Register 40001 auslesen muss ich dem LBS Adresse 0 übergeben, 40007 wäre dann 6. Aber damit kann ich leben. Man muss es nur wissen
Einen Kommentar schreiben:
-
saegefisch
so ich habe mir mal den Spaß gemacht und die modbus Schnittstelle im ioBroker installiert und dort die ganzen Register eingetragen. Dort muss ich keinen Offset oder so beachten und bekomme die ganzen Daten.
Hier mal die Liste mit den Registern, vlt. hilft das weiter.
Einen Kommentar schreiben:
-
Irgendwie bin ich von der Doku von SMA dazu verwöhnt, weil ich da die Werte alle 1:1 verwenden konnte; vielleicht hat SMA das bereits für die Kunden eingerechnet. Das scheinen andere Hersteller anders zu lösen. Aber ich kann und mag mir dazu kein Urteil erlauben, weil ich es aus der Ferne nicht beurteilen kann. Vielleicht hat das gute Gründe, die ich nicht kenne.
Vielleicht kann Armin uns da tatsächlich helfen es besser zu verstehen. vielleicht kann man meinen LBS noch sinnvoll ergänzen, damit er das besser löst. Vielleicht einen Eingang E19 "Register Offset"- 0 --> kein Offset (z.B. SMA)
- A --> Auto = Registerlänge wird vom Register abgezogen, also bei uint16/int16 mit "-1", bei uint32/int32 mit "-2" (z.B. E8 mit 40068 wird zu tatsächlich abgefragtem 40066). Für alle anderen Typen bräuchte ich noch das richtige Regelwerk für den Offset von Euch.
Zuletzt geändert von saegefisch; 28.05.2021, 22:17.
Einen Kommentar schreiben:


Einen Kommentar schreiben: