Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
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.
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...
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 ..
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 ..
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.
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 ...
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 ...
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
Bin gespannt ob wenigstens ein Teil von meiner Ausführung richtig ist.
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 ...
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.
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.
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..
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
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar