ekm-omnimeter 0.2.2 → 0.2.3
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 +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +10 -5
- data/Rakefile +1 -0
- data/lib/ekm-omnimeter/meter.rb +76 -0
- data/lib/ekm-omnimeter/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 81c9725bd9f827fc67d3b86adf622ba2cbd130a3
|
4
|
+
data.tar.gz: 07f927b1852af3a02f5c5df84fcc78aa2fb791e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cf5880321ac3ba5961df65c25ef49ad9339224de1a451ee34712e3e2cc55e00ede182a70253b183075da0199a1b903140066abf29b8f000beb0f15d3822a584d
|
7
|
+
data.tar.gz: abd636ab283d8680a7256b3523f033be1370d70fd6d3f45c420bfaad0235335ee07c47de80cd4797bd67b97f80c4729d2fca8be3688ed623dd0be37b3eb638db
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -89,7 +89,7 @@ m.power_factor_1 # 1.0
|
|
89
89
|
m.power_factor_2 # 0.0
|
90
90
|
m.power_factor_3 # 0.0
|
91
91
|
m.maximum_demand # 22640.0
|
92
|
-
m.maximum_demand_period #
|
92
|
+
m.maximum_demand_period # 15 (in minutes, can be 15, 30 or 60)
|
93
93
|
m.ct_ratio # 400
|
94
94
|
m.pulse_1_count # 3
|
95
95
|
m.pulse_1_ratio # 1000
|
@@ -111,11 +111,16 @@ m.reactive_power_2 # 60
|
|
111
111
|
m.reactive_power_3 # 0
|
112
112
|
m.total_reactive_power # 84
|
113
113
|
m.frequency # 60.04
|
114
|
-
m.
|
115
|
-
m.
|
116
|
-
m.
|
114
|
+
m.pulse_1_input # low
|
115
|
+
m.pulse_2_input # high
|
116
|
+
m.pulse_3_input # high
|
117
|
+
m.current_direction_l1 # forward
|
118
|
+
m.current_direction_l2 # forward
|
119
|
+
m.current_direction_l3 # forward
|
120
|
+
m.output_1 # off
|
121
|
+
m.output_2 # off
|
117
122
|
m.kwh_data_decimal_places # 2
|
118
|
-
m.auto_reset_max_demand
|
123
|
+
m.auto_reset_max_demand # off
|
119
124
|
m.settable_pulse_per_kwh_ratio # 800
|
120
125
|
|
121
126
|
|
data/Rakefile
CHANGED
data/lib/ekm-omnimeter/meter.rb
CHANGED
@@ -340,6 +340,13 @@ module EkmOmnimeter
|
|
340
340
|
@values[:kwh_data_decimal_places] = d[:kwh_data_decimal_places].to_i
|
341
341
|
cast_response_to_correct_types(d)
|
342
342
|
|
343
|
+
# Lookup mapped values
|
344
|
+
puts "d[:pulse_input_hilo] = #{d[:pulse_input_hilo].inspect}"
|
345
|
+
|
346
|
+
d[:pulse_1_input], d[:pulse_2_input], d[:pulse_3_input] = lookup_pulse_input_states(d[:pulse_input_hilo])
|
347
|
+
d[:current_direction_l1], d[:current_direction_l2], d[:current_direction_l3] = lookup_direction_of_current(d[:direction_of_current])
|
348
|
+
d[:output_1], d[:output_2] = lookup_output_states(d[:outputs_onoff])
|
349
|
+
|
343
350
|
# Merge to values and reset time
|
344
351
|
@values.merge!(d)
|
345
352
|
@last_read_timestamp = Time.now
|
@@ -431,6 +438,10 @@ module EkmOmnimeter
|
|
431
438
|
# Cast types
|
432
439
|
cast_response_to_correct_types(d)
|
433
440
|
|
441
|
+
# Lookup mapped values
|
442
|
+
d[:maximum_demand_period] = lookup_demand_period_time(d[:maximum_demand_period])
|
443
|
+
d[:auto_reset_max_demand] = lookup_auto_reset_max_demand_period(d[:auto_reset_max_demand])
|
444
|
+
|
434
445
|
# Merge to values and reset time
|
435
446
|
@values.merge!(d)
|
436
447
|
@last_read_timestamp = Time.now
|
@@ -486,5 +497,70 @@ module EkmOmnimeter
|
|
486
497
|
|
487
498
|
end
|
488
499
|
|
500
|
+
|
501
|
+
|
502
|
+
PULSE_INPUT_STATE_MAP = {
|
503
|
+
0 => [:high,:high,:high], # High/High/High = 0 (30)
|
504
|
+
1 => [:high,:high,:low], # High/High/Low = 1 (31)
|
505
|
+
2 => [:high,:low,:high], # High/Low/High = 2 (32)
|
506
|
+
3 => [:high,:low,:low], # High Low/Low = 3 (33)
|
507
|
+
4 => [:low,:high,:high], # Low/High/High = 4 (34)
|
508
|
+
5 => [:low,:high,:low], # Low/High/Low = 5 (35)
|
509
|
+
6 => [:low,:low,:high], # Low/Low/High = 6 (36)
|
510
|
+
7 => [:low,:low,:low] # Low/Low/Low = 7 (37)
|
511
|
+
}
|
512
|
+
def lookup_pulse_input_states(v)
|
513
|
+
PULSE_INPUT_STATE_MAP[v.to_i]
|
514
|
+
end
|
515
|
+
|
516
|
+
|
517
|
+
DIRECTION_OF_CURRENT_MAP = {
|
518
|
+
#Line1/Line2/Line3
|
519
|
+
1 => [:forward,:forward,:forward], #Forward/Forward/Forward = 1 (31)
|
520
|
+
2 => [:forward,:forward,:reverse], #Forward/Forward/Reverse = 2 (32)
|
521
|
+
3 => [:forward,:reverse,:forward], #Forward/Reverse/Forward = 3 (33)
|
522
|
+
4 => [:reverse,:forward,:forward], #Reverse/Forward/Forward = 4 (34)
|
523
|
+
5 => [:forward,:reverse,:reverse], #Forward/Reverse/Reverse = 5 (35)
|
524
|
+
6 => [:reverse,:forward,:reverse], #Reverse/Forward/Reverse = 6 (36)
|
525
|
+
7 => [:reverse,:reverse,:forward], #Reverse/Reverse/Forward = 7 (37)
|
526
|
+
8 => [:reverse,:reverse,:reverse] #Reverse/Reverse/Reverse = 8 (38)
|
527
|
+
}
|
528
|
+
def lookup_direction_of_current(v)
|
529
|
+
DIRECTION_OF_CURRENT_MAP[v.to_i]
|
530
|
+
end
|
531
|
+
|
532
|
+
|
533
|
+
OUTPUT_INDICATOR_MAP = {
|
534
|
+
1 => [:off,:off], # OFF/OFF = 1 (31)
|
535
|
+
2 => [:off,:on], # OFF/ON = 2 (32)
|
536
|
+
3 => [:on,:off], # ON/OFF = 3 (33)
|
537
|
+
4 => [:on,:on] # ON/ON = 4 (34)
|
538
|
+
}
|
539
|
+
def lookup_output_states(v)
|
540
|
+
OUTPUT_INDICATOR_MAP[v.to_i]
|
541
|
+
end
|
542
|
+
|
543
|
+
|
544
|
+
DEMAND_PERIOD_TIME_MAP = {
|
545
|
+
1 => 15, # 15 min = 1 (31)
|
546
|
+
2 => 30, # 30 min = 2 (31)
|
547
|
+
3 => 60 # Hour = 3 (31)
|
548
|
+
}
|
549
|
+
def lookup_demand_period_time(v)
|
550
|
+
DEMAND_PERIOD_TIME_MAP[v.to_i]
|
551
|
+
end
|
552
|
+
|
553
|
+
|
554
|
+
AUTO_RESET_MAX_DEMAND_MAP = {
|
555
|
+
0 => :off, # OFF = 0 (30)
|
556
|
+
1 => :monthly, # Monthly = 1 (31)
|
557
|
+
2 => :weekly, # Weekly = 2 (32)
|
558
|
+
3 => :daily, # Daily = 3 (33)
|
559
|
+
4 => :hourly # Hourly = 4 (34)
|
560
|
+
}
|
561
|
+
def lookup_auto_reset_max_demand_period(v)
|
562
|
+
AUTO_RESET_MAX_DEMAND_MAP[v.to_i]
|
563
|
+
end
|
564
|
+
|
489
565
|
end
|
490
566
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ekm-omnimeter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jordan Duggan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
11
|
+
date: 2014-04-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|