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

Sungrow Fixes #2713

Closed
wants to merge 58 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
2df8aa6
add kostal sem
LKuemmel Dec 15, 2022
840bb4e
add smartme
LKuemmel Dec 15, 2022
e992314
fix deviceconfig
LKuemmel Dec 15, 2022
b337eac
add solarwatt
LKuemmel Dec 16, 2022
b47d2b9
fix phase names
LKuemmel Dec 16, 2022
ad92c1d
fix deviceconfig
LKuemmel Dec 15, 2022
d93dcee
solarworld
LKuemmel Jan 12, 2023
2f79487
Update modules/wr_solarworld/main.sh
LKuemmel Jan 17, 2023
c855d5e
display chargepoints in yieldmeter
cshagen Apr 1, 2023
4d75708
add version to script tags
cshagen Apr 1, 2023
6d63099
update preview picture
cshagen Apr 1, 2023
342b2d7
modify month graph calculation
cshagen Apr 1, 2023
29a77c9
Sungrow Fixes
Maxify23 May 8, 2023
4bed182
Sungrow Modulkonfiguration Anpassungen
Maxify23 May 10, 2023
f6e2eaf
Merge pull request #2555 from LKuemmel/smartme
LKuemmel May 10, 2023
a21178e
Merge pull request #2556 from LKuemmel/ksem
LKuemmel May 11, 2023
004bce2
Wiedereingliederung der Modbus ID
Maxify23 May 11, 2023
800d3bf
Wiedereingliederung der Modbus ID Teil2
Maxify23 May 11, 2023
5b95126
smarthome 2.0 openWB 1.9 Zerlegung
okaegi May 11, 2023
e01aa1d
Bump version 1.9.301.1
LKuemmel May 12, 2023
3af201e
fix solaredge charge bat from external inverter
LKuemmel May 12, 2023
a66e28a
Merge pull request #2718 from LKuemmel/fix
LKuemmel May 12, 2023
22de756
fix evse precise current
LKuemmel May 15, 2023
2489b0a
fix
LKuemmel May 15, 2023
1808695
fix
LKuemmel May 15, 2023
f1f8f77
fix port
LKuemmel May 16, 2023
7873b2b
Merge pull request #2720 from LKuemmel/fix
LKuemmel May 16, 2023
97067ea
fix solaredge synergy units undocumented
LKuemmel May 16, 2023
e893857
Merge pull request #2721 from LKuemmel/fix
LKuemmel May 16, 2023
cdb3ddb
Hinweistexte überarbeitet.
Maxify23 May 16, 2023
5341a8d
smarthome...
okaegi May 17, 2023
2b87fa3
flake8
okaegi May 17, 2023
be29edd
remove sleep
okaegi May 18, 2023
b3a246d
anpassung subprocess
okaegi May 18, 2023
04b7158
Update smarthomeconfig.php
egeu5 May 18, 2023
4179bb3
Update...
okaegi May 23, 2023
56b5996
typo
okaegi May 23, 2023
2d52063
add solarview (#2557)
LKuemmel May 23, 2023
5c07888
Merge pull request #2558 from LKuemmel/solarwatt
LKuemmel May 23, 2023
3d131d8
Merge pull request #2717 from okaegi/sm1005000
LKuemmel May 23, 2023
2068a20
Merge pull request #2723 from egeu5/patch-1
benderl May 25, 2023
a6a9c31
Merge pull request #2674 from cshagen/master
benderl May 25, 2023
97611a6
Smarthome askoheat
okaegi May 26, 2023
34664df
Merge pull request #2725 from okaegi/smart181
benderl May 26, 2023
2ddbf11
Merge pull request #2585 from LKuemmel/solarworld
LKuemmel May 30, 2023
40b3a02
Varta (#2591)
LKuemmel May 30, 2023
8dd9fd0
Sungrow Fixes
Maxify23 May 8, 2023
8506fe1
Sungrow Modulkonfiguration Anpassungen
Maxify23 May 10, 2023
868c6a8
Wiedereingliederung der Modbus ID
Maxify23 May 11, 2023
a36787a
Wiedereingliederung der Modbus ID Teil2
Maxify23 May 11, 2023
4dbebd7
Hinweistexte überarbeitet.
Maxify23 May 16, 2023
6c2e461
solve Python Test problems
Maxify23 Jun 1, 2023
4315635
Merge remote-tracking branch 'origin/master'
Maxify23 Jun 1, 2023
5da264e
Revert "solve Python Test problems"
Maxify23 Jun 1, 2023
1882949
solve Python Test problems 2
Maxify23 Jun 1, 2023
1fe8778
solve Python Test problems 2
Maxify23 Jun 1, 2023
9ca96b4
solve Python Test problems 3
Maxify23 Jun 1, 2023
15b6f78
Merge remote-tracking branch 'origin/master'
Maxify23 Jun 1, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions loadvars.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1092,7 +1092,7 @@ loadvars(){
fi
echo $hausverbrauch > /var/www/html/openWB/ramdisk/hausverbrauch
usesimbezug=0
if [[ $wattbezugmodul == "bezug_solarwatt" ]]|| [[ $wattbezugmodul == "bezug_rct" ]]|| [[ $wattbezugmodul == "bezug_varta" ]] || [[ $wattbezugmodul == "bezug_kostalplenticoreem300haus" ]] || [[ $wattbezugmodul == "bezug_solarlog" ]] ; then
if [[ $wattbezugmodul == "bezug_solarwatt" ]]|| [[ $wattbezugmodul == "bezug_rct" ]]|| [[ $wattbezugmodul == "bezug_kostalplenticoreem300haus" ]] || [[ $wattbezugmodul == "bezug_solarlog" ]] ; then
usesimbezug=1
fi
if ((usesimbezug == 1)); then
Expand Down Expand Up @@ -1182,7 +1182,7 @@ loadvars(){
echo "$pvallwh" > /var/www/html/openWB/ramdisk/pvallwh
fi

if [[ $speichermodul == "speicher_tesvoltsma" ]] || [[ $speichermodul == "speicher_solarwatt" ]] || [[ $speichermodul == "speicher_rct" ]]|| [[ $speichermodul == "speicher_kostalplenticore" ]] || [[ $speichermodul == "speicher_varta" ]] ; then
if [[ $speichermodul == "speicher_tesvoltsma" ]] || [[ $speichermodul == "speicher_solarwatt" ]] || [[ $speichermodul == "speicher_rct" ]]|| [[ $speichermodul == "speicher_kostalplenticore" ]] ; then
ra='^-?[0-9]+$'
watt2=$(</var/www/html/openWB/ramdisk/speicherleistung)
if [[ -e /var/www/html/openWB/ramdisk/speicherwatt0pos ]]; then
Expand Down
2 changes: 1 addition & 1 deletion modules/bezug_ksem/main.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ else
MYLOGFILE="${RAMDISKDIR}/evu.log"
fi

bash "$OPENWBBASEDIR/packages/legacy_run.sh" "bezug_ksem.readksem" "${ksemip}" >>"${MYLOGFILE}" 2>&1
bash "$OPENWBBASEDIR/packages/legacy_run.sh" "modules.devices.kostal_sem.device" "${ksemip}" >>"${MYLOGFILE}" 2>&1
ret=$?

openwbDebugLog ${DMOD} 2 "EVU RET: ${ret}"
Expand Down
103 changes: 0 additions & 103 deletions modules/bezug_ksem/readksem.py
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,103 +0,0 @@
#!/usr/bin/python
from typing import List

from pymodbus.client.sync import ModbusTcpClient
from pymodbus.constants import Endian
from pymodbus.payload import BinaryPayloadDecoder

from helpermodules.cli import run_using_positional_cli_args


class KSEM:
def __init__(self, ip):
self.client = ModbusTcpClient(ip, port="502")

def ReadUInt32(self, addr):
data = self.client.read_holding_registers(addr, 2, unit=71)
UInt32register = BinaryPayloadDecoder.fromRegisters(data.registers, byteorder=Endian.Big, wordorder=Endian.Big)
result = UInt32register.decode_32bit_uint()
return(result)

def ReadInt32(self, addr):
data = self.client.read_holding_registers(addr, 2, unit=71)
Int32register = BinaryPayloadDecoder.fromRegisters(data.registers, byteorder=Endian.Big, wordorder=Endian.Big)
result = Int32register.decode_32bit_int()
return(result)

def ReadUInt64(self, addr):
data = self.client.read_holding_registers(addr, 4, unit=71)
UInt64register = BinaryPayloadDecoder.fromRegisters(data.registers, byteorder=Endian.Big, wordorder=Endian.Big)
result = UInt64register.decode_64bit_uint()
return(result)

def write(self, filename, value):
with open(filename, 'w') as file:
file.write(str(value))

def run(self):
with self.client:
voltage1 = self.ReadUInt32(62) * 0.001
self.write('/var/www/html/openWB/ramdisk/evuv1', voltage1)

voltage2 = self.ReadUInt32(102) * 0.001
self.write('/var/www/html/openWB/ramdisk/evuv2', voltage2)

voltage3 = self.ReadUInt32(142) * 0.001
self.write('/var/www/html/openWB/ramdisk/evuv3', voltage3)

bezugkwh = self.ReadUInt64(512) * 0.1
self.write('/var/www/html/openWB/ramdisk/bezugkwh', bezugkwh)

bezugw1p = self.ReadUInt32(40) * 0.1
bezugw1m = self.ReadUInt32(42) * 0.1
bezugw1 = bezugw1p if bezugw1p >= bezugw1m else -bezugw1m
self.write('/var/www/html/openWB/ramdisk/bezugw1', bezugw1)

bezugw2p = self.ReadUInt32(80) * 0.1
bezugw2m = self.ReadUInt32(82) * 0.1
bezugw2 = bezugw2p if bezugw2p >= bezugw2m else -bezugw2m
self.write('/var/www/html/openWB/ramdisk/bezugw2', bezugw2)

bezugw3p = self.ReadUInt32(120) * 0.1
bezugw3m = self.ReadUInt32(122) * 0.1
bezugw3 = bezugw3p if bezugw3p >= bezugw3m else -bezugw3m
self.write('/var/www/html/openWB/ramdisk/bezugw3', bezugw3)

bezuga1 = self.ReadUInt32(60) * 0.001
self.write('/var/www/html/openWB/ramdisk/bezuga1', bezuga1)

bezuga2 = self.ReadUInt32(100) * 0.001
self.write('/var/www/html/openWB/ramdisk/bezuga2', bezuga2)

bezuga3 = self.ReadUInt32(140) * 0.001
self.write('/var/www/html/openWB/ramdisk/bezuga3', bezuga3)

wattbezugp = self.ReadUInt32(0) * 0.1
wattbezugm = self.ReadUInt32(2) * 0.1
wattbezug = wattbezugp if wattbezugp >= wattbezugm else -wattbezugm
finalwattbezug = int(wattbezug)
self.write('/var/www/html/openWB/ramdisk/wattbezug', finalwattbezug)

einspeisungkwh = self.ReadUInt64(516) * 0.1
self.write('/var/www/html/openWB/ramdisk/einspeisungkwh', einspeisungkwh)

evuhz = self.ReadUInt32(26) * 0.001
self.write('/var/www/html/openWB/ramdisk/evuhz', evuhz)

evupf1 = self.ReadInt32(64) * 0.001
self.write('/var/www/html/openWB/ramdisk/evupf1', evupf1)

evupf2 = self.ReadInt32(104) * 0.001
self.write('/var/www/html/openWB/ramdisk/evupf2', evupf2)

evupf3 = self.ReadInt32(144) * 0.001
self.write('/var/www/html/openWB/ramdisk/evupf3', evupf3)


def update(ksemip: str):
runner = KSEM(ksemip)
runner.run()


def main(argv: List[str]):
run_using_positional_cli_args(update, argv)
2 changes: 1 addition & 1 deletion modules/bezug_smartme/main.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ openwbDebugLog ${DMOD} 2 "Bezug Smartme URL: ${bezug_smartme_url}"
openwbDebugLog ${DMOD} 2 "Bezug Smartme User : ${bezug_smartme_user}"
openwbDebugLog ${DMOD} 2 "Bezug Smartme Passwort: ${bezug_smartme_pass}"

bash "$OPENWBBASEDIR/packages/legacy_run.sh" "bezug_smartme.smartme" "${bezug_smartme_url}" "${bezug_smartme_user}" "${bezug_smartme_pass}" >>"$MYLOGFILE" 2>&1
bash "$OPENWBBASEDIR/packages/legacy_run.sh" "modules.devices.smart_me.device" "counter" "${bezug_smartme_user}" "${bezug_smartme_pass}" "${bezug_smartme_url}" >>"$MYLOGFILE" 2>&1
ret=$?

openwbDebugLog ${DMOD} 2 "RET: ${ret}"
Expand Down
110 changes: 0 additions & 110 deletions modules/bezug_smartme/smartme.py
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,110 +0,0 @@
#!/usr/bin/env python3
import logging
import re
import requests
import traceback
from typing import Dict, List

from helpermodules.cli import run_using_positional_cli_args

log = logging.getLogger("SmartMe EVU")


def get_power_value(key, response: Dict, file=None):
try:
value = int(response[key] * 1000)
if file is None:
return value
else:
log.debug(file+': ' + str(value))
f = open('/var/www/html/openWB/ramdisk/'+file, 'w')
f.write(str(value))
f.close()
except:
traceback.print_exc()
exit(1)


def get_im_ex_value(key, response: Dict, file):
try:
value = round(response[key] * 1000, 3)
log.debug(file+': ' + str(value))
f = open('/var/www/html/openWB/ramdisk/'+file, 'w')
f.write(str(value))
f.close()
except:
traceback.print_exc()
exit(1)


def get_value(key, response: Dict, file=None):
try:
value = response[key]
if file is None:
return value
else:
log.debug(file+': ' + str(value))
f = open('/var/www/html/openWB/ramdisk/'+file, 'w')
f.write(str(value))
f.close()
except:
traceback.print_exc()
exit(1)


def update(bezug_smartme_url: str, bezug_smartme_user: str, bezug_smartme_pass: str):
log.debug('Smartme URL: ' + bezug_smartme_url)
log.debug('Smartme User: ' + bezug_smartme_user)
log.debug('Smartme Passwort: ' + bezug_smartme_pass)

# Daten einlesen
response = requests.get(bezug_smartme_url, auth=(bezug_smartme_user, bezug_smartme_pass), timeout=3).json()

# Aktuelle Leistung (kW --> W)
wattbezug = get_power_value("ActivePower", response)
wattbezug1 = get_power_value("ActivePowerL1", response)
if wattbezug1 == 0:
wattbezug1 = wattbezug
get_power_value("ActivePowerL2", response, "bezugw2")
get_power_value("ActivePowerL3", response, "bezugw3")
# Zählerstand Import(kWh)
get_im_ex_value("CounterReadingImport", response, "bezugkwh")
# Zählerstand Export(kWh)
get_im_ex_value("CounterReadingExport", response, "einspeisungkwh")

# Weitere Zählerdaten für die Statusseite (PowerFaktor, Spannung und Strom)
get_value("PowerFactorL1", response, "evupf1")
get_value("PowerFactorL2", response, "evupf2")
get_value("PowerFactorL3", response, "evupf3")
get_value("VoltageL1", response, "evuv1")
get_value("VoltageL2", response, "evuv2")
get_value("VoltageL3", response, "evuv3")
bezuga1 = get_value("CurrentL1", response)
if bezuga1 is None:
try:
bezuga1 = response["Current"]
except:
traceback.print_exc()
exit(1)
log.debug('Strom L1: ' + str(bezuga1))
with open("/var/www/html/openWB/ramdisk/bezuga1", "w") as f:
f.write(str(bezuga1))
get_value("CurrentL2", response, "bezuga2")
get_value("CurrentL3", response, "bezuga3")

# Prüfen ob Werte gültig
regex = '^[-+]?[0-9]+.?[0-9]*$'
if re.search(regex, str(wattbezug)) is None:
with open("/var/www/html/openWB/ramdisk/wattbezug", "r") as f:
wattbezug = f.read()
# Ausgabe
log.debug('Leistung: ' + str(wattbezug))
with open("/var/www/html/openWB/ramdisk/wattbezug", "w") as f:
f.write(str(wattbezug))
log.debug('Leistung L1: ' + str(wattbezug1))
with open("/var/www/html/openWB/ramdisk/wattbezugw1", "w") as f:
f.write(str(wattbezug1))


def main(argv: List[str]):
run_using_positional_cli_args(update, argv)
2 changes: 1 addition & 1 deletion modules/bezug_solarview/main.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ else
MYLOGFILE="${RAMDISKDIR}/evu.log"
fi

bash "$OPENWBBASEDIR/packages/legacy_run.sh" "bezug_solarview.solarview" "${solarview_hostname}" "${solarview_port}" "${solarview_timeout}" >>"${MYLOGFILE}" 2>&1
bash "$OPENWBBASEDIR/packages/legacy_run.sh" "modules.devices.solar_view.device" "counter" "${solarview_hostname}" "${solarview_port}" "${solarview_timeout}" >>"${MYLOGFILE}" 2>&1
ret=$?

openwbDebugLog ${DMOD} 2 "RET: ${ret}"
Expand Down
Loading