evok-to-mqtt 0.3.1 → 0.3.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 8ab7e7ef98dfeb4999c89bb0a839984b137dd459
4
- data.tar.gz: dcb6014d18c1ccfc4924a612efe3b97ade10873c
2
+ SHA256:
3
+ metadata.gz: 58769f3fe86f38a1962500db4462407dd29f3b904cbc22cdc90fbf325b7b6038
4
+ data.tar.gz: 5859defffc657b7cbff987b23608e83cea6b3c39ac5cc2b2113a380fcaf1211a
5
5
  SHA512:
6
- metadata.gz: 638cf1617141c77ea75f850aafe2d8b7a2e95745852f85efb17a0a99fa4e5439d8cdb8cbff186c695680660500ed8f327fce1a382e78a004d1af71311c0a0aaf
7
- data.tar.gz: b643ea4a47cbedda5622218fb538ebe91122a14fbc13456080d97a22d9bb0b0822abf5a21bc55328c6926aa99891d37d0dc866456a877091e1326446846298a8
6
+ metadata.gz: b69315edff6a40f7a93f5f3eaa2f3e1ec564dc7c8e17bd878e3db980cb723a527ece2545b261bdcf9bd895dda436833c1177073e7a93909b8990e3771a2b534c
7
+ data.tar.gz: 38d197cf9882273a929f403052be8b5638448c7a7015ea8deaf627b880f3c702a9a89e77be8de82be794c7f50ea9544379cf1319619c69295790f41040229b05
data/Gemfile.lock CHANGED
@@ -1,8 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- evok-to-mqtt (0.1.1)
4
+ evok-to-mqtt (0.3.1)
5
5
  em-mqtt (~> 0.0.5)
6
+ jsonrpc-client (~> 0.1.3)
6
7
  websocket-eventmachine-client (~> 1.2)
7
8
 
8
9
  GEM
@@ -13,7 +14,14 @@ GEM
13
14
  eventmachine
14
15
  mqtt (>= 0.3.0)
15
16
  eventmachine (1.2.7)
17
+ faraday (0.15.4)
18
+ multipart-post (>= 1.2, < 3)
19
+ jsonrpc-client (0.1.3)
20
+ faraday
21
+ multi_json (>= 1.1.0)
16
22
  mqtt (0.5.0)
23
+ multi_json (1.13.1)
24
+ multipart-post (2.0.0)
17
25
  rake (10.5.0)
18
26
  rspec (3.7.0)
19
27
  rspec-core (~> 3.7.0)
data/evok-to-mqtt.gemspec CHANGED
@@ -20,8 +20,9 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = ["evok-to-mqtt"]
21
21
  spec.require_paths = ["lib"]
22
22
 
23
- spec.add_dependency "websocket-eventmachine-client", "~> 1.2"
24
23
  spec.add_dependency "em-mqtt", "~> 0.0.5"
24
+ spec.add_dependency "jsonrpc-client", "~> 0.1.3"
25
+ spec.add_dependency "websocket-eventmachine-client", "~> 1.2"
25
26
 
26
27
  spec.add_development_dependency "bundler", "~> 1.16"
27
28
  spec.add_development_dependency "rake", "~> 10.0"
@@ -16,28 +16,34 @@ module EvokToMqtt
16
16
  # Neuron input is assumed for now
17
17
  if @statuses[id]
18
18
  if @statuses[id][:value] == 0 && evok_event['value'] == 1
19
- mqtt.publish id, {action: 'down', data: payload}
19
+ #mqtt.publish id, {action: 'down', data: payload}
20
20
  elsif @statuses[id][:value] == 1 && evok_event['value'] == 0
21
- mqtt.publish id, {action: 'up', data: payload}
22
- mqtt.publish id, {action: 'click', data: payload} if now - @statuses[id][:changed_at] < 2 # seconds
23
- # ignore events not changing value
21
+ #mqtt.publish id, {action: 'up', data: payload}
22
+ if now - @statuses[id][:changed_at] < 2 # seconds
23
+ mqtt.publish id, {action: 'click', data: payload}
24
+ puts "### click"
25
+ else
26
+ mqtt.publish id, {action: 'long_click', data: payload}
27
+ puts "### long_click"
28
+ end
24
29
  end
25
30
  @statuses[id][:value] = evok_event['value']
26
31
  @statuses[id][:changed_at] = now
27
32
  else
28
33
  @statuses[id] = {value: evok_event['value'], changed_at: now}
29
- mqtt.publish id, {action: 'down', data: payload}
34
+ #mqtt.publish id, {action: 'down', data: payload} unless evok_event['value'] == 0 # ignore initial states received in batch
30
35
  end
36
+ puts
31
37
  end
32
38
 
33
39
  private
34
40
 
35
41
  def get_topic(dev, circuit)
36
42
  begin
37
- return @mapping[dev][circuit] || "evok_raw/#{dev}/#{circuit}" # missing circuit
43
+ return @mapping[dev][circuit] || "evok/#{dev}/#{circuit}" # missing circuit
38
44
  rescue => ex
39
45
  puts "Warning: #{ex}, using raw topic"
40
- return "evok_raw/#{dev}/#{circuit}" # missing section (dev)
46
+ return "evok/#{dev}/#{circuit}" # missing section (dev)
41
47
  end
42
48
  end
43
49
  end
@@ -1,3 +1,3 @@
1
1
  module EvokToMqtt
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.2"
3
3
  end
@@ -16,16 +16,19 @@ module EvokToMqtt
16
16
  EM.run do
17
17
  @evok = WebSocket::EventMachine::Client.connect(:uri => "ws://#{@evok_host}:8080/ws")
18
18
  @mqtt = EventMachine::MQTT::ClientConnection.connect(@mqtt_host)
19
+ #@evok_rpc = JSONRPC::Client.new(evok_host)
19
20
 
20
21
  @evok.onmessage do |msg|
21
- JSON.parse(msg).each do |event|
22
- next if event['dev'] == 'wd' # skip watchdog events
22
+ data = JSON.parse(msg)
23
+ data = [data] if data.is_a? Hash # temp is not in array in evok messages, but in hash..
24
+ data.each do |event|
25
+ next if !event.is_a?(Hash) || %w(wd ai ao relay).include?(event['dev']) # want just input and temp, skip the rest for now
23
26
  puts "Recieved message: #{event}"
24
27
  @mapper.process(@mqtt, event)
25
28
  end
26
29
  end
27
30
 
28
- @mqtt.subscribe('neuron/output/relay/#')
31
+ @mqtt.subscribe('neuron/relay/#')
29
32
  @mqtt.receive_callback do |msg|
30
33
  # WS set did not work, using REST for now
31
34
  data = JSON.parse(msg.payload)
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.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marek Aufart
@@ -9,36 +9,50 @@ autorequire:
9
9
  bindir:
10
10
  - bin
11
11
  cert_chain: []
12
- date: 2018-12-25 00:00:00.000000000 Z
12
+ date: 2019-03-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: websocket-eventmachine-client
15
+ name: em-mqtt
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '1.2'
20
+ version: 0.0.5
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '1.2'
27
+ version: 0.0.5
28
28
  - !ruby/object:Gem::Dependency
29
- name: em-mqtt
29
+ name: jsonrpc-client
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: 0.0.5
34
+ version: 0.1.3
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: 0.0.5
41
+ version: 0.1.3
42
+ - !ruby/object:Gem::Dependency
43
+ name: websocket-eventmachine-client
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '1.2'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '1.2'
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: bundler
44
58
  requirement: !ruby/object:Gem::Requirement
@@ -126,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
126
140
  version: '0'
127
141
  requirements: []
128
142
  rubyforge_project:
129
- rubygems_version: 2.4.5.1
143
+ rubygems_version: 2.7.6
130
144
  signing_key:
131
145
  specification_version: 4
132
146
  summary: A bridge between Unipi EVOK and MQTT message bus