alpha_ess 1.0 → 1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +25 -8
  3. data/alpha_ess.gemspec +1 -1
  4. data/lib/alpha_ess.rb +16 -3
  5. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 68832aefca51b56b3377029413e5e45c0becbb9cc013c4f4bfe26fc0d34f4b72
4
- data.tar.gz: '032388588e713ebaf563c051cf3908e43e8590466b090d8bb28e7ad3a68dcbb3'
3
+ metadata.gz: a773748c595dfdcf98ba7926107950335b88449a1b1900176d368fa7be3f14df
4
+ data.tar.gz: '049f52e33928d370ebd5245da4a226c298f50fd18ace2c9af519837e02035dba'
5
5
  SHA512:
6
- metadata.gz: cc3b2139df295df17edb54869d87bf8ff60c7c9b3cb03811ecc8af7ac1d9b87af748ba5d1608b62555eb3b5cac445e7d5e3a448d2ec07970295bfc30e30f7c30
7
- data.tar.gz: 8abb15e9dfe30b362b8870c55032171b2fac00a87ff14fe7d25d465aa29d6f17c3923bfcab3f1ccd5c70efb350019fea41299e3a9e9a040f3730fce16c474bd4
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 3 Funktionen für das Abholen von Daten gibt es derzeit:
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
- load "alpha_ess.rb" # require "alpha_ess"
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
- load "alpha_ess.rb"
127
+ require "alpha_ess"
119
128
  ae = AlphaEss.new
120
129
  ae_data = ae.get_last_power_data()
121
- batterie_ladung_erwartet = 40
122
- if (ae_data["soc"].to_f < soc_expexcted)
123
- ae.send_pushover_alarm_by_soc "Die Batterie hat aktuell weniger als #{soc_expexcted} % Ladung!"
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
- load "alpha_ess.rb"
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
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = 'alpha_ess'
3
- spec.version = '1.0'
3
+ spec.version = '1.1'
4
4
  spec.date = '2022-10-02'
5
5
  spec.summary = "Alpha Ess API Calls"
6
6
  spec.description = "a Ruby class for Alpha-Ess-API-Calls"
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" => today,
14
+ "szDay" => Time.now.strftime("%Y-%m-%d"),
16
15
  "isOEM" => 0,
17
- "sDate" => today
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())
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alpha_ess
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.0'
4
+ version: '1.1'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oliver Gaida