evok-to-mqtt 0.1.1 → 0.2.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 +1 -1
- data/lib/evok-to-mqtt/mappers/to_haab.rb +1 -1
- data/lib/evok-to-mqtt/version.rb +1 -1
- data/lib/evok-to-mqtt/worker.rb +12 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 785d9c7a80a6d0f3f6542cdcb31948d2b953d1af846c759a7b7eb63dd2010b36
|
4
|
+
data.tar.gz: 66b75d061bb64340a98c716adf2248195e56b7bb9f2ad5f21923122f261af01b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9533b2226a696eadde3e3332b80d393de5ddc0a3d8f0b29e7cd4585a4aa98f85655026981f1f8167a08c54be587093bc81e1c6368880342546e5c6dd4285e146
|
7
|
+
data.tar.gz: 20332590c4b7a427fb5ebedce3eb5ced30049175c0b7d3675a99a2e36ab114f798dec55bb2c4fa9c5686a258b40805e223bdff920e52e2a714917c5e2d6ef806
|
data/Gemfile.lock
CHANGED
data/lib/evok-to-mqtt/version.rb
CHANGED
data/lib/evok-to-mqtt/worker.rb
CHANGED
@@ -2,6 +2,7 @@ require 'eventmachine'
|
|
2
2
|
require 'websocket-eventmachine-client'
|
3
3
|
require 'json'
|
4
4
|
require 'em/mqtt'
|
5
|
+
require 'net/http'
|
5
6
|
|
6
7
|
module EvokToMqtt
|
7
8
|
class Worker
|
@@ -14,21 +15,24 @@ module EvokToMqtt
|
|
14
15
|
def run
|
15
16
|
EM.run do
|
16
17
|
@evok = WebSocket::EventMachine::Client.connect(:uri => "ws://#{@evok_host}:8080/ws")
|
17
|
-
@mqtt =
|
18
|
+
@mqtt = EventMachine::MQTT::ClientConnection.connect(@mqtt_host)
|
18
19
|
|
19
20
|
@evok.onmessage do |msg|
|
20
|
-
puts "Recieved message: #{msg}"
|
21
21
|
JSON.parse(msg).each do |event|
|
22
|
+
next if event['dev'] == 'wd' # skip watchdog events
|
23
|
+
puts "Recieved message: #{event}"
|
22
24
|
@mapper.process(@mqtt, event)
|
23
25
|
end
|
24
26
|
end
|
25
27
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
@mqtt.subscribe('neuron/output/relay/#')
|
29
|
+
@mqtt.receive_callback do |msg|
|
30
|
+
# WS set did not work, using REST for now
|
31
|
+
data = JSON.parse(msg.payload)
|
32
|
+
puts "Sending command #{msg.topic} => #{data['value']}"
|
33
|
+
uri = URI("http://#{@evok_host}/rest/#{data['dev']}/#{data['circuit']}")
|
34
|
+
Net::HTTP.post_form(uri, 'value' => data['value'])
|
35
|
+
end
|
32
36
|
end
|
33
37
|
end
|
34
38
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
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.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marek Aufart
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: websocket-eventmachine-client
|