DS2438 und Sense-Eingang

Begonnen von Haus-Andi, 05 Januar 2019, 15:31:20

Vorheriges Thema - Nächstes Thema

Haus-Andi

Hallo zusammen

Ich will mittels eines DS2438 meine PV-Module überwachen. Eigentlich bin ich der Meinung das müsste ja gehen? (sollte ja in etwa der gleiche Anwendungsfall sein, wie die Musterbeschaltung auf dem Datenblatt). Dazu habe ich mir Hochpräziese Shunt mit 0.01 Ohm gekauft, diese habe ich nun in das Minuskabel von den PV-Modulen eingebaut. Leider bekomme ich da im fhem immer nur die Anzeige 0 zu sehen.

Zum testen habe ich mir einen auch in die "0V" Zuleitung zu meiner Arbeitsplatzbeleuchtung (LED-Streifen) eingebaut. Wenn ich denn nun anschliesse wie auf dem Datenblatt geht auch nichts. Aber ich habe nun durch probieren herausgefunden, dass ich die 5V-Betriebspannung auch aus dem 1-W Interface nehmen kann und dafür die beiden Sense-Anschlüsse nur am Shunt anschliessen muss. Wenn ich nun via USB-1W interface den Bus Auslese bekomme ich logischerweise genau diesen DS2438 angezeigt und auch die gemessene Spannung am Senseeingang zeigt mir genau das gleiche wie mein Strommessgerät und auch das Labornetzteil. Logischerweise einfach 100x kleiner weil ja 0.01 Ohm ist (Der Sense-Eingang darf max 300mV haben, darum auch die 0.01). Wenn ich jetzt den Bus (1W + GND) ans Fhem anschliesse bekomme ich dort immer eine 0.

Ist es möglich das der "OWMULTI" das Reading beim Sense nicht macht oder gleich die Stellen hinter dem Komma wegkürzt?

Meine Testumgebung ist folgendermassen: Ethernet-USR-RS232-T2 <-> DS2480B <-> DS2438

define Test_OWX OWX 192.168.168.130:23
attr Test_OWX DbLogExclude .*
attr Test_OWX asynchronous 1
attr Test_OWX room Test
attr Test_OWX verbose 0

define OWX_26_AE70A0010000 OWMULTI DS2438 AE70A0010000
attr OWX_26_AE70A0010000 IODev Test_OWX
attr OWX_26_AE70A0010000 model DS2438
attr OWX_26_AE70A0010000 room OWX
attr OWX_26_AE70A0010000 userReadings Strom {sprintf("%.5f",ReadingsNum($name,"sense",0))}


im Logfile steht folgendes (Verbose 5)


----------------------------------------------
2019.01.04 20:28:02 1: OWX_Qomplex: Added dev 26AE70A001000041 to queue Test_OWX numread=20
2019.01.04 20:28:02 1:    queue Test_OWX contains 11 entries after insertion
2019.01.04 20:28:02 1:     => 26AE70A001000041 context write SP expecting 2 bytes, active
2019.01.04 20:28:02 1:     => 26AE70A001000041 context copy SP expecting 1 bytes, waiting
2019.01.04 20:28:02 1:     => 26AE70A001000041 context T conversion expecting 0 bytes, waiting
2019.01.04 20:28:02 1:     => 26AE70A001000041 context V conversion expecting 0 bytes, waiting
2019.01.04 20:28:02 1:     => 26AE70A001000041 context recall expecting 2 bytes, waiting
2019.01.04 20:28:02 1:     => 26AE70A001000041 context ds2438.getvdd expecting 20 bytes, waiting
2019.01.04 20:28:02 1:     => 26AE70A001000041 context write SP expecting 1 bytes, waiting
2019.01.04 20:28:02 1:     => 26AE70A001000041 context copy SP expecting 1 bytes, waiting
2019.01.04 20:28:02 1:     => 26AE70A001000041 context V conversion expecting 0 bytes, waiting
2019.01.04 20:28:02 1:     => 26AE70A001000041 context recall expecting 1 bytes, waiting
2019.01.04 20:28:02 1:     => 26AE70A001000041 context ds2438.getvad expecting 20 bytes, waiting
2019.01.04 20:28:02 1: ----------------------------------------------


Dieser Teil wird 11x wiederholt


2019.01.04 20:28:03 1: OWX_TCP::Query Test_OWX: Sending out0xe3 0xc5
2019.01.04 20:28:03 5: SW: e3c5
2019.01.04 20:28:04 4: OWX_TCP::Query timed out in first attempt - maybe one byte missing
2019.01.04 20:28:04 1: OWX_TCP::Reset_TCP failure on bus Test_OWX
2019.01.04 20:28:04 1: OWX_TCP::Write Sending out 0xe1 0x55 0x26 0xae 0x70 0xa0 0x01 0x00 0x00 0x41 0x48 0x00 0xff
2019.01.04 20:28:04 5: SW: e15526ae70a0010000414800ff
2019.01.04 20:28:05 1: OWX_TCP::Query Test_OWX: Sending out0xe3 0xc5
2019.01.04 20:28:05 5: SW: e3c5
2019.01.04 20:28:06 4: OWX_TCP::Query timed out in first attempt - maybe one byte missing
2019.01.04 20:28:06 1: OWX_TCP::Reset_TCP failure on bus Test_OWX
2019.01.04 20:28:06 1: OWX_TCP::Write Sending out 0xe1 0x55 0x26 0xae 0x70 0xa0 0x01 0x00 0x00 0x41 0x44
2019.01.04 20:28:06 5: SW: e15526ae70a00100004144


Auch dieser Teil wird etliche male wiederholt. Die beiden Spannungen VAD / VDD werden richtig angezeigt.

Weiss jemand da genaueres?
Raspberry Pi+Enocen Pi
Thermokon SR04
Micropelt
USB to 1-Wire

Prof. Dr. Peter Henning

Die Kommunikation scheint zu stimmen.

Es wird tatsächlich in jedem Kanal eine Rundung auf 2 Nachkommastellen vorgenommen - das sollte auch irgendwo in der Doku stehen.

Falls also tatsächlich Werte kleiner als 0,01 auftauchen, wird das als Null angezeigt. Kann man problemlos umgehen, indem man beispielsweise das Attribut WFunction benutzt:

attr <device> WFunction 1000*W

sollte dazu führen, dass auch Werte bis 0,00001 angezeigt werden.

Falls das nicht klappt: Bitte mal temporär in das Modul in Zeile 398 eintragen:

  Log 1, "====> Raw Reading T=".$hash->{owg_val}->[0]." VDD=".$hash->{owg_val}->[1]." VAD=".$hash->{owg_val}->[2]." VSENS=".$hash->{owg_val}->[3];

und hier posten, was das Log sagt.

LG

pah

Haus-Andi

#2
Hallo Pah

Danke für den Tipp, ich werde das nachher gleich in den Keller testen gehen. Mit der "Testumgebung" habe ich natürlich das 1-W Testprogramm von Dallas gemeint, aber ich denke das hast du schon so interpretiert?
Nach langem Suchen bin ich eben genau zu diesem Ergebnis gekommen, das fhem beim einlesen die Werte rundet oder kürzt. Danke für die Bestätigung.

Ich werde berichten was ich herausgefunden habe.
Gruss Andi

Edit:
Also ich muss das ganze nicht mit 1000 sonder nur mit 100 multiplizieren und dann bekomme ich zwischendurch die Werte in die richtige Grösse. Zeitweise stimmen die auch mit den beiden Amperemeter überrein. Nur springt das ganze +- 40-50% hin und her, ein Teil davon ist sicher dem "Laboraufbau" im Steckbrett geschuldet, aber mein Multimeter zeigt konstant immer 0.98-0.99A Verbrauch der Lampe an.
Das müsste nach Dr. Ohm dann 0.0099V geben, ich habe aber Messwerte die zwischen 0.17-24V reichen. Ich denke da wird eine Spannungsversorgung mitgemessen und der DS2438 ist so schnell und erwischt diese Peak.

Ich versuche meine Schaltung mal als Schaltplan zu erstellen, vieleicht kann mir dann ja jemand angeben wo das ich "Abblockkondensatoren" einbauen soll?
Meine Idee besteht eigentlich darin, dass ich auch in der Nacht noch Messungen mit dem Baustein machen will, darum brauche ich ja die externe Versorgungsspannung, sonst könnte ich einfach die Spannung die von der PV kommt verwenden. Ich möchte aber z.b. auch die Oberflächentemperatur der Glasplatte erfassen.

Gruss Andi


Raspberry Pi+Enocen Pi
Thermokon SR04
Micropelt
USB to 1-Wire