Feature Request: PoE Control via SNMP
-
totalhighspeed - Member
- Posts: 8
- Joined: Fri Oct 23, 2015 11:30 am
- Location: Nixa, MO
- Has thanked: 2 times
- Been thanked: 3 times
Feature Request: PoE Control via SNMP
We would simply like to have the ability to enable/disable PoE via SNMP. The object is already in the MIB, but it's read-only. Not sure how hard it would be to make it write-able as well, but it would be nice to be able to turn power on/off via simple SNMP set command. Maybe make it an option to make it read-only/read-write selectable via the GUI for those that don't want it.
-
Eric Stern - Employee
- Posts: 532
- Joined: Wed Apr 09, 2014 9:41 pm
- Location: Toronto, Ontario
- Has thanked: 0 time
- Been thanked: 130 times
Re: Feature Request: PoE Control via SNMP
This is very unlikely to happen. Our entire SNMP subsystem is read only, it is only designed to providing monitoring.
-
totalhighspeed - Member
- Posts: 8
- Joined: Fri Oct 23, 2015 11:30 am
- Location: Nixa, MO
- Has thanked: 2 times
- Been thanked: 3 times
Re: Feature Request: PoE Control via SNMP
I'm trying to setup a system to automatically upgrade and configure radios before they get to our installers, a shop config that only requires minor changes so that they don't have to remember every setting, especially those that don't change from one tower to the next. Since every radio has the same IP address by default you can't just plug them all in and walk away. So the easiest way that I can think to this is to power one on, do what you need to do, then power it off and move to the next one. So we're really needing a way to power cycle ports through PHP or Python scripts. Or if you know a better way of doing this, I'm all ears.
This is the only missing piece right now. I have been using PacketFlux SyncInjectors but that gets complicated as the ports are not sequential across Injectors and your SNMP OIDs have to jump by like 13 digits for the next Injector which is less than ideal and they only have 4 ports per Injector unless I drop $800 on the new rack mount version which is currently pre-order only. I have all of the other systems in place for uploading firmware and configs to the radios, I just need a way to power them on and off. Any help is appreciated.
This is the only missing piece right now. I have been using PacketFlux SyncInjectors but that gets complicated as the ports are not sequential across Injectors and your SNMP OIDs have to jump by like 13 digits for the next Injector which is less than ideal and they only have 4 ports per Injector unless I drop $800 on the new rack mount version which is currently pre-order only. I have all of the other systems in place for uploading firmware and configs to the radios, I just need a way to power them on and off. Any help is appreciated.
-
Eric Stern - Employee
- Posts: 532
- Joined: Wed Apr 09, 2014 9:41 pm
- Location: Toronto, Ontario
- Has thanked: 0 time
- Been thanked: 130 times
Re: Feature Request: PoE Control via SNMP
Should be trivial to script an SSH connection to the switch in either PHP or Python and issue appropriate CLI commands to turn the PoE on and off.
ie
conf
interface port 2
poe 24V
exit
exit
<ENTER> (to confirm the configuration change)
ie
conf
interface port 2
poe 24V
exit
exit
<ENTER> (to confirm the configuration change)
-
jakematic - Experienced Member
- Posts: 168
- Joined: Thu Jul 14, 2016 8:15 am
- Location: NC USA
- Has thanked: 362 times
- Been thanked: 87 times
Re: Feature Request: PoE Control via SNMP
Eric Stern wrote:Should be trivial to script an SSH connection to the switch in either PHP or Python and issue appropriate CLI commands to turn the PoE on and off.
Can't we just have a command like option e.g. to turn port 5 on with 24V:
- Code: Select all
POEcontrol 5 24V
Pretty please? I'll buy you beer
Trying to automate with passwordless ssh is a bear and has caused much swearing because it drops you to ash instead of sh.
Python/PHP/JSON are things not all of us want to spend a boatload of time learning.
-
totalhighspeed - Member
- Posts: 8
- Joined: Fri Oct 23, 2015 11:30 am
- Location: Nixa, MO
- Has thanked: 2 times
- Been thanked: 3 times
Re: Feature Request: PoE Control via SNMP
Okay, here is what I quickly coded up and tried using PHP and it doesn't work for some reason. It runs without any errors, but doesn't output anything and doesn't turn PoE on for the specified port. Any suggestions on how to get this to work?
- Code: Select all
#!/bin/php
<?php
$host = 'x.x.x.x'; // Hostname or IP address
$username = 'admin'; // Admin username
$password = 'xxxxxxxx'; // Admin password
$port = '4'; // Port number on the Netonix
$poe = '24V'; // off,24V,48V, etc
// Setup the SSH connection
$connection = ssh2_connect($host);
ssh2_auth_password($connection, $username, $password);
// Run the SSH command(s)
$stream = ssh2_exec($connection, "conf;interface port ".$port.";poe ".$poe.";exit;exit;\n");
// Turn on blocking so it doesn't disconnect between multiple commands
stream_set_blocking($stream, true);
// Display any output
echo 'Output: '.stream_get_contents($stream)."\r\n";
// Close the connection
fclose($stream);
?>
-
Eric Stern - Employee
- Posts: 532
- Joined: Wed Apr 09, 2014 9:41 pm
- Location: Toronto, Ontario
- Has thanked: 0 time
- Been thanked: 130 times
Re: Feature Request: PoE Control via SNMP
The SSH connection gives you a shell, not the CLI. You need to start the CLI first.
- Code: Select all
#!/bin/php
<?php
$host = '192.168.2.104'; // Hostname or IP address
$username = 'admin'; // Admin username
$password = 'admin'; // Admin password
$port = '4'; // Port number on the Netonix
$poe = '24V'; // off,24V,48V, etc
// Setup the SSH connection
$connection = ssh2_connect($host);
ssh2_auth_password($connection, $username, $password);
$shell=ssh2_shell($connection, 'switch');
fwrite( $shell, 'conf'.PHP_EOL);
fwrite( $shell, 'interface port '.$port.PHP_EOL);
fwrite( $shell, 'poe '.$poe.PHP_EOL);
fwrite( $shell, 'exit'.PHP_EOL);
fwrite( $shell, 'exit'.PHP_EOL);
sleep(1); // wait for the confirm prompt
fwrite( $shell, PHP_EOL); // send ENTER to confirm
fwrite( $shell, 'exit'.PHP_EOL); // exit the CLI which will terminate the SSH session
// Turn on blocking so it doesn't disconnect between multiple commands
stream_set_blocking($shell, true);
// Display any output
echo 'Output: '.stream_get_contents($shell)."\r\n";
// Close the connection
fclose($shell);
?>
-
totalhighspeed - Member
- Posts: 8
- Joined: Fri Oct 23, 2015 11:30 am
- Location: Nixa, MO
- Has thanked: 2 times
- Been thanked: 3 times
Re: Feature Request: PoE Control via SNMP
That works perfectly. Thanks for the assistance.
This will make programming this thing about a million times easier now.
For anyone interested here is the "finished" code with command line arguments so that your user/pass isn't stored in plain text in the PHP file...
This will make programming this thing about a million times easier now.
For anyone interested here is the "finished" code with command line arguments so that your user/pass isn't stored in plain text in the PHP file...
- Code: Select all
#!/bin/php
<?php
function help() {
print "\r\n** Syntax error - You must supply all of the following options:\r\n\r\n";
print " h <host> The hostname or IP address for the Netonix\r\n";
print " n <portnumber> The port number that you wish to alter\r\n";
print " v <value> The value for the PoE, off, 24V, 24VH, 48V, 48VH\r\n";
print " u <username> The username to use for logging in\r\n";
print " p <password> The Password used to log into the switch\r\n";
print "\r\n";
exit(1);
}
$options = getopt("h:u:p:n:v:");
if((!isset($options['h'])) || (!isset($options['u'])) || (!isset($options['p'])) || (!isset($options['n'])) || (!isset($options['v']))) {
help();
}else{
$host = ($options['h']);
$username = ($options['u']);
$password = ($options['p']);
$port = ($options['n']);
$poe = ($options['v']);
}
print "Setting PoE to $poe on port $port of $host\r\n";
// Setup the SSH connection
$connection = ssh2_connect($host);
ssh2_auth_password($connection, $username, $password);
$shell=ssh2_shell($connection, 'switch');
fwrite( $shell, 'conf'.PHP_EOL);
fwrite( $shell, 'interface port '.$port.PHP_EOL);
fwrite( $shell, 'poe '.$poe.PHP_EOL);
fwrite( $shell, 'exit'.PHP_EOL);
fwrite( $shell, 'exit'.PHP_EOL);
sleep(1); // wait for the confirm prompt
fwrite( $shell, PHP_EOL); // send ENTER to confirm
fwrite( $shell, 'exit'.PHP_EOL); // exit the CLI which will terminate the SSH session
// Turn on blocking so it doesn't disconnect between multiple commands
stream_set_blocking($shell, true);
// Display any output
echo 'Output: '.stream_get_contents($shell)."\r\n";
// Close the connection
fclose($shell);
?>
- calliowarebow
- Member
- Posts: 4
- Joined: Tue Sep 11, 2018 11:21 am
- Location: Czech
- Has thanked: 0 time
- Been thanked: 0 time
Feature Request PoE Control via SNMP
I have understood you like to dothis via webinterface but Im pretty sure Sanchos GUI implements this feature yet.
[url="http://hd-wallpapersfd.info/category/art/"]HD Wallpapers[/url]
9 posts
Page 1 of 1
Who is online
Users browsing this forum: No registered users and 3 guests