In dit artikel hebben we beschreven hoe je eenvoudig een thuisbatterij kunt maken. Hiervoor gebruiken we accu’s van Power Queen met bluetooth-functionaliteit. In dit artikel zullen we uitleggen hoe je het BMS eenvoudig kunt uitlezen en gegevens naareen virtueel device in Domoticz kunt sturen.
Power Queen geeft tijdelijk een korting van maar liefst 6% op alle producten. Ga hiervoor naar de website van Power Queen en gebruik kortingscode EHOCO.NL
De scripts voor de thuisbatterij heb je waarschijnlijk op een Raspberry Pi (of soortgelijk apparaat gezet). De Raspberry Pi is ook prima geschikt voor het BMS uit te lezen (eigenlijk is ieder apparaat met bluetooth en linux geschikt).
Zoek nu met een app als Bluetooth Finder & BLE Scanner het MAC-adres van de accu op. De naam begint met PQ-24100B (als je een 24V 100A accu hebt). Schrijf het MAC-adres op, dat hebben we dadelijk nodig.
Vraag de BMS-gegevens op (uiteraard moet je hier jouw MAC-adres neerzetten):
1
python main.py12:34:56:78:AA:CC--bms
Als alles goed gegaan is dan krijg je een output als (kan wel een half minuutje duren):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{
"packVoltage":25530,
"voltage":25651,
"batteryPack":{
"1":3.206,
"2":3.205,
"3":3.206,
"4":3.207,
"5":3.208,
"6":3.206,
"7":3.207,
"8":3.206
},
"current":0,
"remainAh":14.47,
"factoryAh":113.0,
"cellTemperature":21,
"mosfetTemperature":21,
"heat":0,
"protectState":0,
"failureState":0,
"equilibriumState":0,
"batteryState":1,
"SOC":"12%",
"SOH":"113%",
"dischargesCount":12,
"dischargesAHCount":1296,
"firmwareVersion":"1.0.0",
"manfactureDate":"2023-12-20",
"hardwareVersion":"T40-11T40-10"
}
Is het allemaal gelukt? Dan is het nu tijd om in Domoticz virtuele devices aan te maken. In dit voorbeeld hebben we 3 percentage-devices en 3 counter-devices aangemaakt.
Maak nu een Shell script aan:
1
nano bms.sh
Kopieer onderstaand script in jouw lege script (bms.sh). Pas regel 4, 7, 8, 13, 14, 15, 21, 22 en 23 aan:
Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/bash
# Zorg ervoor dat het script altijd vanuit de oorspronkelijke map start
BASE_DIR="/home/pi"# Volledig pad opgeven
# Definieer Domoticz-configuratie
DOMOTICZ_IP="192.168.30.208"# Pas dit aan naar jouw Domoticz IP-adres
DOMOTICZ_PORT="8080"# Pas dit aan naar jouw Domoticz poort
# Definieer een array van apparaten en bijbehorende IDX
declare-Adevices
devices=(
["12:34:56:78:AA:BB"]=1525# IDX voor SOC van accu 1
["12:34:56:78:AA:CC"]=1526# IDX voor SOC van accu 2
["12:34:56:78:AA:DD"]=1527# IDX voor SOC van accu 3
)
# Definieer een array voor remainAH devices en bijbehorende IDX
declare-AremainAh_devices
remainAh_devices=(
["12:34:56:78:AA:BB"]=1528# IDX voor remainAH van accu 1
["12:34:56:78:AA:CC"]=1529# IDX voor remainAH van accu 2
["12:34:56:78:AA:DD"]=1530# IDX voor remainAH van accu 3
)
# Terug naar de basisdirectory
cd"$BASE_DIR"||exit1
# Ga naar de pq_bms_bluetooth directory en voer de commando's uit
cd/home/pi/pq_bms_bluetooth||exit1
python3-mvenv venv
source venv/bin/activate
# Loop door elk apparaat en stuur SOC-waarde naar Domoticz
forMAC in"${!devices[@]}";do
IDX="${devices[$MAC]}"
REMAIN_AH_IDX="${remainAh_devices[$MAC]}"
# Verkrijg de JSON-output voor dit specifieke apparaat
JSON_OUTPUT=$(python3 main.py"$MAC"--bms)
# Controleer of JSON-output geldig is en extract de SOC waarde zonder '%' teken
SOC=$(echo"$JSON_OUTPUT"|jq-r'.SOC'|tr-d'%')
REMAIN_AH=$(echo"$JSON_OUTPUT"|jq'.remainAh')
# Controleer of SOC niet leeg of null is
if[[-n"$SOC"&&"$SOC"!="null"]];then
# Verstuur de SOC-waarde naar het juiste virtuele apparaat in Domoticz
Nu zal het script automatisch starten en om de 2 minuten uitgevoerd worden.
Uiteraard kun je het script naar eigen wens uitbreiden en alle van onderstaande waarden naar Domoticz wegschrijven.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{
"packVoltage":25530,
"voltage":25651,
"batteryPack":{
"1":3.206,
"2":3.205,
"3":3.206,
"4":3.207,
"5":3.208,
"6":3.206,
"7":3.207,
"8":3.206
},
"current":0,
"remainAh":14.47,
"factoryAh":113.0,
"cellTemperature":21,
"mosfetTemperature":21,
"heat":0,
"protectState":0,
"failureState":0,
"equilibriumState":0,
"batteryState":1,
"SOC":"12%",
"SOH":"113%",
"dischargesCount":12,
"dischargesAHCount":1296,
"firmwareVersion":"1.0.0",
"manfactureDate":"2023-12-20",
"hardwareVersion":"T40-11T40-10"
}
Power Queen geeft tijdelijk een korting van maar liefst 6% op alle producten. Ga hiervoor naar de website van Power Queen en gebruik kortingscode EHOCO.NL