Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
245 commits
Select commit Hold shift + click to select a range
9e2caa1
soc_bmwbc: add new captcha for initial login, store token file in dat…
rleidner Nov 23, 2024
cf3528d
replace absolute by relative path
rleidner Nov 23, 2024
2e78295
soc_ovms: fix missing confDict issue on 1st connect
rleidner Dec 1, 2024
236dc68
use Path Object
rleidner Dec 2, 2024
82b8df2
requirements.txt: update to latest version 0.17.2 of bimmer_connected
rleidner Dec 5, 2024
c0d72d6
Merge pull request #2035 from rleidner/soc_bmwbc_p1
kevinwieland Dec 12, 2024
50a3d26
build-ui
benderl Dec 12, 2024
7de27fa
build settings
benderl Dec 12, 2024
f76d9b4
modify data path for bmwbc
benderl Dec 12, 2024
0c6792f
increment version
benderl Dec 12, 2024
1927094
Merge pull request #2063 from benderl/soc-bmw
benderl Dec 12, 2024
896d9ad
Merge pull request #2042 from rleidner/soc_ovms_p4
benderl Dec 12, 2024
87c2bc3
Colors theme (web): Fixes, Price chart updates (#2036)
cshagen Dec 12, 2024
2256710
minor fixes (#2017)
benderl Dec 12, 2024
448ce24
Detect network for ProPlus
kevinwieland Dec 3, 2024
671210a
restructure updated configuration
benderl Dec 12, 2024
78c0fac
cleanup apache2 configuration
benderl Dec 12, 2024
b92a3cd
Update setup_apache2.sh
kevinwieland Dec 13, 2024
ac716b2
Update setup_network.sh
kevinwieland Dec 13, 2024
5ec625c
build ui
benderl Dec 16, 2024
bc9b969
Merge pull request #2067 from benderl/settings-ui
benderl Dec 16, 2024
a3b7760
settings: fix install assistant layout
benderl Dec 16, 2024
010c622
Merge pull request #2068 from benderl/settings
benderl Dec 16, 2024
1c89a0d
soc_bmwbc: force new login when captcha token has changed
rleidner Dec 16, 2024
bfeb94b
Pro+
LKuemmel Dec 16, 2024
19be65f
fixes
LKuemmel Dec 16, 2024
1b262fa
error handling
LKuemmel Dec 16, 2024
ac7017c
no hard coded eth0
benderl Dec 16, 2024
1a6af15
ammend
LKuemmel Dec 16, 2024
06a2fbb
build UI
LKuemmel Dec 16, 2024
dd3d9d3
Merge pull request #2071 from LKuemmel/web
LKuemmel Dec 16, 2024
05b4f90
Merge pull request #2070 from openWB/feature_proplus
LKuemmel Dec 16, 2024
8363ffc
Get Mac-Adresse und publish MQTT-Topic
Brett-S-OWB Dec 16, 2024
fd420b3
proplus: fix lease time
LKuemmel Dec 16, 2024
1855d81
Merge pull request #2073 from openWB/feature_proplus
LKuemmel Dec 16, 2024
11a66de
fix version
LKuemmel Dec 16, 2024
152a15f
Merge pull request #2075 from openWB/feature_proplus
LKuemmel Dec 16, 2024
2e478b1
Merge pull request #2069 from rleidner/soc_bmwbc_p2
LKuemmel Dec 17, 2024
76d6958
Wiki-Eintrag Manueller SoC (#2065)
cr0i Dec 17, 2024
3c8156b
error message virtual counter (#2052)
LKuemmel Dec 17, 2024
8289b83
update modbus sample: add power limit (#2053)
LKuemmel Dec 17, 2024
3b81088
Tesvolt (#2044)
LKuemmel Dec 17, 2024
4b44550
Merge pull request #2072 from Brett-S-OWB/system-information
benderl Dec 17, 2024
6ab1be5
add ampere_pro inverter module (#2028)
ndrsnhs Dec 17, 2024
50c5c03
fix energy tariff modules (#2016)
benderl Dec 17, 2024
523a25e
Zabbix monitoring (#2041)
ndrsnhs Dec 17, 2024
4922b9e
Improve cloud (#2034)
ndrsnhs Dec 17, 2024
ee35605
support new firmware version v112 (#2040)
ndrsnhs Dec 17, 2024
7c92baf
build UI (#2082)
LKuemmel Dec 17, 2024
8b96ac4
Bump aiohttp from 3.10.2 to 3.10.11 (#2048)
dependabot[bot] Dec 17, 2024
8d1351b
wait for using phases after charge start (#1974)
LKuemmel Dec 17, 2024
76effac
Distinction between soc timestamp and soc request timestamp, update s…
LKuemmel Dec 17, 2024
703908a
pv: fix submode change during switch on (#2054)
LKuemmel Dec 17, 2024
8f82f81
restructure ev (#2005)
LKuemmel Dec 17, 2024
443cea6
use ErrorTimerContext for internal chargepoint and socket (#2024)
LKuemmel Dec 18, 2024
00fb31a
scheduled charging - instant charging: automatic phase switch without…
LKuemmel Dec 18, 2024
d778788
Huawai modbus rtu (#2077)
ndrsnhs Dec 18, 2024
b4897ed
Improve logging (#2081)
ndrsnhs Dec 18, 2024
e90135d
add sdm120 simcounter for openWB Kit (#2080)
ndrsnhs Dec 18, 2024
f26148f
remember timestamp of last phase switch instead of waiting the whole …
LKuemmel Dec 18, 2024
1c743c6
build UI (#2084)
LKuemmel Dec 18, 2024
90a0394
fix update (#2085)
ndrsnhs Dec 19, 2024
d5ac98a
Deye/jinko (#2083)
ndrsnhs Dec 19, 2024
4f5d4af
Sample Speichersteuerung (#2088)
LKuemmel Dec 19, 2024
5b5dea0
fix set current prev (#2089)
LKuemmel Dec 19, 2024
671fcd8
JSON SoC Modul (#2064)
MartinRinas Dec 19, 2024
e344a6d
fix counter (#2086)
ndrsnhs Dec 19, 2024
7799925
build UI (#2090)
LKuemmel Dec 19, 2024
a3eaee9
fix electricity tariffs (#2102)
LKuemmel Dec 27, 2024
c7242e9
fix timestamp charge start (#2105)
LKuemmel Dec 30, 2024
3917b1c
fix electricity tariff based charging (#2106)
LKuemmel Dec 30, 2024
88aaffe
fix discovergy/inexogy (#2107)
LKuemmel Dec 30, 2024
a47d7d5
remove spaces
Xerolux Jan 1, 2025
8e80f66
Merge pull request #2109 from Xerolux/patch-1
benderl Jan 2, 2025
971e68a
error handling for NAN counters from SMA inverter and battery (new or…
MartinRinas Jan 2, 2025
8869183
invert power value of counter module (#2112)
ndrsnhs Jan 2, 2025
ece3cf7
PSA Car Controller SoC (#2046)
andlem74 Jan 2, 2025
9e8dc40
Polestar auth update (#2076)
isomacM Jan 2, 2025
076851d
add warning for powers (#2111)
ndrsnhs Jan 2, 2025
c509166
Redact credentials in logging (#2074)
MartinRinas Jan 2, 2025
031d88e
JSON SoC module: add timestamp (#2104)
MartinRinas Jan 2, 2025
ddacb31
msal 1.31.1 cryptography 44.0.0 (#2087)
MartinRinas Jan 2, 2025
cef271e
build UI (#2113)
LKuemmel Jan 2, 2025
19e2b19
Smarthomedevices als Virtuelle Zähler... (#2059)
okaegi Jan 2, 2025
aa16ff7
plan ids in connected vehicle (#1958)
LKuemmel Jan 3, 2025
f579be9
Read and display evse current (#2025)
ndrsnhs Jan 3, 2025
c0adf11
build UI (#2114)
LKuemmel Jan 3, 2025
be2e07e
fix switch on and phase switch before charge start (#2117)
LKuemmel Jan 3, 2025
d98adec
Colors theme (web): Fixes and version upgrades (#2110)
cshagen Jan 6, 2025
9629b2d
remove obsolete files
benderl Jan 6, 2025
a16804a
Merge pull request #2122 from benderl/smarthome-cleanup
benderl Jan 6, 2025
414372c
remove price button for scheduled charging
benderl Jan 8, 2025
7b9ad05
Merge pull request #2124 from benderl/standard-legacy
benderl Jan 8, 2025
06f46ff
fix timestamp in JSON SoC (#2121)
MartinRinas Jan 9, 2025
3c0de26
remove smarteq module - support stopped by mercedes (#2115)
rleidner Jan 9, 2025
3e31f85
Aiways SoC module (#2066)
FriedrichF Jan 9, 2025
26f3d5e
build UI (#2126)
LKuemmel Jan 9, 2025
0cefb5c
Consistent name for aiways soc module (#2127)
LKuemmel Jan 9, 2025
d894031
rename firmware version
benderl Jan 9, 2025
fc0635f
fix bat power direction
benderl Jan 9, 2025
f999057
build ui
benderl Jan 10, 2025
e42a171
Merge pull request #2125 from openWB/feature-sungrow-firmware
benderl Jan 10, 2025
7899e8e
Psacc SoC timestamp (#2128)
andlem74 Jan 10, 2025
3bac891
fix deye devicetype (#2129)
LKuemmel Jan 10, 2025
932a9d3
fix plan id in control parameter (#2130)
LKuemmel Jan 10, 2025
8df9f01
fix direct download
benderl Jan 10, 2025
87b41d8
Merge pull request #2131 from benderl/chargelog-download
benderl Jan 10, 2025
841ceac
switch sign of pv power (#2132)
ndrsnhs Jan 10, 2025
18556c7
fix ocpp heartbeat (#2133)
LKuemmel Jan 10, 2025
099fcb7
soc_bmw: removed, end of support, replaced by soc_bmwbc
rleidner Jan 10, 2025
3531626
fix empty files in yearly download
benderl Jan 11, 2025
1c028ee
change order of charge modes
cshagen Jan 11, 2025
75a76c5
update dependencies
cshagen Jan 11, 2025
16392cb
fix chargepoint display, update eslint config
cshagen Jan 11, 2025
1bec89b
add soc editor
cshagen Jan 11, 2025
979f3ca
Fix layout of settings pages
cshagen Jan 12, 2025
3406c45
Put status page behind PIN check
cshagen Jan 12, 2025
62a0095
cleanup files and code
cshagen Jan 12, 2025
890ba4f
Merge pull request #2138 from benderl/chargelog-download
benderl Jan 13, 2025
6177328
switch from ping to curl for inet check
benderl Jan 13, 2025
2fd4cd8
Merge pull request #2139 from benderl/network
benderl Jan 13, 2025
e60f24d
fix solaredge: remove component from hierarchy (#2140)
LKuemmel Jan 13, 2025
02f474d
Merge pull request #2135 from rleidner/soc_bmw_p0
benderl Jan 13, 2025
2320683
fix layout
cshagen Jan 13, 2025
f70a46b
fix sungrow firmware selection
benderl Jan 13, 2025
6fbc4ae
build ui
benderl Jan 13, 2025
59ebf59
Merge pull request #2141 from benderl/sungrow
benderl Jan 13, 2025
2e04b14
Merge pull request #2137 from cshagen/display-2501
benderl Jan 13, 2025
a3388dd
Build Display Theme: Colors
benderl Jan 13, 2025
576a3ff
build ui
benderl Jan 13, 2025
5d1b82d
Merge pull request #2143 from benderl/ui
benderl Jan 13, 2025
fc036fc
Update version 2.1.7-Beta.1
LKuemmel Jan 14, 2025
c57d5c6
Zabbix monitoring (#2145)
ndrsnhs Jan 14, 2025
5fdb6ad
rename "Externe openWB" to secondary openWB (#2144)
LKuemmel Jan 14, 2025
859edfe
read dc_power (#2147)
ndrsnhs Jan 14, 2025
a664010
build UI (#2148)
LKuemmel Jan 14, 2025
f46779d
fix add new charge template and vehicle template (#2150)
LKuemmel Jan 14, 2025
2f5f415
fix phase switch (#2155)
LKuemmel Jan 16, 2025
a8b9a5d
soc_bmwbc: fix session_id, rename to BMW & Mini (#2152)
rleidner Jan 16, 2025
c66764d
build UI (#2158)
LKuemmel Jan 16, 2025
b624c97
set default value retry_failed_phase_switches to False (#2154)
LKuemmel Jan 16, 2025
e72e106
reload display after 2 days
benderl Jan 17, 2025
2c30b82
Merge pull request #2159 from benderl/display-reload
benderl Jan 17, 2025
1751241
Update version 2.1.7-Beta.2
LKuemmel Jan 17, 2025
c76d67b
updated dependencies
benderl Jan 20, 2025
b755ec9
Merge pull request #2162 from benderl/cards-display
benderl Jan 20, 2025
673ed27
Build Display Theme: Cards
benderl Jan 20, 2025
627ccc2
Colors theme display: Fixes, Reload/Shutdown-Buttons (#2161)
cshagen Jan 20, 2025
2a06771
Build Display Theme: Colors
benderl Jan 20, 2025
fcbf932
build ui
benderl Jan 20, 2025
be133d9
Merge pull request #2164 from benderl/build-ui
benderl Jan 20, 2025
812d3b6
fix loadmanagement error timer
LKuemmel Jan 20, 2025
12775cd
Merge pull request #2165 from LKuemmel/fix
LKuemmel Jan 20, 2025
6e3a3a7
fix different phases at the end of charging
LKuemmel Jan 22, 2025
ec68a89
Merge pull request #2168 from LKuemmel/fix
LKuemmel Jan 22, 2025
93f1762
fix deviating evse current
LKuemmel Jan 23, 2025
8996d1b
ammend
LKuemmel Jan 23, 2025
47c9346
Merge pull request #2169 from LKuemmel/fix
LKuemmel Jan 23, 2025
a0fb6d4
Zabbix monitoring (#2166)
ndrsnhs Jan 23, 2025
7a91346
fix pv 3p1p failed phase switch (#2173)
LKuemmel Jan 24, 2025
a70a100
fix display when no chargepoints are configured
cshagen Jan 25, 2025
d708e17
fix zoom function
cshagen Jan 27, 2025
42025f0
update dependencies
cshagen Jan 27, 2025
ec921f6
publish soc_timestamp (#2153)
MartinRinas Jan 27, 2025
aed1345
invert counter powers (#2175)
ndrsnhs Jan 27, 2025
ccfc5f4
Merge pull request #2174 from cshagen/web-fixes
benderl Jan 27, 2025
548287d
format install scripts
benderl Jan 27, 2025
d6ccee7
return timestamp as seconds, not milliseconds (#2177)
MartinRinas Jan 27, 2025
6fcf545
Merge pull request #2176 from benderl/fixes
benderl Jan 28, 2025
6281066
Fix Kostal SEM, secondary as second entry in chargepoint drop down (#…
LKuemmel Jan 29, 2025
12832a3
fix Sungrow fault text (#2178)
ndrsnhs Jan 29, 2025
2072197
fix pv charging: start charge after phase switch without switch on de…
LKuemmel Jan 29, 2025
ae1dc55
Solax g2+g4 (#2157)
ndrsnhs Jan 30, 2025
71a64a2
build UI (#2181)
LKuemmel Jan 30, 2025
1d26a84
Update version 2.1.7-RC.1
LKuemmel Jan 30, 2025
0398bea
round values for 1A control steps
LKuemmel Jan 31, 2025
dc71cb4
fix powergraph
cshagen Feb 2, 2025
6decd61
fix time display format
cshagen Feb 2, 2025
6bd28ca
max deviation not needed anymore
LKuemmel Feb 3, 2025
97fd03d
Merge pull request #2183 from LKuemmel/fix
LKuemmel Feb 3, 2025
a0affbb
remove vite server.allowedhosts
cshagen Feb 3, 2025
d479096
cleanup
cshagen Feb 3, 2025
6d06a25
cleanup
cshagen Feb 3, 2025
3958af6
prettify vite.config.ts
cshagen Feb 3, 2025
d883e47
prettify vite.config.ts
cshagen Feb 3, 2025
bdee5d1
Merge pull request #2186 from cshagen/web-fixes
benderl Feb 4, 2025
690ee4f
Feature broker client name (#2191)
LKuemmel Feb 4, 2025
68eb23c
fix cloud (#2194)
LKuemmel Feb 5, 2025
5426413
control bat discharge power: fix negative values (#2195)
LKuemmel Feb 5, 2025
c177a5d
Query for polestar SOC adapted (#2193)
isomacM Feb 5, 2025
580320f
fix install_zabbix.sh permissions
benderl Feb 6, 2025
fbb2548
Merge pull request #2196 from benderl/fixes
benderl Feb 6, 2025
71cfe00
updated dependencies
benderl Feb 6, 2025
696028c
Merge pull request #2198 from benderl/cards-dosplay-theme
benderl Feb 6, 2025
a60b603
Build Display Theme: Cards
benderl Feb 6, 2025
dd23a60
build ui
benderl Feb 6, 2025
b1597b1
Merge pull request #2199 from benderl/settings-build
benderl Feb 6, 2025
3400b75
improve fault state handling
LKuemmel Feb 6, 2025
7f14c01
Increase timeout for slow internet connections
LKuemmel Feb 7, 2025
79ea572
Merge pull request #2192 from LKuemmel/fault_state
benderl Feb 7, 2025
a6c4043
build
benderl Feb 7, 2025
601edad
Merge pull request #2201 from benderl/build-ui
benderl Feb 7, 2025
f3cc106
build ui
benderl Feb 7, 2025
c5c0315
Merge pull request #2202 from benderl/status-fixes
benderl Feb 7, 2025
fdbd512
fix time display format
cshagen Feb 8, 2025
29e6ce9
fix pin check for settings
cshagen Feb 8, 2025
fa4d397
update dependencies
cshagen Feb 8, 2025
b98893b
update to node 22
cshagen Feb 8, 2025
521179c
add keypad for max price
cshagen Feb 9, 2025
284d413
update range slider for price chart
cshagen Feb 9, 2025
703ba7c
fix pricechart layout
cshagen Feb 10, 2025
95dc4ae
fixed visibility
benderl Feb 10, 2025
94a44ac
Merge pull request #2204 from cshagen/display-250208
benderl Feb 10, 2025
a561a84
Merge pull request #2205 from benderl/build-ui
benderl Feb 10, 2025
1057dc2
refactor status topic subscriptions
benderl Feb 10, 2025
7fc4351
Merge pull request #2206 from benderl/build-ui
benderl Feb 10, 2025
0a1d8c8
Update build_display_theme_colors.yml node v22
benderl Feb 10, 2025
7323b24
Update index.html
benderl Feb 10, 2025
e75bcf4
Build Display Theme: Colors
benderl Feb 10, 2025
78a1f57
build settings ui
benderl Feb 12, 2025
ddb827c
Merge pull request #2212 from benderl/build-ui
benderl Feb 12, 2025
154c4ec
fix rfid pro+ (#2217)
LKuemmel Feb 13, 2025
1d02d06
set switch_off_threshold to 0 (#2216)
ndrsnhs Feb 14, 2025
3a56033
invert power sign (#2215)
ndrsnhs Feb 14, 2025
173137a
Fix soc_timestamp handling for milliseconds (#2197)
MartinRinas Feb 18, 2025
e2c6fdd
soc timestamp resturn changed from string to float (#2211)
isomacM Feb 19, 2025
3c7abb4
Bump cryptography from 44.0.0 to 44.0.1 (#2221)
dependabot[bot] Feb 19, 2025
3801279
Update version 2.1.7-RC.2
LKuemmel Feb 20, 2025
bb4443c
Use --connect-timeout 3 in setup_network.sh : check_internet_connection
dj3mu Feb 20, 2025
96f841f
improve evse error message
LKuemmel Feb 24, 2025
2cce717
Merge pull request #2232 from LKuemmel/hardware_check
LKuemmel Feb 24, 2025
a8e976a
Merge pull request #2227 from YourCharge/fixSecondaryStuckWhenNoNetwork
benderl Feb 25, 2025
7c093e0
Colors theme fixes & Soc-Editor (#2230)
cshagen Feb 25, 2025
174531c
Merge pull request #2200 from LKuemmel/ticket
benderl Feb 25, 2025
e542b9a
build settings ui
benderl Feb 25, 2025
97eafcd
Merge pull request #2233 from benderl/build-ui
benderl Feb 25, 2025
6b121b8
build UI (#2239)
LKuemmel Mar 4, 2025
6bdedcd
rename Autolock to Sperre nach Uhrzeit (#2223)
LKuemmel Mar 4, 2025
5049029
build UI (#2240)
LKuemmel Mar 4, 2025
2ecc52b
specify openWB Pro name (#2243)
LKuemmel Mar 5, 2025
12b3abb
build settings ui
benderl Mar 7, 2025
0fdc5de
Merge pull request #2244 from benderl/build-ui
benderl Mar 7, 2025
d633246
Update version 2.1.7-RC.3
LKuemmel Mar 7, 2025
f10dc16
Fix surplus controlled (#2245)
LKuemmel Mar 7, 2025
a3a6024
Update version 2.1.7
LKuemmel Mar 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/workflows/build_display_theme_colors.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ jobs:
- name: Checkout Repository
uses: actions/checkout@v4

- name: Setup Node.js (v20)
- name: Setup Node.js (v22)
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: npm
cache-dependency-path: packages/modules/display_themes/colors/source/package-lock.json

Expand Down
12 changes: 12 additions & 0 deletions data/config/apache/apache-proplus.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# openwb-version:1
Listen 8080

<VirtualHost *:8080>
ProxyPreserveHost On

# Proxy for Pro:
ProxyPass / http://192.168.192.50:80/
ProxyPassReverse / http://192.168.192.50:80/

ServerName localhost
</VirtualHost>
8 changes: 8 additions & 0 deletions data/config/dhcpcd.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# openwb - begin
# openwb-version:1
# second interface connected to internal pro
interface eth1
static ip_address=192.168.192.150
# static routers=192.168.192.150
# static domain_name_servers=8.8.8.8
# openwb - end
9 changes: 9 additions & 0 deletions data/config/dnsmasq.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# openwb-version:2
# activate DHCP-Server on second interface only
interface=eth1

# IPv4 pool and lease time
dhcp-range=192.168.192.50,192.168.192.50,1m

# DNS
dhcp-option=option:dns-server,192.168.192.150
2 changes: 1 addition & 1 deletion docs/Ladepunkte.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Die Einstellungen für Ladepunkte unterteilen sich in die spezifischen Einstellu

Beim Hinzufügen eines Ladepunkts muss zunächst dessen Typ ausgewählt werden. Danach wird Ladepunkt-spezifisches, wie z.B. die Anzahl angeschlossener Phasen oder eine verbaute Phasenumschaltung, konfiguriert.

In dem Ladepunkt-Profil sind die Einstellungen zum automatischen Sperren (Autolock) und für die Freigabe von Ladepunkten durch ID-Tags enthalten. Ein Ladepunkt-Profil kann vom Benutzer mehreren Ladepunkte zugewiesen werden, sodass die Einstellungen für jeden Ladepunkte einzeln oder für eine Gruppe zugewiesen werden können.
In dem Ladepunkt-Profil sind die Einstellungen zum Sperren nach Uhrzeit und für die Freigabe von Ladepunkten durch ID-Tags enthalten. Ein Ladepunkt-Profil kann vom Benutzer mehreren Ladepunkte zugewiesen werden, sodass die Einstellungen für jeden Ladepunkte einzeln oder für eine Gruppe zugewiesen werden können.

Das Erfassen eines RFID-Tags (verbauter RFID-Leser erforderlich) oder die Pin-Eingabe (Display erforderlich, Eingabefeld muss im Steuerungsmodus 'secondary' aktiviert werden) sowie die automatische
Fahrzeugerkennung der openWB Pro (muss in den Einstellungen aktiviert werden) werden gleich verarbeitet.
17 changes: 17 additions & 0 deletions docs/Manueller SoC.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# SoC-Modul des Fahrzeugs „Manueller SoC“

Stehen keine anderen SoC-Module für Dein Fahrzeug zur Verfügung, so kann das Modul „Manueller SoC“ genutzt werden.

Der Anfangs-SoC des Fahrzeugs muss hierbei manuell angegeben werden, z.B. über ein integriertes Display oder über das Webinterface. Während der Ladung wird anhand der Angaben aus dem Fahrzeugprofil zur Akkukapazität und des Wirkungsgrades der Ladeelektronik der aktuelle SoC berechnet.

Zunächst müssen also diese Angaben im Fahrzeugprofil (Angaben zur Batterie) erfasst werden:

![Fahrzeugprofil: Angaben zu Batterie](<pictures/Manueller SoC_Angaben zu Batterie.png>)

Dann wird im Fahrzeug das SoC Modul „Manueller SoC“ ausgewählt:

![Einstellungen Manueller SoC](<pictures/Manueller SoC_Einstellungen.png>)

Nun kann der Anfangs-SoC auf der Hauptseite angegeben werden:

![Eingabe manueller SoC](<pictures/Manueller SoC_Eingabe.png>)
1 change: 1 addition & 0 deletions docs/_Sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
* [Grundkonzept](https://github.com/openWB/core/wiki/Grundkonzept)
* [Ladepunkte](https://github.com/openWB/core/wiki/Ladepunkte)
* [Fahrzeuge](https://github.com/openWB/core/wiki/Fahrzeuge)
* [Manueller SoC](https://github.com/openWB/core/wiki/Manueller-SoC)
* [Lademodi](https://github.com/openWB/core/wiki/Lademodi)
* Zähler
* [Grundsätzliches zu Zählern](https://github.com/openWB/core/wiki/Grundsätzliches-zu-Zählern)
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/pictures/Manueller SoC_Eingabe.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/pictures/Manueller SoC_Einstellungen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 12 additions & 3 deletions docs/samples/sample_modbus/bat.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
from typing import Optional
from dataclass_utils import dataclass_from_dict
from modules.common.abstract_device import AbstractBat
from modules.common.component_state import BatState
Expand All @@ -11,15 +12,16 @@


class SampleBat(AbstractBat):
def __init__(self, device_id: int, component_config: SampleBatSetup) -> None:
def __init__(self, device_id: int, component_config: SampleBatSetup, client: ModbusTcpClient_) -> None:
self.__device_id = device_id
self.component_config = dataclass_from_dict(SampleBatSetup, component_config)
self.sim_counter = SimCounter(self.__device_id, self.component_config.id, prefix="speicher")
self.store = get_bat_value_store(self.component_config.id)
self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config))
self.client = client

def update(self, client: ModbusTcpClient_) -> None:
power = client.read_holding_registers(reg, ModbusDataType.INT_32, unit=unit)
def update(self) -> None:
power = self.client.read_holding_registers(reg, ModbusDataType.INT_32, unit=unit)
imported, exported = self.sim_counter.sim_count(power)

bat_state = BatState(
Expand All @@ -30,5 +32,12 @@ def update(self, client: ModbusTcpClient_) -> None:
)
self.store.set(bat_state)

def set_power_limit(self, power_limit: Optional[int]) -> None:
# Methode entfernen, falls der Speicher keine Steuerung der Ladeleistung unterstützt
# Wenn der Speicher die Steuerung der Ladeleistung unterstützt, muss bei Übergabe einer Zahl auf aktive
# Speichersteurung umgeschaltet werden, sodass der Speicher mit der übergebenen Leistung lädt/entlädt. Wird
# None übergeben, muss der Speicher die Null-Punkt-Ausregelung selbst übernehmen.
self.client.write_registers(reg, power_limit)


component_descriptor = ComponentDescriptor(configuration_factory=SampleBatSetup)
7 changes: 4 additions & 3 deletions docs/samples/sample_modbus/counter.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,16 @@


class SampleCounter(AbstractCounter):
def __init__(self, device_id: int, component_config: SampleCounterSetup) -> None:
def __init__(self, device_id: int, component_config: SampleCounterSetup, client: ModbusTcpClient_) -> None:
self.__device_id = device_id
self.component_config = dataclass_from_dict(SampleCounterSetup, component_config)
self.sim_counter = SimCounter(self.__device_id, self.component_config.id, prefix="bezug")
self.store = get_counter_value_store(self.component_config.id)
self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config))
self.client = client

def update(self, client: ModbusTcpClient_):
power = client.read_holding_registers(reg, ModbusDataType.INT_32, unit=unit)
def update(self):
power = self.client.read_holding_registers(reg, ModbusDataType.INT_32, unit=unit)
imported, exported = self.sim_counter.sim_count(power)

counter_state = CounterState(
Expand Down
10 changes: 5 additions & 5 deletions docs/samples/sample_modbus/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,19 @@

def create_device(device_config: Sample):
def create_bat_component(component_config: SampleBatSetup):
return SampleBat(device_config.id, component_config, device_config.configuration.ip_address)
return SampleBat(device_config.id, component_config, device_config.configuration.ip_address, client)

def create_counter_component(component_config: SampleCounterSetup):
return SampleCounter(device_config.id, component_config, device_config.configuration.ip_address)
return SampleCounter(device_config.id, component_config, device_config.configuration.ip_address, client)

def create_inverter_component(component_config: SampleInverterSetup):
return SampleInverter(device_config.id, component_config, device_config.configuration.ip_address)
return SampleInverter(device_config.id, component_config, device_config.configuration.ip_address, client)

def update_components(components: Iterable[Union[SampleBat, SampleCounter, SampleInverter]]):
with client as c:
with client:
for component in components:
with SingleComponentUpdateContext(component.fault_state):
component.update(c)
component.update()

try:
client = ModbusTcpClient_(device_config.configuration.ip_address, device_config.configuration.port)
Expand Down
7 changes: 4 additions & 3 deletions docs/samples/sample_modbus/inverter.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,16 @@


class SampleInverter(AbstractInverter):
def __init__(self, device_id: int, component_config: SampleInverterSetup) -> None:
def __init__(self, device_id: int, component_config: SampleInverterSetup, client: ModbusTcpClient_) -> None:
self.__device_id = device_id
self.component_config = dataclass_from_dict(SampleInverterSetup, component_config)
self.sim_counter = SimCounter(self.__device_id, self.component_config.id, prefix="pv")
self.store = get_inverter_value_store(self.component_config.id)
self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config))
self.client = client

def update(self, client: ModbusTcpClient_) -> None:
power = client.read_holding_registers(reg, ModbusDataType.INT_32, unit=unit)
def update(self) -> None:
power = self.client.read_holding_registers(reg, ModbusDataType.INT_32, unit=unit)
exported = self.sim_counter.sim_count(power)[1]

inverter_state = InverterState(
Expand Down
3 changes: 2 additions & 1 deletion packages/control/algorithm/additional_current_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
from control.chargepoint.chargepoint import Chargepoint, ChargepointData
from control.chargepoint.chargepoint_data import Set
from control.chargepoint.control_parameter import ControlParameter
from control.ev import ChargeTemplate, Ev
from control.ev.charge_template import ChargeTemplate
from control.ev.ev import Ev
from control.loadmanagement import LimitingValue


Expand Down
8 changes: 6 additions & 2 deletions packages/control/algorithm/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,12 @@ def update_raw_data(preferenced_chargepoints: List[Chargepoint],

if diff_to_zero is False:
if chargepoint.data.control_parameter.min_current < max_target_set_current:
diffs = [chargepoint.data.control_parameter.min_current -
max_target_set_current if required_currents[i] != 0 else 0 for i in range(3)]
if surplus:
diffs = [chargepoint.data.set.target_current -
max_target_set_current if required_currents[i] != 0 else 0 for i in range(3)]
else:
diffs = [chargepoint.data.control_parameter.min_current -
max_target_set_current if required_currents[i] != 0 else 0 for i in range(3)]
else:
continue
else:
Expand Down
3 changes: 2 additions & 1 deletion packages/control/algorithm/common_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from control import data
from control.algorithm import common
from control.chargepoint.chargepoint import Chargepoint
from control.ev import Ev
from control.ev.ev import Ev
from control.counter import Counter
from control.counter_all import CounterAll

Expand Down Expand Up @@ -49,6 +49,7 @@ def test_set_current_counterdiff(diff: float,
cp.data.control_parameter.required_currents = required_currents
cp.data.set.charging_ev_data = ev
cp.data.set.current = 6
cp.data.get.currents = [10]*3
get_counters_to_check_mock = Mock(return_value=["cp0", "cp6"])
monkeypatch.setattr(CounterAll, "get_counters_to_check", get_counters_to_check_mock)
data.data.counter_data = {"cp0": Mock(spec=Counter), "cp6": Mock(spec=Counter)}
Expand Down
3 changes: 2 additions & 1 deletion packages/control/algorithm/filter_chargepoints_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@
from control.chargemode import Chargemode
from control.chargepoint.chargepoint import Chargepoint, ChargepointData
from control.chargepoint.chargepoint_data import Log, Set
from control.chargepoint.control_parameter import ControlParameter
from control.counter_all import CounterAll
from control.ev import ControlParameter, Ev, EvData, Get
from control.ev.ev import Ev, EvData, Get


@dataclass
Expand Down
2 changes: 1 addition & 1 deletion packages/control/algorithm/integration_test/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from control.chargepoint.chargepoint import Chargepoint
from control.counter_all import CounterAll
from control.counter import Counter
from control.ev import Ev
from control.ev.ev import Ev
from control.pv import Pv
from control.chargepoint.chargepoint_state import ChargepointState
from test_utils.default_hierarchies import NESTED_HIERARCHY
Expand Down
39 changes: 14 additions & 25 deletions packages/control/algorithm/integration_test/pv_charging_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,9 @@ class ParamsPhaseSwitch(ParamsExpectedSetCurrent, ParamsExpectedCounterSet):
raw_power_left: float = 0
raw_currents_left_counter0: List[float] = field(default_factory=currents_list_factory)
raw_currents_left_counter6: List[float] = field(default_factory=currents_list_factory)
expected_timestamp_auto_phase_switch_cp3: Optional[str] = None
expected_timestamp_auto_phase_switch_cp4: Optional[str] = None
expected_timestamp_auto_phase_switch_cp5: Optional[str] = None
expected_timestamp_last_phase_switch_cp3: Optional[str] = None
expected_timestamp_last_phase_switch_cp4: Optional[str] = None
expected_timestamp_last_phase_switch_cp5: Optional[str] = None


def assert_counter_set(params: ParamsExpectedCounterSet):
Expand Down Expand Up @@ -243,9 +243,9 @@ def test_surplus(params: ParamsSurplus, all_cp_pv_charging_3p, all_cp_charging_3
raw_power_left=32580,
raw_currents_left_counter0=[40]*3,
raw_currents_left_counter6=[16]*3,
expected_timestamp_auto_phase_switch_cp3=1652683252.0,
expected_timestamp_auto_phase_switch_cp4=None,
expected_timestamp_auto_phase_switch_cp5=None,
expected_timestamp_last_phase_switch_cp3=1652683252.0,
expected_timestamp_last_phase_switch_cp4=None,
expected_timestamp_last_phase_switch_cp5=None,
expected_current_cp3=10,
expected_current_cp4=6,
expected_current_cp5=6,
Expand All @@ -257,9 +257,9 @@ def test_surplus(params: ParamsSurplus, all_cp_pv_charging_3p, all_cp_charging_3
raw_power_left=42580,
raw_currents_left_counter0=[40]*3,
raw_currents_left_counter6=[16]*3,
expected_timestamp_auto_phase_switch_cp3=1652683252.0,
expected_timestamp_auto_phase_switch_cp4=None,
expected_timestamp_auto_phase_switch_cp5=None,
expected_timestamp_last_phase_switch_cp3=1652683252.0,
expected_timestamp_last_phase_switch_cp4=None,
expected_timestamp_last_phase_switch_cp5=None,
expected_current_cp3=32,
expected_current_cp4=6,
expected_current_cp5=6,
Expand All @@ -281,21 +281,16 @@ def test_phase_switch(all_cp_pv_charging_3p, all_cp_charging_3p, monkeypatch):
monkeypatch.setattr(algorithm_data.data.general_data, "get_phases_chargemode", mockget_get_phases_chargemode)
data.data.cp_data[
"cp3"].data.control_parameter.state = ChargepointState.CHARGING_ALLOWED
data.data.cp_data[
"cp3"].data.control_parameter.timestamp_last_phase_switch = 1652682252

# execution
Algorithm().calc_current()

# evaluation
assert_expected_current(cases_phase_switch[0])
assert data.data.cp_data[
"cp3"].data.control_parameter.timestamp_auto_phase_switch == cases_phase_switch[
0].expected_timestamp_auto_phase_switch_cp3
assert data.data.cp_data[
"cp4"].data.control_parameter.timestamp_auto_phase_switch == cases_phase_switch[
0].expected_timestamp_auto_phase_switch_cp4
assert data.data.cp_data[
"cp5"].data.control_parameter.timestamp_auto_phase_switch == cases_phase_switch[
0].expected_timestamp_auto_phase_switch_cp5
"cp3"].data.control_parameter.state == ChargepointState.PHASE_SWITCH_DELAY
assert_counter_set(cases_phase_switch[0])


Expand All @@ -311,6 +306,7 @@ def test_phase_switch_1p_3p(all_cp_pv_charging_1p, monkeypatch):
monkeypatch.setattr(algorithm_data.data.general_data, "get_phases_chargemode", mockget_get_phases_chargemode)
data.data.cp_data["cp3"].data.get.currents = [32, 0, 0]
data.data.cp_data["cp3"].data.get.power = 7360
data.data.cp_data["cp3"].data.control_parameter.timestamp_last_phase_switch = 1652682252
data.data.cp_data["cp4"].data.get.currents = [0, 0, 0]
data.data.cp_data["cp5"].data.get.currents = [0, 0, 0]

Expand All @@ -320,11 +316,4 @@ def test_phase_switch_1p_3p(all_cp_pv_charging_1p, monkeypatch):
# evaluation
assert_counter_set(cases_phase_switch[1])
assert data.data.cp_data[
"cp3"].data.control_parameter.timestamp_auto_phase_switch == cases_phase_switch[
1].expected_timestamp_auto_phase_switch_cp3
assert data.data.cp_data[
"cp4"].data.control_parameter.timestamp_auto_phase_switch == cases_phase_switch[
1].expected_timestamp_auto_phase_switch_cp4
assert data.data.cp_data[
"cp5"].data.control_parameter.timestamp_auto_phase_switch == cases_phase_switch[
1].expected_timestamp_auto_phase_switch_cp5
"cp3"].data.control_parameter.state == ChargepointState.PHASE_SWITCH_DELAY
Loading
Loading