ORNO OR-WE-516 3 phase energy meter with RS485 ( modbus rtu) OH3

Hello
This is my first post on this forum , and I’d like to share my working setup for ORNO OR-WE-516 3 phase energy meter with RS485 ( modbus rtu). It works for me, so it might be useful for others.
I use this meter for my photovoltaic system metering .

sample data :

Item ‘mt_PV_curr_L3’ changed from 0.5299999713897705 to 0.5400000214576721 [ A]
Item ‘mt_PV_power_L3’ changed from 0.11400000005960464 to 0.11100000143051147 [kW]
Item ‘mt_PV_volt_L1’ changed from 235.3000030517578 to 235.39999389648438 [V]

ornomodbus.things :

// ORNO OR-WE-516 3 phase energy meter with RS485 ( modbus rtu)

Bridge modbus:serial:localSerial [port="/dev/ttyUSB0", id=1, baud=9600, stopBits=“1”, parity=“even”, dataBits=8, encoding=“rtu”]

{

    Bridge poller getVolt [ start=14, length=6 , refresh=1000, type="holding" ] 

    {

        //Thing data mt_PV_volt_L1 [ readStart="40014", readValueType="uint16", readTransform="JS(divide100.js)" ]

        Thing data mt_PV_volt_L1 [ readStart="14" , readValueType="float32"  ]

        Thing data mt_PV_volt_L2 [ readStart="16" , readValueType="float32"  ]

        Thing data mt_PV_volt_L3 [ readStart="18" , readValueType="float32"  ]

    }

    Bridge poller getCurr [ start=22, length=6 , refresh=1000, type="holding" ] 

    {

        Thing data mt_PV_curr_L1 [ readStart="22" , readValueType="float32"  ]

        Thing data mt_PV_curr_L2 [ readStart="24" , readValueType="float32"  ]

        Thing data mt_PV_curr_L3 [ readStart="26" , readValueType="float32"  ]

       

    }

    Bridge poller getPower [ start=28, length=8 , refresh=1000, type="holding" ] 

    {

        Thing data mt_PV_power_total [ readStart="28" , readValueType="float32"  ]

        Thing data mt_PV_power_L1 [ readStart="30" , readValueType="float32"  ]

        Thing data mt_PV_power_L2 [ readStart="32" , readValueType="float32"  ]

        Thing data mt_PV_power_L3 [ readStart="34" , readValueType="float32"  ]

    }

   

    Bridge poller getEnergy [ start=256, length=8 , refresh=1000, type="holding" ] 

    {

        Thing data mt_PV_energy_total [ readStart="256" , readValueType="float32"  ]

        Thing data mt_PV_energy_L1 [ readStart="258" , readValueType="float32"  ]

        Thing data mt_PV_energy_L2 [ readStart="260" , readValueType="float32"  ]

        Thing data mt_PV_energy_L3 [ readStart="262" , readValueType="float32"  ]

    }

     Bridge poller getEnergyFwd [ start=264, length=8 , refresh=1000, type="holding" ] 

    {

        Thing data mt_PV_energy_fwd_total [ readStart="264" , readValueType="float32"  ]

        Thing data mt_PV_energy_fwd_L1 [ readStart="266" , readValueType="float32"  ]

        Thing data mt_PV_energy_fwd_L2 [ readStart="268" , readValueType="float32"  ]

        Thing data mt_PV_energy_fwd_L3 [ readStart="270" , readValueType="float32"  ]

    }

    Bridge poller getEnergyRev [ start=272, length=8 , refresh=1000, type="holding" ] 

    {

        Thing data mt_PV_energy_rev_total [ readStart="272" , readValueType="float32"  ]

        Thing data mt_PV_energy_rev_L1 [ readStart="274" , readValueType="float32"  ]

        Thing data mt_PV_energy_rev_L2 [ readStart="276" , readValueType="float32"  ]

        Thing data mt_PV_energy_rev_L3 [ readStart="278" , readValueType="float32"  ]

    }

   

    Bridge poller getPowerF [ start=52, length=8 , refresh=1000, type="holding" ] 

    {

        Thing data mt_PV_powerf_total [ readStart="52" , readValueType="float32"  ]

        Thing data mt_PV_powerf_L1 [ readStart="54" , readValueType="float32"  ]

        Thing data mt_PV_powerf_L2 [ readStart="56" , readValueType="float32"  ]

        Thing data mt_PV_powerf_L3 [ readStart="58" , readValueType="float32"  ]

    }

    Bridge poller getFreq [ start=20, length=2 , refresh=1000, type="holding" ] 

    {

        Thing data mt_PV_freq [ readStart="20" , readValueType="float32"  ]

    }

}

orno.items :
// PV meter

Number mt_PV_volt_L1 “L1 Volt [%.1f V]”{ channel=“modbus:data:localSerial:getVolt:mt_PV_volt_L1:number”}

Number mt_PV_volt_L2 “L2 Volt [%.1f V]”{ channel=“modbus:data:localSerial:getVolt:mt_PV_volt_L2:number”}

Number mt_PV_volt_L3 “L3 Volt [%.1f V]”{ channel=“modbus:data:localSerial:getVolt:mt_PV_volt_L3:number”}

Number mt_PV_curr_L1 “L1 Curr [%.2f A]”{ channel=“modbus:data:localSerial:getCurr:mt_PV_curr_L1:number”}

Number mt_PV_curr_L2 “L2 Curr [%.2f A]”{ channel=“modbus:data:localSerial:getCurr:mt_PV_curr_L2:number”}

Number mt_PV_curr_L3 “L3 Curr [%.2f A]”{ channel=“modbus:data:localSerial:getCurr:mt_PV_curr_L3:number”}

Number mt_PV_power_total “Total power [%.3f kW]”{ channel=“modbus:data:localSerial:getPower:mt_PV_power_total:number”}

Number mt_PV_power_L1 “L1 power [%.3f kW]”{ channel=“modbus:data:localSerial:getPower:mt_PV_power_L1:number”}

Number mt_PV_power_L2 “L2 power [%.3f kW]”{channel=“modbus:data:localSerial:getPower:mt_PV_power_L2:number”}

Number mt_PV_power_L3 “L3 power [%.3f kW]”{ channel=“modbus:data:localSerial:getPower:mt_PV_power_L3:number”}

Number mt_PV_energy_total “Total energy [%.1f kWh]”{ channel=“modbus:data:localSerial:getEnergy:mt_PV_energy_total:number”}

Number mt_PV_energy_L1 “L1 energy [%.1f kWh]”{ channel=“modbus:data:localSerial:getEnergy:mt_PV_energy_L1:number”}

Number mt_PV_energy_L2 “L2 energy [%.1f kWh]”{ channel=“modbus:data:localSerial:getEnergy:mt_PV_energy_L2:number”}

Number mt_PV_energy_L3 “L3 energy [%.1f kWh]”{ channel=“modbus:data:localSerial:getEnergy:mt_PV_energy_L3:number”}

Number mt_PV_energy_fwd_total “Total FWD energy [%.1f kWh]”{ channel=“modbus:data:localSerial:getEnergyFwd:mt_PV_energy_fwd_total:number”}

Number mt_PV_energy_fwd_L1 “L1 FWD energy [%.1f kWh]”{ channel=“modbus:data:localSerial:getEnergyFwd:mt_PV_energy_fwd_L1:number”}

Number mt_PV_energy_fwd_L2 “L2 FWD energy [%.1f kWh]”{ channel=“modbus:data:localSerial:getEnergyFwd:mt_PV_energy_fwd_L2:number”}

Number mt_PV_energy_fwd_L3 “L3 FWD energy [%.1f kWh]”{channel=“modbus:data:localSerial:getEnergyFwd:mt_PV_energy_fwd_L2:number”}

Number mt_PV_energy_rev_total “Total REV energy [%.1f kWh]”{ channel=“modbus:data:localSerial:getEnergyRev:mt_PV_energy_rev_total:number”}

Number mt_PV_energy_rev_L1 “L1 REV energy [%.1f kWh]”{ channel=“modbus:data:localSerial:getEnergyRev:mt_PV_energy_rev_L1:number”}

Number mt_PV_energy_rev_L2 “L2 REV energy [%.1f kWh]”{ channel=“modbus:data:localSerial:getEnergyRev:mt_PV_energy_rev_L2:number”}

Number mt_PV_energy_rev_L3 “L3 REV energy [%.1f kWh]”{channel=“modbus:data:localSerial:getEnergyRev:mt_PV_energy_rev_L3:number”}

Number mt_PV_freq “PV (Grid) Freq [%.2f Hz]”{channel=“modbus:data:localSerial:getFreq:mt_PV_freq:number”}

Number mt_PV_powerf_total “Total power factor [%.1f ]”{channel=“modbus:data:localSerial:getPowerF:mt_PV_powerf_total:number”}

Number mt_PV_powerf_L1 “L1 power factor[%.1f ]”{channel=“modbus:data:localSerial:getPowerF:mt_PV_powerf_L1:number”}

Number mt_PV_powerf_L2 “L2 power factor [%.1f ]”{channel=“modbus:data:localSerial:getPowerF:mt_PV_powerf_L2:number”}

Number mt_PV_powerf_L3 “L3 power factor [%.1f ]”{channel=“modbus:data:localSerial:getPowerF:mt_PV_powerf_L3:number”}