huginn_renault_ze_agent 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b6c82cb1b7fc09ef9a5b74fcf21d53554d286782deffd642f1e1c822963860ba
4
- data.tar.gz: a92a61ef98519fb37eba57be92e13109d0804fa30f173cda8fb93311c46b6325
3
+ metadata.gz: ee53dc3638485bf02adf6c7693aa2cbd39cb414634f30050083f39da0480a40b
4
+ data.tar.gz: bec9b3518643d646a9f2473df83eb6beb05bf95acfed43bdee05b77a06a4a318
5
5
  SHA512:
6
- metadata.gz: 7bae069a3481e4396fbbec077bf3b400d03a7ea9b6280af4296f648be08240d07a989f421e466e0197e8b0d644a49655eef22f9a417a6df6add04e5ad5962da6
7
- data.tar.gz: edbaabe68939e7054a9123a5c7cd5a466d8357f7ef55ef9abc63e77fc299ab792d9a0e0abaafac2a9288966d1c477db51c85e73cc33829799a95c0327bc1f52c
6
+ metadata.gz: 7caec636dec762b4059a2059739d9ee9e7baa62b552e7e0dc61b159876076772965d20ffc92b549c8e01647c564d40b1edb17be9e308e10d713d3632d5294d57
7
+ data.tar.gz: 6e8cc50147ebc97127f9597f3011d1cb3d00e829bf0439673e874935376ab010d4c0c296b921a1e55720860c23c7a89b2bcf09b18e74130a3d6056b003203588
@@ -1,7 +1,7 @@
1
1
  module Agents
2
2
  class RenaultZeBatteryAgent < Agent
3
3
  include FormConfigurable
4
-
4
+
5
5
  default_schedule 'every_5h'
6
6
 
7
7
  cannot_receive_events!
@@ -13,6 +13,21 @@ module Agents
13
13
  provide credentials named `renault_ze_username` and `renault_ze_password`.
14
14
  MD
15
15
 
16
+ event_description <<-MD
17
+ Events look like this:
18
+
19
+ ```json
20
+ {
21
+ "charge_level": 40,
22
+ "charging": false,
23
+ "plugged": false,
24
+ "remaining_range": 115.0,
25
+ "last_update": 1554572276,
26
+ "last_update_hours_ago": 5.12
27
+ }
28
+ ```
29
+ MD
30
+
16
31
  def default_options
17
32
  {
18
33
  "username" => "",
@@ -36,11 +51,22 @@ module Agents
36
51
  username = interpolated["username"].present? ? interpolated["username"] : credential("renault_ze_username")
37
52
  password = interpolated["password"].present? ? interpolated["password"] : credential("renault_ze_password")
38
53
  service = RenaultZE::Client.new(username, password)
39
- content = service.get_battery(service.login())
40
54
 
41
- return if memory["last_update"] == content["last_update"]
42
- memory["last_update"] = content["last_update"]
43
- create_event payload: content
55
+ begin
56
+ content = service.get_battery(service.login())
57
+ rescue
58
+ error("Could not fetch battery level: " + $!)
59
+ raise
60
+ end
61
+
62
+ if memory["last_update"] != content["last_update"]
63
+ created_event = create_event payload: content
64
+
65
+ log("Creating new event as newer data received, updated #{content["last_update_hours_ago"]}h ago.", :outbound_event => created_event)
66
+ memory["last_update"] = content["last_update"]
67
+ else
68
+ log("Not creating event as no update since last run. Last update was #{content["last_update_hours_ago"]}h ago.")
69
+ end
44
70
  end
45
71
 
46
72
  end
@@ -11,7 +11,7 @@ module RenaultZE
11
11
  headers: {"Content-Type": "application/json"},
12
12
  body: {username: @username, password: @password}.to_json
13
13
  )
14
- raise 'Unexpected response code: #{response}' unless response.code == 200
14
+ raise "Login - Unexpected response code: #{response}" unless response.code == 200
15
15
 
16
16
  content = JSON.parse response.body
17
17
  return {
@@ -21,14 +21,14 @@ module RenaultZE
21
21
  end
22
22
 
23
23
  def get_battery(creds)
24
- raise 'Missing token in input: #{creds}' if creds[:token].nil?
25
- raise 'Missing VIN in input: #{creds}' if creds[:vin].nil?
24
+ raise "Battery - Missing token in input: #{creds}" if creds[:token].nil?
25
+ raise "Battery - Missing VIN in input: #{creds}" if creds[:vin].nil?
26
26
 
27
27
  response = HTTParty.get(
28
28
  "https://www.services.renault-ze.com/api/vehicle/#{creds[:vin]}/battery",
29
29
  headers: {"Authorization": "Bearer #{creds[:token]}"}
30
30
  )
31
- raise 'Unexpected response code: #{response}' unless response.code == 200
31
+ raise "Battery - Unexpected response code: #{response}" unless response.code == 200
32
32
 
33
33
  result = JSON.parse response.body
34
34
  unless result["last_update"].nil?
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: huginn_renault_ze_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrian Schoenig