Liebe FHEM Gemeinde,
hiermit stelle ich meine FHEM Module für meine Modbus Zähler von B+G E-Tech & EASTON zur Verfügung.
Dies sind günstige Stromzähler und ich habe sie hier bezogen:
einphasig, 34.40€ http://bg-etech.de/os/product_info.php/cPath/24_27/products_id/201 (http://bg-etech.de/os/product_info.php/cPath/24_27/products_id/201)
dreiphasig, 96.85€ http://bg-etech.de/os/product_info.php/products_id/50 (http://bg-etech.de/os/product_info.php/products_id/50)
SDM220M --> 98_ModbusSDM220M.pm
SDM630M --> 98_ModbusSDM630M.pm
Grundlage ist das Modbus Basismodul 98_Modbus.pm von Stefan Strobel.
Der Zugriff erfolgt über Modbus RTU (seriell RS485 Zweidraht). Für den Zugriff kann ein beliebiger RS485 Konverter genommen werden, wie z.B. http://www.amazon.de/gp/product/B00GWEGZOI?psc=1&redirect=true&ref_=oh_aui_detailpage_o07_s00 (http://www.amazon.de/gp/product/B00GWEGZOI?psc=1&redirect=true&ref_=oh_aui_detailpage_o07_s00)
Bezug
define HA_Modbus_1 Modbus /dev/ttyUSB0@9600
define HA_SDM220M_1 ModbusSDM220M 1 60
define HA_SDM630M_1 ModbusSDM630M 2 60
Roger
Sehr ge*l! Gedankenübertragung...
Ich hab die letzte Stunde im Netz nach einem 3-Phasenzähler gesucht, den ich in FHEM einbinden kann. Vor knapp 10 Minuten bin ich dann auf die B#G Zähler gestossen; eben wegen RS485. Hab gerade einen bestellt und zack - gibt's ein fertiges Modul.
Vielen Dank dafür! Ich werde berichten!
Vielen Dank. Ich habe das heute mit einem 630M und dem beschrieben RS485-Modul an einem Raspi aufgebaut. Hat sofort funktioniert. Kann mir jemand, da ich komplett neu bei FHEM bin, einen Hinweis auf gute Doku geben, wie ich historische Daten aufzeichnen und nette Grafiken erzeugen kann?
Moinsen Tomte:
Auszug aus meiner fhem.cfg, Dank Rogers vorzüglichem SDM220 Modul umgesetzt:
############################## XTENDER Modbus Stromzaehler ###########################################################
define Eastron Modbus /dev/ttyUSB1@9600
attr Eastron group Xtender
#------------------------ 1. Zaehler AC-IN, Modul Modbus , ID1, abfrage alle 30sec. ---------------#
define Xtender_AC_in ModbusSDM220M 1 30
attr Xtender_AC_in userattr IODev event-min-interval event-on-change-reading
attr Xtender_AC_in IODev Eastron
attr Xtender_AC_in event-min-interval Power_.*.W:900,Voltage__V:900,Energy_total__kWh:900,statEnergy_total__kWh:900,statEnergy_total__kWhDay:900,Verbrauch_Enel:900,.*Last.*:900
attr Xtender_AC_in event-on-change-reading Power_.*.W,Voltage__V,Energy_total__kWh,statEnergy_total__kWh,statEnergy_total__kWhDay,Verbrauch_Enel,.*Last.*
attr Xtender_AC_in group Xtender
attr Xtender_AC_in userReadings Verbrauch_Enel:Energy_total__kWh { ReadingsNum("$name","Energy_total__kWh",0)-159.01 . " kWh";; }
#--------------------------- 2. Zaehler AC-Out -----------------------------------#
define Xtender_AC_out ModbusSDM220M 2 30
attr Xtender_AC_out userattr IODev event-min-interval event-on-change-reading
attr Xtender_AC_out IODev Eastron
attr Xtender_AC_out event-min-interval Power_.*.W:900,Voltage__V:900,Energy_total__kWh:900,statEnergy_total__kWh:900,statEnergy_total__kWhDay:900,Verbrauch_Home:900,.*Last.*:900
attr Xtender_AC_out event-on-change-reading Power_.*.W,Voltage__V,Energy_total__kWh,statEnergy_total__kWh,statEnergy_total__kWhDay,Verbrauch_Home,.*Last.*
attr Xtender_AC_out group Xtender
attr Xtender_AC_out userReadings Verbrauch_Home:Energy_total__kWh { ReadingsNum("$name","Energy_total__kWh",0)-366.51 . " kWh";; }
# ----------------------------- readingsGroup -----------------------------------#
#define Xtender readingsGroup Xtender_AC_in*:Power_.*.W Xtender_AC_in*:Voltage_.*.V Xtender_AC_out*:Power_.*.W Xtender_AC_out*:Voltage_.*.V Xtender_AC_in:statEnergy_total__kWh Xtender_AC_out:statEnergy_total__kWh Xtender_AC_in*:statEnergy_total__kWhDayLast Xtender_AC_out*:statEnergy_total__kWhDayLast Xtender_AC_in*:statEnergy_total__kWhMonthLast Xtender_AC_out*:statEnergy_total__kWhMonthLast
#attr Xtender room Xtender
#--------------------------- statistics Filelog und plot ------------------------#
define Xtender_AC_in_statistic statistics Xtender_AC_in|Xtender_AC_out
attr Xtender_AC_in_statistic deltaReadings Energy_total__kWh
attr Xtender_AC_in_statistic group Xtender
attr Xtender_AC_in_statistic singularReadings Xtender_AC_in:Energy_total__kWh:Delta:(Hour|Day|Month|Year)|Xtender_AC_out:Energy_total__kWh:Delta:(Hour|Day|Month|Year)
define FileLog_Stromverbrauch_statistic FileLog ./log/StromverbrauchStatistik-%Y.log Xtender.*kWhDayLast.*|Xtender.*kWhMonthLast.*|Xtender.*kWhYearLast.*
attr FileLog_Stromverbrauch_statistic group Xtender
attr FileLog_Stromverbrauch_statistic logtype text
define SVG_FileLog_Stromverbrauch_statistic_1 SVG FileLog_Stromverbrauch_statistic:SVG_FileLog_Stromverbrauch_statistic_1:CURRENT
attr SVG_FileLog_Stromverbrauch_statistic_1 fixedrange year
attr SVG_FileLog_Stromverbrauch_statistic_1 group Xtender
attr SVG_FileLog_Stromverbrauch_statistic_1 label "Verbrauch Monatlich --- AC-in $data{currval1} kWh - AC-Out $data{currval2} kWh"
attr SVG_FileLog_Stromverbrauch_statistic_1 room Xtender
define SVG_FileLog_Stromverbrauch_statistic_dayly SVG FileLog_Stromverbrauch_statistic:SVG_FileLog_Stromverbrauch_statistic_dayly:CURRENT
attr SVG_FileLog_Stromverbrauch_statistic_dayly fixedrange year
attr SVG_FileLog_Stromverbrauch_statistic_dayly group Xtender
attr SVG_FileLog_Stromverbrauch_statistic_dayly label "Verbrauch Dayly --- AC-in $data{currval1} kWh - AC-Out $data{currval2} kWh"
attr SVG_FileLog_Stromverbrauch_statistic_dayly room Xtender
#---------------------------- Filelog und Plot -------------------------------------+
# mit Bezug Gesamtverbrauch kWhDay von statistics
define FileLog_Stromverbrauch FileLog ./log/Stromverbrauch-%Y-%m-%d.log Xtender.*Power.*.W|.*Xtender.*kWhDay.*|Xtender.*Enel.*|Xtender.*Home.*|Xtender.*Voltage.*
attr FileLog_Stromverbrauch group Xtender
attr FileLog_Stromverbrauch logtype text
attr FileLog_Stromverbrauch nrarchive 30
define SVG_FileLog_Stromverbrauch_1 SVG FileLog_Stromverbrauch:SVG_FileLog_Stromverbrauch_1:CURRENT
attr SVG_FileLog_Stromverbrauch_1 group Xtender
attr SVG_FileLog_Stromverbrauch_1 label "Verbrauch Tag --- MAX AC-in $data{max1} kW - MAX AC-Out $data{max2} kW --- Gesamt AC-In $data{max3} kWh - Gesamt AC-Out $data{max4} kWh"
attr SVG_FileLog_Stromverbrauch_1 room Xtender
define SVG_FileLog_Stromverbrauch_Gesamt_1 SVG FileLog_Stromverbrauch:SVG_FileLog_Stromverbrauch_Gesamt_1:CURRENT
attr SVG_FileLog_Stromverbrauch_Gesamt_1 group Xtender
attr SVG_FileLog_Stromverbrauch_Gesamt_1 label "Verbrauch Gesamt (seit 01.10.15) --- AC-in $data{max1} kWh - AC-Out $data{max2} kWh"
attr SVG_FileLog_Stromverbrauch_Gesamt_1 room Xtender
define SVG_FileLog_Spannung_1 SVG FileLog_Stromverbrauch:SVG_FileLog_Spannung_1:CURRENT
attr SVG_FileLog_Spannung_1 group Xtender
attr SVG_FileLog_Spannung_1 label "Spannung --- MAX AC-in $data{max1} V - MIN AC-In $data{min1} V --- MAX AC-Out $data{max2} V - MIN AC-Out $data{min2} V"
attr SVG_FileLog_Spannung_1 room Xtender
Das geht vielleicht auch galanter, aber mir reichts für eine grafische Auswertung. gplot Dateien anbei. Die ReadingsGroup kannst du unkommentieren falls Bedarf. Das läuft im Moment noch unter fhem 5.6 und einer wahrscheinlich älteren Version von Rogers Modul?; weiss nicht, wie es unter 5.7 aussieht
H.
Lässt sich das auch irgendwie über eine Modbus / TCP-IP Verbindung für diesen Zähler modivizieren?
Hallo,
ich bin gerade dabei das Modul zu verwenden, Daten kommen schon mal an ;-)
Das mit den Logs und Plots habe ich aber nicht so recht verstanden.
Kann mir jemand schon mal diesen Teil erklären?
attr Xtender_AC_out event-min-interval Power_.*.W:900,Voltage__V:900,Energy_total__kWh:900,statEnergy_total__kWh:900,statEnergy_total__kWhDay:900,Verbrauch_Home:900,.*Last.*:900
attr Xtender_AC_out event-on-change-reading Power_.*.W,Voltage__V,Energy_total__kWh,statEnergy_total__kWh,statEnergy_total__kWhDay,Verbrauch_Home,.*Last.*
Danke und Gruß
Björnar
Zitat von: Burny4600 am 06 April 2016, 08:46:43
Lässt sich das auch irgendwie über eine Modbus / TCP-IP Verbindung für diesen Zähler modivizieren?
Hallo Chris,
Ja das ist möglich. Nur leider bin ich mit der Beschreibung für fhemwiki noch nicht fertig.
Gruß
Tino
Hallo Roger,
vielen Dank für dieses Modul. Habe die 630er Version soeben erfolgreich in Betrieb genommen.
schöne Grüße
Jo
Zitat von: oniT am 26 Mai 2016, 20:12:21
Hallo Chris,
Ja das ist möglich. Nur leider bin ich mit der Beschreibung für fhemwiki noch nicht fertig.
Gruß
Tino
Hallo Zusammen,
der Wunsch meinen Strom zu erfassen keimt schon länger, leider befinden sich die Zähler nicht in der Wohnung und somit war das Thema lange Zeit nicht umsetzbar. Dank dieses Beitrages hoch motiviert habe ich mir den 3-phasigen Zähler mit Modbus-Schnittstelle sowie einen Modbus-Interface (Typ USR-TCP232-24) bestellt. Seit etwa einer Woche habe ich nun alles eingebaut und verdrahtet. Leider bekomme ich keine Werte angezeigt.
Der IP/RS485-Adapter ist pingbar und auf der Weboberfläche sehe ich auch, dass sich mein FHEM-Server mit dem Adapter verbindet.
Hierzu habe ich folgendes Device in FHEM angelegt:
defmod ModbusGW ModbusAttr 101 60 10.2.1.220:20108 RTU
attr ModbusGW userattr 1 verbose
attr ModbusGW room 99_Interfaces,Test
attr ModbusGW verbose 5
Und den Zähler habe ich wie folgt angelegt:
defmod Energie_SDM630M_1 ModbusSDM630M 101 60
attr Energie_SDM630M_1 userattr IODev
attr Energie_SDM630M_1 IODev ModbusGW
attr Energie_SDM630M_1 room 99_Zähler
Der Status (State) des angelegten Gerätes lautet aber dennoch:
Energie_SDM630M_1 no IO Dev
Ich bin gerade etwas verwundert, während ich hier schreibe, sehe ich das jetzt Readings in das Device eingefügt wurden und diese auch aktualisiert werden.
Was mich nun zu meiner nächsten Frage führt, welcher Status (State) müsste bei vollfunktionierendem Zähler angezeigt werden.
Da die Readings zu meinem Device aus dem Modul heraus automatisch angelegt wurden, gibt es das auch für mögliche Plots und Übersichten?
Sollte ich benötigte Informationen vergessen haben, bitte ich um kurze Rückinfo, ich versuche dann alles so schnell wie möglich nachzuliefern.
Gruß
Thorsten
Hallo Thorsten,
ModbusAttr ist nicht als IODev für Gateways gedacht. Wenn Dein Gateway RTU über einen TCP-Port spricht, dann solltest Du IP-Adresse und Port direkt beim Define des SDM Moduls angeben. Ein zusätzliches IO Device benötigst Du nur wenn Fhem selbst an der seriellen Leitung hängt. Schau am besten mal den Wiki-Artikel zu ModbusAttr an.
Gruß
Stefan
Moinsen.Eine Frage:
Kann ich das 98_ModbusSDM630M.pm auch für den SDM530 Modbus verwenden oder gibts da gravierende Unterschiede.
Danke sehr.
Hallo Roger,
ich setze das Modul für einen SDM120M ein, kann jedoch den Portspeed nicht ändern. Als Fehler kommt hier: Set Value 1 did not match defined map
Alles andere funktioniert reibungslos. Hast Du eine Idee?
Gruss
roadrunnner
Hallo,
ist es normal das beim Device STATE nur ??? steht?
Lässt sich was gepollt wird auch irgendwie einstellen? Wenn ich z.B. nur Energy_total__kWh abfragen möchte brauche ich doch nicht immer alle Werte pollen?
Danke,
Crispyduck
Hallo,
Module, die auf 98_Modbus.pm basieren erben von dort normalerweise alle Attribute, die auch ModbusAttr besitzt. Damit kann man auch einstellen, welche Objekte gepollt werden.
Gruss
Stefan
Hallo, ich bekomme seit Update auf fhem 5.8 regelmäßig
2017.05.02 14:33:14 3: Eastron: timeout waiting for fc 4 from id 2, (i12 / Power__W), Request was 0204000c0002b1fb
im Log. Trotzdem werden die Readings im Device upgedated.
Definiert ist er mit
define Eastron Modbus /dev/ttyUSB1@9600
define Xtender_AC_out ModbusSDM220M 2 15
attr Xtender_AC_out userattr IODev event-min-interval event-on-change-reading userReadings
attr Xtender_AC_out IODev Eastron
attr Xtender_AC_out event-min-interval Power_.*.W:900,Voltage__V:900,Energy_total__kWh:900,statEnergy_total__kWh:900,statEnergy_total__kWhDay:900,Verbrauch_Home:900,.*Last.*:900
attr Xtender_AC_out event-on-change-reading Power_.*.W,Voltage__V,Energy_total__kWh,statEnergy_total__kWh,statEnergy_total__kWhDay,Verbrauch_Home,.*Last.*
attr Xtender_AC_out group Xtender
attr Xtender_AC_out userReadings Verbrauch_Home:Energy_total__kWh { ReadingsNum("$name","Energy_total__kWh",0)-366.51 . " kWh";; }
ID 2 list:
Internals:
DEF 2 15
DEST
INTERVAL 15
IODev Eastron
MODBUSID 2
ModuleVersion 3.5.21 - 12.3.2017
NAME Xtender_AC_out
NOTIFYDEV global
NR 430
NTFY_ORDER 50-Xtender_AC_out
PROTOCOL RTU
STATE opened
TRIGGERTIME 1493748190.4706
TRIGGERTIME_FMT 2017-05-02 20:03:10
TYPE ModbusSDM220M
Readings:
2017-05-02 02:59:20 CosPhi -21.0 %
2017-05-02 19:59:24 CosPhi__grd -20.5
2017-05-02 20:02:14 Current__A 0.48
2017-05-02 20:01:56 Energy_export__kVArh 688.698
2017-05-02 20:02:16 Energy_export__kWh 0.000
2017-05-02 20:01:56 Energy_import__kVArh 319.873
2017-05-02 20:02:16 Energy_import__kWh 2731.408
2017-05-02 20:01:16 Energy_total__kVArh 1008.571
2017-05-02 20:02:15 Energy_total__kWh 2731.408
2017-05-02 20:02:43 Frequency__Hz 50.0
2017-05-02 19:59:28 Modbus_Node_adr 2
2017-05-02 19:59:28 Modbus_Parity_Stop 1stop.bit_no.parity
2017-05-02 19:59:24 Modbus_Speed__baud 9600
2017-05-02 19:59:18 PowerFactor 0.9
2017-05-02 20:02:14 Power__VA 105.7
2017-05-02 20:02:14 Power__VAr -56.8
2017-05-02 20:02:55 Power__W 107
2017-05-02 19:59:21 Relay1_Energy_Type import+export.active.energy
2017-05-02 19:59:20 System_Measurement_mode 00020000
2017-05-02 19:59:28 System_Pulse_Width__ms 100
2017-05-02 19:59:20 System_Pulse_constant 00000000
2017-05-02 20:02:14 Voltage__V 218.8
2017-05-02 20:02:55 statEnergy_total__kWh Hour: 0.005 Day: 4.195 Month: 9.620 Year: 510.143
2017-05-02 20:02:55 statEnergy_total__kWhDay 4.195
2017-05-01 23:59:55 statEnergy_total__kWhDayLast 5.425
2017-05-02 20:02:55 statEnergy_total__kWhHour 0.005
2017-05-02 19:59:55 statEnergy_total__kWhHourLast 0.105
2017-05-02 19:59:55 statEnergy_total__kWhLast Hour: 0.105 Day: 5.425 Month: 129.528 Year: 352.096 (since: 2016-09-02 )
2017-05-02 20:02:55 statEnergy_total__kWhMonth 9.620
2017-04-30 23:59:55 statEnergy_total__kWhMonthLast 129.528
2017-05-02 20:02:55 statEnergy_total__kWhYear 510.143
2016-12-31 23:59:55 statEnergy_total__kWhYearLast 352.096
2017-05-02 19:59:22 system_demand_interval 352387168
Gotreadings:
Power__W 107
Helper:
_98_statistics Xtender_AC_in_statistic
lrecv 1493748175.5681
lsend 1493748175.53896
Lastread:
h12 1493747968.1621
h18 1493747968.16348
h20 1493747968.16452
h28 1493747964.75313
h62720 1493747962.46642
h63760 1493747961.00019
h63776 1493747960.2663
h86 1493747961.73298
i0 1493748134.87923
i12 1493748175.56974
i18 1493748134.88669
i24 1493748134.8891
i30 1493747958.01093
i342 1493748135.62014
i344 1493748076.18324
i36 1493747964.01767
i6 1493748134.88167
i70 1493748163.26169
i72 1493748136.37512
i74 1493748136.37624
i76 1493748116.25802
i78 1493748116.26025
Attributes:
IODev Eastron
event-min-interval Power_.*.W:900,Voltage__V:900,Energy_total__kWh:900,statEnergy_total__kWh:900,statEnergy_total__kWhDay:900,Verbrauch_Home:900,.*Last.*:900
event-on-change-reading Power_.*.W,Voltage__V,Energy_total__kWh,statEnergy_total__kWh,statEnergy_total__kWhDay,Verbrauch_Home,.*Last.*
group Xtender
userReadings Verbrauch_Home:Energy_total__kWh { ReadingsNum("$name","Energy_total__kWh",0)-366.51 . " kWh"; }
userattr IODev event-min-interval event-on-change-reading userReadings
Es hängen zwei Easton 220 am Bus. Der erste (ID 1) liefert keine Fehler im Log.
Jemand eine Idee?
Danke und Grüße
H.
Edit: habe auch mal Timeout auf 10 gestellt, da ändert sich aber leider auch nichts.
Hallo,
eine frühere Version des Modbus-Moduls hat solche Timeouts nur auf Loglevel 4 protokolliert. Da sind sie meist nicht beachtet worden.
Die aktuelle-Version protokolliert das auf Level 3 sofern man es nicht per Attribut TimeoutLogLevel auf Level 4 oder 5 stellt.
Dass gelegentlich Timeouts kommen, sollte kein Problem sein. Das abgefragte Reading dürfte in diesem Fall aber nicht aktualisiert werden.
Gruss
Stefan
Danke für die Antwort Stefan. Allerdings macht sie mich ein wenig unglücklich ;)
Ich finde es unschön, dass mein Stromzähler nicht mit mir sprechen will. Hast du einen Tip, wie man an das Problem herangehen kann? Also wie finde ich heraus, wo genau die Fehler sind.... weil irgendwo muß ja etwas hängen.
Und gut, dass man es jetzt dank Verbose 3 auch mitbekommt.
Und ja, das entsprechende Reading wird dann nicht aktualisiert. Und das zT für Minuten (Update liegt per Einstellung auf 15 sek). Ich habe mir das die ganze Zeit mit der event-on-change..... Einschränkung erklärt.
Hallo,
das kann Ursachen in der Verkabelung / Terminierung haben oder auch im Timing. Schau doch mal die Delay-Attribute an. Oder probier mal ob die Timeouts auch kommen wenn Du den anderen Zähler nicht mehr abfragst.
Gruss
Stefan
Danke Stefan, werde ich probieren. Habe jetzt auch mal die Abfrageintervalle versetzt. ID1 alle 25 sek und ID2 alle 15 sek. Das hat die Timeouts schon deutlich reduziert.
attribut busDelay meinst du? Standard ist 2 sek, richtig?
Hallo,
busDelay ist per Default 0 und clientSwitchDelay ebenfalls.
Gruss
Stefan
... mit einem
attr Eastron busDelay 2
attr Eastron clientSwitchDelay 2
(plus Zeitversetzung)
keine Fehlermeldungen mehr. Oder sind 2 sekunden zu viel delay?
Danke Stefan
vermutlich reicht schon eine halbe Sekunde clientSwitchDelay.
Würde ich einfach mal testen.
Gruss
Stefan
Hallo Stefan, hat du getestet? Würde mich sehr interessieren.
@Roger und @Stefan. Vielen vielen Dank
Für den generischen Modbus modul, und für den SDM630! Ich wurde gerne euch ein Bier kaufen :) geht es das über paypal ???
Gruß aus Kölle.
Hallo,
habe mir eine Eastron SDM220 zugelegt und in Testweise in die Heizung eingebaut
die Konfiguration wurde von Holle75 aus dem Beitrag
https://forum.fhem.de/index.php/topic,50196.msg422742.html#msg422742
übernommen.
Es werden auch alle möglichen werte geloggt, nur kommt des in den LogFiles immer wieder zu solchen Einträgen
2017-09-27_19:08:38 Xtender_AC_in Voltage__V: 233.5
2017-09-27_19:08:07 Xtender Xtender_AC_in.Power__W: <html>0</html>
2017-09-27_19:08:07 Xtender_AC_in Power__W: 0
2017-09-27_19:07:08 Xtender Xtender_AC_in.Power__W: <html>4</html>
2017-09-27_19:07:08 Xtender_AC_in Power__W: 4
2017-09-27_19:07:07 Xtender Xtender_AC_in.Frequency__Hz: <html>50.0</html>
2017-09-27_19:07:07 Xtender_AC_in Frequency__Hz: 50.0
Des weiteren wird in den SVG's
' Verbrauch Gesamt (seit 01.10.15) ' und ' Verbrauch Monatlich'
noch nichts angezeigt.
Was wird mit dem 'Verbrauche.Enel' berechnet?
Gut beim SVG 'Verbrauch Monatlich' kann es sein, da der Eastron erst ca. 14Tage in betrieb ist.
Danke fürs lesen.
Werde dann noch weiter mit dem Eastron spielen.
Weitere sich schon bestellt.
Gruß Thomas
Hallo,
funktioniert die 220.pm auch mit dem SDM230?
Kann das 220 gar nicht mehr auf der Homepage von B*G finden.
Ciao
Michael
ja, nur die register anpassen. sollten aber gleich sein
https://bg-etech.de/download/manual/SDM220Register.pdf
https://bg-etech.de/download/manual/SDM230-register.pdf
Zitat von: falkmann am 01 Februar 2017, 17:00:16
Moinsen.Eine Frage:
Kann ich das 98_ModbusSDM630M.pm auch für den SDM530 Modbus verwenden oder gibts da gravierende Unterschiede.
Danke sehr.
Hallo, interessiere mich auch für den SDM530.
So wie ich das sehe, ist der Funktionsumfang gleich - nur das Gerät ist größer oder?
Würde das auch mit FHEM und dem Modul funktionieren?
Zitat von: satprofi am 04 Februar 2018, 10:12:55
ja, nur die register anpassen. sollten aber gleich sein
https://bg-etech.de/download/manual/SDM220Register.pdf
https://bg-etech.de/download/manual/SDM230-register.pdf
Die PDF für den neueren SDM230 ist nicht mehr verfügbar :(
Hallo zusammen,
Ich bin auf der such, wie ich am besten meinen SDM630 an FHEM Anbindung.
An dem SDM630 habe ich das WLNA Gateway von Eastron angebunden, was auch per Webserver mir die aktuellen Daten liefert.
Allerdings möchte ich den Zähler gern ins Fhem einbinden.
Ist das mit diesem Modul möglich, wenn Ja, könnt Ihr mir bitte Hilfe in Richtung definition geben.
Daher welchen Port muss ich verwenden.
Danke für eure Hilfe
Gruß
Mirko
Zitat von: Mirko_2013 am 23 April 2018, 22:54:00
Hallo zusammen,
Ich bin auf der such, wie ich am besten meinen SDM630 an FHEM Anbindung.
An dem SDM630 habe ich das WLNA Gateway von Eastron angebunden, was auch per Webserver mir die aktuellen Daten liefert.
Allerdings möchte ich den Zähler gern ins Fhem einbinden.
Ist das mit diesem Modul möglich, wenn Ja, könnt Ihr mir bitte Hilfe in Richtung definition geben.
Daher welchen Port muss ich verwenden.
Danke für eure Hilfe
Gruß
Mirko
Hallo zusammen,
Ich ziehe meine Frage zurück ;D
Nach einem Test war es klar Port 502.
Läuft perfekt
Gruß
Mirko
hallo
Ich komme mit dem Mix aus der Easton gateway, der config des SDM630 nicht klar.
Kann mich jemand unterstützen?
Die config über den usb Anschluß funktioniert, aber über das Gateway kommen keine Daten rein.
I#define modbus_tcp ModbusAttr 1 30 192.168.179.54:502 TCP
define modbus_tcp ModbusAttr 1 30 192.168.179.54:502 RTU
attr modbus_tcp userattr devStateIcon icon
attr modbus_tcp devStateIcon opened:10px-kreis-gruen disconnected:10px-kreis-rot
attr modbus_tcp icon cul
attr modbus_tcp room MODBUS
define modbus_usb Modbus /dev/ttyUSB0@9600
attr modbus_usb userattr devStateIcon icon
attr modbus_usb devStateIcon opened:10px-kreis-gruen disconnected:10px-kreis-rot
attr modbus_usb icon cul
attr modbus_usb room MODBUS
define HA_SDM630M_usb ModbusSDM630M 1 60
attr HA_SDM630M_usb userattr IODev
attr HA_SDM630M_usb IODev modbus_usb
attr HA_SDM630M_usb room MODBUS
define HA_SDM630M_tcp ModbusSDM630M 2 60
attr HA_SDM630M_tcp userattr IODev
attr HA_SDM630M_tcp IODev modbus_tcp
attr HA_SDM630M_tcp room MODBUS
Zitat von: xblue am 06 September 2018, 12:50:47
hallo
Ich komme mit dem Mix aus der Easton gateway, der config des SDM630 nicht klar.
Kann mich jemand unterstützen?
Die config über den usb Anschluß funktioniert, aber über das Gateway kommen keine Daten rein.
Genau mit diesen Modbus-Problemen habe ich mich über 14 Tage beschäftigt und nicht weiter gewusst....bis ich diesen Thread fand...und es geht DOCH!!!!
Zuerst hab ich es blauäugig direkt per Modbus (TCP) versucht und bin total gescheitert.
Dann packte mich die "Wut" und ich hab mir einen USB-zu-485/232-Adapter bestellt.
Naja, trotz allem Lesen im Forum über "Modbus und Co" ging immer noch nichts gescheites. Bis ich hier zufällig auf den etwas älteren Beitrag gestossen bin.
Ergebnis - Alles funktioniert !! So einfach kann es sein :)
Mit dem Modul aus dem ersten Post hier von funzt es wirklich gut!
Meine genutzte Hardware:
A: Lösung per TCP1 x USR-W610 - Modbus Gateway TCP UDP
1 x B+G E-Tech SDM630Modbus
###########################################
#Energiezähler Gesamtstrom ohne PV-Anlage
###########################################
define MB_USRW610_005 ModbusSDM630M 5 15 192.168.121.65:8899 TCP
attr MB_USRW610_005 icon stromzaehler_icon@green
attr MB_USRW610_005 room _MODBUS
attr MB_USRW610_005 stateFormat current: Power_Sum__W (W) Total: Energy_total__kWh (kWh) Export: Energy_export__kWh (kWh) Import: Energy_import__kWh (kWh)
attr MB_USRW610_005 verbose 3
B: Lösung per USB-4851 x USB/485 Adapter
1 x B+G E-Tech SDM630Modbus
###########################################
# Modbusdefinition USB-Adapter485 (nur wenn notwendig)
###########################################
define Modbus_Seriell_USB1 Modbus /dev/ttyUSB1@38400
attr Modbus_Seriell_USB1 room _MODBUS
attr Modbus_Seriell_USB1 verbose 3
###########################################
# MODBUS per USB-485 - Energiezähler Brennstoffzelle
###########################################
define MB_USRW610_004 ModbusSDM630M 5 15
setuuid MB_USRW610_004 602d4d4c-f33f-4533-5870-6e8f0404aa17aa5a
attr MB_USRW610_004 dev-h-combine 10
attr MB_USRW610_004 dev-h-defLen 2
attr MB_USRW610_004 dev-h-defShowGet 1
attr MB_USRW610_004 dev-h-defUnpack f>
attr MB_USRW610_004 dev-h-read 3
attr MB_USRW610_004 dev-h-write 16
attr MB_USRW610_004 dev-i-combine 40
attr MB_USRW610_004 dev-i-defFormat %.1f
attr MB_USRW610_004 dev-i-defLen 2
attr MB_USRW610_004 dev-i-defPoll 1
attr MB_USRW610_004 dev-i-defShowGet 1
attr MB_USRW610_004 dev-i-defUnpack f>
attr MB_USRW610_004 dev-i-read 4
attr MB_USRW610_004 dev-timing-commDelay 0.7
attr MB_USRW610_004 dev-timing-sendDelay 0.7
attr MB_USRW610_004 dev-timing-timeout 2
attr MB_USRW610_004 disable 0
attr MB_USRW610_004 group Energy Meter
attr MB_USRW610_004 icon stromzaehler_icon@green
attr MB_USRW610_004 obj-h0-format %.f
attr MB_USRW610_004 obj-h0-name Demand Time
attr MB_USRW610_004 obj-h0-poll once
attr MB_USRW610_004 obj-h0-reading Demand_Time__minutes
attr MB_USRW610_004 obj-h10-format %s
attr MB_USRW610_004 obj-h10-hint 1,2,3
attr MB_USRW610_004 obj-h10-map 1:1p2w, 2:3p3w, 3:3p4w
attr MB_USRW610_004 obj-h10-name System Type
attr MB_USRW610_004 obj-h10-poll once
attr MB_USRW610_004 obj-h10-reading System_Type
attr MB_USRW610_004 obj-h10-set 1
attr MB_USRW610_004 obj-h12-format %.f
attr MB_USRW610_004 obj-h12-hint 60,100,200
attr MB_USRW610_004 obj-h12-name Relay 1 Pulse Width
attr MB_USRW610_004 obj-h12-poll once
attr MB_USRW610_004 obj-h12-reading System_Pulse_Width__ms
attr MB_USRW610_004 obj-h12-set 1
attr MB_USRW610_004 obj-h14-format %s
attr MB_USRW610_004 obj-h14-hint 0,1
attr MB_USRW610_004 obj-h14-map 0:locked, 1:unlocked
attr MB_USRW610_004 obj-h14-name Password Lock
attr MB_USRW610_004 obj-h14-poll once
attr MB_USRW610_004 obj-h14-reading System_Password_Lock
attr MB_USRW610_004 obj-h18-format %s
attr MB_USRW610_004 obj-h18-hint 0,1,2,3
attr MB_USRW610_004 obj-h18-map 0:1stop.bit_no.parity, 1:1stop.bit_even.parity, 2:1stop.bit_odd.parity, 3:2stop.bits_no.parity
attr MB_USRW610_004 obj-h18-name Network Parity Stop
attr MB_USRW610_004 obj-h18-poll once
attr MB_USRW610_004 obj-h18-reading Modbus_Parity_Stop
attr MB_USRW610_004 obj-h18-set 1
attr MB_USRW610_004 obj-h2-format %.f
attr MB_USRW610_004 obj-h2-hint 0,5,8,10,15,20,30,60
attr MB_USRW610_004 obj-h2-max 60
attr MB_USRW610_004 obj-h2-min 0
attr MB_USRW610_004 obj-h2-name Demand Period
attr MB_USRW610_004 obj-h2-poll once
attr MB_USRW610_004 obj-h2-reading Demand_Period__minutes
attr MB_USRW610_004 obj-h2-set 1
attr MB_USRW610_004 obj-h20-format %u
attr MB_USRW610_004 obj-h20-max 247
attr MB_USRW610_004 obj-h20-min 1
attr MB_USRW610_004 obj-h20-name Network Node
attr MB_USRW610_004 obj-h20-poll once
attr MB_USRW610_004 obj-h20-reading Modbus_Node_adr
attr MB_USRW610_004 obj-h20-set 1
attr MB_USRW610_004 obj-h22-format %s
attr MB_USRW610_004 obj-h22-hint 1,2,3,4,5
attr MB_USRW610_004 obj-h22-map 1:0.01kw/imp, 2:0.1kw/imp, 3:1kw/imp, 4:10kw/imp, 5:100kw/imp
attr MB_USRW610_004 obj-h22-name Pulse Divisor1
attr MB_USRW610_004 obj-h22-poll once
attr MB_USRW610_004 obj-h22-reading Pulse_Divisor_1
attr MB_USRW610_004 obj-h22-set 1
attr MB_USRW610_004 obj-h24-format %u
attr MB_USRW610_004 obj-h24-name Password
attr MB_USRW610_004 obj-h24-reading System_Password
attr MB_USRW610_004 obj-h24-set 1
attr MB_USRW610_004 obj-h28-format %s
attr MB_USRW610_004 obj-h28-hint 0,1,2,3,4
attr MB_USRW610_004 obj-h28-map 0:2400, 1:4800, 2:9600, 3:19200, 4:38400
attr MB_USRW610_004 obj-h28-name Network Baud Rate
attr MB_USRW610_004 obj-h28-poll once
attr MB_USRW610_004 obj-h28-reading Modbus_Speed__baud
attr MB_USRW610_004 obj-h28-set 1
attr MB_USRW610_004 obj-h36-format %.f
attr MB_USRW610_004 obj-h36-name System Power
attr MB_USRW610_004 obj-h36-poll once
attr MB_USRW610_004 obj-h36-reading System_Power__W
attr MB_USRW610_004 obj-h42-format %s
attr MB_USRW610_004 obj-h42-name Serial Number
attr MB_USRW610_004 obj-h42-poll once
attr MB_USRW610_004 obj-h42-reading System_Serial_Nr
attr MB_USRW610_004 obj-h6-format %.1f
attr MB_USRW610_004 obj-h6-name system voltage
attr MB_USRW610_004 obj-h6-poll once
attr MB_USRW610_004 obj-h6-reading System_Voltage__V
attr MB_USRW610_004 obj-h8-format %.2f
attr MB_USRW610_004 obj-h8-name system current
attr MB_USRW610_004 obj-h8-poll once
attr MB_USRW610_004 obj-h8-reading System_Current__A
attr MB_USRW610_004 obj-h86-format %s
attr MB_USRW610_004 obj-h86-map 37:Total Wh, 39:Total VArh
attr MB_USRW610_004 obj-h86-name Relay l Energy Type
attr MB_USRW610_004 obj-h86-poll 0
attr MB_USRW610_004 obj-h86-reading Relay1_Energy_Type
attr MB_USRW610_004 obj-h86-set 1
attr MB_USRW610_004 obj-h88-format %s
attr MB_USRW610_004 obj-h88-name Relay 2 Energy Type
attr MB_USRW610_004 obj-h88-poll once
attr MB_USRW610_004 obj-h88-reading Relay2_Energy_Type
attr MB_USRW610_004 obj-i0-format %.1f
attr MB_USRW610_004 obj-i0-name Phase 1 line to neutral volts
attr MB_USRW610_004 obj-i0-polldelay x11
attr MB_USRW610_004 obj-i0-reading Voltage_L1__V
attr MB_USRW610_004 obj-i10-format %.2f
attr MB_USRW610_004 obj-i10-name Phase 3 current
attr MB_USRW610_004 obj-i10-polldelay x5
attr MB_USRW610_004 obj-i10-reading Current_L3__A
attr MB_USRW610_004 obj-i100-format %.1f
attr MB_USRW610_004 obj-i100-name Total system VA demand
attr MB_USRW610_004 obj-i100-polldelay x19
attr MB_USRW610_004 obj-i100-reading Power_Sum_demand__VA
attr MB_USRW610_004 obj-i102-format %.1f
attr MB_USRW610_004 obj-i102-name Maximum total system VA demand
attr MB_USRW610_004 obj-i102-polldelay x19
attr MB_USRW610_004 obj-i102-reading Power_Max_demand__VA
attr MB_USRW610_004 obj-i104-format %.2f
attr MB_USRW610_004 obj-i104-name Neutral current demand
attr MB_USRW610_004 obj-i104-polldelay x7
attr MB_USRW610_004 obj-i104-reading Current_N_demand__A
attr MB_USRW610_004 obj-i106-format %.2f
attr MB_USRW610_004 obj-i106-name Maximum neutral current demand
attr MB_USRW610_004 obj-i106-polldelay x13
attr MB_USRW610_004 obj-i106-reading Current_Max_N_demand__A
attr MB_USRW610_004 obj-i12-format %.f
attr MB_USRW610_004 obj-i12-name Phase 1 power
attr MB_USRW610_004 obj-i12-polldelay x3
attr MB_USRW610_004 obj-i12-reading Power_L1__W
attr MB_USRW610_004 obj-i14-format %.f
attr MB_USRW610_004 obj-i14-name Phase 2 power
attr MB_USRW610_004 obj-i14-polldelay x3
attr MB_USRW610_004 obj-i14-reading Power_L2__W
attr MB_USRW610_004 obj-i16-format %.f
attr MB_USRW610_004 obj-i16-name Phase 3 power
attr MB_USRW610_004 obj-i16-polldelay x3
attr MB_USRW610_004 obj-i16-reading Power_L3__W
attr MB_USRW610_004 obj-i18-format %.1f
attr MB_USRW610_004 obj-i18-name Phase 1 volt amps
attr MB_USRW610_004 obj-i18-polldelay x17
attr MB_USRW610_004 obj-i18-reading Power_L1__VA
attr MB_USRW610_004 obj-i2-format %.1f
attr MB_USRW610_004 obj-i2-name Phase 2 line to neutral volts
attr MB_USRW610_004 obj-i2-polldelay x11
attr MB_USRW610_004 obj-i2-reading Voltage_L2__V
attr MB_USRW610_004 obj-i20-format %.1f
attr MB_USRW610_004 obj-i20-name Phase 2 volt amps
attr MB_USRW610_004 obj-i20-polldelay x17
attr MB_USRW610_004 obj-i20-reading Power_L2__VA
attr MB_USRW610_004 obj-i200-format %.1f
attr MB_USRW610_004 obj-i200-name Line1 to Line2 volts
attr MB_USRW610_004 obj-i200-polldelay x19
attr MB_USRW610_004 obj-i200-reading Voltage_L1_to_L2__V
attr MB_USRW610_004 obj-i202-format %.1f
attr MB_USRW610_004 obj-i202-name Line2 to Line3 volts
attr MB_USRW610_004 obj-i202-polldelay x19
attr MB_USRW610_004 obj-i202-reading Voltage_L2_to_L3__V
attr MB_USRW610_004 obj-i204-format %.1f
attr MB_USRW610_004 obj-i204-name Line3 to Line1 volts
attr MB_USRW610_004 obj-i204-polldelay x19
attr MB_USRW610_004 obj-i204-reading Voltage_L3_to_L1__V
attr MB_USRW610_004 obj-i206-format %.1f
attr MB_USRW610_004 obj-i206-name Average line to line volts
attr MB_USRW610_004 obj-i206-polldelay x7
attr MB_USRW610_004 obj-i206-reading Voltage_Avr_L_to_L__V
attr MB_USRW610_004 obj-i22-format %.1f
attr MB_USRW610_004 obj-i22-name Phase 3 volt amps
attr MB_USRW610_004 obj-i22-polldelay x17
attr MB_USRW610_004 obj-i22-reading Power_L3__VA
attr MB_USRW610_004 obj-i224-format %.2f
attr MB_USRW610_004 obj-i224-name Neutral current
attr MB_USRW610_004 obj-i224-polldelay x5
attr MB_USRW610_004 obj-i224-reading Current_N__A
attr MB_USRW610_004 obj-i234-format %.1f
attr MB_USRW610_004 obj-i234-name Phase 1 L/N volts THD
attr MB_USRW610_004 obj-i234-polldelay x31
attr MB_USRW610_004 obj-i234-reading THD_Voltage_L1_N__prz
attr MB_USRW610_004 obj-i236-format %.1f
attr MB_USRW610_004 obj-i236-name Phase 2 L/N volts THD
attr MB_USRW610_004 obj-i236-polldelay x31
attr MB_USRW610_004 obj-i236-reading THD_Voltage_L2_N__prz
attr MB_USRW610_004 obj-i238-format %.1f
attr MB_USRW610_004 obj-i238-name NPhase 3 L/N volts THD
attr MB_USRW610_004 obj-i238-polldelay x31
attr MB_USRW610_004 obj-i238-reading THD_Voltage_L3_N__prz
attr MB_USRW610_004 obj-i24-format %.1f
attr MB_USRW610_004 obj-i24-name Phase 1 volt amps reactive
attr MB_USRW610_004 obj-i24-polldelay x17
attr MB_USRW610_004 obj-i24-reading Power_L1__VAr
attr MB_USRW610_004 obj-i240-format %.1f
attr MB_USRW610_004 obj-i240-name Phase 1 Current THD
attr MB_USRW610_004 obj-i240-polldelay x37
attr MB_USRW610_004 obj-i240-reading THD_Current_L1__prz
attr MB_USRW610_004 obj-i242-format %.1f
attr MB_USRW610_004 obj-i242-name Phase 2 Current THD
attr MB_USRW610_004 obj-i242-polldelay x37
attr MB_USRW610_004 obj-i242-reading THD_Current_L2__prz
attr MB_USRW610_004 obj-i244-format %.1f
attr MB_USRW610_004 obj-i244-name Phase 3 Current THD
attr MB_USRW610_004 obj-i244-polldelay x37
attr MB_USRW610_004 obj-i244-reading THD_Current_L3__prz
attr MB_USRW610_004 obj-i248-format %.1f
attr MB_USRW610_004 obj-i248-name Average line to neutral volts THD
attr MB_USRW610_004 obj-i248-polldelay x31
attr MB_USRW610_004 obj-i248-reading THD_Voltage_avr_LN__prz
attr MB_USRW610_004 obj-i250-format %.1f
attr MB_USRW610_004 obj-i250-name Average line current THD
attr MB_USRW610_004 obj-i250-polldelay x37
attr MB_USRW610_004 obj-i250-reading THD_Current_avr__prz
attr MB_USRW610_004 obj-i254-format %.1f
attr MB_USRW610_004 obj-i254-name Total system power factor
attr MB_USRW610_004 obj-i254-polldelay x29
attr MB_USRW610_004 obj-i254-reading PowerFactor_inverted
attr MB_USRW610_004 obj-i258-format %.2f
attr MB_USRW610_004 obj-i258-name Phase 1 current demand
attr MB_USRW610_004 obj-i258-polldelay x7
attr MB_USRW610_004 obj-i258-reading Current_L1_demand__A
attr MB_USRW610_004 obj-i26-format %.1f
attr MB_USRW610_004 obj-i26-name Phase 2 volt amps reactive
attr MB_USRW610_004 obj-i26-polldelay x17
attr MB_USRW610_004 obj-i26-reading Power_L2__VAr
attr MB_USRW610_004 obj-i260-format %.2f
attr MB_USRW610_004 obj-i260-name Phase 2 current demand
attr MB_USRW610_004 obj-i260-polldelay x7
attr MB_USRW610_004 obj-i260-reading Current_L2_demand__A
attr MB_USRW610_004 obj-i262-format %.2f
attr MB_USRW610_004 obj-i262-name Phase 3 current demand
attr MB_USRW610_004 obj-i262-polldelay x7
attr MB_USRW610_004 obj-i262-reading Current_L3_demand__A
attr MB_USRW610_004 obj-i264-format %.2f
attr MB_USRW610_004 obj-i264-name Maximum phase 1 current demand
attr MB_USRW610_004 obj-i264-polldelay x13
attr MB_USRW610_004 obj-i264-reading Current_Max_L1_demand__A
attr MB_USRW610_004 obj-i266-format %.2f
attr MB_USRW610_004 obj-i266-name Maximum phase 2 current demand
attr MB_USRW610_004 obj-i266-polldelay x13
attr MB_USRW610_004 obj-i266-reading Current_Max_L2_demand__A
attr MB_USRW610_004 obj-i268-format %.2f
attr MB_USRW610_004 obj-i268-name Maximum phase 3 current demand
attr MB_USRW610_004 obj-i268-polldelay x13
attr MB_USRW610_004 obj-i268-reading Current_Max_L3_demand__A
attr MB_USRW610_004 obj-i28-format %.1f
attr MB_USRW610_004 obj-i28-name Phase 3 volt amps reactive
attr MB_USRW610_004 obj-i28-polldelay x17
attr MB_USRW610_004 obj-i28-reading Power_L3__VAr
attr MB_USRW610_004 obj-i30-format %.1f
attr MB_USRW610_004 obj-i30-name Phase 1 power factor
attr MB_USRW610_004 obj-i30-polldelay x29
attr MB_USRW610_004 obj-i30-reading PowerFactor_L1
attr MB_USRW610_004 obj-i32-format %.1f
attr MB_USRW610_004 obj-i32-name Phase 2 power factor
attr MB_USRW610_004 obj-i32-polldelay x29
attr MB_USRW610_004 obj-i32-reading PowerFactor_L2
attr MB_USRW610_004 obj-i334-format %.1f
attr MB_USRW610_004 obj-i334-name Line 1 to line 2 volts THD
attr MB_USRW610_004 obj-i334-polldelay x37
attr MB_USRW610_004 obj-i334-reading THD_Voltage_L1_L2__prz
attr MB_USRW610_004 obj-i336-format %.1f
attr MB_USRW610_004 obj-i336-name Line 2 to line 3 volts THD
attr MB_USRW610_004 obj-i336-polldelay x37
attr MB_USRW610_004 obj-i336-reading THD_Voltage_L2_L3__prz
attr MB_USRW610_004 obj-i338-format %.1f
attr MB_USRW610_004 obj-i338-name Line 3 to line 1 volts THD
attr MB_USRW610_004 obj-i338-polldelay x37
attr MB_USRW610_004 obj-i338-reading THD_Voltage_L3_L1__prz
attr MB_USRW610_004 obj-i34-format %.1f
attr MB_USRW610_004 obj-i34-name Phase 3 power factor
attr MB_USRW610_004 obj-i34-polldelay x29
attr MB_USRW610_004 obj-i34-reading PowerFactor_L3
attr MB_USRW610_004 obj-i340-format %.1f
attr MB_USRW610_004 obj-i340-name Average line to line volts THD
attr MB_USRW610_004 obj-i340-polldelay x37
attr MB_USRW610_004 obj-i340-reading THD_Voltage_avr_LL__prz
attr MB_USRW610_004 obj-i342-format %.3f
attr MB_USRW610_004 obj-i342-name Total kWh
attr MB_USRW610_004 obj-i342-polldelay x11
attr MB_USRW610_004 obj-i342-reading Energy_total__kWh
attr MB_USRW610_004 obj-i344-format %.3f
attr MB_USRW610_004 obj-i344-name Total VArh
attr MB_USRW610_004 obj-i344-polldelay x17
attr MB_USRW610_004 obj-i344-reading Energy_total__kVArh
attr MB_USRW610_004 obj-i346-format %.3f
attr MB_USRW610_004 obj-i346-name L1 import kWh
attr MB_USRW610_004 obj-i346-polldelay x13
attr MB_USRW610_004 obj-i346-reading Energy_L1_import__kWh
attr MB_USRW610_004 obj-i348-format %.3f
attr MB_USRW610_004 obj-i348-name L2 import kWh
attr MB_USRW610_004 obj-i348-polldelay x13
attr MB_USRW610_004 obj-i348-reading Energy_L2_import__kWh
attr MB_USRW610_004 obj-i350-format %.3f
attr MB_USRW610_004 obj-i350-name L3 import kWh
attr MB_USRW610_004 obj-i350-polldelay x13
attr MB_USRW610_004 obj-i350-reading Energy_L3_import__kWh
attr MB_USRW610_004 obj-i352-format %.3f
attr MB_USRW610_004 obj-i352-name L1 export kWh
attr MB_USRW610_004 obj-i352-polldelay x13
attr MB_USRW610_004 obj-i352-reading Energy_L1_export__kWh
attr MB_USRW610_004 obj-i354-format %.3f
attr MB_USRW610_004 obj-i354-name L2 export kWh
attr MB_USRW610_004 obj-i354-polldelay x13
attr MB_USRW610_004 obj-i354-reading Energy_L2_export__kWh
attr MB_USRW610_004 obj-i356-format %.3f
attr MB_USRW610_004 obj-i356-name L3 export kWh
attr MB_USRW610_004 obj-i356-polldelay x13
attr MB_USRW610_004 obj-i356-reading Energy_L3_export__kWh
attr MB_USRW610_004 obj-i358-format %.3f
attr MB_USRW610_004 obj-i358-name L1 total kWh
attr MB_USRW610_004 obj-i358-polldelay x11
attr MB_USRW610_004 obj-i358-reading Energy_L1_total__kWh
attr MB_USRW610_004 obj-i36-format %.1f
attr MB_USRW610_004 obj-i36-name Phase 1 phase angle
attr MB_USRW610_004 obj-i36-polldelay x23
attr MB_USRW610_004 obj-i36-reading CosPhi_L1__grd
attr MB_USRW610_004 obj-i360-format %.3f
attr MB_USRW610_004 obj-i360-name L2 total kWh
attr MB_USRW610_004 obj-i360-polldelay x11
attr MB_USRW610_004 obj-i360-reading Energy_L2_total__kWh
attr MB_USRW610_004 obj-i362-format %.3f
attr MB_USRW610_004 obj-i362-name L3 total kWh
attr MB_USRW610_004 obj-i362-polldelay x11
attr MB_USRW610_004 obj-i362-reading Energy_L3_total__kWh
attr MB_USRW610_004 obj-i38-format %.1f
attr MB_USRW610_004 obj-i38-name Phase 2 phase angle
attr MB_USRW610_004 obj-i38-polldelay x23
attr MB_USRW610_004 obj-i38-reading CosPhi_L2__grd
attr MB_USRW610_004 obj-i4-format %.1f
attr MB_USRW610_004 obj-i4-name Phase 1 line to neutral volts
attr MB_USRW610_004 obj-i4-polldelay x11
attr MB_USRW610_004 obj-i4-reading Voltage_L3__V
attr MB_USRW610_004 obj-i40-format %.1f
attr MB_USRW610_004 obj-i40-name Phase 3 phase angle
attr MB_USRW610_004 obj-i40-polldelay x23
attr MB_USRW610_004 obj-i40-reading CosPhi_L3__grd
attr MB_USRW610_004 obj-i42-format %.1f
attr MB_USRW610_004 obj-i42-name Average line to neutral volts
attr MB_USRW610_004 obj-i42-polldelay x7
attr MB_USRW610_004 obj-i42-reading Voltage_Avr__V
attr MB_USRW610_004 obj-i46-format %.1f
attr MB_USRW610_004 obj-i46-name Average line current
attr MB_USRW610_004 obj-i46-polldelay x3
attr MB_USRW610_004 obj-i46-reading Current_Avr__A
attr MB_USRW610_004 obj-i48-format %.2f
attr MB_USRW610_004 obj-i48-name Sum of line currents
attr MB_USRW610_004 obj-i48-polldelay x3
attr MB_USRW610_004 obj-i48-reading Current_Sum__A
attr MB_USRW610_004 obj-i52-format %.1f
attr MB_USRW610_004 obj-i52-name Total system power
attr MB_USRW610_004 obj-i52-reading Power_Sum__W
attr MB_USRW610_004 obj-i56-format %.1f
attr MB_USRW610_004 obj-i56-name Total system Volt Ampere
attr MB_USRW610_004 obj-i56-polldelay x17
attr MB_USRW610_004 obj-i56-reading Power_Sum__VA
attr MB_USRW610_004 obj-i6-format %.2f
attr MB_USRW610_004 obj-i6-name Phase 1 current
attr MB_USRW610_004 obj-i6-polldelay x5
attr MB_USRW610_004 obj-i6-reading Current_L1__A
attr MB_USRW610_004 obj-i60-format %.1f
attr MB_USRW610_004 obj-i60-name Total system Volt Ampere reactive
attr MB_USRW610_004 obj-i60-polldelay x17
attr MB_USRW610_004 obj-i60-reading Power_Sum__VAr
attr MB_USRW610_004 obj-i62-format %.1f
attr MB_USRW610_004 obj-i62-name Total system power factor
attr MB_USRW610_004 obj-i62-polldelay x29
attr MB_USRW610_004 obj-i62-reading PowerFactor
attr MB_USRW610_004 obj-i66-format %.1f
attr MB_USRW610_004 obj-i66-name Total system phase angle
attr MB_USRW610_004 obj-i66-polldelay x23
attr MB_USRW610_004 obj-i66-reading CosPhi__grd
attr MB_USRW610_004 obj-i70-format %.1f
attr MB_USRW610_004 obj-i70-name Frequency of supply voltages
attr MB_USRW610_004 obj-i70-polldelay x5
attr MB_USRW610_004 obj-i70-reading Frequency__Hz
attr MB_USRW610_004 obj-i72-format %.3f
attr MB_USRW610_004 obj-i72-name Import Wh since last reset
attr MB_USRW610_004 obj-i72-polldelay x7
attr MB_USRW610_004 obj-i72-reading Energy_import__kWh
attr MB_USRW610_004 obj-i74-format %.3f
attr MB_USRW610_004 obj-i74-name Export Wh since last reset
attr MB_USRW610_004 obj-i74-polldelay x7
attr MB_USRW610_004 obj-i74-reading Energy_export__kWh
attr MB_USRW610_004 obj-i76-format %.3f
attr MB_USRW610_004 obj-i76-name Import VArh since last reset
attr MB_USRW610_004 obj-i76-polldelay x17
attr MB_USRW610_004 obj-i76-reading Energy_import__kVArh
attr MB_USRW610_004 obj-i78-format %.3f
attr MB_USRW610_004 obj-i78-name Export VArh since last reset
attr MB_USRW610_004 obj-i78-polldelay x17
attr MB_USRW610_004 obj-i78-reading Energy_export__kVArh
attr MB_USRW610_004 obj-i8-format %.2f
attr MB_USRW610_004 obj-i8-name Phase 2 current
attr MB_USRW610_004 obj-i8-polldelay x5
attr MB_USRW610_004 obj-i8-reading Current_L2__A
attr MB_USRW610_004 obj-i80-format %.3f
attr MB_USRW610_004 obj-i80-name VAh since last reset
attr MB_USRW610_004 obj-i80-polldelay x17
attr MB_USRW610_004 obj-i80-reading Energy_apparent__kVAh
attr MB_USRW610_004 obj-i82-format %.3f
attr MB_USRW610_004 obj-i82-name kAh since last reset
attr MB_USRW610_004 obj-i82-polldelay x11
attr MB_USRW610_004 obj-i82-reading Charge__kAh
attr MB_USRW610_004 obj-i84-format %.1f
attr MB_USRW610_004 obj-i84-name Total system power demand
attr MB_USRW610_004 obj-i84-reading Power_Sum_demand__W
attr MB_USRW610_004 obj-i86-format %.1f
attr MB_USRW610_004 obj-i86-name Maximum total system power demand
attr MB_USRW610_004 obj-i86-polldelay x11
attr MB_USRW610_004 obj-i86-reading Power_Max_demand__W
attr MB_USRW610_004 room 011_MODBUS,015_Zaehler,Energie
attr MB_USRW610_004 stateFormat current: Power_Sum__W (W) Total: Energy_total__kWh (kWh) Export: Energy_export__kWh (kWh) Import: Energy_import__kWh (kWh)
attr MB_USRW610_004 verbose 3
->>> Herzlichen Dank für die Bereitstellung des Modules(vor so langer Zeit)
Gruß
300P
Hallo Zusammen,
@Roger
ich hab mir erlaubt die Version "SDM630Modbus.pm" aus dem ersten Post etwas anzupassen / etwas hinzuzufügen.
Grund -> Eine Fehlermeldung bei der Initialisierung / Neustart - bei Verbose 3 (oder höher) ;)
2021.02.23 16:27:11 3: MB_USRW610_005: MapConvert called from ParseObj did not find 0 (0) in map 1:0.01kw/imp, 2:0.1kw/imp, 3:1kw/imp, 4:10kw/imp, 5:100kw/imp
Bei meiner Sucherei in der Sache hatte ich eine aktuell verfügbare Dokumentation gefunden in der dies hinterlegt ist.
Dadurch ist diese "0" als der "Puls Divisor1" = "0.025kw/imp" bzw. das "mapping" dieses Parameter komplettiert worden.
Quelle:
-> https://bg-etech.de/download/manual/SDM630Register.pdf
(oder unten als Anhang)
Das ist zwar für den Modbus nur etwas Kosmetik ::)
Aber so ist die Fehlermeldung weg. 8)
Gruß
300P
Weil es mich gerade selbst betroffen hat:
Es kursieren unterschiedliche Versionen der Dokumentation des SDM630, was mich etwas stutzig machte.
Der für mich relevante Unterschied: Es gibt saldierende und nicht saldierende Versionen.
(Und das Datenblatt auf der Webseite war falsch hinterlegt -> sollte aber schon korrigiert sein)
Eine Nachfrage beim B+G brachte folgende Erkenntnis:
Es sind ALLE Modelle des SDM630 nicht saldierend, AUSSER das nicht geeichte Model ab Baujahr 2022. (Art.Nr. 1141113)
Den habe ich natürlich nicht ;-)
Somit waren die Summen der exportierten und importierten Energiemenge ziemlich falsch.
Hier meine Lösung:
In der 99_myUtils.pm folgende Funktion hinzufügen:
sub calcNetEnergy{
my ($name) = @_;
my $last_import = ReadingsVal($name,"calc_last_import__kWh","");
my $act_import = ReadingsVal($name,"Energy_import__kWh","");
my $last_export = ReadingsVal($name,"calc_last_export__kWh","");
my $act_export = ReadingsVal($name,"Energy_export__kWh","");
my $e_delta = ($act_import - $last_import) - ($act_export - $last_export);
CommandSetReading(undef, $name." calc_last_import__kWh ".$act_import);
CommandSetReading(undef, $name." calc_last_export__kWh ".$act_export);
if($e_delta >= 0){
my $import_counter = ReadingsVal($name,"Energy_Net_import__kWh","0") + $e_delta;
fhem("sleep 0.1; setreading $name Energy_Net_import__kWh ".sprintf('%.3f',$import_counter));
fhem("sleep 0.1; setreading $name Energy_Net_export__kWh ".sprintf('%.3f',ReadingsVal($name,"Energy_Net_export__kWh","0")));
}else{
my $export_counter = ReadingsVal($name,"Energy_Net_export__kWh","0") - $e_delta;
fhem("sleep 0.1; setreading $name Energy_Net_export__kWh ".sprintf('%.3f',$export_counter));
fhem("sleep 0.1; setreading $name Energy_Net_import__kWh ".sprintf('%.3f',ReadingsVal($name,"Energy_Net_import__kWh","0")));
}
}
Diese muss dann noch von einem notify bei Änderungen der Zählerstände aufgerufen werden:
defmod N.CalcNetEnergy notify PowerMeter:Power_Sum__W.* {calcNetEnergy("PowerMeter")}
Die beiden interessanten Readings sind:
Energy_Net_import__kWh -> "gekaufte" Energie saldiert
Energy_Net_export__kWh -> "verkaufte" Energie saldiert
Mit dem ElectricityCalculator kann man dann auch die Leistungen berechnen lassen und schön visualisieren.
Das notify wird immer ausgeführt, wenn sich die PowerSum des Zählers ändert.
Die Ergbnisse, siehe Anhang, decken sich jetzt mit der "Meinung" meines EVU :-)
Hoffe es kann jemand brauchen.
Grüße,
Hugo
danke Hugo.... du bist der Held :-) mich hat es geärgert seit ich den eingebaut habe das er nicht saldierend ist.
hast du auch ein Beispiel wie du deine Energiebilanz so hübsch aufbereitest ? Das gefällt mir sehr gut.
nachtrag:
da ist ein Fehler noch drin:
ich bekomme im log: PERL WARNING: Argument "6222.982 kWh" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 87.
das ist diese Zeile my $e_delta = ($act_import - $last_import) - ($act_export - $last_export)
das liegt daran das vom Modul das ganze mit Einheit versehen ist
Ich habe das ganze jetzt einmal mit userreadings gelöst und das scheint mir sogar einfacher zu sein da man keinen myutils aufruf braucht und man hat keine numeric fehler im log
Energy_export_calc_kWh monotonic {ReadingsNum("$name","Energy_export__kWh","") - ReadingsNum("$name","Energy_import__kWh","");},
Energy_export_sald_kWh {sprintf('%.2f kWh', ReadingsVal($name,"Energy_export_calc_kWh",""))},
Energy_import_sald_kWh {sprintf('%.2f kWh', ReadingsNum is("$name","Energy_import__kWh","") - ReadingsNum("$name","Energy_export__kWh",""))}
hier in dem Beispiel habe ich andere Readings genommen
der Energy_export_calc_kWh ist ein zwischenschritt da monotonic nicht mit sprintf funktioniert
Energy_export_sald_kWh ist dann aufsummiert mit dem was richtung netzbetreiber geflossen ist
Energy_import_sald_kWh ist der importierte und logischerweise abzüglich des exportierten, was bei 2richtungszählern dann so auch stimmen müsste.
Das ist interessant, diese Fehlermeldung gibt es bei mir nicht, denn bei mir sind diese Größen alle einheitenlos.
Ich bilde mir ein letztens irgendwo gelesen zu haben, dass man das global irgendwo einstellen kann in FHEM, ob die Werte mit oder ohne Einheit gespeichert werden. Evtl. unterscheiden sich unsere Installationen da.
Zitat von: laserrichi am 31 März 2022, 16:16:45
danke Hugo.... du bist der Held :-) mich hat es geärgert seit ich den eingebaut habe das er nicht saldierend ist.
hast du auch ein Beispiel wie du deine Energiebilanz so hübsch aufbereitest ? Das gefällt mir sehr gut.
nachtrag:
da ist ein Fehler noch drin:
ich bekomme im log: PERL WARNING: Argument "6222.982 kWh" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 87.
das ist diese Zeile my $e_delta = ($act_import - $last_import) - ($act_export - $last_export)
das liegt daran das vom Modul das ganze mit Einheit versehen ist
Die Darstellung der Energie basiert auf diesem Wiki-Artikel:https://wiki.fhem.de/wiki/Datenbankgest%C3%BCtzte_Erstellung_der_Energiebilanz_einer_SMA_PV-Anlage_mit_%C3%9Cberschusseinspeisung (https://wiki.fhem.de/wiki/Datenbankgest%C3%BCtzte_Erstellung_der_Energiebilanz_einer_SMA_PV-Anlage_mit_%C3%9Cberschusseinspeisung)
Da es Offtopic ist, habe ich einen neuen Thread erstellt:
https://forum.fhem.de/index.php/topic,127120.0.html (https://forum.fhem.de/index.php/topic,127120.0.html)
Hallo zusammen,
für die Modelle SDM72DMv2 MID und SDM120 habe ich jeweils ein Modul erstellt.
Zu finden unter:
https://forum.fhem.de/index.php/topic,75638.msg1217182.html#msg1217182 (https://forum.fhem.de/index.php/topic,75638.msg1217182.html#msg1217182)
Ich habe immer wieder mal sporadische Probleme das ich komplett falsche Werte von dem SDM630 bekomme.
Ist mir vermutlich erst jeztt aufgefallen weil ich mir die saldierung mit userreadings zurechtbiege.
Ich bekomme dann solch krumme werte
2022-05-05_13:11:09 Hausstrom Frequency__Hz: -58.7 Hz
2022-05-05_13:11:09 Hausstrom Energy_import__kWh: 0.640 kWh
2022-05-05_13:11:09 Hausstrom Energy_export__kWh: 0.949 kWh
Richtig ist aber
2022-05-05_13:13:07 Hausstrom Frequency__Hz: 49.9 Hz
2022-05-05_13:13:07 Hausstrom Energy_import__kWh: 6394.773 kWh
2022-05-05_13:13:07 Hausstrom Energy_export__kWh: 200.674 kWh
Das wirft mein userreading natürlich durcheinander und habe dann total falsche addierungen
Baudrate habe ich 38400 eingestellt und das tritt nur alle paar Tage einmal auf.
Hat jemand ähnliche Effekte ?
meine sind aus 2017, trotzdem liest er mir export u. import getrennt aus. Was genau meint ihr mit saldierend?
auch power zeigt mir minuswerte an
klar ist export import getrennt aber ist ja nicht saldiert
wie du oben siehst, - Hz das gibt es ja nicht und die werte sind total falschmit importiert 0.640kwh und beim nächsten lesen 6394kwh wie es auch richtig ist.
Es sind sporadische Datenfehler.
meine Saldierung mache ich mit diesen Userreadings
Energy_export_calc_kWh monotonic {ReadingsNum("$name","Energy_export__kWh","") - ReadingsNum("$name","Energy_import__kWh","");},
Energy_export_sald_kWh {sprintf('%.2f kWh', ReadingsVal($name,"Energy_export_calc_kWh",""))},
Energy_import_sald_kWh {sprintf('%.2f kWh', ReadingsNum("$name","Energy_import__kWh","") - ReadingsNum("$name","Energy_export__kWh",""))},
Energy_realzaehler_kWh {sprintf('%.2f kWh', ReadingsNum("$name","Energy_import_sald_kWh","") + ReadingsNum("$name","Energy_RealOffset",""))}
Somit habe ich werte was rückeingespeist wurde.
Wenn jetzt fehlerhafte Daten kommen dann macht ja monotonic die differenz der readings, und das ist dann fatal, da hier auf einmal von 0.64 zu 6394 eine riesen differenz ist.
Hallo zusammen,
ich bräuchte einmal eure Hilfe.
Ich habe mir jetzt auch einen SDM630 zugelegt und wollte den über TCP einbinden. Dazu habe ich mir diesen Konrektor wie auch hier beschrieben gekauft.
https://www.amazon.de/gp/product/B07DNWM62H/ref=ppx_yo_dt_b_asin_image_o01_s00?ie=UTF8&psc=1 (https://www.amazon.de/gp/product/B07DNWM62H/ref=ppx_yo_dt_b_asin_image_o01_s00?ie=UTF8&psc=1)
Ich verstehe nur aktuell nicht wie ich beide verkabeln soll. Der SDM630 hat ein "G" und und der Konrektor hat nur "A" und "B".
Wie habt ihr das verkabelt? Und habt ihr je Seite ein 120 Ohm Widerstand angeschlossen?
i.d.R. reicht A and A und B an B
bei mir ging es auch ohne die beiden 120 Ohm Widerstände (hängt u.A. aber auch von der Länge der Busleitung ab) schaden sollten sie aber nie.
Zitat von: Wzut am 17 Dezember 2022, 12:12:10
i.d.R. reicht A and A und B an B
bei mir ging es auch ohne die beiden 120 Ohm Widerstände (hängt u.A. aber auch von der Länge der Busleitung ab) schaden sollten sie aber nie.
Danke das hat schon mal funktioniert. Allerdings habe ich noch Fehler im LOG und die Daten bekomme ich nicht.
2022.12.17 14:07:37.629 3: MB_USRW610_005: Timeout waiting for a modbus response, read buffer empty,
request: id 1, read fc 3 h10, len 10, tid 228, master device MB_USRW610_005, reading System_Type (getUpdate for combined h10 len 2 System_Type with h12 len 2 System_Pulse_Width__ms and h14 len 2 System_Password_Lock and h18 len 2 Modbus_Parity_Stop), queued 12.30 secs ago, sent 2.00 secs ago
2022.12.17 14:07:39.632 3: MB_USRW610_005: Timeout waiting for a modbus response, read buffer empty,
request: id 1, read fc 3 h20, len 10, tid 156, master device MB_USRW610_005, reading Modbus_Node_adr (getUpdate for combined h20 len 2 Modbus_Node_adr with h22 len 2 Pulse_Divisor_1 and h28 len 2 Modbus_Speed__baud), queued 14.30 secs ago, sent 2.00 secs ago
2022.12.17 14:07:41.634 3: MB_USRW610_005: Timeout waiting for a modbus response, read buffer empty,
request: id 1, read fc 3 h36, len 8, tid 73, master device MB_USRW610_005, reading System_Power__W (getUpdate for combined h36 len 2 System_Power__W with h42 len 2 System_Serial_Nr), queued 16.31 secs ago, sent 2.00 secs ago
2022.12.17 14:07:43.636 3: MB_USRW610_005: Timeout waiting for a modbus response, read buffer empty,
request: id 1, read fc 3 h88, len 2, tid 238, master device MB_USRW610_005, reading Relay2_Energy_Type (getUpdate for Relay2_Energy_Type len 2), queued 18.31 secs ago, sent 2.00 secs ago
Woher weis ich die Welcher Zähler welche Nummer hat?
Die Einstellungen im Konrektor stimmen bestimmt auch noch nicht. Was muss da rein?
Edit:
defmod MB_USRW610_005 ModbusSDM630M 1 15 192.168.136.36:8899 TCP
attr MB_USRW610_005 icon stromzaehler_icon@green
attr MB_USRW610_005 room MODBUS
attr MB_USRW610_005 stateFormat current: Power_Sum__W (W) Total: Energy_total__kWh (kWh) Export: Energy_export__kWh (kWh) Import: Energy_import__kWh (kWh)
attr MB_USRW610_005 verbose 3
check doch erst einmal ob dein SDM630 auch auf Modbus ID 1 steht und wie die Bausrate gesetzt ist - deine 57600 sind bestimmt viel zu hoch.
Ich habe zwar keine SDM630 sondern nur SDM72 aber die laufen gut mit nur 9600 - war auch default.
ZitatWoher weis ich die Welcher Zähler welche Nummer hat?
hast denn mehr als einen ?
Die Anleitung des SDM630 hast du gelesen ?
Zitat von: Wzut am 17 Dezember 2022, 14:38:01
check doch erst einmal ob dein SDM630 auch auf Modbus ID 1 steht und wie die Bausrate gesetzt ist - deine 57600 sind bestimmt viel zu hoch.
Ich habe zwar keine SDM630 sondern nur SDM72 aber die laufen gut mit nur 9600 - war auch default.hast denn mehr als einen ?
Die Anleitung des SDM630 hast du gelesen ?
Danke Dir! Anleitung war der richtige Punkt. Ich haben die V3 Bestellt und hatte die Anleitung von V2.
Hallo, kurzes Feedback zum UserReading: attr Xtender_AC_in userReadings Verbrauch_Enel:Energy_total__kWh { ReadingsNum("$name","Energy_total__kWh",0)-159.01 . " kWh";; }
Bei mir (6.1) hat das nicht funktioniert, erst als ich in diesem Thread (https://forum.fhem.de/index.php?topic=90335.0) gelesen habe, dass man ".*" hinzufügen muss, gings. Also:
attr Xtender_AC_in userReadings Verbrauch_Enel:Energy_total__kWh.* { ReadingsNum("$name","Energy_total__kWh",0)-159.01 . " kWh";; }
Grüße
Hallo
Es sind ALLE Modelle des SDM630 nicht saldierend, AUSSER das nicht geeichte Model ab Baujahr 2022. (Art.Nr. 1141113)
Der Zähler funktioniert ganz sicher Phasen saldierend??
Ich suche schon lange einen!
Danke euch
ich habe seit november einen neuen zähler vom EV mit 2 Richtungen
der SDM630 den gexle genannt hat habe ich auch schon gesehen aber ich tausch den jetzt nicht.
seitdem nutze ich folgendes userreading:
Energy_export_calc_kWh monotonic {ReadingsNum("$name","Energy_export__kWh","") - ReadingsNum("$name","Energy_import__kWh","");},
Energy_import_calc_kWh monotonic {ReadingsNum("$name","Energy_import__kWh","") - ReadingsNum("$name","Energy_export__kWh","");},
Energy_export_sald_kWh {sprintf('%.2f kWh', ReadingsVal("$name","Energy_export_calc_kWh",""))},
Energy_import_sald_kWh {sprintf('%.2f kWh', ReadingsVal("$name","Energy_import_calc_kWh",""))},
Real_export_sald_kWh {sprintf('%.0f kWh', ReadingsNum("$name","Energy_export_sald_kWh","") - 243.5)},
Real_import_sald_kWh {sprintf('%.0f kWh', ReadingsNum("$name","Energy_import_sald_kWh","") - 6078)}
und ich habe jetzt bei Einspeisung am SDM630 1697kWh und beim EV 1693kWh und beim bezug sagt der SDM630 296kWh und der vom EV 291kWh
das sind meines erachtens reine Toleranzen von der Messung. Damit kann ich leben.
Hallo zusammen,
ich habe 5 SDM630M V3 und das Problem das die Werte die ankommen nicht immer stimmen. Die Werte werden teilweise in anderen readings angezeigt.
Ich verstehe leider nicht woran das liegt.
Hier ist mal die Definition:
defmod MB_USRW610_111 ModbusSDM630M 111 65 192.168.136.36:8899 TCP
attr MB_USRW610_111 alias Preis
attr MB_USRW610_111 busDelay 0.5
attr MB_USRW610_111 clientSwitchDelay 0.5
attr MB_USRW610_111 icon stromzaehler_icon@green
attr MB_USRW610_111 room System->Geraete->Modbus
attr MB_USRW610_111 sortby 3
attr MB_USRW610_111 stateFormat current: Power_Sum__W (W) Total: Energy_total__kWh (kWh) Export: Energy_export__kWh (kWh) Import: Energy_import__kWh (kWh)
Hier ein List:
Internals:
DEF 111 65 192.168.136.36:8899 TCP
DeviceName 192.168.136.36:8899
EXPECT idle
FD 197
FUUID 639dd6d1-f33f-afed-b5d8-344674a39f4fbaf8
FVERSION 98_ModbusSDM630M.pm:?/2021-02-23
IODev MB_USRW610_111
Interval 65
LASTOPEN 1697368743.13865
MODBUSID 111
MODE master
MODULEVERSION Modbus 4.4.14 - 30.1.2023
NAME MB_USRW610_111
NOTIFYDEV global
NR 1290
NTFY_ORDER 50-MB_USRW610_111
PARTIAL
PROTOCOL TCP
STATE current: 714.9 (W) Total: 521.711 (kWh) Export: 49.941 (kWh) Import: 0.000 (kWh)
TCPConn 1
TYPE ModbusSDM630M
devioLoglevel 3
eventCount 13929
nextOpenDelay 60
FRAME:
DATA Q␆D1ӶD(��D-X�
FCODE 183
MODBUSID 67
PDULEXP 15
TID 0
QUEUE:
READ:
BUFFER
READINGS:
2023-10-20 23:20:11 Charge__kAh 197.002
2023-10-20 23:16:56 CosPhi_L1__grd 0.0
2023-10-20 23:16:56 CosPhi_L2__grd 0.0
2023-10-20 23:16:56 CosPhi_L3__grd -2.1
2023-10-20 23:20:11 CosPhi__grd 0.0
2023-10-20 23:18:02 Current_Avr__A 1.1
2023-10-20 23:18:01 Current_L1__A 1.17
2023-10-20 23:13:43 Current_L1_demand__A 0.75
2023-10-20 23:18:01 Current_L2__A 0.55
2023-10-20 23:13:43 Current_L2_demand__A 0.69
2023-10-20 23:18:01 Current_L3__A 1.55
2023-10-20 23:13:43 Current_L3_demand__A 0.94
2023-10-20 23:13:43 Current_Max_L1_demand__A 0.00
2023-10-20 23:13:43 Current_Max_L2_demand__A 0.00
2023-10-20 23:13:43 Current_Max_L3_demand__A 6.51
2023-10-20 23:20:12 Current_Max_N_demand__A 6.11
2023-10-20 23:19:07 Current_N__A 1.04
2023-10-20 23:15:52 Current_N_demand__A 0.60
2023-10-20 23:18:02 Current_Sum__A 3.24
2023-10-15 13:21:16 Demand_Period__minutes 60
2023-10-15 13:21:16 Demand_Time__minutes 0
2023-10-20 23:16:59 Energy_L1_export__kWh 0.000
2023-10-20 23:16:59 Energy_L1_import__kWh 186.023
2023-10-20 23:16:59 Energy_L1_total__kWh 0.000
2023-10-20 23:16:59 Energy_L2_export__kWh 0.000
2023-10-20 23:16:59 Energy_L2_import__kWh 142.559
2023-10-20 23:16:59 Energy_L2_total__kWh 186.023
2023-10-20 23:16:59 Energy_L3_export__kWh 0.000
2023-10-20 23:16:59 Energy_L3_import__kWh 193.129
2023-10-20 23:16:59 Energy_L3_total__kWh 142.559
2023-10-20 23:20:11 Energy_apparent__kVAh 17.702
2023-10-20 23:20:11 Energy_export__kVArh 0.000
2023-10-20 23:20:11 Energy_export__kWh 49.941
2023-10-20 23:20:11 Energy_import__kVArh 521.742
2023-10-20 23:20:11 Energy_import__kWh 0.000
2023-10-20 23:16:59 Energy_total__kVArh 214.694
2023-10-20 23:16:59 Energy_total__kWh 521.711
2023-10-20 23:20:11 Frequency__Hz 0.0
2023-10-15 13:22:21 Modbus_Node_adr 111
2023-10-15 13:19:08 Modbus_Parity_Stop 1stop.bit_no.parity
2023-10-15 13:22:21 Modbus_Speed__baud 9.62964972193618e-35
2023-10-20 23:20:11 PowerFactor -214.8
2023-10-20 23:16:56 PowerFactor_L1 -141.1
2023-10-20 23:16:56 PowerFactor_L2 1.0
2023-10-20 23:16:56 PowerFactor_L3 0.9
2023-10-20 23:05:04 PowerFactor_inverted 60.6
2023-10-20 23:16:56 Power_L1__VA 274.3
2023-10-20 23:16:56 Power_L1__VAr -9.9
2023-10-20 23:16:56 Power_L1__W 274
2023-10-20 23:16:56 Power_L2__VA 126.6
2023-10-20 23:16:56 Power_L2__VAr 0.0
2023-10-20 23:16:56 Power_L2__W 109
2023-10-20 23:16:56 Power_L3__VA 361.5
2023-10-20 23:16:56 Power_L3__VAr 0.0
2023-10-20 23:16:56 Power_L3__W 333
2023-10-20 23:11:33 Power_Max_demand__VA 2114.6
2023-10-20 23:09:22 Power_Max_demand__W 2022.8
2023-10-20 23:20:11 Power_Sum__VA 831.1
2023-10-20 23:20:11 Power_Sum__VAr 0.0
2023-10-20 23:20:11 Power_Sum__W 714.9
2023-10-20 23:11:33 Power_Sum_demand__VA 606.0
2023-10-20 23:20:11 Power_Sum_demand__W 564.2
2023-10-15 13:22:21 Pulse_Divisor_1 0
2023-09-05 10:36:48 Relay1_Energy_Type 2.27206533005626e-41
2023-10-15 13:22:23 Relay2_Energy_Type 0
2023-10-15 13:21:16 System_Current__A 10.00
2023-10-15 13:22:21 System_Password 1000
2023-10-15 13:19:08 System_Password_Lock locked
2023-10-15 13:22:22 System_Power__W 6600
2023-10-15 13:19:08 System_Pulse_Width__ms 100
2023-10-15 13:22:22 System_Serial_Nr 6.65413870559409e+22
2023-10-18 21:58:48 System_Type 3p4w
2023-10-15 13:21:16 System_Voltage__V 220.0
2023-10-20 23:05:04 THD_Current_L1__prz 0.0
2023-10-20 23:05:04 THD_Current_L2__prz 0.0
2023-10-20 23:05:04 THD_Current_L3__prz 36.1
2023-10-20 23:05:04 THD_Current_avr__prz 0.0
2023-10-20 23:07:14 THD_Voltage_L1_L2__prz 0.0
2023-10-20 23:05:04 THD_Voltage_L1_N__prz 0.0
2023-10-20 23:07:14 THD_Voltage_L2_L3__prz 0.0
2023-10-20 23:05:04 THD_Voltage_L2_N__prz 5.4
2023-10-20 23:07:14 THD_Voltage_L3_L1__prz 0.0
2023-10-20 23:05:04 THD_Voltage_L3_N__prz 5.7
2023-10-20 23:07:14 THD_Voltage_avr_LL__prz 0.0
2023-10-20 23:05:04 THD_Voltage_avr_LN__prz 45.3
2023-10-20 23:18:03 Voltage_Avr_L_to_L__V 405.4
2023-10-20 23:16:56 Voltage_Avr__V -30.9
2023-10-20 23:11:31 Voltage_L1__V 233.3
2023-10-20 23:16:58 Voltage_L1_to_L2__V 405.9
2023-10-20 23:11:31 Voltage_L2__V 234.2
2023-10-20 23:16:58 Voltage_L2_to_L3__V 405.8
2023-10-20 23:11:31 Voltage_L3__V 233.4
2023-10-20 23:16:58 Voltage_L3_to_L1__V 405.0
2023-10-15 13:19:03 state opened
REMEMBER:
lid 111
lname MB_USRW610_111
lrecv 1697836847.78986
lsend 1697836812.4808
defptr:
MB_USRW610_111 111
gotReadings:
Current_Max_N_demand__A 6.11
lastRead:
h0 1697368876.67507
h10 1697659128.89751
h12 1697368748.32312
h14 1697368748.32344
h18 1697368748.32381
h2 1697368876.67541
h20 1697368941.91279
h22 1697368941.91325
h24 1697368941.91356
h28 1697368941.91399
h36 1697368942.70859
h42 1697368942.70892
h6 1697368876.67578
h8 1697368876.67612
h88 1697368943.4911
i0 1697836291.71436
i10 1697836681.70342
i100 1697836293.3533
i102 1697836293.35366
i104 1697836552.55951
i106 1697836812.54033
i12 1697836616.79515
i14 1697836616.79554
i16 1697836616.79593
i18 1697836616.7963
i2 1697836291.71498
i20 1697836616.79668
i200 1697836618.46643
i202 1697836618.46686
i204 1697836618.46723
i206 1697836683.41842
i22 1697836616.79706
i224 1697836747.54683
i234 1697835904.31626
i236 1697835904.31666
i238 1697835904.31708
i24 1697836616.79745
i240 1697835904.31749
i242 1697835904.31792
i244 1697835904.31834
i248 1697835904.3188
i250 1697835904.31922
i254 1697835904.31965
i258 1697836423.0192
i26 1697836616.79782
i260 1697836423.01963
i262 1697836423.02006
i264 1697836423.02044
i266 1697836423.02086
i268 1697836423.02127
i28 1697836616.79825
i30 1697836616.79866
i32 1697836616.79906
i334 1697836034.26729
i336 1697836034.26771
i338 1697836034.26812
i34 1697836616.79944
i340 1697836034.26852
i342 1697836619.29587
i344 1697836619.29626
i346 1697836619.29665
i348 1697836619.29705
i350 1697836619.29743
i352 1697836619.29782
i354 1697836619.29819
i356 1697836619.29858
i358 1697836619.29897
i36 1697836616.79999
i360 1697836619.29936
i362 1697836619.29977
i38 1697836616.80036
i4 1697836291.71541
i40 1697836616.80074
i42 1697836616.80113
i46 1697836682.62192
i48 1697836682.6223
i52 1697836811.78207
i56 1697836811.78255
i6 1697836681.7026
i60 1697836811.78302
i62 1697836811.78343
i66 1697836811.78382
i70 1697836811.78419
i72 1697836811.78456
i74 1697836811.78497
i76 1697836811.78551
i78 1697836811.7859
i8 1697836681.703
i80 1697836811.78642
i82 1697836811.78907
i84 1697836811.78948
i86 1697836162.58146
Attributes:
alias Preis
busDelay 0.5
clientSwitchDelay 0.5
icon stromzaehler_icon@green
room System->Geraete->Modbus
sortby 3
stateFormat current: Power_Sum__W (W) Total: Energy_total__kWh (kWh) Export: Energy_export__kWh (kWh) Import: Energy_import__kWh (kWh)
verbose 3
Hallo zusammen,
Ich habe den TCP Server mit einem Elfin EE11 für den SDM630 mit dem Code 98_ModbusSDM630M.pm erfolgreich installiert. Die Readings sind mit Daten sichtbar.
Mein Problem:
Die neu eingerichteten Karten bekommen keine Daten. Folgendes habe ich gemacht:
define Power_L1_W dummy (neue Karte habe ich nur mit dummy erstellen können)
in stateFormat
attr Power_L1_W stateFormat sprintf("%.0f W", ReadingsVal($name,"Power_L1__W",0))
Wie kann ich den z.B. Power_L1_W richtig definieren ? dummy richtig ?
Mir ist auch nicht klar, woher Power_L1_W die Bindung an ModbusSDM630M bzw. SDM630
erhält ?
Kann mir einer die richtigen Code Schnipsel für Power_L1_W (define, attr) geben ?
Die anderen Readings bekomme ich dann selber hin.
Grüße
Wolfgang
fhem.cfg Einträge
define SDM630 ModbusSDM630M 2 30 192.168.0.200:502 TCP
setuuid SDM630 6532b69b-f33f-0ba9-5de4-325875c36b6be0f4
attr SDM630 group SDM630
attr SDM630 icon measure_power_meter
attr SDM630 room Solaranlage,Verbindung
attr SDM630 stateFormat {sprintf("Energy: %.0f kWh", (ReadingsVal($name,"Energy_import__kWh",0) ) )." / Power:". sprintf("%.0f W", ReadingsVal($name,"Power_Sum__W",0)). " / L1:" . sprintf("%.0f W", ReadingsVal($name,"Power_L1__W",0)). " / L2:" . sprintf("%.0f W", ReadingsVal($name,"Power_L2__W",0)). " / L3:" . sprintf("%.0f W", ReadingsVal($name,"Power_L3__W",0))}
define Power_L1_W dummy
setuuid Power_L1_W 6533c094-f33f-0ba9-5df2-3251b276128a5544
attr Power_L1_W room Solaranlage
attr Power_L1_W stateFormat sprintf("%.0f W", ReadingsVal($name,"Power_L1__W",0))
Ich habe nun auch folgende Fehler im LOG gefunden:
2023.10.22 12:41:42.620 3: MB_USRW610_111: readfn got data while EXPECT was set to idle: 000d000000070204043e3cc1bf
2023.10.22 12:41:42.620 3: MB_USRW610_231: readfn got data while EXPECT was set to idle: 000d000000070204043e3cc1bf
2023.10.22 12:41:42.630 3: MB_USRW610_001: readfn got data while EXPECT was set to idle: 000d000000070204043e3cc1bf
2023.10.22 12:41:42.630 3: MB_USRW610_241: readfn got data while EXPECT was set to idle: 000d000000070204043e3cc1bf
2023.10.22 12:41:43.436 3: MB_USRW610_111: readfn got data while EXPECT was set to idle: 0021000000070204043dc59af4
2023.10.22 12:41:43.437 3: MB_USRW610_231: readfn got data while EXPECT was set to idle: 0021000000070204043dc59af4
2023.10.22 12:41:43.438 3: MB_USRW610_001: readfn got data while EXPECT was set to idle: 0021000000070204043dc59af4
2023.10.22 12:41:43.438 3: MB_USRW610_241: readfn got data while EXPECT was set to idle: 0021000000070204043dc59af4
Zitat von: hobbyman am 21 Oktober 2023, 22:09:34Hallo zusammen,
Ich habe den TCP Server mit einem Elfin EE11 für den SDM630 mit dem Code 98_ModbusSDM630M.pm erfolgreich installiert. Die Readings sind mit Daten sichtbar.
Mein Problem:
Die neu eingerichteten Karten bekommen keine Daten. Folgendes habe ich gemacht:
define Power_L1_W dummy (neue Karte habe ich nur mit dummy erstellen können)
in stateFormat
attr Power_L1_W stateFormat sprintf("%.0f W", ReadingsVal($name,"Power_L1__W",0))
Wie kann ich den z.B. Power_L1_W richtig definieren ? dummy richtig ?
Mir ist auch nicht klar, woher Power_L1_W die Bindung an ModbusSDM630M bzw. SDM630
erhält ?
Kann mir einer die richtigen Code Schnipsel für Power_L1_W (define, attr) geben ?
Die anderen Readings bekomme ich dann selber hin.
Grüße
Wolfgang
fhem.cfg Einträge
define SDM630 ModbusSDM630M 2 30 192.168.0.200:502 TCP
setuuid SDM630 6532b69b-f33f-0ba9-5de4-325875c36b6be0f4
attr SDM630 group SDM630
attr SDM630 icon measure_power_meter
attr SDM630 room Solaranlage,Verbindung
attr SDM630 stateFormat {sprintf("Energy: %.0f kWh", (ReadingsVal($name,"Energy_import__kWh",0) ) )." / Power:". sprintf("%.0f W", ReadingsVal($name,"Power_Sum__W",0)). " / L1:" . sprintf("%.0f W", ReadingsVal($name,"Power_L1__W",0)). " / L2:" . sprintf("%.0f W", ReadingsVal($name,"Power_L2__W",0)). " / L3:" . sprintf("%.0f W", ReadingsVal($name,"Power_L3__W",0))}
define Power_L1_W dummy
setuuid Power_L1_W 6533c094-f33f-0ba9-5df2-3251b276128a5544
attr Power_L1_W room Solaranlage
attr Power_L1_W stateFormat sprintf("%.0f W", ReadingsVal($name,"Power_L1__W",0))
was genau brauchst du? Power_L1__W hast ja als readings. wenn du das weiterverwenden willst, einfach diese readinhs verknüpfen.
Oder nur als Übersicht ? mache ich mit stateFormat.
Power_Sum__W Energy_export__kWh Energy_import__kWh<br>
L1 Power_L1__W<br>
L2 Power_L2__W<br>
L3 Power_L3__W
Zitat von: holzwurm83 am 20 Oktober 2023, 23:22:30Hallo zusammen,
ich habe 5 SDM630M V3 und das Problem das die Werte die ankommen nicht immer stimmen. Die Werte werden teilweise in anderen readings angezeigt.
Ich verstehe leider nicht woran das liegt.
sind alle an dem selben bus ?
Ich hatte auch immer mal probleme das readings nicht stimmten, und habe dann die baudrate runtergesetzt auf 9600.
Hallo satprofi,
einfach diese readinhs verknüpfen.
Oder nur als Übersicht ? mache ich mit stateFormat.
Power_Sum__W Energy_export__kWh Energy_import__kWh<br>
L1 Power_L1__W<br>
L2 Power_L2__W<br>
L3 Power_L3__W
Ich möchte diverse Werte auf das Dashboard bringen.
Für L1 habe ich
attr Power_L1_W stateFormat sprintf("%.0f W", ReadingsVal($name,"Power_L1__W",0))
eingetragen, erhalte aber keine Daten. Im Moment weiß ich nicht weiter.
Grüße
Wolfgang
Zitat von: laserrichi am 22 Oktober 2023, 18:51:58sind alle an dem selben bus ?
Ich hatte auch immer mal probleme das readings nicht stimmten, und habe dann die baudrate runtergesetzt auf 9600.
Hi, ja die sind alle am gleichen Bus und laufen auf 9600.
Habe das jetzt auch mal wie folgt umgebaut, aber das ist nicht besser geworden:
define Gateway_Modbus Modbus 192.168.136.36:8899
attr Gateway_Modbus room System->Geraete->Modbus
define MB_USRW610_001 ModbusSDM630M 1 60 TCP
attr MB_USRW610_001 IODev Gateway_Modbus
attr MB_USRW610_001 busDelay 0.5
attr MB_USRW610_001 clientSwitchDelay 0.5
attr MB_USRW610_001 event-on-change-reading .*
attr MB_USRW610_001 icon stromzaehler_icon@green
attr MB_USRW610_001 room System->Geraete->Modbus
attr MB_USRW610_001 sortby 1
attr MB_USRW610_001 stateFormat current: Power_Sum__W (W) Total: Energy_total__kWh (kWh) Export: Energy_export__kWh (kWh) Import: Energy_import__kWh (kWh)
define MB_USRW610_002 ModbusSDM630M 2 90 TCP
attr MB_USRW610_002 IODev Gateway_Modbus
attr MB_USRW610_002 busDelay 0.5
attr MB_USRW610_002 clientSwitchDelay 0.5
attr MB_USRW610_002 event-on-change-reading .*
attr MB_USRW610_002 icon stromzaehler_icon@green
attr MB_USRW610_002 room System->Geraete->Modbus
attr MB_USRW610_002 sortby 2
attr MB_USRW610_002 stateFormat current: Power_Sum__W (W) Total: Energy_total__kWh (kWh) Export: Energy_export__kWh (kWh) Import: Energy_import__kWh (kWh)
define MB_USRW610_231 ModbusSDM630M 231 70 TCP
attr MB_USRW610_231 IODev Gateway_Modbus
attr MB_USRW610_231 busDelay 0.5
attr MB_USRW610_231 clientSwitchDelay 0.5
attr MB_USRW610_231 event-on-change-reading .*
attr MB_USRW610_231 icon stromzaehler_icon@green
attr MB_USRW610_231 room System->Geraete->Modbus
attr MB_USRW610_231 sortby 4
attr MB_USRW610_231 stateFormat current: Power_Sum__W (W) Total: Energy_total__kWh (kWh) Export: Energy_export__kWh (kWh) Import: Energy_import__kWh (kWh)
define MB_USRW610_241 ModbusSDM630M 241 75 TCP
attr MB_USRW610_241 IODev Gateway_Modbus
attr MB_USRW610_241 busDelay 0.5
attr MB_USRW610_241 clientSwitchDelay 0.5
attr MB_USRW610_241 event-on-change-reading .*
attr MB_USRW610_241 icon stromzaehler_icon@green
attr MB_USRW610_241 room System->Geraete->Modbus
attr MB_USRW610_241 sortby 5
attr MB_USRW610_241 stateFormat current: Power_Sum__W (W) Total: Energy_total__kWh (kWh) Export: Energy_export__kWh (kWh) Import: Energy_import__kWh (kWh)
defmod MB_USRW610_111 ModbusSDM630M 111 65 TCP
attr MB_USRW610_111 IODev Gateway_Modbus
attr MB_USRW610_111 busDelay 0.5
attr MB_USRW610_111 clientSwitchDelay 0.5
attr MB_USRW610_111 event-on-change-reading .*
attr MB_USRW610_111 icon stromzaehler_icon@green
attr MB_USRW610_111 room System->Geraete->Modbus
attr MB_USRW610_111 sortby 3
attr MB_USRW610_111 stateFormat current: Power_Sum__W (W) Total: Energy_total__kWh (kWh) Export: Energy_export__kWh (kWh) Import: Energy_import__kWh (kWh)
attr MB_USRW610_111 verbose 3
Zitat von: hobbyman am 22 Oktober 2023, 19:51:31Hallo satprofi,
einfach diese readinhs verknüpfen.
Oder nur als Übersicht ? mache ich mit stateFormat.
Power_Sum__W Energy_export__kWh Energy_import__kWh<br>
L1 Power_L1__W<br>
L2 Power_L2__W<br>
L3 Power_L3__W
Ich möchte diverse Werte auf das Dashboard bringen.
Für L1 habe ich
attr Power_L1_W stateFormat sprintf("%.0f W", ReadingsVal($name,"Power_L1__W",0))
eingetragen, erhalte aber keine Daten. Im Moment weiß ich nicht weiter.
Grüße
Wolfgang
Hallo.
Möchtest du dummys befüllen, sehe ich das richtig?
Dann versuch mal mit notify oder DOIF.
Beispiel für Gesamtleistung
define Leistung dummy
define DI_Leistung DOIF ([PowerMeter:Power_Sum__W]) ({ my $sld = ((ReadingsNum('PowerMeter','Power_Sum__W','')) * (1)) ;fhem("set Leistung $sld")})
Stromkosten
define Kosten dummy
define DI_Stromkosten DOIF ([PowerMeter:Energy_import__kWh]) ({my $sld = (ReadingsNum('PowerMeter','Energy_import__kWh','') *0.25); fhem("set Stromkosten $sld");})
Zitat von: hobbyman am 21 Oktober 2023, 22:09:34Hallo zusammen,
Ich habe den TCP Server mit einem Elfin EE11 für den SDM630 mit dem Code 98_ModbusSDM630M.pm erfolgreich installiert. Die Readings sind mit Daten sichtbar.
Mein Problem:
Die neu eingerichteten Karten bekommen keine Daten. Folgendes habe ich gemacht:
define Power_L1_W dummy (neue Karte habe ich nur mit dummy erstellen können)
in stateFormat
attr Power_L1_W stateFormat sprintf("%.0f W", ReadingsVal($name,"Power_L1__W",0))
Wie kann ich den z.B. Power_L1_W richtig definieren ? dummy richtig ?
Mir ist auch nicht klar, woher Power_L1_W die Bindung an ModbusSDM630M bzw. SDM630
erhält ?
Kann mir einer die richtigen Code Schnipsel für Power_L1_W (define, attr) geben ?
Die anderen Readings bekomme ich dann selber hin.
Grüße
Wolfgang
fhem.cfg Einträge
define SDM630 ModbusSDM630M 2 30 192.168.0.200:502 TCP
setuuid SDM630 6532b69b-f33f-0ba9-5de4-325875c36b6be0f4
attr SDM630 group SDM630
attr SDM630 icon measure_power_meter
attr SDM630 room Solaranlage,Verbindung
attr SDM630 stateFormat {sprintf("Energy: %.0f kWh", (ReadingsVal($name,"Energy_import__kWh",0) ) )." / Power:". sprintf("%.0f W", ReadingsVal($name,"Power_Sum__W",0)). " / L1:" . sprintf("%.0f W", ReadingsVal($name,"Power_L1__W",0)). " / L2:" . sprintf("%.0f W", ReadingsVal($name,"Power_L2__W",0)). " / L3:" . sprintf("%.0f W", ReadingsVal($name,"Power_L3__W",0))}
define Power_L1_W dummy
setuuid Power_L1_W 6533c094-f33f-0ba9-5df2-3251b276128a5544
attr Power_L1_W room Solaranlage
attr Power_L1_W stateFormat sprintf("%.0f W", ReadingsVal($name,"Power_L1__W",0))
Hallo @hobbyman
hier müsste / liegt der Fehler begraben:
im Modul Dummy gibt es den Wert (zu diesem Zeitpunkt) (noch) nicht
attr Power_L1_W stateFormat sprintf("%.0f W", ReadingsVal($name,"Power_L1__W",0))
Es muss n.m.M. lauten:
attr Power_L1_W stateFormat sprintf("%.0f W", ReadingsVal("SDM630","Power_L1__W",0))
Gruß
300P
Zitat von: holzwurm83 am 20 Oktober 2023, 23:22:30Hallo zusammen,
ich habe 5 SDM630M V3 und das Problem das die Werte die ankommen nicht immer stimmen. Die Werte werden teilweise in anderen readings angezeigt.
Ich verstehe leider nicht woran das liegt.
@holzwurm83:
Ab und an habe ich bei den Readings bei mir auch immer mal wieder "falsche"-Readings aus anderen Modbus-Devices.
Meist passiert es bei mir mit einer seriellen 8-Kanal-Temperatursensorenkarte und ich sehe es in den Grafiken das da was fehlt. :o >:(
Die "richtigen" Readings (Temperaturen) werden dann im Modul gar nicht mehr gelesen, es werden dann Werte aus irgendeinem anderen Modbus-Device dort gelesen und angezeigt.
Ich rette mich so alle 1-2 Monate wie folgt:
- Erstellen einer "defmod"-Kopie des Device
- Lösche einmalig dann das Device
- speichere per save einmal die fhem-Einstellungen
- füge mittels raw-definition die Device-Kopie wieder els "neues" device ein. :-X
Eine saubere Lösung habe ich nicht parat - einzig das du evtl. alle notwendigen Parameter für das define zur Sicherheit angibst:
define SDM630M ModbusSDM630M <Id> <Interval> <Address:Port> <RTU|ASCII|TCP>
Gruß
300P
also das Elfin EE11 kenne ich jetzt nicht.
Ich mache das mit einem Espeasy einfach mit RS485 Pegelwandler als Serielle Schnittstelle.
Ich habe daher bei mir das ganze mit RTU definiert und der modbusproxy handled das ganze, auch habe ich keine delays usw. drin.
Würde da mal an der elfin config schauen ob du da noch was drehen kannst.
Hallo,
Hat schonmal Jemand den Zähler DS100-30B von B+G E-Tech LINK (https://xn--stromzhler-v5a.eu/stromzaehler/drehstromzaehler/fuer-hutschiene-geeicht/284/ds100-multifunktionaler-zweirichtungszaehler-fuer-th35-rs485-modbus-rtu-dlt654/s0/signaleing.?c=94)erfolgreich ausgelesen/eingebunden?
Ich habe versucht das Modul des SDM630 anzupassen, also die Modbus-Register angepaßt. Leider hat es so einfach nicht geklappt. In den Downloads zum Zähler gibt es zwar eine umfangreiche Liste aller auslesbaren Werte und der zugehörigen Modbus-Register, aber ich weiß z.B. nicht mit welchen Funktions-Codes der Zähler angesprochen werden muß und vielleicht stimmen auch meine Registereintragungen nicht. Mit dem ebenfalls herunterladbaren Windows-Tool läßt sich der Zähler (über einen RS485/USB-Adapter) problemlos auslesen und auch einstellen.
Wenn Jemand eine Idee hat wie ich weiter vorgehen könnte wäre das Super.
Hallo @all
Wollte euch nur mitteilen, das der SDM630M supergenau misst. Habe einen IR-Kopf auf meinem Smartmeter, und der passt +-5W mit den Ergebnissen vom 630M zusammen.
Hallo,
nach langer Zeit habe ich mal wieder versucht den DS100 Zähler endlich in Fhem einzubinden.
Grundsätzlich ist mir das inzwischen gelungen, aber ich bekomme immer noch nicht alle Werte ausgelesen. Ich weiß nicht woran es liegt, aber das Modbus-Modul oder/und die Einstellparameter verhalten sich sehr seltsam. Vielleicht bin ich aber auch nur zu blöd das Ganze richtig einzusetzen.
Das ist der momentan erreichte Stand:- Die Verbindung des modifizierten SDM630-Moduls mit dem Modbusmodul funktioniert.
- Ich kann die 32Bit-Werte auslesen (abgesehen davon, daß die Werte alle um den Faktor 1000 zu hoch sind, aber das kann man ja konfigurieren).
- 16Bit-Werte funktionieren praktisch nicht.
- Die meisten unpacking Parameter haben im besten Fall gar keine Wirkung oder bringen im schlimmsten Fall FHEM zum Absturz.
Im Moment fällt mir wirklich nichts mehr ein.
Beispiel einer funktionierenden Verbindung:Modbusregister: 1024
Registerlänge: 2
Datenart: INT32(3+3)
Programmierung im Modul (Auszug):
my %DS100BdeviceInfo = (
"timing" => {
timeout => 5, # 2 seconds timeout when waiting for a response
commDelay => 0.7, # 0.7 seconds minimal delay between two communications e.g. a read a the next write,
# can be overwritten with attribute commDelay if added to AttrList in _Initialize below
sendDelay => 0.7, # 0.7 seconds minimal delay between two sends, can be overwritten with the attribute
# sendDelay if added to AttrList in _Initialize function below
},
"i" => { # details for "input registers" if the device offers them
read => 4, # use function code 4 to read discrete inputs. They can not be read by definition.
defLen => 2, # default length (number of registers) per value ((e.g. 2 for a float of 4 bytes that spans 2 registers)
# can be overwritten in parseInfo per reading by specifying the key "len"
combine => 10, # allow combined read of up to 10 adjacent registers during getUpdate
# combine => 1, # no combined read (read more than one registers with one read command) during getUpdate
# defFormat => "%.3f", # default format string to use after reading a value in sprintf
# can be overwritten in parseInfo per reading by specifying the key "format"
defUnpack => "I>", # default pack / unpack code to convert raw values, e.g. "n" for a 16 bit integer oder
# "f>" for a big endian float IEEE 754 floating-point numbers
# can be overwritten in parseInfo per reading by specifying the key "unpack"
defPoll => 1, # All defined Input Registers should be polled by default unless specified otherwise in parseInfo or by attributes
defShowGet => 1, # default für showget Key in parseInfo
},
"h" => { # details for "holding registers" if the device offers them
read => 3, # use function code 3 to read holding registers.
write => 16, # use function code 6 to write holding registers (alternative could be 16)
defLen => 3, # default length (number of registers) per value (e.g. 2 for a float of 4 bytes that spans 2 registers)
# can be overwritten in parseInfo per reading by specifying the key "len"
combine => 10, # allow combined read of up to 10 adjacent registers during getUpdate
defUnpack => "f>", # default pack / unpack code to convert raw values, e.g. "n" for a 16 bit integer oder
# "f>" for a big endian float IEEE 754 floating-point numbers
# can be overwritten in parseInfo per reading by specifying the key "unpack"
defShowGet => 1, # default für showget Key in parseInfo
},
.
.
.
.
my %DS100BparseInfo = (
# Spannung L3, nur bei jedem 11. Zyklus 10s --> 1min 50s
"i1028" => { # input register 0x0400
name => "A phase and N-phase voltage",
reading => "Voltage_L3",
# format => '%.1f V',
format => '%.1f',
expr => '$val / 1000',
polldelay => "x11",
Empfangene Hex-Daten (Test mit einem Modbustool): 33 04 04
00 03 8a 7a fe c4
Empfangene Dezimal-Daten (in FHEM): 232058
nach Dezimalstellenkorrektur: 232,058 (V)
=> der Wert ist richtig
Beispiel einer nicht funktionierenden Verbindung:Modbusregister: 1077
Registerlänge: 1
Datenart: INT16(2+1)
Programmierung im Modul (Auszug):
# Frequenz, nur bei jedem 13. Zyklus: 10s --> 2min 10s
"i1077" => { # input register 0x0435
name => "Combined frequency",
reading => "Frequency",
expr => '$val / 10',
len => 2, wenn man len=1 eingibt gibt es gar kein Ergebnis
unpack => "I>",
# format => '%.1f Hz',
format => '%.1f',
polldelay => "x13",
},
Empfangene Hex-Daten (Test mit einem Modbustool): 33 04 02
01 f3 c1 21
=> in Dezimal wäre das 499
Empfangene Dezimal-Daten (in FHEM): 3270246.4
=> der Wert ist vollkommen unsinnig
Vielleicht mache ich ja hier auch eine Menge Blödsinn, aber bisher weiß ich es nicht besser. Es wäre schön wenn ich etwas Hilfe bekommen könnte.
So, neuer Stand (es funktioniert endlich):
Nachdem ich mehrere Tage versucht hatte das Modul vom SDM120 für den DS100B anzupassen habe ich es Heute aufgegeben und das Ganze mit dem Modbusattr-Modul neu aufgebaut. Das hat mich zwar auch einiges an Mühe gekostet da ich das Modbusattr-Modul auch noch nie verwendet hatte, aber schlußendlich funktioniert es jetzt. Der Zähler hängt am gleichen Modbus wie alle anderen 10 Zähler und ich habe nun alle für mich relevanten Daten (Code siehe unten). Man könnte noch eine Menge anderer Daten von diesem Zähler abfragen, aber die benötige ich nicht.
Das Gute an diesem Zähler ist der unschlagbare Preis von nur 54,-€ (B+G E-Tech über Amazon, bei Prime ohne Versandkosten) für einen direktmessenden dreiphasigen 100A Zähler mit Modbus,S0 und MID-Eichung.
Hier mein momentaner Stand:
defmod DS100B_52 ModbusAttr 52 30
attr DS100B_52 alias P502 Zähler ELW (Netzstrom)
attr DS100B_52 dev-h-defPoll 1
attr DS100B_52 dev-i-defPoll 1
attr DS100B_52 dev-type-F16-len 1
attr DS100B_52 dev-type-F16-unpack f>
attr DS100B_52 dev-type-S16_0-expr $val/10
attr DS100B_52 dev-type-S16_0-format %.1f
attr DS100B_52 dev-type-S16_0-len 1
attr DS100B_52 dev-type-S16_0-unpack s>
attr DS100B_52 dev-type-S32-len 2
attr DS100B_52 dev-type-S32-unpack l>
attr DS100B_52 dev-type-S32_00-expr $val/100
attr DS100B_52 dev-type-S32_00-format %.2f
attr DS100B_52 dev-type-S32_00-len 2
attr DS100B_52 dev-type-S32_00-unpack l>
attr DS100B_52 dev-type-S32_000-expr $val/1000
attr DS100B_52 dev-type-S32_000-format %.3f
attr DS100B_52 dev-type-S32_000-len 2
attr DS100B_52 dev-type-S32_000-unpack l>
attr DS100B_52 disable 0
attr DS100B_52 event-min-interval .*:300
attr DS100B_52 event-on-change-reading .*
attr DS100B_52 group ELW
attr DS100B_52 icon measure_power
attr DS100B_52 obj-h4096-expr sprintf("%X", $val)
attr DS100B_52 obj-h4096-reading Serial_No_a
attr DS100B_52 obj-h4096-unpack s>
attr DS100B_52 obj-h4097-expr sprintf("%X", $val)
attr DS100B_52 obj-h4097-reading Serial_No_b
attr DS100B_52 obj-h4097-unpack s>
attr DS100B_52 obj-h4098-expr sprintf("%X", $val)
attr DS100B_52 obj-h4098-reading Serial_No_c
attr DS100B_52 obj-h4098-unpack s>
attr DS100B_52 obj-h4099-reading Modbus_ID
attr DS100B_52 obj-h4099-type F16
attr DS100B_52 obj-h4099-unpack s>
attr DS100B_52 obj-h4108-hint 6,7,8,9
attr DS100B_52 obj-h4108-map 6:9600, 7:19200, 8:38400, 9:115200
attr DS100B_52 obj-h4108-reading RS485_Baudrate
attr DS100B_52 obj-h4108-type F16
attr DS100B_52 obj-h4108-unpack s>
attr DS100B_52 obj-h4109-hint 0,1,2
attr DS100B_52 obj-h4109-map 0:no.parity, 1:odd, 2:even
attr DS100B_52 obj-h4109-reading RS485_Parity
attr DS100B_52 obj-h4109-type F16
attr DS100B_52 obj-h4109-unpack s>
attr DS100B_52 obj-h4110-reading RS485_Stopbit
attr DS100B_52 obj-h4110-type F16
attr DS100B_52 obj-h4110-unpack s>
attr DS100B_52 obj-i0270-reading Energy_total__kWh
attr DS100B_52 obj-i0270-type S32_00
attr DS100B_52 obj-i1024-reading Voltage_L1
attr DS100B_52 obj-i1024-type S32_000
attr DS100B_52 obj-i1026-reading Voltage_L2
attr DS100B_52 obj-i1026-type S32_000
attr DS100B_52 obj-i1028-reading Voltage_L3
attr DS100B_52 obj-i1028-type S32_000
attr DS100B_52 obj-i1030-reading Voltage_L1L2
attr DS100B_52 obj-i1030-type S32_000
attr DS100B_52 obj-i1032-reading Voltage_L2L3
attr DS100B_52 obj-i1032-type S32_000
attr DS100B_52 obj-i1034-reading Voltage_L3L1
attr DS100B_52 obj-i1034-type S32_000
attr DS100B_52 obj-i1040-reading Current_L1
attr DS100B_52 obj-i1040-type S32_000
attr DS100B_52 obj-i1042-reading Current_L2
attr DS100B_52 obj-i1042-type S32_000
attr DS100B_52 obj-i1044-reading Current_L3
attr DS100B_52 obj-i1044-type S32_000
attr DS100B_52 obj-i1046-reading Current_N
attr DS100B_52 obj-i1046-type S32_000
attr DS100B_52 obj-i1050-reading Power_L1__W
attr DS100B_52 obj-i1050-type S32
attr DS100B_52 obj-i1052-reading Power_L2__W
attr DS100B_52 obj-i1052-type S32
attr DS100B_52 obj-i1054-reading Power_L3__W
attr DS100B_52 obj-i1054-type S32
attr DS100B_52 obj-i1056-reading Power_total__W
attr DS100B_52 obj-i1056-type S32
attr DS100B_52 obj-i1077-reading Frequency
attr DS100B_52 obj-i1077-type S16_0
attr DS100B_52 obj-i1280-reading Energy_L1__kWh
attr DS100B_52 obj-i1280-type S32_00
attr DS100B_52 obj-i1380-reading Energy_L2__kWh
attr DS100B_52 obj-i1380-type S32_00
attr DS100B_52 obj-i1480-reading Energy_L3__kWh
attr DS100B_52 obj-i1480-type S32_00
attr DS100B_52 room Energiezähler
attr DS100B_52 stateFormat {"P L1: ".ReadingsVal($name,"Power_L1__W",0)." W ".\
"P L2: ".ReadingsVal($name,"Power_L2__W",0)." W ".\
"P L3: ".ReadingsVal($name,"Power_L3__W",0)." W ".\
"P ges: ".ReadingsVal($name,"Power_total__W",0)." W ".\
"E: ".sprintf("%.2f",ReadingsVal($name,"Energy_total__kWh",0))." kWh "\
}
attr DS100B_52 userReadings Serial_No {ReadingsVal("$name", "Serial_No_a", "").\
sprintf("%04d",ReadingsVal("$name", "Serial_No_b", "")).\
sprintf("%04d",ReadingsVal("$name", "Serial_No_c", ""))}
Warum die Werte bei meinem Versuch über das angepaßte Modul teilweise so seltsame Ergebnisse geliefert hatten weiß ich auch nicht, aber egal.
Damit haben sich meine im vorherigen Beitrag genannten Probleme/Fragen erledigt. Das muß sich Niemand mehr anschauen.