Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Flexible evu-Kit Modules (parameters) #1545

Merged
merged 7 commits into from
Oct 1, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
31 changes: 27 additions & 4 deletions modules/bezug_ethmpm3pm/main.sh
Original file line number Diff line number Diff line change
@@ -1,10 +1,33 @@
#!/bin/bash
OPENWBBASEDIR=$(cd `dirname $0`/../../ && pwd)
RAMDISKDIR="${OPENWBBASEDIR}/ramdisk"
MODULEDIR=$(cd `dirname $0` && pwd)
#DMOD="EVU"
DMOD="MAIN"
Debug=$debug

#For development only
#Debug=1

if [ ${DMOD} == "MAIN" ]; then
MYLOGFILE="${RAMDISKDIR}/openWB.log"
else
MYLOGFILE="${RAMDISKDIR}/evu.log"
fi

openwbDebugLog ${DMOD} 2 "EVU Kit Version: ${evukitversion}"

if (( evukitversion == 1 )); then
sudo python /var/www/html/openWB/modules/bezug_ethmpm3pm/readlovato.py
sudo python ${OPENWBBASEDIR}/modules/bezug_ethmpm3pm/readlovato.py >>${MYLOGFILE} 2>&1
ret=$?
elif (( evukitversion == 2 )); then
sudo python /var/www/html/openWB/modules/bezug_ethmpm3pm/readsdm.py
sudo python ${OPENWBBASEDIR}/modules/bezug_ethmpm3pm/readsdm.py >>${MYLOGFILE} 2>&1
ret=$?
else
sudo python /var/www/html/openWB/modules/bezug_ethmpm3pm/readmpm3pm.py
sudo python ${OPENWBBASEDIR}/modules/bezug_ethmpm3pm/readmpm3pm.py >>${MYLOGFILE} 2>&1
ret=$?
fi
wattbezug=$(</var/www/html/openWB/ramdisk/wattbezug)

openwbDebugLog ${DMOD} 2 "EVU RET: ${ret}"
wattbezug=$(<${RAMDISKDIR}/wattbezug)
echo $wattbezug
52 changes: 36 additions & 16 deletions modules/bezug_ethmpm3pm/readlovato.py
Original file line number Diff line number Diff line change
@@ -1,44 +1,64 @@
#!/usr/bin/python
# import sys
import sys
# import os
# import time
# import getopt
import struct
from pymodbus.client.sync import ModbusTcpClient

client = ModbusTcpClient('192.168.193.15', port=8899)
##EVU Kit Defaults
mbip='192.168.193.15'
mbport=8899
mbid=0x02

#Check Argumentlist and replace Defaults if present
if len(sys.argv) >= 2:
mbip=str(sys.argv[1])

if len(sys.argv) >= 3:
mbport=int(sys.argv[2])

if len(sys.argv) >= 4:
mbid=int(sys.argv[3])


#client = ModbusTcpClient('192.168.193.15', port=8899)
client = ModbusTcpClient(mbip,port=mbport)
#client.host(mbip)
#client.port(mbport)
#client.unit_id(mbid)

#Voltage
resp = client.read_input_registers(0x0001,2, unit=0x02)
resp = client.read_input_registers(0x0001,2, unit=mbid)
voltage1 = float(resp.registers[1] / 100)
f = open('/var/www/html/openWB/ramdisk/evuv1', 'w')
f.write(str(voltage1))
f.close()
resp = client.read_input_registers(0x0003,2, unit=0x02)
resp = client.read_input_registers(0x0003,2, unit=mbid)
voltage2 = float(resp.registers[1] / 100)
f = open('/var/www/html/openWB/ramdisk/evuv2', 'w')
f.write(str(voltage2))
f.close()
resp = client.read_input_registers(0x0005,2, unit=0x02)
resp = client.read_input_registers(0x0005,2, unit=mbid)
voltage3 = float(resp.registers[1] / 100)
f = open('/var/www/html/openWB/ramdisk/evuv3', 'w')
f.write(str(voltage3))
f.close()

#phasen watt
resp = client.read_input_registers(0x0013,2, unit=0x02)
resp = client.read_input_registers(0x0013,2, unit=mbid)
all = format(resp.registers[0], '04x') + format(resp.registers[1], '04x')
finalw1 = int(struct.unpack('>i', all.decode('hex'))[0] / 100)
f = open('/var/www/html/openWB/ramdisk/bezugw1', 'w')
f.write(str(finalw1))
f.close()
resp = client.read_input_registers(0x0015,2, unit=0x02)
resp = client.read_input_registers(0x0015,2, unit=mbid)
all = format(resp.registers[0], '04x') + format(resp.registers[1], '04x')
finalw2 = int(struct.unpack('>i', all.decode('hex'))[0] / 100)
f = open('/var/www/html/openWB/ramdisk/bezugw2', 'w')
f.write(str(finalw2))
f.close()
resp = client.read_input_registers(0x0017,2, unit=0x02)
resp = client.read_input_registers(0x0017,2, unit=mbid)
all = format(resp.registers[0], '04x') + format(resp.registers[1], '04x')
finalw3 = int(struct.unpack('>i', all.decode('hex'))[0] / 100)
f = open('/var/www/html/openWB/ramdisk/bezugw3', 'w')
Expand All @@ -47,15 +67,15 @@

finalw= finalw1 + finalw2 + finalw3
# total watt
# resp = client.read_input_registers(0x0039,2, unit=0x02)
# resp = client.read_input_registers(0x0039,2, unit=mbid)
# all = format(resp.registers[0], '04x') + format(resp.registers[1], '04x')
# finalw = int(struct.unpack('>i', all.decode('hex'))[0] / 100)
f = open('/var/www/html/openWB/ramdisk/wattbezug', 'w')
f.write(str(finalw))
f.close()

#ampere l1
resp = client.read_input_registers(0x0007, 2, unit=0x02)
resp = client.read_input_registers(0x0007, 2, unit=mbid)
all = format(resp.registers[0], '04x') + format(resp.registers[1], '04x')
lla1 = float(struct.unpack('>i', all.decode('hex'))[0]) / 10000
f = open('/var/www/html/openWB/ramdisk/bezuga1', 'w')
Expand All @@ -66,7 +86,7 @@
f.close()

#ampere l2
resp = client.read_input_registers(0x0009, 2, unit=0x02)
resp = client.read_input_registers(0x0009, 2, unit=mbid)
all = format(resp.registers[0], '04x') + format(resp.registers[1], '04x')
lla2 = float(struct.unpack('>i', all.decode('hex'))[0]) / 10000
f = open('/var/www/html/openWB/ramdisk/bezuga2', 'w')
Expand All @@ -77,7 +97,7 @@
f.close()

#ampere l3
resp = client.read_input_registers(0x000b, 2, unit=0x02)
resp = client.read_input_registers(0x000b, 2, unit=mbid)
all = format(resp.registers[0], '04x') + format(resp.registers[1], '04x')
lla3 = float(struct.unpack('>i', all.decode('hex'))[0]) / 10000
f = open('/var/www/html/openWB/ramdisk/bezuga3', 'w')
Expand All @@ -88,7 +108,7 @@
f.close()

#evuhz
resp = client.read_input_registers(0x0031,2, unit=0x02)
resp = client.read_input_registers(0x0031,2, unit=mbid)
evuhz= float(resp.registers[1])
evuhz= float(evuhz / 100)
if evuhz > 100:
Expand All @@ -98,19 +118,19 @@
f.close()

#Power Factor
resp = client.read_input_registers(0x0025,2, unit=0x02)
resp = client.read_input_registers(0x0025,2, unit=mbid)
evupf1 = float(resp.registers[1]) / 10000
f = open('/var/www/html/openWB/ramdisk/evupf1', 'w')
f.write(str(evupf1))
f.close()

resp = client.read_input_registers(0x0027,2, unit=0x02)
resp = client.read_input_registers(0x0027,2, unit=mbid)
evupf2 = float(resp.registers[1]) / 10000
f = open('/var/www/html/openWB/ramdisk/evupf2', 'w')
f.write(str(evupf2))
f.close()

resp = client.read_input_registers(0x0029,2, unit=0x02)
resp = client.read_input_registers(0x0029,2, unit=mbid)
evupf3 = float(resp.registers[1]) / 10000
f = open('/var/www/html/openWB/ramdisk/evupf3', 'w')
f.write(str(evupf3))
Expand Down
105 changes: 63 additions & 42 deletions modules/bezug_ethmpm3pm/readmpm3pm.py
Original file line number Diff line number Diff line change
@@ -1,153 +1,174 @@
#!/usr/bin/python
# import sys
import sys
# import os
# import time
# import getopt
import struct
from pymodbus.client.sync import ModbusTcpClient

client = ModbusTcpClient('192.168.193.15', port=8899)
##EVU Kit Defaults
mbip='192.168.193.15'
mbport=8899
mdid = 5

#Check Argumentlist and replace Defaults if present
if len(sys.argv) >= 2:
mbip=str(sys.argv[1])

if len(sys.argv) >= 3:
mbport=int(sys.argv[2])

if len(sys.argv) >= 4:
mbid=int(sys.argv[3])



#client = ModbusTcpClient('192.168.193.15', port=8899)
client = ModbusTcpClient(mbip,port=mbport)
#client.host(mbip)
#client.port(mbport)
#client.unit_id(mbid)

# Voltage
resp = client.read_input_registers(0x08,4, unit=5)
resp = client.read_input_registers(0x08,4, unit=mbid)
voltage1 = resp.registers[1]
voltage1 = float(voltage1) / 10
f = open('/var/www/html/openWB/ramdisk/evuv1', 'w')
f.write(str(voltage1))
f.close()

resp = client.read_input_registers(0x0A,4, unit=5)
resp = client.read_input_registers(0x0A,4, unit=mbid)
voltage2 = resp.registers[1]
voltage2 = float(voltage2) / 10
f = open('/var/www/html/openWB/ramdisk/evuv2', 'w')
f.write(str(voltage2))
f.close()

resp = client.read_input_registers(0x0C,4, unit=5)
resp = client.read_input_registers(0x0C,4, unit=mbid)
voltage3 = resp.registers[1]
voltage3 = float(voltage3) / 10
f = open('/var/www/html/openWB/ramdisk/evuv3', 'w')
f.write(str(voltage3))
f.close()

resp = client.read_input_registers(0x0002,4, unit=5)
value1 = resp.registers[0]
value2 = resp.registers[1]
resp = client.read_input_registers(0x0002,4, unit=mbid)
value1 = resp.registers[0]
value2 = resp.registers[1]
all = format(value1, '04x') + format(value2, '04x')
ikwh = int(struct.unpack('>i', all.decode('hex'))[0])
ikwh = int(struct.unpack('>i', all.decode('hex'))[0])
ikwh = float(ikwh) * 10
f = open('/var/www/html/openWB/ramdisk/bezugkwh', 'w')
f.write(str(ikwh))
f.close()

# phasen watt
resp = client.read_input_registers(0x14,2, unit=5)
value1 = resp.registers[0]
value2 = resp.registers[1]
resp = client.read_input_registers(0x14,2, unit=mbid)
value1 = resp.registers[0]
value2 = resp.registers[1]
all = format(value1, '04x') + format(value2, '04x')
finalw1 = int(struct.unpack('>i', all.decode('hex'))[0]) / 100
f = open('/var/www/html/openWB/ramdisk/bezugw1', 'w')
f.write(str(finalw1))
f.close()
resp = client.read_input_registers(0x16,2, unit=5)
value1 = resp.registers[0]
value2 = resp.registers[1]
resp = client.read_input_registers(0x16,2, unit=mbid)
value1 = resp.registers[0]
value2 = resp.registers[1]
all = format(value1, '04x') + format(value2, '04x')
finalw2 = int(struct.unpack('>i', all.decode('hex'))[0]) / 100
f = open('/var/www/html/openWB/ramdisk/bezugw2', 'w')
f.write(str(finalw2))
f.close()
resp = client.read_input_registers(0x18,2, unit=5)
value1 = resp.registers[0]
value2 = resp.registers[1]
resp = client.read_input_registers(0x18,2, unit=mbid)
value1 = resp.registers[0]
value2 = resp.registers[1]
all = format(value1, '04x') + format(value2, '04x')
finalw3 = int(struct.unpack('>i', all.decode('hex'))[0]) / 100
f = open('/var/www/html/openWB/ramdisk/bezugw3', 'w')
f.write(str(finalw3))
f.close()

# resp = client.read_input_registers(0x0E,2, unit=5)
# resp = client.read_input_registers(0x0E,2, unit=mbid)
# lla1 = resp.registers[1]
# lla1 = float(lla1) / 100
lla1=round(float(float(finalw1) / float(voltage1)), 2)
f = open('/var/www/html/openWB/ramdisk/bezuga1', 'w')
f.write(str(lla1))
f.close()

# resp = client.read_input_registers(0x10,2, unit=5)
# resp = client.read_input_registers(0x10,2, unit=mbid)
# lla2 = resp.registers[1]
# lla2 = float(lla2) / 100
lla2=round(float(float(finalw2) / float(voltage2)), 2)
f = open('/var/www/html/openWB/ramdisk/bezuga2', 'w')
f.write(str(lla2))
f.close()

# resp = client.read_input_registers(0x12,2, unit=5)
# resp = client.read_input_registers(0x12,2, unit=mbid)
# lla3 = resp.registers[1]
# lla3 = float(lla3) / 100
lla3=round(float(float(finalw3) / float(voltage3)), 2)
lla3=round(float(float(finalw3) / float(voltage3)), 2)
f = open('/var/www/html/openWB/ramdisk/bezuga3', 'w')
f.write(str(lla3))
f.close()

# total watt
resp = client.read_input_registers(0x26,2, unit=5)
value1 = resp.registers[0]
value2 = resp.registers[1]
resp = client.read_input_registers(0x26,2, unit=mbid)
value1 = resp.registers[0]
value2 = resp.registers[1]
all = format(value1, '04x') + format(value2, '04x')
final = int(struct.unpack('>i', all.decode('hex'))[0]) / 100
f = open('/var/www/html/openWB/ramdisk/wattbezug', 'w')
f.write(str(final))
f.close()

# export kwh
resp = client.read_input_registers(0x0004,4, unit=5)
value1 = resp.registers[0]
value2 = resp.registers[1]
resp = client.read_input_registers(0x0004,4, unit=mbid)
value1 = resp.registers[0]
value2 = resp.registers[1]
all = format(value1, '04x') + format(value2, '04x')
ekwh = int(struct.unpack('>i', all.decode('hex'))[0])
ekwh = int(struct.unpack('>i', all.decode('hex'))[0])
ekwh = float(ekwh) * 10
f = open('/var/www/html/openWB/ramdisk/einspeisungkwh', 'w')
f.write(str(ekwh))
f.close()

# evuhz
resp = client.read_input_registers(0x2c,4, unit=5)
value1 = resp.registers[0]
value2 = resp.registers[1]
resp = client.read_input_registers(0x2c,4, unit=mbid)
value1 = resp.registers[0]
value2 = resp.registers[1]
all = format(value1, '04x') + format(value2, '04x')
hz = int(struct.unpack('>i', all.decode('hex'))[0])
hz = int(struct.unpack('>i', all.decode('hex'))[0])
hz = round((float(hz) / 100), 2)
f = open('/var/www/html/openWB/ramdisk/evuhz', 'w')
f.write(str(hz))
f.close()

# Power Factor
resp = client.read_input_registers(0x20,4, unit=5)
value1 = resp.registers[0]
resp = client.read_input_registers(0x20,4, unit=mbid)
value1 = resp.registers[0]
value2 = resp.registers[1]
all = format(value1, '04x') + format(value2, '04x')
evupf1 = int(struct.unpack('>i', all.decode('hex'))[0])
evupf1 = int(struct.unpack('>i', all.decode('hex'))[0])
evupf1 = round((float(evupf1) / 10), 0)
f = open('/var/www/html/openWB/ramdisk/evupf1', 'w')
f.write(str(evupf1))
f.close()

resp = client.read_input_registers(0x22,4, unit=5)
value1 = resp.registers[0]
resp = client.read_input_registers(0x22,4, unit=mbid)
value1 = resp.registers[0]
value2 = resp.registers[1]
all = format(value1, '04x') + format(value2, '04x')
evupf2 = int(struct.unpack('>i', all.decode('hex'))[0])
evupf2 = int(struct.unpack('>i', all.decode('hex'))[0])
evupf2 = round((float(evupf2) / 10), 0)
f = open('/var/www/html/openWB/ramdisk/evupf2', 'w')
f.write(str(evupf2))
f.close()

resp = client.read_input_registers(0x24,4, unit=5)
value1 = resp.registers[0]
resp = client.read_input_registers(0x24,4, unit=mbid)
value1 = resp.registers[0]
value2 = resp.registers[1]
all = format(value1, '04x') + format(value2, '04x')
evupf3 = int(struct.unpack('>i', all.decode('hex'))[0])
evupf3 = int(struct.unpack('>i', all.decode('hex'))[0])
evupf3 = round((float(evupf3) / 10), 0)
f = open('/var/www/html/openWB/ramdisk/evupf3', 'w')
f.write(str(evupf3))
Expand Down