@@ -5,7 +5,7 @@ SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
5
5
source " ${SCRIPT_DIR} " /.venv/bin/activate
6
6
cd " ${SCRIPT_DIR} " /source || exit 1
7
7
8
- read -r -d ' ' setup_code << 'EOF '
8
+ read -r -d ' ' inverter_setup_code << 'EOF '
9
9
from goodwe.et import OperationMode
10
10
from inverter import Inverter
11
11
@@ -14,20 +14,21 @@ inverter.log.info("Inverter is manually controlled by a user")
14
14
EOF
15
15
16
16
17
- if [[ ! ${1} =~ ^(--status| --mode)$ ]]; then
17
+ if [[ ! ${1} =~ ^(--status| --mode| --tibber )$ ]]; then
18
18
echo " This script allows you to interact with the inverter."
19
19
echo " "
20
20
echo " You have to supply one of the following arguments:"
21
21
echo " --status Get the current state of charge and operation mode of the inverter"
22
22
echo " --mode {GENERAL,ECO_CHARGE} Set the operation mode of the inverter"
23
+ echo " --tibber Fetches, displays the tibber rates and writes them to the database"
23
24
echo " "
24
- echo " It uses the hostname defined in the .env file"
25
+ echo " It uses the all the variables defined in the .env file"
25
26
exit 1
26
27
fi
27
28
28
29
if [[ ${1} == " --status" ]]; then
29
30
python3 - << EOF
30
- ${setup_code }
31
+ ${inverter_setup_code }
31
32
try:
32
33
mode = inverter.get_operation_mode().name
33
34
soc = inverter.get_state_of_charge()
@@ -36,7 +37,7 @@ except Exception as e:
36
37
inverter.log.exception(e)
37
38
exit(1)
38
39
EOF
39
- exit $?
40
+ exit $?
40
41
fi
41
42
42
43
if [[ ${1} == " --mode" ]]; then
@@ -46,7 +47,7 @@ if [[ ${1} == "--mode" ]]; then
46
47
fi
47
48
48
49
python3 - << EOF
49
- ${setup_code }
50
+ ${inverter_setup_code }
50
51
try:
51
52
last_mode = inverter.get_operation_mode().name
52
53
inverter.set_operation_mode(OperationMode.${2} )
@@ -55,5 +56,21 @@ except Exception as e:
55
56
inverter.log.exception(e)
56
57
exit(1)
57
58
EOF
58
- exit $?
59
+ exit $?
60
+ fi
61
+
62
+ if [[ ${1} == " --tibber" ]]; then
63
+ python3 - << EOF
64
+ from tibber_api_handler import TibberAPIHandler
65
+ try:
66
+ tibber_api_handler = TibberAPIHandler()
67
+ api_result = tibber_api_handler._fetch_upcoming_prices_from_api()
68
+ all_energy_rates = tibber_api_handler._extract_energy_rates_from_api_response(api_result)
69
+ tibber_api_handler._remove_energy_rates_from_the_past(all_energy_rates)
70
+ tibber_api_handler.write_energy_rates_to_database(all_energy_rates)
71
+ except Exception as e:
72
+ tibber_api_handler.log.exception(e)
73
+ exit(1)
74
+ EOF
75
+ exit $?
59
76
fi
0 commit comments