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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/denkovi_daenetip2.rb +102 -0
  3. 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: []