mywx_pusher 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b5fe4c0a61fc28582065e62f5ccf563fe204626662f64d0bbd53c34c2723f5ca
4
- data.tar.gz: 82b0733f8345e966c1fda7caed79174eff61778f27917f81a6097158a7b5a7ed
3
+ metadata.gz: 8eeb914b9d3c08b8400056b7faedaf21b1b26aecd27f2de46150e91a86bdcca4
4
+ data.tar.gz: 98e35107640ccc0016e51ccb984e5987101c7fb7d8f2681ce83aa7a236c8e261
5
5
  SHA512:
6
- metadata.gz: c80e6f90b690893cce6c6735e532f1d60fc4487a5429246ca0fae7db7692139061bfe3d355ad32d1bed107a229f91ac40aff7a850c74f282056f54f16dceb1b9
7
- data.tar.gz: 43c344d79a7b5645893609db286e91b81e9a08281095e8dfb7ff1acfda33dc8a8cedf89e1385ae3e844bf42a6ccf7d22c55e01631bdc907888f2f68d36bce6c1
6
+ metadata.gz: 65218968070e650cb6d21620246c0b25c451cc5a799c265e5269256fd7b64f7e71a7bafe62a59ea8469fecc99320ec3be455c980d92bdce0c0fe5ce8d6e2a848
7
+ data.tar.gz: aca04123e6a7a30429a8fb9ccf618e8684673d7d4f51f3d40476ce93ea1bc0d664bb2c20a177c47efbbd691ef3e09fb8d3a6dba5d26fde9bb79458b0b3cc42ec
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mywx_pusher (0.1.3)
4
+ mywx_pusher (0.1.4)
5
5
  weatherlink (~> 0.1.2)
6
6
 
7
7
  GEM
data/exe/mywx_pusher CHANGED
@@ -40,6 +40,7 @@ class MywxPusherCommand
40
40
  opts.on('-d', '--debug', 'Enable debug mode') { logger.level = Logger::DEBUG }
41
41
 
42
42
  opts.on('-w', '--weatherlink-host=HOST', '') { |o| options.weatherlink_host = o }
43
+ opts.on('-a', '--airlink-host=HOST', '') { |o| options.airlink_host = o }
43
44
 
44
45
  opts.on('-b', '--mywx-base-uri=URI', '') { |o| options.mywx_base_uri = o }
45
46
  opts.on('-s', '--mywx-station-slug=SLUG', '') { |o| options.mywx_station_slug = o }
@@ -69,18 +70,26 @@ class MywxPusherCommand
69
70
  end
70
71
 
71
72
  def collect_data
72
- logger.debug("Collecting data from #{options.weatherlink_host}...")
73
73
 
74
74
  ts = Time.now.to_i
75
75
 
76
76
  begin
77
- current_conditions = client.current_conditions
77
+ logger.debug("Collecting data from #{options.weatherlink_host}...")
78
+ weatherlink_current_conditions = weatherlink_client.current_conditions
78
79
  rescue StandardError => e
79
80
  raise CollectError, e
80
81
  end
81
82
 
82
- iss_record = current_conditions.find { |sd| sd.record_type.id == 1 }
83
- lss_pressure_record = current_conditions.find { |sd| sd.record_type.id == 3 }
83
+ begin
84
+ logger.debug("Collecting data from #{options.airlink_host}...")
85
+ airlink_current_conditions = airlink_client&.current_conditions
86
+ rescue StandardError => e
87
+ raise CollectError, e
88
+ end
89
+
90
+ iss_record = weatherlink_current_conditions.find { |sd| sd.record_type.id == 1 }
91
+ lss_pressure_record = weatherlink_current_conditions.find { |sd| sd.record_type.id == 3 }
92
+ airlink_record = airlink_current_conditions&.find { |sd| sd.record_type.id == 6 }
84
93
 
85
94
  data = {
86
95
  ts: ts,
@@ -94,6 +103,18 @@ class MywxPusherCommand
94
103
  solar_radiation: iss_record.solar_rad.scalar.to_f.round(2),
95
104
  }
96
105
 
106
+ if airlink_record
107
+ air_quality_data = {
108
+ air_quality: {
109
+ pm_1: airlink_record.pm_1,
110
+ pm_2p5: airlink_record.pm_2p5,
111
+ pm_10: airlink_record.pm_10,
112
+ }
113
+ }
114
+
115
+ data.merge!(air_quality_data)
116
+ end
117
+
97
118
  logger.debug("Collected data (#{data.size} variables): #{data}")
98
119
 
99
120
  data
@@ -111,18 +132,28 @@ class MywxPusherCommand
111
132
  true
112
133
  end
113
134
 
114
- def client
115
- @client ||= WeatherLink::LocalClient.new(
135
+ def weatherlink_client
136
+ @weatherlink_client ||= WeatherLink::LocalClient.new(
116
137
  host: options.weatherlink_host,
117
138
  desired_units: WeatherLink::METRIC_WEATHER_UNITS
118
139
  )
119
140
  end
120
141
 
142
+ def airlink_client
143
+ return unless options.airlink_host
144
+
145
+ @airlink_client ||= WeatherLink::LocalClient.new(
146
+ host: options.airlink_host,
147
+ desired_units: WeatherLink::METRIC_WEATHER_UNITS
148
+ )
149
+ end
150
+
121
151
  def run
122
152
  logger.info(
123
153
  format(
124
- 'Collecting from %s, pushing to %s every %i seconds...',
154
+ 'Collecting weather data from %s%s, pushing to %s every %i seconds...',
125
155
  options.weatherlink_host,
156
+ options.airlink_host ? " and air quality data from #{options.airlink_host}" : '',
126
157
  mywx_push_data_uri,
127
158
  options.interval
128
159
  )
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MywxPusher
4
- VERSION = '0.1.3'
4
+ VERSION = '0.1.4'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mywx_pusher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Cole
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-16 00:00:00.000000000 Z
11
+ date: 2021-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake