teleinfo 0.0.3 → 0.0.4

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
  SHA1:
3
- metadata.gz: 1e10c9712ac2920c109a4eefff000c6671d4e70e
4
- data.tar.gz: 4ed94c8c70f0c1511699784c4a8b5a7bbea1fb84
3
+ metadata.gz: 6a2e5151fc0f9dbec1fba1108594c584ecc4e117
4
+ data.tar.gz: 10da7915e62199e51315977da784e86e6fbdfae5
5
5
  SHA512:
6
- metadata.gz: ff0c6a269c1b2355f46d7b303e6971ed7673d8026d4dd555e590b78f91e3878d52c99b64b5d453e30186599bae28a0dad6878b0755607b0c9a91d87e4f83a752
7
- data.tar.gz: b9dd55ab1c06ff706a53d7273724a8fcf4484df91c5203b5dd97ca1ec04f3ff9cc994176d2a45b69e0628e3671ce2e5734077d47ab8c2aabd4573de771971939
6
+ metadata.gz: 8c3e077084c4c7c6527e36481e71ac5878c5edb948c8c0d8b7715b860429073dfaaca4b5b257fe8de07a58b8479c6e241054a3a6d5997fe9a24a33d5ba43b648
7
+ data.tar.gz: aa71929e5e90f8f7c7dec11ac7359165550e2b0cdfe80a57189f51e519e1cbd99d48ddcc01b49281862ecf27d62c5b6e3f103017f20a704d25ddac5bfd9230f3
data/CHANGELOG CHANGED
@@ -1,3 +1,6 @@
1
+ 0.0.4
2
+ * Handle "TEMPO" tarif. Thanks to Guillaume Betous
3
+
1
4
  0.0.3
2
5
  * Handle "BASE" tarif. Thanks to Guillaume Betous
3
6
 
data/README.md CHANGED
@@ -44,7 +44,7 @@ or
44
44
 
45
45
  $ cat /dev/ttyAMA0 | teleinfo
46
46
 
47
- You'll get on stdout a Hash representation like:
47
+ You'll get on stdout a JSON representation like:
48
48
 
49
49
  {"adco":"424242424242","optarif":"HC","isousc":30,"hchc":25036224,"hchp":40244232,"ptec":"HP","iinst":16,"imax":41,"papp":3580,"hhphc":"D"}
50
50
 
@@ -29,11 +29,11 @@ module Teleinfo
29
29
  @data[:optarif] = $1.sub(/\.+$/, '')
30
30
  when /^ISOUSC (\d{2}) ./
31
31
  @data[:isousc] = $1.to_i
32
- when /^BASE (\d{9}) ./
32
+ when /^BASE (\d{9}) ./ # BASE TARIF
33
33
  @data[:base] = $1.to_i
34
- when /^HCHC (\d{9}) ./
35
- @data[:hchc] = $1.to_i
36
- when /^HCHP (\d{9}) ./
34
+ when /^HCHC (\d{9}) ./ # HPHC TARIF
35
+ @data[:hchc] = $1.to_i # HPHC TARIF
36
+ when /^HCHP (\d{9}) ./ # HPHC TARIF
37
37
  @data[:hchp] = $1.to_i
38
38
  when /^PAPP (\d{5}) ./
39
39
  @data[:papp] = $1.to_i
@@ -43,9 +43,23 @@ module Teleinfo
43
43
  @data[:iinst] = $1.to_i
44
44
  when /^IMAX (\d{3}) ./
45
45
  @data[:imax] = $1.to_i
46
- when /^HHPHC (\S{1})/
46
+ when /^HHPHC (\S{1})/ # HPHC TARIF
47
47
  @data[:hhphc] = $1
48
- when /^ADPS (\d{3})/
48
+ when /^BBRHCJB (\d{9}) ./ # TEMPO Jour Bleu
49
+ @data[:bbrhcjb] = $1.to_i
50
+ when /^BBRHPJB (\d{9}) ./
51
+ @data[:bbrhpjb] = $1.to_i # TEMPO Jour Bleu
52
+ when /^BBRHCJW (\d{9}) ./
53
+ @data[:bbrhcjw] = $1.to_i # TEMPO Jour Blanc
54
+ when /^BBRHPJW (\d{9}) ./
55
+ @data[:bbrhpjw] = $1.to_i # TEMPO Jour Blanc
56
+ when /^BBRHCJR (\d{9}) ./
57
+ @data[:bbrhcjr] = $1.to_i # TEMPO Jour rouge
58
+ when /^BBRHPJR (\d{9}) ./
59
+ @data[:bbrhpjr] = $1.to_i # TEMPO Jour rouge
60
+ when /^DEMAIN (\S{4}) ./ # TEMPO lendemain
61
+ @data[:bbrhpjr] = $1
62
+ when /^ADPS (\d{3})/ # Alerte dépassement de seuil
49
63
  @data[:adps] = $1.to_i
50
64
  when /MOTDETAT/
51
65
  # always 00000…
@@ -1,3 +1,3 @@
1
1
  module Teleinfo
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -1,10 +1,9 @@
1
1
  require 'spec_helper'
2
2
 
3
- StringFrame = [
3
+ StringFrameHPHC = [
4
4
  'ADCO 424242424242 E',
5
5
  'OPTARIF HC.. <',
6
6
  'ISOUSC 30 9',
7
- 'BASE 101597537 1',
8
7
  'HCHC 023995979 ;',
9
8
  'HCHP 038653523 6',
10
9
  'PTEC HP.. ',
@@ -14,6 +13,36 @@ StringFrame = [
14
13
  'HHPHC D'
15
14
  ]
16
15
 
16
+ StringFrameBASE = [
17
+ 'ADCO 424242424242 E',
18
+ 'OPTARIF HC.. <',
19
+ 'ISOUSC 30 9',
20
+ 'BASE 101597537 1',
21
+ 'PTEC TH.. $',
22
+ 'IINST 008 _',
23
+ 'IMAX 041 D',
24
+ 'PAPP 01770 0',
25
+ ]
26
+
27
+ StringFrameTEMPO = [
28
+ 'ADCO 424242424242 E',
29
+ 'OPTARIF BBR( S',
30
+ 'ISOUSC 90 ?',
31
+ 'BBRHCJB 044659149 G',
32
+ 'BBRHPJB 106861212 E',
33
+ 'BBRHCJW 009486954 _',
34
+ 'BBRHPJW 017712424 [',
35
+ 'BBRHCJR 005468651 P',
36
+ 'BBRHPJR 009396630 ^',
37
+ 'PTEC HPJB P',
38
+ 'DEMAIN ---- "',
39
+ 'IINST 022 [',
40
+ 'IMAX 041 D',
41
+ 'PAPP 05240 ,',
42
+ 'HHPHC Y D',
43
+ 'MOTDETAT 000000 B'
44
+ ]
45
+
17
46
  describe Teleinfo::Frame do
18
47
  it 'should instanciate only with a non empty Array of String' do
19
48
  expect{ Teleinfo::Frame.new() }.to raise_error
@@ -26,17 +55,18 @@ describe Teleinfo::Frame do
26
55
  end
27
56
 
28
57
  it 'should have no error when parsing a correct frame' do
29
- frame = Teleinfo::Frame.new(StringFrame)
58
+ frame = Teleinfo::Frame.new(StringFrameBASE)
59
+ expect(frame.errors).to eq([])
60
+ frame = Teleinfo::Frame.new(StringFrameHPHC)
30
61
  expect(frame.errors).to eq([])
31
62
  end
32
63
 
33
- it 'should return valid Hash on #to_hash' do
34
- frame = Teleinfo::Frame.new(StringFrame)
64
+ it 'should return valid Hash on #to_hash for HPHC' do
65
+ frame = Teleinfo::Frame.new(StringFrameHPHC)
35
66
  expect(frame.to_hash).to eq({
36
67
  :adco=>"424242424242",
37
68
  :optarif=>"HC",
38
69
  :isousc=>30,
39
- :base=>101597537,
40
70
  :hchc=>23995979,
41
71
  :hchp=>38653523,
42
72
  :ptec=>"HP",
@@ -46,4 +76,38 @@ describe Teleinfo::Frame do
46
76
  :hhphc=>"D"
47
77
  })
48
78
  end
79
+
80
+ it 'should return valid Hash on #to_hash for BASE' do
81
+ frame = Teleinfo::Frame.new(StringFrameBASE)
82
+ expect(frame.to_hash).to eq({
83
+ :adco=>"424242424242",
84
+ :optarif=>"HC",
85
+ :isousc=>30,
86
+ :base=>101597537,
87
+ :ptec=>'TH',
88
+ :iinst=>8,
89
+ :imax=>41,
90
+ :papp=>1770
91
+ })
92
+ end
93
+
94
+ it 'should return valid Hash on #to_hash for TEMPO' do
95
+ frame = Teleinfo::Frame.new(StringFrameTEMPO)
96
+ expect(frame.to_hash).to eq({
97
+ :adco=>"424242424242",
98
+ :bbrhcjb => 44659149,
99
+ :bbrhcjr => 5468651,
100
+ :bbrhcjw => 9486954,
101
+ :bbrhpjb => 106861212,
102
+ :bbrhpjr => "----",
103
+ :bbrhpjw => 17712424,
104
+ :hhphc=>"Y",
105
+ :optarif=>"BBR(",
106
+ :isousc=>90,
107
+ :ptec=>'HPJB',
108
+ :iinst=>22,
109
+ :imax=>41,
110
+ :papp=>5240
111
+ })
112
+ end
49
113
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teleinfo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Lecavelier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-16 00:00:00.000000000 Z
11
+ date: 2015-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler