Tempo di lettura: 8 min
La routerboard Mikrotik RB750UP è un router/switch a 5 porte con delle caratteristiche molto interessanti. Oltre ad avere all'interno il RouterOS, con tutte le sue mirabolanti caratteristiche, possiede anche una peculiarità aggiuntiva.
Oltre ad essere alimentabile via POE (occhio, passivo e quindi non 802.3af) ossia tramite alimentazione su cavo LAN, ha le porte dalle 2 alla 5 che sono delle porte POE-injector ossia possono alimentare a loro volta 4 apparati POE fino ad un massimo di assorbimento per porta di 1 A.
Questo, aggiunto alla possibilità di monitorare il carico di assorbimento di corrente e il voltaggio su ogni singola porta, oltre alla possibilità di creare degli script di automazione, ne fa lo strumento ideale per ambienti dove la corrente a 220V non è sempre disponibile come, ad esempio, sugli impianti di pubblica illuminazione.
Una RB750UP unita a un sistema tampone di batterie permette, alla necessità, di spegnere eventualmente apparati superflui al fine di aumentare la durata di uptime del sistema qualora la 220V non fosse disponibile per lungo tempo.
Lo scopo dello sviluppo che è stato fatto in casa Micso dal sottoscritto era quello di definire una tensione di soglia Vbatalert delle batterie e una Vbatoff e iniziare a spegnere gli apparati alimentati dalla RB750UP se la tensione fosse stata compresa tra questi due valori lasciando la sola RB750UP accesa per valori di tensione minori di Vbatoff.
Vediamo come è stato pensata e sviluppata questa soluzione analizzando in dettaglio i due script creati per l'occasione per carpirne le logiche di funzionamento.
Il primo script chiamato PoeControl, spegne e accende le porte ethernet dell'RB750Up a comando. Esso riceve
- un parametro PoePort che indica il numero della porta dello switch su cui si vuole cambiare lo stato dell'alimentazione POE e, se questo valore è 0 (zero), agisce su tutte le porte,
- un parametro PoeMode che può essere "auto-on" per accendere l'apparato collegato a questa porta o "off" per spegnerlo
- un parametro PoeDelay per ritardare le operazioni sulle porte se PoePort è pari a 0.
[code lang="ruby"]:global PoePort
:global PoeMode
:global PoeDelay
:local ptr
:local from
:local to
:local step[/code]
Il parametro PoeDelay è utile, ad esempio, in fase di accensione delle porte in modo che gli apparati non vengono accesi tutti contemporaneamente ma con un ritardo di, ad esempio, 10 secondi l'uno dall'altro al fine di non avere picchi di corrente richiesti sulla batteria tampone.
Continua a leggere →