Alle "einfachen Werte" kann ich soweit auslesen, aber wie muss die Konfiguration für das "Active Energy" Register sein?
Dieses liefert nicht nur einen Wert zurück, sondern 5 Stück. Total, T1,T2,T3,T4 Mich interessiert nur der erste Wert, wie komm ich an den dran?
Output der Original Software, zuerst ein "normales Register" angefragt und dann das sonderteil um 39:612
14:47:39:159 Write: 06 03 01 40 00 02 C5 94
14:47:39:487 Read: 06 03 04 00 00 00 9F CC 9B
14:47:39:612 Write: 06 03 A0 00 00 0A E6 7A
14:47:39:938 Read: 06 03 14 00 00 00 11 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00 A5 35
14:47:40:296 Over
Interessant sind entsprechend für mich nur die ersten 4 Datenbytes 00 00 00 11
Ich krieg aber noch nichtmal ein entsprechendes Reading, in dem zumindest Mist drinsteht.
Sauber formatiert sieht das ganze so aus:
Active Power:
0,159 kW
Active Energy:
Total:0,17 kWh
T1:0,17 kWh
T2:0,00 kWh
T3:0,00 kWh
T4:0,00 kWh
Active Power frag ich dabei so ab:
attr Stromverbrauch_Zaehler3 dev-h-defLen 2
attr Stromverbrauch_Zaehler3 dev-h-defPoll 1
attr Stromverbrauch_Zaehler3 dev-h-defUnpack l
attr Stromverbrauch_Zaehler3 obj-h320-expr $val/1000
attr Stromverbrauch_Zaehler3 obj-h320-reading P_act
attr Stromverbrauch_Zaehler3 obj-h320-unpack N
Das Sonderregister versuche ich mit
attr Stromverbrauch_Zaehler3 obj-40960-len 10
attr Stromverbrauch_Zaehler3 obj-40960-reading Energie_Total_aktiv
attr Stromverbrauch_Zaehler3 obj-40960-unpack N
hat keiner eine Idee?
Warum "obj-40960" ?
vielen Dank für deine Antwort.
Weil das Register &hA000 ist laut der Original Software und Doku die ich finden konnte
Zitat von: andi11 am 21 Juli 2020, 18:33:55
vielen Dank für deine Antwort.
Weil das Register &hA000 ist laut der Original Software und Doku die ich finden konnte
Dann eher obj-h40960 wenn das ein "holding" Register ist
arg ja, Mist. Da ist mir wohl beim rumprobieren ein Fehler passiert.
Hast du auch ne Idee, wie ich Unpack usw setzen muss? Len wäre ich jetzt bei 10 da 10Word / 5x4Bytes Nutzdaten
Len 10 = 10 Register = 160 bits = 20 Bytes, ja
Aber Du sagst, Du brauchst nicht die 20 Bytes00 00 00 11 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00
sondern nur den ersten Wert00 00 00 11
also len 4 sollte reichen. Ob es mit dem ModbusAttr Modul möglich ist, aus einem 20 Bytes Register, nur die 4 ersten zu lesen, weiss ich nicht. Wenn es geht, dann sollte unpack N OK sein
Aber den ganzen 20 Bytes Wert zu N-unpacken macht wenig Sinn, es sei denn Du machst danach irgendeine Kalkulation dazu.
warum auch immer,
attr Stromverbrauch_Zaehler3 obj-h40960-expr $val/100
attr Stromverbrauch_Zaehler3 obj-h40960-len 10
attr Stromverbrauch_Zaehler3 obj-h40960-reading total-get
attr Stromverbrauch_Zaehler3 obj-h40960-unpack N
scheint wunderbar zu klappen. Sieht so aus als ob unpack mit den ersten Bytes arbeitet.
Ich hab mal rumprobiert, aber nicht mit Len=2 oder Len=4, einfach weil ich mir denke das müsste man dem Slave extra mitteilen.
Wahrscheinlich weil Du dev-h-defLen 2 hast.
weis ich nicht, ich dachte defLen überschreibt len.
Zitat von: andi11 am 21 Juli 2020, 19:55:08
weis ich nicht, ich dachte defLen überschreibt len.
Genau. Wenn ich das Ding richtig verstehe, liest er zwar 10 Register, interpretiert aber davon nur 2 als 32 bits Integer
hm, oder es ist das unpack N was den Rest ignoriert, jedenfalls gehts 1a :)
Also rein von der Logik von unpack aus, unpackt N ohne Suffix (kein N*, kein N2) ein "unsigned long (32-bit) in "network" (big-endian) order."
Moin Andy, und guten Rutsch allen...
ich hab mir grad den OR-WE 516 bestellt und werde dann in ein paar Tagen vor dem Rätsel stehen, wie ich ihn in FHEM integrieren kann.
Da du es offensichtlich hinbekommen hast, möchte ich einmal fragen, ob du die nötigen Konfigurationen mal als textfile oder kompletten codeschnipsel hier posten könntest.
Ich vermute mir als Windowskind wird es ebenso Probleme bereiten, den RS485-Adapter zu konfigurieren. Auch diese Schnipsel würden mir da sicherlich sehr helfen.
Danke.
(Hab die Konfiguration meines FHEM zuletzt vor 2 Jahren angefasst - da ist schon wieder sehr vieles dem Datenabbau im Langzeitgedächtnis zum Opfer gefallen... ;) )
aber gerne doch. Gib bescheid wenn du die Infos für den 1ph Zähler auch brauchst
Das Modbus Device (ID musst du dir selbst raussuchen unter /dev/serial/by-id
define ModbusLine Modbus /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@9600,8,E,1
Stromzähler:
Es gibt noch mehr Register, aber mit der Zeit nutz ich immer weniger...
Dabei ist 7 die ID von meinem Zähler (ich hab mehrere)
define Stromverbrauch_Zaehler1 ModbusAttr 7 300
attr Stromverbrauch_Zaehler1 userattr dev-h-defLen dev-h-defPoll dev-h-defUnpack dev-timing-commDelay obj-h0-reading obj-h13-len obj-h13-reading obj-h14-format obj-h14-poll obj-h14-reading obj-h14-unpack obj-h16-format obj-h16-poll obj-h16-reading obj-h16-unpack obj-h18-format obj-h18-poll obj-h18-reading obj-h18-unpack obj-h2-len obj-h2-reading obj-h20-format obj-h20-poll obj-h20-reading obj-h20-unpack obj-h22-format obj-h22-reading obj-h22-unpack obj-h24-format obj-h24-reading obj-h24-unpack obj-h256-format obj-h256-reading obj-h256-unpack obj-h26-format obj-h26-reading obj-h26-unpack obj-h264-format obj-h264-poll obj-h264-reading obj-h264-unpack obj-h272-format obj-h272-poll obj-h272-reading obj-h272-unpack obj-h28-format obj-h28-reading obj-h28-unpack obj-h280-format obj-h280-reading obj-h280-unpack obj-h288-format obj-h288-reading obj-h288-unpack obj-h296-format obj-h296-reading obj-h296-unpack obj-h3-len obj-h3-reading obj-h30-format obj-h30-reading obj-h30-unpack obj-h32-format obj-h32-reading obj-h32-unpack obj-h34-format obj-h34-reading obj-h34-unpack obj-h36-format obj-h36-reading obj-h36-unpack obj-h38-format obj-h38-reading obj-h38-unpack obj-h40-format obj-h40-reading
attr Stromverbrauch_Zaehler1 DbLogExclude .*
attr Stromverbrauch_Zaehler1 DbLogInclude .*(stat|VerbrauchLastMonth|intensity|statIntensityHour).*
attr Stromverbrauch_Zaehler1 dev-h-defLen 4
attr Stromverbrauch_Zaehler1 dev-h-defPoll 1
attr Stromverbrauch_Zaehler1 dev-h-defUnpack f>
attr Stromverbrauch_Zaehler1 dev-timing-commDelay 0.5
attr Stromverbrauch_Zaehler1 dev-timing-timeout 5
attr Stromverbrauch_Zaehler1 disable 0
attr Stromverbrauch_Zaehler1 enableControlSet 1
attr Stromverbrauch_Zaehler1 event-min-interval .*:600
attr Stromverbrauch_Zaehler1 event-on-change-reading .*
attr Stromverbrauch_Zaehler1 obj-h14-format %.1f
attr Stromverbrauch_Zaehler1 obj-h14-poll 0
attr Stromverbrauch_Zaehler1 obj-h14-reading V1
attr Stromverbrauch_Zaehler1 obj-h16-format %.1f
attr Stromverbrauch_Zaehler1 obj-h16-poll 0
attr Stromverbrauch_Zaehler1 obj-h16-reading V2
attr Stromverbrauch_Zaehler1 obj-h18-format %.1f
attr Stromverbrauch_Zaehler1 obj-h18-poll 0
attr Stromverbrauch_Zaehler1 obj-h18-reading V3
attr Stromverbrauch_Zaehler1 obj-h20-format %.1f
attr Stromverbrauch_Zaehler1 obj-h20-poll 0
attr Stromverbrauch_Zaehler1 obj-h20-reading GridFreq
attr Stromverbrauch_Zaehler1 obj-h256-format %.3f
attr Stromverbrauch_Zaehler1 obj-h256-reading total-get
attr Stromverbrauch_Zaehler1 obj-h264-format %i
attr Stromverbrauch_Zaehler1 obj-h264-poll 0
attr Stromverbrauch_Zaehler1 obj-h264-reading E_forw_act_tot
attr Stromverbrauch_Zaehler1 obj-h272-format %i
attr Stromverbrauch_Zaehler1 obj-h272-poll 0
attr Stromverbrauch_Zaehler1 obj-h272-reading E_rev_act_tot
attr Stromverbrauch_Zaehler1 obj-h28-format %.3f
attr Stromverbrauch_Zaehler1 obj-h28-reading P_act_tot
attr Stromverbrauch_Zaehler1 obj-h30-format %.3f
attr Stromverbrauch_Zaehler1 obj-h30-reading P1_act
attr Stromverbrauch_Zaehler1 obj-h32-format %.3f
attr Stromverbrauch_Zaehler1 obj-h32-reading P2_act
attr Stromverbrauch_Zaehler1 obj-h34-format %.3f
attr Stromverbrauch_Zaehler1 obj-h34-reading P3_act
attr Stromverbrauch_Zaehler1 room Technik
attr Stromverbrauch_Zaehler1 stateFormat P_act_tot kW aktuell
attr Stromverbrauch_Zaehler1 webCmd reread
Verbrauch pro Tag usw. mach ich per Statistics Modul
Danke Dir und Gesundes Neues allen...!
Wenn ich das richtig verstanden habe muss ich die Modbus-ID nur in dieser Zeile anpassen:?
"define Stromverbrauch_Zaehler1 ModbusAttr 7 300" <- die 7 durch die ID meines Zählers ersetzen.
ich muss dann noch eine Bibliothek für den Modbus einbinden oder passiert das automatisch über die define Modbusline - Zeile?
Über die Darstellung mach ich mir dann Gedanken, wenn ich das soweit erstmal zum Laufen bekommen habe - Der Zähler und das RS485 Modul kommen ja erst in der kommenden Woche...
(Ich möchte damit momentan als Graph über den Tag die benötigte Leistung erfassen. Ziel ist die Ermittlung des derzeitigen Eigenverbrauchs und wie groß ich eine geplante Photovoltaikanlage auslegen sollte - theoretisch möchte ich schon die 10kVAp anstreben, aber das macht wieder nur dann Sinn, wenn ich diese Leistung dann auch selbst verbrauchen kann - Sinnlos an die EVU "verschenken" möchte ich den erzeugten Strom auch nicht. -> In der kalten Jahreszeit kann ich überschüssige Energie in jedem Fall auch sehr sinnvoll in die Heizung pumpen aber im Sommer müsste ich mir dann noch einen Pool anlegen, um den zu beheizen, und das klingt für mich eben auch nicht sonderlich sinnvoll...)
Ja ID musst du anpassen aber auch bei Modbusline die Adresse deines Gerätes.
Meld dich wenn dein Zähler läuft wegen der Charts. Ich zeig in einem Gesamtchart für das Jahr aktuellen Verbrauch / Monat aktuelles /letztes Jahr. Genau wie "Forecast aktueller Monat Verbrauch"mit und ohne PV Anlage incl. Eigenverbrauch der PV Anlage usw
Hallo allerseits,
mal ne Frage am Rande: Zwischen dem Stromzähler und dem FHEM-Server liegen ca. 10m Distanz - ich habe zwischen beinen Punkten ein Cat5 Kabel liegen, welches ich jetzt für die Verbindung Zähler und RS485-Adapter nutzen würde. Der Adapter hat Anschlüsse A, B und GND. -> A und B werden mit dem Zähler verbunden und GND würde ich noch auf die übrigen Leitungen legen, sozusagen als "Schirmung"
Kann das so funktionieren oder ist das zu viel Kabellänge?
10m sind garkein Problem wenn du ein vernünftiges Kabel hast. Idealerweise verdrillt und geschirmt => Cat5 ist dafür sehr gut. Baudrate ist auch sehr gering in der Standarteinstellung mit 9600.
Das mit GND kannste so machen.
Hallo Andi,
hab den Zähler am Wochenende eingebaut und heute mit dem Raspi verbunden.
Ich habe mir dazu ein Logfile angelegt und daraus wird ein SVG gezeichnet. - Sieht soweit ganz gut aus. Allerdings würden die Kurven noch etwas geiler aussehen, wenn man die Abtastrate auf 1min reduzieren könnte - ich hab nur grad absolut keinen Schimmer, welches Attribut das steuern könnte oder ist das aufgrund der Datenrate und den abzufragenden Werten schon die minimale Zeitschleife?
Edit:
Habs gefunden - ich musste in der Ansicht des Devices diese Zeile eingeben: "Set Stromverbrauch_Zaehler1 interval 60"
In der fhem.cfg habe ich diese Einstellung danach allerdings nicht wiedergefunden...
perfekt, alternativ die 300 beim define entsprechend anpassen (300=300 Sekunden)
define Stromverbrauch_Zaehler1 ModbusAttr 7 300
Hi Andi,
ich hab jetzt den 514 hier neber mir liegen und grad mit der Orno Software am Windows PC hängen. Funktioniert soweit, scheinbar braucht die LED die da grad dran hängt aber so wenig, dass er keinen Strom anzeigt. Current ist 0. Nachdem der min Strom gemäß Datenblatt aber 0,25 A ist, mach ich mir da mal keine Sorgen, da bin ich mit der Funzel bei den angezeigten 231,69V sicher drunter. Lange Rede, wärst du so nett auf die Conf für den WE514 zu posten, Den 516 (und mehr) besorg ich mir dann wenn das mit dem 514 in FHEM klappt :)
Vielen Dank
Bernhard
na klar, gerne. Ich verwende da nicht viele Register. Der misst bei mir nur die Erzeugung der PV Anlage. Bezug/Lieferung unterscheide kann er auch nicht
define Stromverbrauch_Zaehler3 ModbusAttr 6 300
attr Stromverbrauch_Zaehler3 userattr dev-h-defLen dev-h-defPoll dev-h-defUnpack dev-timing-commDelay obj-40960-format obj-40960-len obj-40960-reading obj-40960-unpack obj-h272-format obj-h272-len obj-h272-reading obj-h272-unpack obj-h273-len obj-h273-reading obj-h273-unpack obj-h304-expr obj-h304-format obj-h304-poll obj-h304-reading obj-h304-unpack obj-h305-expr obj-h305-format obj-h305-len obj-h305-poll obj-h305-reading obj-h305-unpack obj-h313-expr obj-h313-format obj-h313-len obj-h313-poll obj-h313-reading obj-h313-unpack obj-h320-expr obj-h320-reading obj-h320-unpack obj-h328-expr obj-h328-poll obj-h328-reading obj-h328-unpack obj-h336-expr obj-h336-reading obj-h336-unpack obj-h40960-expr obj-h40960-len obj-h40960-reading obj-h40960-unpack
attr Stromverbrauch_Zaehler3 DbLogExclude .*
attr Stromverbrauch_Zaehler3 DbLogInclude .*(P_act|statTotal|ErzeugungLastMonth|ErzeugungDay).*
attr Stromverbrauch_Zaehler3 dev-h-defLen 2
attr Stromverbrauch_Zaehler3 dev-h-defPoll 1
attr Stromverbrauch_Zaehler3 dev-h-defUnpack l
attr Stromverbrauch_Zaehler3 dev-timing-commDelay 0.5
attr Stromverbrauch_Zaehler3 dev-timing-timeout 2
attr Stromverbrauch_Zaehler3 enableControlSet 1
attr Stromverbrauch_Zaehler3 event-min-interval 600
attr Stromverbrauch_Zaehler3 event-on-change-reading .*
attr Stromverbrauch_Zaehler3 obj-h304-expr $val/1000
attr Stromverbrauch_Zaehler3 obj-h304-format %.2f
attr Stromverbrauch_Zaehler3 obj-h304-poll 0
attr Stromverbrauch_Zaehler3 obj-h304-reading GridFreq
attr Stromverbrauch_Zaehler3 obj-h304-unpack n
attr Stromverbrauch_Zaehler3 obj-h305-expr $val/100
attr Stromverbrauch_Zaehler3 obj-h305-format %.1f
attr Stromverbrauch_Zaehler3 obj-h305-len 1
attr Stromverbrauch_Zaehler3 obj-h305-poll 0
attr Stromverbrauch_Zaehler3 obj-h305-reading Voltage
attr Stromverbrauch_Zaehler3 obj-h305-unpack n
attr Stromverbrauch_Zaehler3 obj-h313-expr $val/1000
attr Stromverbrauch_Zaehler3 obj-h313-format %.3f
attr Stromverbrauch_Zaehler3 obj-h313-poll 0
attr Stromverbrauch_Zaehler3 obj-h313-reading Current
attr Stromverbrauch_Zaehler3 obj-h313-unpack N
attr Stromverbrauch_Zaehler3 obj-h320-expr $val/1000
attr Stromverbrauch_Zaehler3 obj-h320-reading P_act
attr Stromverbrauch_Zaehler3 obj-h320-unpack N
attr Stromverbrauch_Zaehler3 obj-h328-expr $val/1000
attr Stromverbrauch_Zaehler3 obj-h328-poll 0
attr Stromverbrauch_Zaehler3 obj-h328-reading Q_act
attr Stromverbrauch_Zaehler3 obj-h328-unpack N
attr Stromverbrauch_Zaehler3 obj-h336-expr $val/1000
attr Stromverbrauch_Zaehler3 obj-h336-reading S_act
attr Stromverbrauch_Zaehler3 obj-h336-unpack N
attr Stromverbrauch_Zaehler3 obj-h40960-expr $val/100
attr Stromverbrauch_Zaehler3 obj-h40960-len 10
attr Stromverbrauch_Zaehler3 obj-h40960-reading total-get
attr Stromverbrauch_Zaehler3 obj-h40960-unpack N
attr Stromverbrauch_Zaehler3 room Technik
attr Stromverbrauch_Zaehler3 stateFormat P_act kW aktuell
attr Stromverbrauch_Zaehler3 userReadings ForecastAktMonth:statTotal-get.* {calcmonthusageSplit($name,"statTotal-get",5)}
attr Stromverbrauch_Zaehler3 webCmd reread
Super fix Andi - danke
Mal schauen ob ich am WE die Zeit hab das in Betrieb zu nehmen
Letzes WE keine Zeit gehabt- aber heute. Geht auch Anhieb mit deiner Config Andi.
Vielen Dank nochmal, da hät ich bestimmt ein paar Stunden gebastelt
gerne doch. Das ist doch genau das tolle an FHEM => Die Community.
Ohne die hätte ich den Zähler auch nicht zum laufen gebracht. Zum einen auch wegen dem Modbus Modul, zum anderen wegen der Hilfe zu den komischeren Registern...