Energy Meter DDS6619-039 RS485 Modbus z ali

Automatizace, řízení, měření, logování a programování s využitím platformy Raspberry Pi.
Leo
Příspěvky: 66
Registrován: stř dub 17, 2013 1:21 pm

Energy Meter DDS6619-039 RS485 Modbus z ali

Příspěvek od Leo »

Dobrý den.
Posilaní dat přes RS485 jsem už řešil mnohokrat u raspi i ESP, ale čtení dat přes Modbus ještě ne.
Našel jsem na ali toto a uvažují koupit.
https://www.aliexpress.com/item/1005006370300006.html
A činan mi k tomu poslal i pdf
Nema někdo? Neřešil někdo čtení těch dat přes raspi?
Děkují.

je i na 380V
https://www.aliexpress.com/item/1005006371025147.html
Přílohy
DDS6619-039.png
Soban
Příspěvky: 3842
Registrován: pon úno 07, 2022 10:11 pm
Lokalita: Zlaté Hory / Olomouc
Systémové napětí: 24V
Výkon panelů [Wp]: 3600
Kapacita baterie [kWh]: 16
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Zlaté Hory

Re: Energy Meter DDS6619-039 RS485 Modbus z ali

Příspěvek od Soban »

No a kde je problém?

Prostě si koupíš převodníček USB to RS485 a si napíšeš nějaký SW nebo použiješ třeba nodered pro čtení a zobrazování.
3,6kWp ::pv:: | 2x MUST PV18-3024 VHM, 3kW/24V | 16kWh *batt*
Leo
Příspěvky: 66
Registrován: stř dub 17, 2013 1:21 pm

Re: Energy Meter DDS6619-039 RS485 Modbus z ali

Příspěvek od Leo »

Problem je v tom "si napíšeš nějaký SW"
Třeba se tu najde někdo, kdo už řešil nebo umi lepe hledat a je už nějaka hotova knihovna.
Toto byl od tebe zbytečný spam.

https://info.kmtronic.com/raspberry-pi- ... ter-2.html
Soban
Příspěvky: 3842
Registrován: pon úno 07, 2022 10:11 pm
Lokalita: Zlaté Hory / Olomouc
Systémové napětí: 24V
Výkon panelů [Wp]: 3600
Kapacita baterie [kWh]: 16
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Zlaté Hory

Re: Energy Meter DDS6619-039 RS485 Modbus z ali

Příspěvek od Soban »

Nezlob se ale z tvého dotazu nebylo jasné že hledáš hotové řešení.....

PS. Naklikat pár obdélníčků v node red pro zobrazení hodnot umí i cvičená opice, na to nemusíš být odborník.
3,6kWp ::pv:: | 2x MUST PV18-3024 VHM, 3kW/24V | 16kWh *batt*
cipis
Příspěvky: 5170
Registrován: pon srp 16, 2021 9:31 pm
Lokalita: blízko Brna
Bydliště: blízko Brna

Re: Energy Meter DDS6619-039 RS485 Modbus z ali

Příspěvek od cipis »

Nebo koupit něco, co je standardně podporované. Navíc elměru za pětistovku bych nevěřil, ani tomu MID na něm ...
13,38 kWp: 9850 Wp Jih, 2040 Wp Východ, 1490 Wp Západ
Regulátory Epever a Victron
Phoenix 5 kVA + MP 24/5000 (můj byt + wifi/kamery/atd. + máti byt)
Epever 3kW vytěžování do bojlerů + žebříky
1 kW "nabíječka" 24 V
31 080 Wh staré olovo 7 488 Wh Li-Ion
záloha čerpadla ve sklepě MP12/3000/120-16 + 100Ah 12V monbat
Modře píši jako moderátor, černě jako člen.
josse
Příspěvky: 1184
Registrován: úte úno 14, 2017 9:35 pm

Re: Energy Meter DDS6619-039 RS485 Modbus z ali

Příspěvek od josse »

Mám toto, registry je třeba zkontrolovat a upravit... Pak je dobrý tomu změnit adresu... Ještě nějaký stavy ošetřeny nejsou. Beru to z funkční maliny. Někteří výrobci to mají udělané chytře, že celkové registry se shodují s 1ph a ty 3ph jsou na vyšších adresách.

Kód: Vybrat vše

#!/usr/bin/python3

import serial                   # required for handling of the serial port
import minimalmodbus            # required for handling modbus
import datetime                 # used for timestamps & timecheck
import time                     # used for timestamps & delays
import urllib.request, urllib.error, urllib.parse
import http.client

MeterChargerAddress = 2             # decimal slave-address of the DDS238 kWh-meter

# this could be changed to emoncms.org to post to emoncms.org
server = "emoncms.Někde"

# Location of emoncms
emoncmspath = ""

# Write apikey of emoncms account
apikey = "nějaký"

# Node id youd like the emontx to appear as
nodeid0 = nějaký

MeterCharger = minimalmodbus.Instrument('/dev/ttyUSB0',MeterChargerAddress) # port
name, slave address
MeterCharger.serial.baudrate = 9600
MeterCharger.serial.timeout = 0.5

def Meter_charger_callback():
 try:
  TotalEnergy1 = MeterCharger.read_registers(0,2)
  LifeEnergy_High = TotalEnergy1[0]
  LifeEnergy_Low = TotalEnergy1[1]
  LifeEnergy = 0.01 * ((LifeEnergy_High * 65535) + LifeEnergy_Low)
  NETENERGY = LifeEnergy * 1000
  VOLTAGEA = MeterCharger.read_register(0x80,1)
  VOLTAGEB = MeterCharger.read_register(0x81,1)
  VOLTAGEC = MeterCharger.read_register(0x82,1)
  CURRENTA = MeterCharger.read_register(0x83,2)
  CURRENTB = MeterCharger.read_register(0x84,2)
  CURRENTC = MeterCharger.read_register(0x85,2)
  ActivePower1 = MeterCharger.read_registers(0x86,2)
  ActivePower_High = ActivePower1[0]
  ActivePower_Low = ActivePower1[1]
  ActivePower = (0.01 * ((ActivePower_High * 65535) + ActivePower_Low)) * 100
  ActivePowerA = MeterCharger.read_register(0x88,3)
  ActivePowerB = MeterCharger.read_register(0x89,3)
  ActivePowerC = MeterCharger.read_register(0x8A,3)
  ApparentPower1 = MeterCharger.read_registers(0x90,2)
  ApparentPower_High = ApparentPower1[0]
  ApparentPower_Low = ApparentPower1[1]
  ApparentPower = (0.01 * ((ApparentPower_High * 65535) + ApparentPower_Low)) * 100
  ApparentPowerA = MeterCharger.read_register(0x92,3)
  ApparentPowerB = MeterCharger.read_register(0x93,3)
  ApparentPowerC = MeterCharger.read_register(0x94,3)
  PowerFactor = MeterCharger.read_register(0x95,3)
  PowerFactorA = MeterCharger.read_register(0x96,3)
  PowerFactorB = MeterCharger.read_register(0x97,3)
  PowerFactorC = MeterCharger.read_register(0x98,3)

  data ="NET_Energy:" + str(NETENERGY)
  data += ",VOLTAGEA:" + str(VOLTAGEA)
  data += ",VOLTAGEB:" + str(VOLTAGEB)
  data += ",VOLTAGEC:" + str(VOLTAGEC)
  data += ",CURRENTA:" + str(CURRENTA)
  data += ",CURRENTB:" + str(CURRENTB)
  data += ",CURRENTC:" + str(CURRENTC)
  data += ",ACTIVE_POWER:" + str(ActivePower)
  data += ",ACTIVE_POWERA:" + str(ActivePowerA)
  data += ",ACTIVE_POWERB:" + str(ActivePowerB)
  data += ",ACTIVE_POWERC:" + str(ActivePowerC)
  data += ",APPARENT_POWER:" + str(ApparentPower)
  data += ",APPARENT_POWERA:" + str(ApparentPowerA)
  data += ",APPARENT_POWERB:" + str(ApparentPowerB)
  data += ",APPARENT_POWERC:" + str(ApparentPowerC)
  data += ",POWER_FACTOR:" + str(PowerFactor)
  data += ",POWER_FACTORA:" + str(PowerFactorA)
  data += ",POWER_FACTORB:" + str(PowerFactorB)
  data += ",POWER_FACTORC:" + str(PowerFactorC)
  if not data =="": send = send_data(data)

 except Exception as e:
  print("error sending to emoncms...: " + str(e))

 time.sleep (1)

def send_data(data):
 # Send data to emoncms server
 try:
  conn = http.client.HTTPConnection(server)
  conn.request("GET", "/"+emoncmspath+"/input/post.json?&node="+str(nodeid0)+"&json
="+data+"&apikey="+apikey)
  response = conn.getresponse()
  conn.close()

 except Exception as e:
  #print "error sending to emoncms...: " + str(e)
  return ''
 return 1

while True:
 Meter_charger_callback()
 time.sleep (1)

 ! Zpráva od: lzahradil
kód dávej do tagu code (stačí kód označit a stisknout alt+c) aby to nezapláclo celou stránku. Zůstane i správné formátování
15x GWL Poly 300Wp 72 cells, 1-2x Axpert MKS 48V 4000W, 3x80P14S 18650 (~640Ah/34kWh), https://emoncms.trenet.org/dashboard/view?id=3, https://solarforum.cz/

  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek