sps_mqtt_bridge 0.1.1 → 0.3.0

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: 43b2469600ff9815e543c81550e170fb7af39e5e
4
- data.tar.gz: c714a8884ce5fc1af64c1c84b90d4f37009de3c6
3
+ metadata.gz: 37a94c2b205cc2de5aeb21ce453f3164a62b7683
4
+ data.tar.gz: 4df147d00472834605ca4ceda6dbbece3c4ae5be
5
5
  SHA512:
6
- metadata.gz: cda69b3e3f0c74fa9540baf8cdaf2f61f00b5e855b382b24d1037c7557c4d689279e6b0e623011accaff86a3487069886faba0449633c7f5d8f4e669373242c8
7
- data.tar.gz: 7eeb77a6f45f13f87fcaddad6eebf6ec03a36d60a4d917fb42070b02bfbc654d7f873276fa672feeaef60619ec592cce4dcbbcbcf7477faf2b6bf07213f9ae94
6
+ metadata.gz: 6460f2892f13889bead3edb6680eb5930fd507e6792e1d09afb71165194e6de867f9887654062b79339d2fab65f6e536a0698ee7afada940e53a92e3fa2e82d8
7
+ data.tar.gz: 5a3924953e9c978723e3e066b18347b8f43d1c08ae5af2d72e6c53931985e6c827872abf41eab8ee8fb88ce23caee7edbf8115ebceadbfe7d6bd5aefe34f52f8
checksums.yaml.gz.sig CHANGED
Binary file
@@ -3,8 +3,11 @@
3
3
  # file: sps_mqtt_bridge.rb
4
4
 
5
5
  require 'mqtt'
6
- require 'simplepubsub'
6
+ require 'sps-sub'
7
7
  require 'sps-pub'
8
+ require 'open-uri' # used sps_to_http
9
+ require 'timeout' # used sps_to_http
10
+
8
11
 
9
12
 
10
13
  class SpsMqttBridge
@@ -27,32 +30,61 @@ class SpsMqttBridge
27
30
 
28
31
  def sps_to_mqtt(topic: '#')
29
32
 
30
- SimplePubSub::Client.connect(@sps[:address], @sps[:port]) do |client|
31
-
32
- client.get(topic) do |t, message|
33
+ SPSSub.new(host: @sps[:address], port: @sps[:port]).\
34
+ subscribe(topic: topic) do |message,t|
33
35
 
34
- MQTT::Client.connect(@mqtt[:address], @mqtt[:port]) do |client|
35
- client.publish(t, message)
36
- end
36
+ MQTT::Client.connect(@mqtt[:address], @mqtt[:port]) do |client|
37
+ client.publish(t, message)
37
38
  end
39
+
38
40
  end
39
41
  end
40
42
 
41
43
  def sps_to_sps(topic: '#')
42
44
 
43
- SimplePubSub::Client.connect(@sps[:address], @sps[:port]) do |client|
44
-
45
- client.get(topic) do |t, message|
45
+ SPSSub.new(host: @sps[:address], port: @sps[:port]).\
46
+ subscribe(topic: topic) do |message,t|
46
47
 
47
- SPSPub.notice [t, message].join(': '),
48
- address: @sps2[:address], port: @sps2[:port]
49
- end
48
+ SPSPub.notice [t, message].join(': '),
49
+ address: @sps2[:address], port: @sps2[:port]
50
50
  end
51
51
  end
52
+
53
+ def sps_to_http(topic: '#', url: '', timeout: 5, \
54
+ http_auth: ["user", "password"])
55
+
56
+ SPSSub.new(host: @sps[:address], port: @sps[:port]).\
57
+ subscribe(topic: topic) do |message,t|
58
+
59
+ begin
60
+
61
+ Timeout::timeout(timeout){
62
+
63
+ ipaddr = url[/https?:\/\/([^\/]+)/,1]
64
+ ip_address = block_given? ? yield(ipaddr) || ipaddr : ipaddr
65
+ full_url = url.sub(/(https?:\/\/)([^\/]+)/,'\1' + ip_address).\
66
+ sub('$topic', topic).sub('$msg', message)
67
+ puts 'full_url : ' + full_url.inspect
68
+ buffer = open(full_url, read_timeout: timeout,\
69
+ http_basic_authentication: http_auth).read
70
+
71
+ }
72
+ rescue Timeout::Error => e
73
+
74
+ puts 'connection timed out'
75
+
76
+ rescue OpenURI::HTTPError => e
77
+
78
+ puts '400 bad request'
79
+
80
+ end
81
+
82
+ end
83
+ end
52
84
  end
53
85
 
54
86
  if __FILE__ == $0 then
55
87
 
56
88
  bridge = SpsMqttBridge.new
57
89
  bridge.mqtt_to_sps
58
- end
90
+ end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sps_mqtt_bridge
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -12,49 +12,49 @@ cert_chain:
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
14
  YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTE0MDgxNDEzMzM0M1oXDTE1MDgxNDEzMzM0M1owSDESMBAG
15
+ 8ixkARkWAmV1MB4XDTE1MTEwODIwMzcxNloXDTE2MTEwNzIwMzcxNlowSDESMBAG
16
16
  A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
17
  EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBAMeT1hv8afATASIUEXkVD9TUPO3a8dvkIXKidTjaKP1E880MYXkktCbpwxnD
19
- qiSIaNkxwepKBEWFUKpirfPDcI6snMblOtO7foRJh1djaiDo9bX3L7do1eI5CgCT
20
- Vpf2Tto6N8PxQ5QLeKQgdywnZTRexTQliZOBSfIef3Nq2t0IXNoli0LagpcM8bQ9
21
- OnWHHkpr1C3XrciGvXwN28oKKOOuUNykm9VzTuQW53YVIpqGmov7BAgIWBSyIC8D
22
- +Z79N5Qr+6bGLb8h59qhZtwMcWR/3fAm35PM056auXUTBOl/Sp8bTYOk3AV5kBWL
23
- opyTVw2+augwKL/GALUvaVlWNwECAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQU1HWJxoOeuAc4z6My+Ya+vRaQFhEwJgYDVR0RBB8w
18
+ ggEBANXH8uOlQ7MVlFZtsnkOCQH45SfatU1XByLwr/WQuQv8H6eSNJoI/r0boiAw
19
+ h1UPJpDhQjl4yjPe1hZEBYnpVPBIMK701Hs5Jqvmw7U0Z1zxjjXk/SPaizEEkoxn
20
+ YzlD91pdeqqzsV5C6yauag0jYNniMpO106C2xZY0DJWAa7VSpT1sBhfrn8nByhZf
21
+ ftSf84kHZozGFqqIMMTZTusaR6/glnNE9vBon8tCJP9tB8isJ8j6/QZITm5OYxUn
22
+ SERReV45s/1HRs/vEsJupYzPsM1ckU35rBxW91j/l34LVu+HfqfLRgqI/IaSoUCK
23
+ +dvNmLJTQzwUsOzjrImkElcGTuECAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
+ DwQEAwIEsDAdBgNVHQ4EFgQUv86CF0AF6nQ+GNUHYrqevJz/H5QwJgYDVR0RBB8w
25
25
  HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAQzR1nElp
27
- pG4aIBDp5O0ID5Ss/eAH3Bvl5Ft+zEqNj/y6ZQLnKf8BakoYcUI6rZVrIUIVmoKo
28
- qNRj0tidcPx/ykswMk04rMlJLWWgD85eq9Ae1nUNtCFMd4BXBezv1hn1B7gYnwUL
29
- NibcPRJQFB9GBF0BNr+rXb9zoRs+s+u3BgOn+n8nJfmKoAYCIMWhKYxaA4HR/vD0
30
- B2JyxCqq38KzRH/YMzOUzVmvXGU65NYBtna03N1W6b80r97Mq8MPj1ErM3b1gg/5
31
- pv2FNqIkZcucsIf5AU2N5Hdq5eWrQL48EQdmK4RQzwxGXSsO6exu1X9KFmXvEdqF
32
- 38OfUVxOcu8i6w==
26
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAemFkZvRO
27
+ 6OZxqs9LDYFflbani5VBHT+dlr3WzKgdAUsHOEFc5TntJ+h5Ik+5lFH64wWiqRrP
28
+ RZ4FYPGO3ujpsr7Ee7lMxu41Mkcdy4UTMhJ9NpEypIDwPXIJtPV5Omqc5TVp2zXv
29
+ PkDiD5KRLkQAblMVJbae3iOuyQKFONCj1gJw18aOpK65xPfp+r5x5p3OwGF+z0+H
30
+ Hww7izrMXoqXPjz5yUE52HBB8oTXYzJTYbCBaN5NzsUrdZs0cVlSSdHrqz+4jhsr
31
+ AgrIPDOyOTSzQQ+z204wORRCtLV+F0eTmo6yNE0WtkpHIuS9zMiAqSEsbBGETFyZ
32
+ of2zKQ1rRIp6Zw==
33
33
  -----END CERTIFICATE-----
34
- date: 2015-01-27 00:00:00.000000000 Z
34
+ date: 2015-11-08 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
- name: simplepubsub
37
+ name: sps-pub
38
38
  requirement: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
- version: '1.1'
42
+ version: '0.4'
43
43
  - - ">="
44
44
  - !ruby/object:Gem::Version
45
- version: 1.1.6
45
+ version: 0.4.1
46
46
  type: :runtime
47
47
  prerelease: false
48
48
  version_requirements: !ruby/object:Gem::Requirement
49
49
  requirements:
50
50
  - - "~>"
51
51
  - !ruby/object:Gem::Version
52
- version: '1.1'
52
+ version: '0.4'
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: 1.1.6
55
+ version: 0.4.1
56
56
  - !ruby/object:Gem::Dependency
57
- name: sps-pub
57
+ name: sps-sub
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - "~>"
@@ -62,7 +62,7 @@ dependencies:
62
62
  version: '0.3'
63
63
  - - ">="
64
64
  - !ruby/object:Gem::Version
65
- version: 0.3.0
65
+ version: 0.3.1
66
66
  type: :runtime
67
67
  prerelease: false
68
68
  version_requirements: !ruby/object:Gem::Requirement
@@ -72,27 +72,27 @@ dependencies:
72
72
  version: '0.3'
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 0.3.0
75
+ version: 0.3.1
76
76
  - !ruby/object:Gem::Dependency
77
77
  name: mqtt
78
78
  requirement: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0.2'
82
+ version: '0.3'
83
83
  - - ">="
84
84
  - !ruby/object:Gem::Version
85
- version: 0.2.0
85
+ version: 0.3.1
86
86
  type: :runtime
87
87
  prerelease: false
88
88
  version_requirements: !ruby/object:Gem::Requirement
89
89
  requirements:
90
90
  - - "~>"
91
91
  - !ruby/object:Gem::Version
92
- version: '0.2'
92
+ version: '0.3'
93
93
  - - ">="
94
94
  - !ruby/object:Gem::Version
95
- version: 0.2.0
95
+ version: 0.3.1
96
96
  description:
97
97
  email: james@r0bertson.co.uk
98
98
  executables: []
@@ -120,9 +120,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  version: '0'
121
121
  requirements: []
122
122
  rubyforge_project:
123
- rubygems_version: 2.2.2
123
+ rubygems_version: 2.4.8
124
124
  signing_key:
125
125
  specification_version: 4
126
- summary: Subscribes and re-publishes messages automatically from MQTT to SPS or vice
127
- versa
126
+ summary: Subscribes and re-publishes messages automatically from MQTT to SPS or to
127
+ HTTP
128
128
  test_files: []
metadata.gz.sig CHANGED
Binary file