alpha_ess 1.0 → 1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +25 -8
- data/alpha_ess.gemspec +1 -1
- data/lib/alpha_ess.rb +16 -3
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz: '
|
3
|
+
metadata.gz: a773748c595dfdcf98ba7926107950335b88449a1b1900176d368fa7be3f14df
|
4
|
+
data.tar.gz: '049f52e33928d370ebd5245da4a226c298f50fd18ace2c9af519837e02035dba'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8aa05186e306f0372b60c99b20975b13987b6c3bca0a84790e4a7ef5fa2c4d07a6cd20c6dbe4245aaebc97dbf27a3a39367fe15ecddd3482b354abf288a6f6a
|
7
|
+
data.tar.gz: e1613f50c9228a65edacc729cfa5c16320999916d446ee86681f46a41d0979e5f4ae957409e0fd87fab28279fd217838dad34c6169a6fe0610c47ad0dd1c5d33
|
data/README.md
CHANGED
@@ -79,18 +79,27 @@ ae.send_pushover_alarm_by_soc("Nachrichtentext ...", po_user, po_token)
|
|
79
79
|
|
80
80
|
Wenn ihr wissen wollt, was die einzelnen Funktionen zurückgeben und wo ihr welche Daten findet, dann probiert es einfach aus. Ich werde sicherlich bald ein youtube Video dazu machen, wo ich das vorführe.
|
81
81
|
|
82
|
-
Folgende
|
82
|
+
Folgende 4 Funktionen für das Abholen von Daten gibt es derzeit:
|
83
83
|
|
84
|
-
- get_stics_by_day, bringt statische Daten des Tages
|
84
|
+
- get_stics_by_day, bringt statische Daten des aktuellen Tages
|
85
|
+
- get_stics_by_period, bringt statische Daten bezogen auf einen Zeitraum von ganzen Tagen
|
85
86
|
- get_last_power_data, bringt aktuelle Betriebsdaten (momentaner Verbrauch / Erzeugung etc.)
|
86
87
|
- get_custom_use_ess_setting, holt Daten zur aktuellen Systemeinstellung
|
87
88
|
|
89
|
+
## Systemeinstellungen verändern
|
90
|
+
|
91
|
+
Hier wird es spannend. Die Funktion `set_custom_use_ess_setting` erwartet einen Ruby-Hash. Wie die Schlüssel und Werte aussehen sollten, lassen sich aus der Ausgabe der Funktion `get_custom_use_ess_setting` ableiten.
|
92
|
+
Am besten Ihr spielt in den Einstellungen auf der Website herum speichert sie und prüft mit `get_custom_use_ess_setting` welche Schlüssel sich wie verändert haben. Dann habt ihr einen Idee wie ihr diese Werte per Script setzen
|
93
|
+
könnt. Viel Erfolg :-) .
|
94
|
+
|
95
|
+
Hinweis: Man kann über `get_custom_use_ess_setting` die Einstellungen sichern. Einfach die Ausgabe in eine Datei schreiben.
|
96
|
+
|
88
97
|
## aktuellen Status abfragen
|
89
98
|
|
90
99
|
Die Daten über `/api/ESS/GetLastPowerDataBySN` werden alle 10 Sekunden von der API neu bereitgestellt.
|
91
100
|
|
92
101
|
```ruby
|
93
|
-
|
102
|
+
require "alpha_ess"
|
94
103
|
ae = AlphaEss.new
|
95
104
|
data = ae.get_last_power_data()
|
96
105
|
netz = data["pmeter_l1"].to_f + data["pmeter_l2"].to_f + data["pmeter_l3"].to_f
|
@@ -115,12 +124,14 @@ Hier die Ausgabe und der Vergleich zur Website:
|
|
115
124
|
## pushover Alarm auslösen, wenn die PV-Anlage einen speziellen Status hat
|
116
125
|
|
117
126
|
```ruby
|
118
|
-
|
127
|
+
require "alpha_ess"
|
119
128
|
ae = AlphaEss.new
|
120
129
|
ae_data = ae.get_last_power_data()
|
121
|
-
batterie_ladung_erwartet =
|
122
|
-
if (ae_data["soc"].to_f <
|
123
|
-
ae.send_pushover_alarm_by_soc "Die Batterie hat aktuell
|
130
|
+
batterie_ladung_erwartet = 15
|
131
|
+
if (ae_data["soc"].to_f < batterie_ladung_erwartet)
|
132
|
+
ae.send_pushover_alarm_by_soc "Die Batterie hat aktuell eine Ladung von #{ae_data["soc"]} %, erwartet sind #{batterie_ladung_erwartet} %!"
|
133
|
+
else
|
134
|
+
puts "OK, die Ladung beträgt derzeit #{ae_data["soc"]} %."
|
124
135
|
end
|
125
136
|
# ae.set_min_soc(((ae_data["soc"].to_f)+0.9).to_i)
|
126
137
|
# sleep 10
|
@@ -134,7 +145,7 @@ end
|
|
134
145
|
## update ESS Settings
|
135
146
|
|
136
147
|
```ruby
|
137
|
-
|
148
|
+
require "alpha_ess"
|
138
149
|
ae = AlphaEss.new
|
139
150
|
bat_min = ae.get_custom_use_ess_setting()["bat_use_cap"]
|
140
151
|
puts "Batterie-Minimum: #{bat_min}"
|
@@ -142,3 +153,9 @@ ae.set_custom_use_ess_setting({"bat_use_cap" => 15})
|
|
142
153
|
bat_min = ae.get_custom_use_ess_setting()["bat_use_cap"]
|
143
154
|
puts "Batterie-Minimum neu: #{bat_min}"
|
144
155
|
```
|
156
|
+
|
157
|
+
## Statischtische Daten des letzten Monats abfragen
|
158
|
+
|
159
|
+
```
|
160
|
+
require "alpha_ess"
|
161
|
+
ae = AlphaEss.new
|
data/alpha_ess.gemspec
CHANGED
data/lib/alpha_ess.rb
CHANGED
@@ -8,13 +8,12 @@ class AlphaEss
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def get_stics_by_day()
|
11
|
-
today = Time.now.strftime("%Y-%m-%d")
|
12
11
|
body = {
|
13
12
|
"sn" => @serial,
|
14
13
|
"userId" => @serial,
|
15
|
-
"szDay" =>
|
14
|
+
"szDay" => Time.now.strftime("%Y-%m-%d"),
|
16
15
|
"isOEM" => 0,
|
17
|
-
"sDate" =>
|
16
|
+
"sDate" => Time.now.strftime("%Y-%m-%d")
|
18
17
|
}
|
19
18
|
url = "https://cloud.alphaess.com/api/Power/SticsByDay"
|
20
19
|
res = HTTParty.post(url, headers: header(), body: body.to_json)
|
@@ -31,6 +30,20 @@ class AlphaEss
|
|
31
30
|
res.parsed_response["data"]
|
32
31
|
end
|
33
32
|
|
33
|
+
def get_stics_by_period(beginDay = Time.now.strftime("%Y-%m-%d"), endDay = Time.now.strftime("%Y-%m-%d"))
|
34
|
+
body = {
|
35
|
+
"beginDay" => beginDay,
|
36
|
+
"endDay" => endDay,
|
37
|
+
"tday" => Time.now.strftime("%Y-%m-%d"),
|
38
|
+
"isOEM" => 0,
|
39
|
+
"SN" => @serial,
|
40
|
+
"noLoading" => true
|
41
|
+
}
|
42
|
+
url = "https://cloud.alphaess.com/api/Power/SticsByPeriod"
|
43
|
+
res = HTTParty.post(url, headers: header(), body: body.to_json)
|
44
|
+
res.parsed_response["data"]
|
45
|
+
end
|
46
|
+
|
34
47
|
def get_custom_use_ess_setting()
|
35
48
|
url = "https://cloud.alphaess.com/api/Account/GetCustomUseESSSetting"
|
36
49
|
res = HTTParty.get(url, headers: header())
|