lightwaverf 0.10.0 → 0.11.0
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.
- data/lib/lightwaverf.rb +38 -16
- metadata +2 -2
data/lib/lightwaverf.rb
CHANGED
@@ -132,8 +132,8 @@ class LightWaveRF
|
|
132
132
|
crontab << '# new crontab added by `' + executable + ' configure`'
|
133
133
|
|
134
134
|
if config['monitor']
|
135
|
-
crontab << '# ' + executable + ' energy monitor check ever
|
136
|
-
crontab << '
|
135
|
+
crontab << '# ' + executable + ' energy monitor check ever minute + summarise every 5'
|
136
|
+
crontab << '* * * * * ' + executable + ' energy > /tmp/lightwaverf_energy.out 2>&1'
|
137
137
|
crontab << '*/5 * * * * ' + executable + ' summarise 7 > /tmp/lightwaverf_summarise.out 2>&1'
|
138
138
|
end
|
139
139
|
|
@@ -476,6 +476,18 @@ class LightWaveRF
|
|
476
476
|
debug and ( p self.time 'send' )
|
477
477
|
success = false
|
478
478
|
debug and ( p 'Executing send on device: ' + device + ' in room: ' + room + ' with ' + ( state ? 'state ' + state : 'no state' ))
|
479
|
+
|
480
|
+
|
481
|
+
pythonFile = self.get_config['pywaverf']
|
482
|
+
if File.exist?( pythonFile )
|
483
|
+
cmd = "#{pythonFile} \"#{room}\" \"#{device}\" \"#{state}\" \"#{debug}\""
|
484
|
+
debug and ( p cmd )
|
485
|
+
p `#{cmd}`
|
486
|
+
debug and ( p self.time 'done python' )
|
487
|
+
return
|
488
|
+
end
|
489
|
+
|
490
|
+
|
479
491
|
rooms = self.class.get_rooms self.get_config, debug
|
480
492
|
debug and ( p self.time 'got rooms' )
|
481
493
|
|
@@ -621,16 +633,24 @@ class LightWaveRF
|
|
621
633
|
|
622
634
|
def energy title = nil, text = nil, debug = false
|
623
635
|
debug and text and ( p 'energy: ' + text )
|
624
|
-
data = self.raw
|
625
|
-
|
626
|
-
match =
|
627
|
-
|
628
|
-
|
636
|
+
data = self.raw nil, true, debug
|
637
|
+
debug and ( p data )
|
638
|
+
match = false
|
639
|
+
# {"trans":17903,"mac":"03:0F:DA","time":1452531946,"prod":"pwrMtr","serial":"9EB3FE","router":"4F0500","type":"energy","cUse":1163,"todUse":4680,"yesUse":0}
|
640
|
+
begin
|
641
|
+
data = JSON.parse data[2, data.length]
|
642
|
+
debug and ( p data.inspect )
|
643
|
+
rescue
|
644
|
+
STDERR.puts 'cannot parse ' + data.to_s
|
645
|
+
data = nil
|
646
|
+
end
|
647
|
+
debug and ( p data )
|
648
|
+
if data
|
629
649
|
data = {
|
630
650
|
'message' => {
|
631
|
-
'usage' =>
|
632
|
-
'max' =>
|
633
|
-
'today' =>
|
651
|
+
'usage' => data['cUse'],
|
652
|
+
# 'max' => 'unused now',
|
653
|
+
'today' => data['todUse']
|
634
654
|
}
|
635
655
|
}
|
636
656
|
data['timestamp'] = Time.now.to_s
|
@@ -682,7 +702,7 @@ class LightWaveRF
|
|
682
702
|
end
|
683
703
|
|
684
704
|
def raw command, listen = false, debug = false
|
685
|
-
debug and ( p self.time + ' ' + __method__.to_s + ' ' + command )
|
705
|
+
debug and ( p self.time + ' ' + __method__.to_s + ' ' + command.to_s )
|
686
706
|
response = nil
|
687
707
|
# Get host address or broadcast address
|
688
708
|
host = self.get_config['host'] || '255.255.255.255'
|
@@ -699,14 +719,16 @@ class LightWaveRF
|
|
699
719
|
# Bind socket to listen for response
|
700
720
|
begin
|
701
721
|
listener.bind '0.0.0.0', 9761
|
702
|
-
rescue
|
703
|
-
response = "can't bind to listen for a reply"
|
722
|
+
rescue StandardError => e
|
723
|
+
response = "can't bind to listen for a reply; " + e.to_s
|
704
724
|
end
|
705
725
|
end
|
706
726
|
# Broadcast command to server
|
707
|
-
|
708
|
-
|
709
|
-
|
727
|
+
if command
|
728
|
+
debug and ( p self.time 'sending...' )
|
729
|
+
listener.send command, 0, host, 9760
|
730
|
+
debug and ( p self.time 'sent' )
|
731
|
+
end
|
710
732
|
# Receive response
|
711
733
|
if listen and ! response
|
712
734
|
debug and ( p self.time 'receiving...' )
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lightwaverf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2016-01-11 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: htmlentities
|