pyupm_h803x module

class pyupm_h803x.H803X(*args)[source]

Bases: object

UPM API for the Veris H803X Energy Meter.

ID: h803x

Name: Veris H803X Energy Meter Module

Category: electric

Manufacturer: veris

Connection: uart

Link:http://www.veris.com/Item/H8035-0100-2.aspx This module implements support for the Veris H8035 and H8036 Energy Meters.

The H8036 is similar to the H8035, but provides much more data.

The Enercept H8035/H8036 is an innovative three-phase networked (Modbus RTU) power transducer that combines electronics and high accuracy industrial grade CTs in a single package. The need for external electrical enclosures is eliminated, greatly reducing installation time and cost. Color-coordination between voltage leads and CTs makes phase matching easy. Additionally, these transducers automatically detect and compensate for phase reversal, eliminating the concern of CT load orientation. Up to 63 Transducers can be daisy- chained on a single RS-485 network.

This module was developed using libmodbus 3.1.2, and the H8035. The H8036 has not been tested. libmodbus 3.1.2 must be present for this module to build.

It was developed using an RS232->RS485 interface. You cannot use the built in MCU TTL UART pins for accessing this device you must use a full Serial RS232->RS485 or USB-RS485 interface connected via USB.

C++ includes: h803x.hpp

HOLDING_APPARENT_POWER_KVA = 264
HOLDING_AVG_REAL_POWER_KW = 304
HOLDING_CONSUMPTION_KWH = 258
HOLDING_CONSUMPTION_KWH_INT_H = 1
HOLDING_CONSUMPTION_KWH_INT_L = 0
HOLDING_CURRENT = 272
HOLDING_CURRENT_PHASE_A = 298
HOLDING_CURRENT_PHASE_B = 300
HOLDING_CURRENT_PHASE_C = 302
HOLDING_MAX_REAL_POWER_KW = 308
HOLDING_MIN_REAL_POWER_KW = 306
HOLDING_POWER_FACTOR = 266
HOLDING_POWER_FACTOR_PHASE_A = 280
HOLDING_POWER_FACTOR_PHASE_B = 282
HOLDING_POWER_FACTOR_PHASE_C = 284
HOLDING_REACTIVE_POWER_KVAR = 262
HOLDING_REAL_POWER_KW = 260
HOLDING_REAL_POWER_PHASE_A_KWH = 274
HOLDING_REAL_POWER_PHASE_B_KWH = 276
HOLDING_REAL_POWER_PHASE_C_KWH = 278
HOLDING_VOLTS_LINE_TO_LINE = 268
HOLDING_VOLTS_LINE_TO_NEUTRAL = 270
HOLDING_VOLTS_PHASE_AB = 286
HOLDING_VOLTS_PHASE_AC = 290
HOLDING_VOLTS_PHASE_AN = 292
HOLDING_VOLTS_PHASE_BC = 288
HOLDING_VOLTS_PHASE_BN = 294
HOLDING_VOLTS_PHASE_CN = 296
MULT_100A = 128
MULT_1600A = 8
MULT_2400A = 4
MULT_300A_400A = 32
MULT_800A = 16
getApparentPower()[source]

float getApparentPower()

Return the apparent power value in kVA. update() must have been called prior to calling this method.

The apparent power value in kVA.

getAvgRealPower()[source]

float getAvgRealPower()

Return the average real power. update() must have been called prior to calling this method.

The average real power.

getConsumption()[source]

float getConsumption()

Return the accumulated consumption value, in kWh. update() must have been called prior to calling this method.

The accumulated consumption.

getCurrent()[source]

float getCurrent()

Return the current value in amps. update() must have been called prior to calling this method.

The current value in amps.

getCurrentPhaseA()[source]

float getCurrentPhaseA()

Return the current for phase A. update() must have been called prior to calling this method.

The current for phase A.

getCurrentPhaseB()[source]

float getCurrentPhaseB()

Return the current for phase B. update() must have been called prior to calling this method.

The current for phase B.

getCurrentPhaseC()[source]

float getCurrentPhaseC()

Return the current for phase C. update() must have been called prior to calling this method.

The current for phase C.

getMaxRealPower()[source]

float getMaxRealPower()

Return the maximum real power. update() must have been called prior to calling this method.

The maximum real power.

getMinRealPower()[source]

float getMinRealPower()

Return the minimum real power. update() must have been called prior to calling this method.

The minimum real power.

getPowerFactor()[source]

float getPowerFactor()

Return the power factor value. update() must have been called prior to calling this method.

The power factor.

getPowerFactorPhaseA()[source]

float getPowerFactorPhaseA()

Return the power factor for phase A. update() must have been called prior to calling this method.

The power factor for phase A.

getPowerFactorPhaseB()[source]

float getPowerFactorPhaseB()

Return the power factor for phase B. update() must have been called prior to calling this method.

The power factor for phase B.

getPowerFactorPhaseC()[source]

float getPowerFactorPhaseC()

Return the power factor for phase C. update() must have been called prior to calling this method.

The power factor for phase C.

getReactivePower()[source]

float getReactivePower()

Return the reactive power value in kVAR (kilo-volt Amperes Reactive). update() must have been called prior to calling this method.

The reactive power value in kVAR.

getRealPower()[source]

float getRealPower()

Return the real power value in kW. update() must have been called prior to calling this method.

The real power value in kW.

getRealPowerPhaseA()[source]

float getRealPowerPhaseA()

Return the real power for phase A. update() must have been called prior to calling this method.

The real power for phase A.

getRealPowerPhaseB()[source]

float getRealPowerPhaseB()

Return the real power for phase B. update() must have been called prior to calling this method.

The real power for phase B.

getRealPowerPhaseC()[source]

float getRealPowerPhaseC()

Return the real power for phase C. update() must have been called prior to calling this method.

The real power for phase C.

getSlaveID()[source]

string getSlaveID()

Return a string corresponding the the device’s MODBUS slave ID.

string represnting the MODBUS slave ID

getVoltsLineToLine()[source]

float getVoltsLineToLine()

Return the voltage line to line value. update() must have been called prior to calling this method.

The voltage, line to line.

getVoltsLineToNeutral()[source]

float getVoltsLineToNeutral()

Return the voltage line to neutral. update() must have been called prior to calling this method.

The voltage, line to neutral.

getVoltsPhaseAToB()[source]

float getVoltsPhaseAToB()

Return the voltage for phase A to B. update() must have been called prior to calling this method.

The voltage for phase A to B.

getVoltsPhaseAToC()[source]

float getVoltsPhaseAToC()

Return the voltage for phase A to B. update() must have been called prior to calling this method.

The voltage for phase A to B.

getVoltsPhaseAToNeutral()[source]

float getVoltsPhaseAToNeutral()

Return the voltage for phase A to neutral. update() must have been called prior to calling this method.

The voltage for phase A to neutral.

getVoltsPhaseBToC()[source]

float getVoltsPhaseBToC()

Return the voltage for phase B to C. update() must have been called prior to calling this method.

The voltage for phase B to C.

getVoltsPhaseBToNeutral()[source]

float getVoltsPhaseBToNeutral()

Return the voltage for phase B to neutral. update() must have been called prior to calling this method.

The voltage for phase B to neutral.

getVoltsPhaseCToNeutral()[source]

float getVoltsPhaseCToNeutral()

Return the voltage for phase C to neutral. update() must have been called prior to calling this method.

The voltage for phase C to neutral.

isH8036()[source]

bool isH8036()

Indicate whether the connected device is an H8035 or an H8036. The H8036 provides many more data registers.

true if we are using an H8036, false otherwise.

presetConsumption(value, multiplier)[source]

void presetConsumption(float value, MULTIPLIERS_T multiplier)

Preset the kWh accumulated Consumption registers to a predefined value. This is generally not advised, but is provided for those installations that might require it. The multiplier depends on the current range of your device. Be sure to select the right multiplier for your devices’ supported current capacity.

value: The desired value for the consumption accumulator registers in kWh.

multiplier: The correct MULTIPLIERS_T value for your device.

setDebug(enable)[source]

void setDebug(bool enable)

Enable or disable debugging output. This primarily enables and disables libmodbus debugging output.

enable: true to enable debugging, false otherwise

setSlaveAddress(addr)[source]

void setSlaveAddress(int addr)

Set a new MODBUS slave address. This is useful if you have multiple H803X devices on a single bus. When this method is called, the current stored data is cleared, and a new attempt is made to determine whether the target device is an H8035 or H8036.

addr: The new slave address to set

update()[source]

void update()

Read current values from the sensor and update internal stored values. This method must be called prior to querying any values.