Ich denke das sind die interessanten Zeilen...
SolarEdge Sunspec Modbus
https://www.solaredge.com/sites/defa...nical-note.pdf
40071 40072 1 I_AC_Current uint16 Amps AC Total Current value Gesamt Strom AC Ampere
40083 40084 1 I_AC_Power int16 Watts AC Power value AC Leistung Watt
40093 40094 2 I_AC_Energy_WH acc32 WattHours AC Lifetime Energy production Gesamt Energie Watt Stunden
40100 40101 1 I_DC_Power int16 Watts DC Power value DC Leistung Watt
40103 40104 1 I_Temp_Sink int16 Degrees C Heat Sink Temperature Temperatur Kühler ° C
40107 40108 1 I_Status uint16 Operating State Betriebszustand
Ankündigung
Einklappen
Keine Ankündigung bisher.
Einbindung von Modbus TCP
Einklappen
X
-
Ja, in dem Fall dann wohl sowas hier:Zitat von ivande Beitrag anzeigenCode:'I_AC_Power' : 40083, # 40084: AC Power Value, int16 'I_AC_Power_SF' : 40084, # 40085: AC Power Scale Factor, int16 Result = Value + ScaleFaktor
Wenn das häufiger vorkommt, kann man z.B. im Trovis-Plugin auch einfach eine Spezialbehandlung für diese 'Sonderlocken' definieren.Code:'I_AC_Power_SF': type: num 'I_AC_Power': type: num 'I_AC_Power_final': type: num eval: ..I_AC_Power_SF() * ..I_AC_Power() eval_trigger: ..I_AC_Power_SF, ..I_AC_Power
/tomZuletzt geändert von Tom Bombadil; 11.12.2021, 11:42.
Einen Kommentar schreiben:
-
die kosalmodbus und ksemmodbus sind bereit recht universell aufgebaut, und man könnte mit dem selben Prinzip andere Gerätschaften adaptiert. Für das solaredge - Plugin geht das leider nicht so ganz universell, da dort einige Werte aus zwei Registern berechnet werden müssen: in einem Register steht der Wert und im anderen der Scale-Faktor. (dies könnte natürlich dann über die SH-Items mit eval,.. verrechnet werden)
Code:'I_AC_Power' : 40083, # 40084: AC Power Value, int16 'I_AC_Power_SF' : 40084, # 40085: AC Power Scale Factor, int16 Result = Value + ScaleFaktor
Zuletzt geändert von ivande; 11.12.2021, 10:23.
Einen Kommentar schreiben:
-
Vl wäre es besser, das trovis plugin zu nutzen um ein eventuelles modbus master plugin zu generieren, welches universell für viele geräte genutzt werden kann..
Die register müssten ja in einer doku stehen..
Was eventuell schwierig werden könnte sind die verschiedenen modbus functions, wobei ich aber glaube, bei normalen geräten wird da nur die registerfunktion genutzt, in der automatisierungstechnik siehts da etwas anders aus...
Achso, modbus funktioniert nach dem master-client prinzip, du musst dir das so vorstellen, im WR is ne art tabelle hinterlegt, die register sind die Zeilen, der WR schreibt seine aktuellen Daten in diese Tabelle rein. SHNG schickt dann über modbus die anforderung eine gewisse zeile auszulesen, und der WR sendet diese daten dann zurück .. das wäre so der vereinfachte anwendungsfall..Zuletzt geändert von Bonze; 11.12.2021, 09:21.
Einen Kommentar schreiben:
-
Ja. Die Hauptarbeit ist die Identifikation der Register und die Übersetzung der zurückgelieferten Int-Werte in die finalen 'echten' Werte samt Kommastellen und Maßeinheiten. Kannst Du Dir im Trovis-Plugin alles ansehen - und sogar dessen Config-Dateien so umbiegen, dass Du statt einer Trovis Dein Gerät mit dem Plugin ausliest. Das Plugin ist mit Absicht so geschrieben, dass man weitere Geräte einfach adaptieren kann ...Zitat von Maexle Beitrag anzeigenBin gespannt ob wenigstens ein Teil von meiner Ausführung richtig ist.
Konfigurationsdatei mit Registern: hier
Als Beispiel die VL-Temp im Heizkreis 1:
Mein Variablenname (von mir frei definiert): VorlauftempVF1; Register Nr. 12, Datentyp Zahl, Faktor 0.1, Einheit °C.
Derzeit liefert das Register 12 auf Anfrage den Wert 284 zurück = 28.4 °C.
Zugehörige Itemdefinition:
Hoffe, das hilft weiter.Code:vf1: desc: Vorlauffühler 1 (Anlage 2.1 - sekundär, Heizkreis 1) type: num trovis557x_var: VorlauftempVF1 liste: [] visu_acl: ro database: 'init'
/tom
Edit: Zusätzlich hat jedes Item des Trovis-Plugins ein Attribut "liste", in dem die wichtigen Werte nochmal als einfache Liste vorgehalten werden: [Buswert, Echtwert, Einheit] - [284, 28.4, '°C']. So wird sichergestellt, dass die ausgelesenen Werte auch durch Drittplugins beliebig verwendet können.Zuletzt geändert von Tom Bombadil; 11.12.2021, 11:29.
Einen Kommentar schreiben:
-
Das wäre eine feine Sache.Zitat von Bonze Beitrag anzeigenkönnte eventuell ein Grundplugin zur verfügung stellen , müsste es vorher nur etwas aufräumen

Wenn ich diese Modbus-Geschichte richtig verstanden habe.
Ich erklär es jetzt mal mit "Nicht-Programmierer-Worten"
In diesem Beispiel: ein Wechselrichter und ein RasPi die im selben Netzwerk hängen.
(vgl. hierzu Seite 17 vom Handbuch https://www.solaredge.com/sites/defa...nical-note.pdf )
Der WR ruft die Nummer 40083 kurze Pause 2135
Der RasPi hört die 40083 / 2135 --> weiß 40083 = I_AC_Power in Watt --> schreibt "aktuelle Leistung 2135 Watt
60 sekunden später
selbes Spiel
ich glaube aber das der WR bzw. Modbus nur auf Anforderung sendet, richtig? --> dann müsste es heißen RasPi ruft 40083 --- WR sendet 2135 --- RasPi schreibt Leistung 2135 Watt.
Dann wäre es nur eine Fleißaufgabe, die Nummern (Adress / base0 - base1) mit der richtigen Einheit und kurzem Kommentar in der plugin.yaml (die vom Plugin selbst) einzutragen.
Bin gespannt ob wenigstens ein Teil von meiner Ausführung richtig ist.
Danke
Einen Kommentar schreiben:
-
mh hatte da was, ist aber recht alt und unspezifisch, es gab doch dieses Modbus Plugin für den Trovis? Naja egal, das lesen usw von modbus tcp sollte kein Problem darstellen ..
könnte eventuell ein Grundplugin zur verfügung stellen , müsste es vorher nur etwas aufräumen, dann könntest du für dein gerät eventuell ein struct anlegen ...Zuletzt geändert von Bonze; 10.12.2021, 21:08.
Einen Kommentar schreiben:
-
Zitat von macs412 Beitrag anzeigenHätte großes Interesse an deinem PlugIn.Zitat von fuppy Beitrag anzeigenKann ich bei Interesse aber gerne machen...
Hey Jungs, was ist den daraus geworden?
Einen Kommentar schreiben:
-
Ja z.b. ginge das nur wenn man nem array -liste oder aehnliches als item wert hat
vl sollten wir mal auf ner plugin basis, ein sehr allgemeines plugin entwickeln.. 1bit , 8bit , 16bit werte sollte es schon können ...
Einen Kommentar schreiben:
-
Das wäre wirklich eine gute Idee. Allerdings gibt es da auch funktionen wo das nicht so einfach geht. z.b. meherere Register auf einmal lesen.Zitat von Bonze Beitrag anzeigenam besten wäre es das Modbus TCP Plugin ähnlich dem KNX plugin aufzubauen, sodass man im item das Register und die Funktion angeben kann und dann den inhalt bekommt, dann wäre es universell für alles einsetzbar ..
Einen Kommentar schreiben:
-
Hätte großes Interesse an deinem PlugIn.Zitat von fuppy Beitrag anzeigenKann ich bei Interesse aber gerne machen...
Einen Kommentar schreiben:
-
am besten wäre es das Modbus TCP Plugin ähnlich dem KNX plugin aufzubauen, sodass man im item das Register und die Funktion angeben kann und dann den inhalt bekommt, dann wäre es universell für alles einsetzbar ..
- Likes 1
Einen Kommentar schreiben:
-
Hallo zusammen,
ich hab ein Plugin für meine Dimplex Wärmepumpe geschrieben. Greif ebenfalls über Modbus TCP die Daten ab.
Läuft schon seit ca. einem Jahr problemlos bei mir. Hab das Plugin nur leider noch nicht der Community zur Verfügung gestellt...
Kann ich bei Interesse aber gerne machen...
Gruß
Christian
Einen Kommentar schreiben:
-
Kollege, gleiches/identisches Thema nur ein paar km südlich ...
https://knx-user-forum.de/forum/%C3%...sw-l%C3%B6sung
Vielleicht telefonieren wir mal kurz ...
Einen Kommentar schreiben:
-
Es gibt verschiedene Möglichkeiten, hängt davon ab wie deine Kenntnisse sind:
1. Du schreibst dir ein eigenes SmartHomeNG Plugin, dass Modbus TCP über die pymodbus lib https://pymodbus.readthedocs.io/en/latest/ verwendet. Ein fertiges Beispiel ist z.B. mein Pluggit plugin, siehe https://github.com/smarthomeNG/plugi...evelop/pluggit
Dafür brauchst du auf jeden Fall die Modbus Register Beschreibung vom Hersteller.
2. Du installierst dir node-red ( https://nodered.org/ ) und einen MQTT Broker ( https://mosquitto.org/ ) und verwendest z.B. node-red-contrib-modbus um die Anbindung für deine Wärmepumpe zu realisieren. Von node-red werden die Daten dann über MQTT an den MQTT Broker geschickt und auf SmartHomeNG-Seite gibt es seit kurzem ein MQTT Client Plugin https://github.com/smarthomeNG/plugi...e/develop/mqtt womit du die Daten dann nach SmartHomeNG bekommst.
3. Wenn 1. und 2. rausfällt, laut https://www.idm-energie.at/de/idm-navigator.html gibt es ja eine KNX-Schnittstelle, z.B. die hier http://www.siblik.com/produkte/heizu...knx-modul.html
Hoffe das hilft dir schon mal weiter.
Gruß,
Henning
Einen Kommentar schreiben:


Einen Kommentar schreiben: