denkovi_daenetip2 0.0.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 +7 -0
- data/lib/denkovi_daenetip2.rb +102 -0
- metadata +58 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8d7d6c9d2e535d25e40ee74227c96876ffe80eca
|
4
|
+
data.tar.gz: a83fe76d3b9ef6d61c4c6bcc809f93c8b9cf7243
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1ab9f033fd63de560d99a70f5959d58da395a12dbf511392f7ef7714b7f46650c99e11d6a222d04bf595fe5e3f23a1167206bf020b35bf4272b2b7443aa87456
|
7
|
+
data.tar.gz: 0761c065cf69ac3ac126b167599cfeb1f91a4ff84f8bfb79000219a22deef153837716f99b9f4546c2a8b9b20b0c550d2373abfa56bf3335b5cc7349e8b6b83b
|
@@ -0,0 +1,102 @@
|
|
1
|
+
require 'snmp'
|
2
|
+
|
3
|
+
#dae = DaenetIP2.new("164.0.0.177",161,"","")
|
4
|
+
|
5
|
+
class DaenetIP2
|
6
|
+
attr_accessor :ip, :port, :read_pass, :write_pass
|
7
|
+
|
8
|
+
#Creates a SNMP Manager
|
9
|
+
def initialize(ip, port, read_pass, write_pass)
|
10
|
+
self.ip = ip
|
11
|
+
self.port = port
|
12
|
+
self.read_pass = read_pass
|
13
|
+
self.write_pass = write_pass
|
14
|
+
puts 'to create manager'
|
15
|
+
begin
|
16
|
+
@manager = SNMP::Manager.new(:host => self.ip, :port => self.port.to_i, :community => self.read_pass, :write_community => self.write_pass, :version => :SNMPv1)
|
17
|
+
puts "manager created"
|
18
|
+
return true
|
19
|
+
rescue
|
20
|
+
return false
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# To read relay state
|
25
|
+
# @param relay [Integer] The relay number: 0-15
|
26
|
+
# @return [Integer] success or not
|
27
|
+
def read(input)
|
28
|
+
begin
|
29
|
+
#manager= Manager.new(:host => self.ip, :community => self.snmp_pass, :write_community => self.snmp_pass, :version => :SNMPv1)
|
30
|
+
puts "to read value: " + input.to_s
|
31
|
+
response = @manager.get('1.3.6.1.4.1.19865.1.2.3.' + input.to_s + '.0')
|
32
|
+
#manager.close
|
33
|
+
return response.varbind_list[0].value.to_i
|
34
|
+
rescue => e
|
35
|
+
puts "Exception: " + e.message
|
36
|
+
return nil
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# To change relay state
|
41
|
+
# @param relay [Integer] The relay number: 0-15
|
42
|
+
# @param value [Integer] Relay new state: 0-1
|
43
|
+
# @return [Boolean] success or not
|
44
|
+
def write(relay, value)
|
45
|
+
begin
|
46
|
+
puts "relay: " + relay.to_s + " value: " + value.to_s
|
47
|
+
if relay <= 8
|
48
|
+
response = @manager.get("1.3.6.1.4.1.19865.1.2.2." + relay.to_s + ".0") #puerto 5
|
49
|
+
puts "response: " + response.inspect.to_s
|
50
|
+
else
|
51
|
+
value = relay.to_i - 8
|
52
|
+
puts "value: " + value.to_s
|
53
|
+
response = @manager.get("1.3.6.1.4.1.19865.1.2.1." + value.to_s + ".0") #puerto 3
|
54
|
+
end
|
55
|
+
|
56
|
+
response.each_varbind do |vb|
|
57
|
+
puts "#{vb.name.to_s} #{vb.value.to_s} #{vb.value.asn1_type}"
|
58
|
+
end
|
59
|
+
|
60
|
+
if relay.to_i <= 8
|
61
|
+
if value == 1
|
62
|
+
puts "to create varbind"
|
63
|
+
varbind = SNMP::VarBind.new("1.3.6.1.4.1.19865.1.2.2." + relay.to_s + ".0", SNMP::Integer.new(1))
|
64
|
+
else
|
65
|
+
varbind = SNMP::VarBind.new("1.3.6.1.4.1.19865.1.2.2." + relay.to_s + ".0", SNMP::Integer.new(0))
|
66
|
+
end
|
67
|
+
else
|
68
|
+
if value == 1
|
69
|
+
varbind = SNMP::VarBind.new("1.3.6.1.4.1.19865.1.2.1." + value.to_s + ".0", SNMP::Integer.new(1))
|
70
|
+
else
|
71
|
+
varbind = SNMP::VarBind.new("1.3.6.1.4.1.19865.1.2.1." + value.to_s + ".0",SNMP::Integer.new(0))
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
begin
|
76
|
+
puts "to set to relay " + relay.to_s + " value " + value.to_s
|
77
|
+
@manager.set(varbind)
|
78
|
+
return true
|
79
|
+
rescue
|
80
|
+
return false
|
81
|
+
end
|
82
|
+
rescue => e
|
83
|
+
puts "Exception in write: " + e.message
|
84
|
+
return false
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
#To read all input
|
89
|
+
#@return [Integer]
|
90
|
+
def read_all
|
91
|
+
begin
|
92
|
+
#manager= Manager.new(:host => self.ip, :community => self.snmp_pass, :write_community => self.snmp_pass, :version => :SNMPv1)
|
93
|
+
response = @manager.get('1.3.6.1.4.1.19865.1.2.3.33.0')
|
94
|
+
#manager.close
|
95
|
+
return response.varbind_list[0].value.to_i
|
96
|
+
rescue Exception => e
|
97
|
+
puts "Exception: " + e.message
|
98
|
+
return nil
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
end
|
metadata
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: denkovi_daenetip2
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Pablo Carrillos
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-11-17 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: snmp
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
description: Simple commands to retrieve state
|
28
|
+
email: pablocarrillos@gmail.com
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- lib/denkovi_daenetip2.rb
|
34
|
+
homepage: ''
|
35
|
+
licenses:
|
36
|
+
- MIT
|
37
|
+
metadata: {}
|
38
|
+
post_install_message:
|
39
|
+
rdoc_options: []
|
40
|
+
require_paths:
|
41
|
+
- lib
|
42
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - ">="
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: '0'
|
52
|
+
requirements: []
|
53
|
+
rubyforge_project:
|
54
|
+
rubygems_version: 2.4.8
|
55
|
+
signing_key:
|
56
|
+
specification_version: 4
|
57
|
+
summary: SNMP gem to use with your DENKOVI DAENETIP2!
|
58
|
+
test_files: []
|