hi all
can you help me setut modbus binding with oh2
i try to setup SDM120 Modbus Single Phase Multifunction Energy Meter via RS485/ModBus
it works fine with python script
#!/usr/bin/env python
# Modbus uitlezen
# Apparaat: EASTRON SDM120 (KWh meter)
#
# Script gemaakt door S. Ebeltjes (domoticx.nl)
from __future__ import division
import pymodbus
import serial
from pymodbus.pdu import ModbusRequest
from pymodbus.client.sync import ModbusSerialClient as ModbusClient #initialize a serial RTU client instance
from pymodbus.transaction import ModbusRtuFramer
from pymodbus.constants import Endian # Nodig voor 32-bit float getallen (2 registers / 4 bytes)
from pymodbus.payload import BinaryPayloadDecoder # Nodig voor 32-bit float getallen (2 registers / 4 bytes)
from pymodbus.payload import BinaryPayloadBuilder # Nodig om 32-bit floats te schrijven naar register
method = "rtu"
port = "/dev/ttyUSB0"
baudrate = 9600
stopbits = 1
bytesize = 8
parity = "N"
timeout = 1
retries = 2
try:
client = ModbusClient(method = method, port = port, stopbits = stopbits, bytesize = bytesize, parity = parity, baudrate = baudrate, timeout = timeout, retries = retries)
connection = client.connect()
except:
print "Modbus connectie error / EASTRON SDM120"
def kwh(appid,reg1):
data = client.read_input_registers(reg1, 2, unit=appid)
print data.registers
decoder = BinaryPayloadDecoder.fromRegisters(data.registers,Endian.Big) # endian=Endian.Little / endian=Endian.Big
eastron_sdm120_kwh = round(decoder.decode_32bit_float(), 2)
client.close()
return eastron_sdm120_kwh
print "Voltage: ", kwh(1,0), "Volts"
print "Active Power: ", kwh(1,12), "Watts"
print "Current: ", kwh(1,6), "Amps"
print "Frequency: ", kwh(1,70),"Hz"
print "Active Enargy: ", kwh(1,342),"kWh"
output :
Voltage: [17267, 39322]
243.6 Volts
Active Power: [17378, 45875]
453.4 Watts
Current: [16405, 24642]
2.33 Amps
Frequency: [16968, 0]
50.0 Hz
Active Enargy: [17033, 36569]
68.78 kWh
but i have no idea how to setup .thing and .item files
via paperUI i just this info http://prntscr.com/n9rlrd but cant recieve same as from python script
Thank you in advance!