Cookies op Tweakers

Tweakers is onderdeel van DPG Media en maakt gebruik van cookies, JavaScript en vergelijkbare technologie om je onder andere een optimale gebruikerservaring te bieden. Ook kan Tweakers hierdoor het gedrag van bezoekers vastleggen en analyseren. Door gebruik te maken van deze website, of door op 'Cookies accepteren' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt? Bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

Energiemonitoring met modbus kWh-meters

Pagina: 1
Acties:

  • Mattias.Campe
  • Registratie: januari 2011
  • Laatst online: 19-07 13:54
Hallo

Graag had ik energiemonitoring gehad van ons volledig huishouden, de PV-panelen en de warmtepomp. Ik dacht aan DIN-rail kWh-meters, die via een RS-485 daisy chain uitgelezen kunnen worden via modbus. Hebben jullie daar ervaring mee?
  • Het huishouden is aangesloten via 3 fasen en zou import/afnamen en export/injectie apart moeten kunnen meten. Iemand een suggestie voor een goede kWh-meter? Een display erop is ok, maar vind ik niet noodzakelijk. De Eastron SDM72D (modbus-versie) zou dit moeten kunnen. Er is ook nog de SDM630 die iets duurder is, maar ik zie niet direct waarom hij duurder is
  • De PV-panelen en warmtepomp zijn aangesloten op 1 fase, waarvoor bv. 2x de Eastron SDM120 geschikt is. Ik merk in enkele topics dat anderen al ervaring hebben met deze kWh meter.
Of hebben jullie nog betere setups :-)?

  • Mattias.Campe
  • Registratie: januari 2011
  • Laatst online: 19-07 13:54
Bedankt voor de feedback. Om alles te verzamelen zal ik normaal ook een raspberry pi met een USB modbus connector gebruiken. Voor het effectieve verwerken ben ik er nog niet uit. Voorlopig misschien gewoon in een csv-bestand. Ik zou al blij zijn als dat zou werken :-).

Hopelijk is de SDM630 documentatie goed, bv. voor de modbusregisters? Is er een specifieke reden dat je de SDM630 hebt gekozen en niet de goedkopere SDM72D? Raad je een bepaalde winkel aan?

  • Mattias.Campe
  • Registratie: januari 2011
  • Laatst online: 19-07 13:54
Top! Interessante links, daar kan ik zeker mee aan de slag! Nu nog de tijd vinden om dat te doen. Maar gezien er in Vlaanderen veel staat te veranderen op vlak van energietransitie, kan ik het alvast niet blijven uitstellen...

Ik had al eens gekeken bij Google Shopping, maar Sander Vunderink kwam daar niet uit. Het loont toch nog altijd om "adresjes" te vragen :-).

  • Mattias.Campe
  • Registratie: januari 2011
  • Laatst online: 19-07 13:54
Ik heb nog geen Pi. Wel netwerkopslag, maar dat is een NAS van een gewone desktop waarop ik OpenMediaVault heb gezet. Niet zo energiezuinig, waardoor deze niet 24/24 uur draait. Enkel als ik deze nodig heb. Maar ik denk dat ik USB-opslag zou kunnen aansluiten aan mijn Fritz!Box 7530, want deze draait toch al 24/24.

@Gizz, hoe is jouw setup precies? Is het een 'daisy chain' van 1e SDM120M -> 2e SDM120M -> 120 ohm weerstand -> TTL-RS485 -> ESP8266 --> opslag? Wat gebruik jij als opslag?

  • Mattias.Campe
  • Registratie: januari 2011
  • Laatst online: 19-07 13:54
Ondertussen heb ik 2xSDM120 en 1xSDM630 aangekocht. Voordat ik alles monteer in de meterkast dacht ik van eerst een kleine setup te maken met 1xSDM120. De display doet alvast zijn ding.

De volgende stap is het uitlezen van waarden via MODBUS, ik gebruik het commandline-commando mbpoll (onderaan die link staat de help) op een Lubuntu-installatie.

Op basis van de de Eastron-documentatie vond ik de addressregisters onderaan de pdf. Daar las ik dat ik 'Voltage' kan lezen op addressRegister 30001, waarbij '3' me 'Read Holding Registers' lijkt te betekenen en het eigenlijk registeradres dus '1' is. Verder staat er: lengte van 4 bytes (float). De Hi byte is 00, de Lo byte is 00.

Dan samengebracht had ik gehoopt dat ik met onderstaand commando de spanning zou kunnen zien:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ sudo mbpoll -m rtu -b 9600 -P none -d 8 -a 1 -r 1 -t 4:float /dev/ttyUSB0
mbpoll 1.0-0 - FieldTalk(tm) Modbus(R) Master Simulator
Protocol configuration: Modbus RTU
Slave configuration...: address = [1]
                        start reference = 1, count = 1
Communication.........: /dev/ttyUSB0,       9600-8N1 
                        t/o 1.00 s, poll rate 1000 ms
Data type.............: 32-bit float (little endian), output (holding) register table

-- Polling slave 1... Ctrl-C to stop)
[1]:    2.38277e-41
-- Polling slave 1... Ctrl-C to stop)
[1]:    2.38277e-41
^C--- /dev/ttyUSB0 poll statistics ---
2 frames transmitted, 2 received, 0 errors, 0.0% frame loss

everything was closed.
Have a nice day !


Helaas :-(... volgens het display zou ik ca. 242.1 V moeten zien, maar 2.38277e-41 komt niet in de buurt. Wat zou er fout kunnen zijn?

  • Mattias.Campe
  • Registratie: januari 2011
  • Laatst online: 19-07 13:54
Ik vond nog inspiratie in deze post op openenergymonitor.org. Ik heb daardoor minimalmodbus geïnstalleerd (en ondertussen heb ik mezelf aan de dialout-groep toegekend, waardoor ik geen sudo meer nodig heb voor /dev/ttyUSB0).

Het script:
Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/env python3
import minimalmodbus

instrument = minimalmodbus.Instrument('/dev/ttyUSB0', 1)  # port name, slave address (in decimal)

instrument.serial.baudrate = 9600         # Baud
instrument.serial.bytesize = 8
instrument.serial.parity   = minimalmodbus.serial.PARITY_NONE
instrument.serial.stopbits = 1
instrument.serial.timeout  = 1          # seconds
instrument.mode = minimalmodbus.MODE_RTU   # rtu or ascii mode

print (instrument)

Voltage = instrument.read_float(0, 4, 2)
Current = instrument.read_float(6, 4, 2)

print ("Voltage: ", Voltage)
print ("Current:", Current)


Als ik dit uitvoer:
$ python3 sdm120-basic.py 
minimalmodbus.Instrument<id=0x7feb65f34370, address=1, mode=rtu, close_port_after_each_call=False, precalculate_read_size=True, clear_buffers_before_each_transaction=True, handle_local_echo=False, debug=False, serial=Serial<id=0x7feb65f34070, open=True>(port='/dev/ttyUSB0', baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=1, xonxoff=False, rtscts=False, dsrdtr=False)>
Voltage:  243.1999969482422
Current: 0.03999999910593033


Alleen snap ik nog niet waarom mbpoll niet het gewenste resultaat geeft. Iemand enig idee?
Pagina: 1


Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Microsoft Xbox Series X LG CX Google Pixel 5a 5G Sony XH90 / XH92 Samsung Galaxy S21 5G Sony PlayStation 5 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True