evok-to-mqtt 0.3.4 → 0.4.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.
- checksums.yaml +4 -4
- data/Gemfile.lock +7 -5
- data/README.md +1 -1
- data/bin/evok-to-mqtt +13 -3
- data/evok-to-mqtt.gemspec +1 -0
- data/lib/evok-to-mqtt.rb +4 -3
- data/lib/evok-to-mqtt/mappers/raw.rb +28 -0
- data/lib/evok-to-mqtt/version.rb +1 -1
- metadata +18 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c6b0d14ff9b9c13c51d369f471067a9a55e527e3bec8232cc75389d3c8408570
|
4
|
+
data.tar.gz: e756161929840a194f62c5de8c9da7bbaf9a1df14073275e6b30a6e20c8c018d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ba5caff437265b5f7c63c36c5566be7bf573778403afd4f9abd7dbd1f60eafb0194e1f381eab9f4f24516e5576b5c89868be791cca606c75c297fba82816b48
|
7
|
+
data.tar.gz: 7f8dc6fae6d6c6448aada3182709d674962f020ec4216decb887ba446af211d053ca592b1086de2c7fe3429f2ea72873986e85d84c30e245b09af063766f7259
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
evok-to-mqtt (0.3.
|
4
|
+
evok-to-mqtt (0.3.4)
|
5
5
|
em-mqtt (~> 0.0.5)
|
6
6
|
jsonrpc-client (~> 0.1.3)
|
7
|
+
slop (~> 4.7.0)
|
7
8
|
websocket-eventmachine-client (~> 1.2)
|
8
9
|
|
9
10
|
GEM
|
@@ -14,14 +15,14 @@ GEM
|
|
14
15
|
eventmachine
|
15
16
|
mqtt (>= 0.3.0)
|
16
17
|
eventmachine (1.2.7)
|
17
|
-
faraday (0.
|
18
|
+
faraday (0.16.2)
|
18
19
|
multipart-post (>= 1.2, < 3)
|
19
20
|
jsonrpc-client (0.1.3)
|
20
21
|
faraday
|
21
22
|
multi_json (>= 1.1.0)
|
22
23
|
mqtt (0.5.0)
|
23
24
|
multi_json (1.13.1)
|
24
|
-
multipart-post (2.
|
25
|
+
multipart-post (2.1.1)
|
25
26
|
rake (10.5.0)
|
26
27
|
rspec (3.7.0)
|
27
28
|
rspec-core (~> 3.7.0)
|
@@ -36,12 +37,13 @@ GEM
|
|
36
37
|
diff-lcs (>= 1.2.0, < 2.0)
|
37
38
|
rspec-support (~> 3.7.0)
|
38
39
|
rspec-support (3.7.1)
|
40
|
+
slop (4.7.0)
|
39
41
|
websocket (1.2.8)
|
40
42
|
websocket-eventmachine-base (1.2.0)
|
41
43
|
eventmachine (~> 1.0)
|
42
44
|
websocket (~> 1.0)
|
43
45
|
websocket-native (~> 1.0)
|
44
|
-
websocket-eventmachine-client (1.
|
46
|
+
websocket-eventmachine-client (1.3.0)
|
45
47
|
websocket-eventmachine-base (~> 1.0)
|
46
48
|
websocket-native (1.0.0)
|
47
49
|
|
@@ -55,4 +57,4 @@ DEPENDENCIES
|
|
55
57
|
rspec (~> 3.0)
|
56
58
|
|
57
59
|
BUNDLED WITH
|
58
|
-
1.
|
60
|
+
1.17.2
|
data/README.md
CHANGED
@@ -13,7 +13,7 @@ $ gem install evok-to-mqtt
|
|
13
13
|
Prepare mapping config file ```evok-to-mqtt-mapping.yml``` from [evok-to-mqtt-mapping.yml.example](https://raw.githubusercontent.com/aufi/evok-to-mqtt/master/evok-to-mqtt-mapping.yml.example) and run following:
|
14
14
|
|
15
15
|
```bash
|
16
|
-
$ evok-to-mqtt
|
16
|
+
$ evok-to-mqtt --config evok-to-mqtt-mapping.yml --evok-host localhost --mqtt-host localhost
|
17
17
|
```
|
18
18
|
|
19
19
|
## Development
|
data/bin/evok-to-mqtt
CHANGED
@@ -1,9 +1,19 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require "evok-to-mqtt"
|
4
|
+
require "slop"
|
4
5
|
|
5
|
-
|
6
|
-
|
6
|
+
opts = Slop.parse do |opt|
|
7
|
+
opt.string "-c", "--config", "Config/mapping file path", default: "./evok-to-mqtt-mapping.yml"
|
8
|
+
opt.string "--evok-host", "Hostname or IP where Evok API is running", default: "localhost"
|
9
|
+
opt.string "--mqtt-host", "Hostname or IP where MQTT server is running", default: "localhost"
|
10
|
+
opt.on "-h", "--help", "Show help" do
|
11
|
+
puts "Usage: evok-to-mqtt --config evok-to-mqtt-mapping.yml --evok-host localhost --mqtt-host localhost"
|
12
|
+
exit 0
|
13
|
+
end
|
7
14
|
end
|
8
15
|
|
9
|
-
|
16
|
+
puts "Starting evok-to-mqtt with options:"
|
17
|
+
p opts.to_hash
|
18
|
+
|
19
|
+
EvokToMqtt.run(opts)
|
data/evok-to-mqtt.gemspec
CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_dependency "em-mqtt", "~> 0.0.5"
|
24
24
|
spec.add_dependency "jsonrpc-client", "~> 0.1.3"
|
25
25
|
spec.add_dependency "websocket-eventmachine-client", "~> 1.2"
|
26
|
+
spec.add_dependency "slop", "~> 4.7.0"
|
26
27
|
|
27
28
|
spec.add_development_dependency "bundler", "~> 1.16"
|
28
29
|
spec.add_development_dependency "rake", "~> 10.0"
|
data/lib/evok-to-mqtt.rb
CHANGED
@@ -4,9 +4,10 @@ require 'evok-to-mqtt/worker'
|
|
4
4
|
require 'yaml'
|
5
5
|
|
6
6
|
module EvokToMqtt
|
7
|
-
def self.run(
|
8
|
-
mapping_config = YAML.load(File.read(
|
9
|
-
|
7
|
+
def self.run(opts)
|
8
|
+
mapping_config = YAML.load(File.read(opts[:config]))
|
9
|
+
# TODO: add mapper switch raw/haab/..
|
10
|
+
app = EvokToMqtt::Worker.new(opts[:evok_host], opts[:mqtt_host], EvokToMqtt::Mappers::ToHaab.new(mapping_config))
|
10
11
|
app.run
|
11
12
|
end
|
12
13
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module EvokToMqtt
|
2
|
+
module Mappers
|
3
|
+
class Raw
|
4
|
+
def initialize(mapping)
|
5
|
+
@mapping_config = mapping
|
6
|
+
end
|
7
|
+
|
8
|
+
def process(mqtt, evok_event)
|
9
|
+
id = get_topic(evok_event["dev"], evok_event["circuit"])
|
10
|
+
|
11
|
+
puts "Target topic: #{id}"
|
12
|
+
mqtt.publish id, evok_event
|
13
|
+
|
14
|
+
puts
|
15
|
+
end
|
16
|
+
|
17
|
+
def circuit_reverse_lookup(full_topic)
|
18
|
+
return full_topic.split("/").last
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def get_topic(dev, circuit)
|
24
|
+
return "evok/#{dev}/#{circuit}"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/evok-to-mqtt/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evok-to-mqtt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marek Aufart
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir:
|
10
10
|
- bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-
|
12
|
+
date: 2019-10-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: em-mqtt
|
@@ -53,6 +53,20 @@ dependencies:
|
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '1.2'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: slop
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 4.7.0
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 4.7.0
|
56
70
|
- !ruby/object:Gem::Dependency
|
57
71
|
name: bundler
|
58
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -117,6 +131,7 @@ files:
|
|
117
131
|
- evok-to-mqtt-mapping.yml.example
|
118
132
|
- evok-to-mqtt.gemspec
|
119
133
|
- lib/evok-to-mqtt.rb
|
134
|
+
- lib/evok-to-mqtt/mappers/raw.rb
|
120
135
|
- lib/evok-to-mqtt/mappers/to_haab.rb
|
121
136
|
- lib/evok-to-mqtt/version.rb
|
122
137
|
- lib/evok-to-mqtt/worker.rb
|
@@ -139,8 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
139
154
|
- !ruby/object:Gem::Version
|
140
155
|
version: '0'
|
141
156
|
requirements: []
|
142
|
-
|
143
|
-
rubygems_version: 2.7.6
|
157
|
+
rubygems_version: 3.0.3
|
144
158
|
signing_key:
|
145
159
|
specification_version: 4
|
146
160
|
summary: A bridge between Unipi EVOK and MQTT message bus
|