lex-esphome 0.1.0 → 0.1.1

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
2
  SHA256:
3
- metadata.gz: 148f84f9ca373f72b699972f52455d6daa583da5229e7223a14a8db3214a5c32
4
- data.tar.gz: 73e621f2470dc178fd2cdf890372af7148d090538c6c6d5b55e0a5cbc6e1d8ec
3
+ metadata.gz: 363163615836076faf1fc4ec3460426f636dbb4c058250693a99bad2c9bfc9e6
4
+ data.tar.gz: fffe31eae987fd62a2ac93ee49daa7ba6653430bf234a10688de2ec64ea43be2
5
5
  SHA512:
6
- metadata.gz: edce3c1f083e18ffb72b911d2200bad900357191da6cb2b66065cc5d5647c555e628038998133a351ad200541079f927e8b58b395409f802c02c888ba7881e80
7
- data.tar.gz: 6d4195bb0a038486df1d1b9b973026de887f6557e67dc37036399783b4cf59cebbdbf6991aa2558cff315353723517c1267c39ddfcef9d5af756b4dd9bab9157
6
+ metadata.gz: b8bad6d1aad3a4c0ced503036c5e5363e27bb1337eda53fccd55953dc98077fde49643b726e9469c2825dc8f6ccc4fb78e8b84636fef37862afeab1db9b05a02
7
+ data.tar.gz: b1d148e3a04567ffeaf2f7af532b7f6ae7cdf1df76d87a5f6014ac57872031b25dbc581d371e35cb00545b53d3f9e04c1dfd5e53dede98240b707677dc9e87f6
@@ -2,27 +2,13 @@ Layout/LineLength:
2
2
  Max: 120
3
3
  Metrics/MethodLength:
4
4
  Max: 50
5
- Metrics/ClassLength:
6
- Max: 1500
7
- Metrics/BlockLength:
8
- Max: 50
9
- Metrics/AbcSize:
10
- Max: 30
11
- Layout/SpaceAroundEqualsInParameterDefault:
12
- EnforcedStyle: space
13
- Style/SymbolArray:
14
- Enabled: true
15
- Layout/HashAlignment:
16
- EnforcedHashRocketStyle: table
17
- EnforcedColonStyle: table
18
5
  Style/Documentation:
19
6
  Enabled: false
20
7
  AllCops:
21
8
  TargetRubyVersion: 2.5
22
9
  NewCops: enable
10
+ SuggestExtensions: false
23
11
  Style/FrozenStringLiteralComment:
24
12
  Enabled: false
25
- Naming/FileName:
26
- Enabled: false
27
13
  Style/ClassAndModuleChildren:
28
14
  Enabled: false
@@ -0,0 +1,10 @@
1
+ FROM ruby:2.7-alpine
2
+ LABEL maintainer="Matthew Iverson <matthewdiverson@gmail.com>"
3
+
4
+ RUN mkdir /etc/legionio
5
+ RUN apk update && apk add build-base tzdata gcc git
6
+
7
+ COPY . ./
8
+ RUN gem install legionio tzinfo-data tzinfo --no-document --no-prerelease
9
+ RUN gem install lex-esphome --no-document --no-prerelease
10
+ CMD legionio
data/README.md CHANGED
@@ -82,6 +82,23 @@ There are two passive runners within this Lex. One to process log entries, the o
82
82
  |Logs|process|required|required|X|
83
83
  |Sensors|process|required|required|optional|
84
84
 
85
+ ## Relationship examples
86
+ Send the data to an [InfluxDB](https://github.com/influxdata/influxdb) instance. Requires [Legion::Extensions::Influxdb](https://rubygems.org/gems/lex-influxdb)
87
+ ```json
88
+ {
89
+ "name": "esphome sensor to influxdb",
90
+ "enabled": 1,
91
+ "transformation": "{
92
+ "host": "localhost",
93
+ "port": 8086,
94
+ "database": "esphome",
95
+ "metrics": "{
96
+ \"values\":{\"<%= results[:sub_type] %>\":<%= results[:value].to_f %>},
97
+ \"tags\":{\"name\":\"<%= results[:name] %>\", \"type\": \"<%= results[:type] %>\",\"sub_type\": \"<%= results[:sub_type] %>\",\"item\": \"<%= results[:item] %>\"}
98
+ }",
99
+ }"
100
+ }
101
+ ```
85
102
 
86
103
  ## Development
87
104
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -0,0 +1,21 @@
1
+ image: ruby:2.7
2
+
3
+ pipelines:
4
+ tags:
5
+ "v*":
6
+ - step:
7
+ name: Push to RubyGems
8
+ deployment: RubyGems
9
+ script:
10
+ - gem install gem-release
11
+ - (umask 077 ; echo $gem_creds | base64 --decode > ~/.gem/credentials)
12
+ - gem release
13
+ artifacts:
14
+ - pkg/**
15
+ - step:
16
+ name: Push to Docker
17
+ deployment: Docker
18
+ script:
19
+ - 'apt-get update'
20
+ - 'apt-get install -y docker'
21
+ - './docker_deploy.rb'
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ name = 'esphome'
4
+ require "./lib/legion/extensions/#{name}/version"
5
+ version = Legion::Extensions::Esphome::VERSION
6
+
7
+ puts "Building docker image for Legion v#{version}"
8
+ system("docker build --tag legionio/lex-#{name}:v#{version} .")
9
+ puts 'Pushing to hub.docker.com'
10
+ system("docker push legionio/lex-#{name}:v#{version}")
11
+ system("docker tag legionio/lex-#{name}:v#{version} legionio/lex-#{name}:latest")
12
+ system("docker push legionio/lex-#{name}:latest")
13
+ puts 'completed'
@@ -19,16 +19,10 @@ Gem::Specification.new do |spec|
19
19
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
20
20
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
21
21
  end
22
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
22
  spec.require_paths = ['lib']
24
23
 
25
- spec.add_development_dependency 'bundler'
26
- spec.add_development_dependency 'codecov'
27
24
  spec.add_development_dependency 'rake'
28
25
  spec.add_development_dependency 'rspec'
29
26
  spec.add_development_dependency 'rspec_junit_formatter'
30
27
  spec.add_development_dependency 'rubocop'
31
- spec.add_development_dependency 'rubocop-md'
32
- spec.add_development_dependency 'rubocop-performance'
33
- spec.add_development_dependency 'rubocop-rspec'
34
28
  end
@@ -1,10 +1,9 @@
1
1
  require 'legion/extensions/esphome/version'
2
- require 'legion/extensions'
3
2
 
4
3
  module Legion
5
4
  module Extensions
6
5
  module Esphome
7
- extend Legion::Extensions::Core
6
+ extend Legion::Extensions::Core if Legion::Extensions.const_defined? :Core
8
7
  end
9
8
  end
10
9
  end
@@ -5,8 +5,8 @@ module Legion
5
5
  module Logs
6
6
  def self.process(value:, **payload)
7
7
  {
8
- log: value.gsub(/\e\[([;\d]+)?m/, ''),
9
- location: payload[:routing_key].split('.').last,
8
+ log: value.gsub(/\e\[([;\d]+)?m/, ''),
9
+ location: payload[:routing_key].split('.').last,
10
10
  timestamp_in_ms: payload[:timestamp_in_ms]
11
11
  }
12
12
  end
@@ -40,11 +40,11 @@ module Legion
40
40
  end
41
41
 
42
42
  {
43
- value: value,
44
- name: items[0],
45
- type: items[2],
46
- sub_type: subtype,
47
- item: items[3],
43
+ value: value,
44
+ name: items[0],
45
+ type: items[2],
46
+ sub_type: subtype,
47
+ item: items[3],
48
48
  timestamp_in_ms: payload[:timestamp_in_ms]
49
49
  }
50
50
  end
@@ -3,7 +3,7 @@
3
3
  module Legion
4
4
  module Extensions
5
5
  module Esphome
6
- VERSION = '0.1.0'
6
+ VERSION = '0.1.1'
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,43 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lex-esphome
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-24 00:00:00.000000000 Z
11
+ date: 2021-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: codecov
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
13
  - !ruby/object:Gem::Dependency
42
14
  name: rake
43
15
  requirement: !ruby/object:Gem::Requirement
@@ -94,48 +66,6 @@ dependencies:
94
66
  - - ">="
95
67
  - !ruby/object:Gem::Version
96
68
  version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: rubocop-md
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: rubocop-performance
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: rubocop-rspec
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- version: '0'
139
69
  description: Used to connect Legion to Esphome
140
70
  email:
141
71
  - matthewdiverson@gmail.com
@@ -146,14 +76,14 @@ files:
146
76
  - ".gitignore"
147
77
  - ".rspec"
148
78
  - ".rubocop.yml"
149
- - ".travis.yml"
150
79
  - CODE_OF_CONDUCT.md
80
+ - Dockerfile
151
81
  - Gemfile
152
82
  - LICENSE.txt
153
83
  - README.md
154
84
  - Rakefile
155
- - bin/console
156
- - bin/setup
85
+ - bitbucket-pipelines.yml
86
+ - docker_deploy.rb
157
87
  - lex-esphome.gemspec
158
88
  - lib/legion/extensions/esphome.rb
159
89
  - lib/legion/extensions/esphome/actors/logs.rb
@@ -169,7 +99,7 @@ metadata:
169
99
  homepage_uri: https://bitbucket.org/legion-io/lex-esphome
170
100
  source_code_uri: https://bitbucket.org/legion-io/lex-esphome
171
101
  changelog_uri: https://bitbucket.org/legion-io/lex-esphome/src/master/CHANGELOG.md
172
- post_install_message:
102
+ post_install_message:
173
103
  rdoc_options: []
174
104
  require_paths:
175
105
  - lib
@@ -184,8 +114,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
184
114
  - !ruby/object:Gem::Version
185
115
  version: '0'
186
116
  requirements: []
187
- rubygems_version: 3.1.2
188
- signing_key:
117
+ rubygems_version: 3.1.4
118
+ signing_key:
189
119
  specification_version: 4
190
120
  summary: LEX::Esphome
191
121
  test_files: []
@@ -1,6 +0,0 @@
1
- ---
2
- language: ruby
3
- cache: bundler
4
- rvm:
5
- - 2.7.0
6
- before_install: gem install bundler -v 2.1.4
@@ -1,15 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- require 'bundler/setup'
5
- require 'legion/extensions/esphome'
6
-
7
- # You can add fixtures and/or initialization code here to make experimenting
8
- # with your gem easier. You can also use a different console, if you like.
9
-
10
- # (If you use this, don't forget to add pry to your Gemfile!)
11
- # require "pry"
12
- # Pry.start
13
-
14
- require 'irb'
15
- IRB.start(__FILE__)
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here