RasPi: conectando un SAI Salicru SPS One 900VA

Muy buenas.

En esta ocasión quiero compartir con todos vosotros mi reciente experiencia con este SAI, el maravilloso SPS One de SALICRU, en su versión 900VA (http://catalogo.salicru.com/es-domestic/sais/sps-one). No voy a hacer demasiada publicidad, así que me dedicaré básicamente a explircaros cómo conseguí hacerlo funcionar bajo Linux. En especial, en mi Raspberry Pi, pero creo que podríamos aplicar sin demasiadas diferencias ni problemas, todas las indicaciones para llevarlo a cualquier Linux.

SPS-ONE

SPS-ONE

Por qué un SPS One?

Fácil: PRECIO. Es increíblemente barato para las prestaciones que ofrece. El de 900VA (más que suficiente para un par de PCs en casa), alrededor de los 57€. Los hermanos menores, a razón de unos 5 o 7€ menos por categoría.

Mi principal interés era tener un SAI que alimente mis dos NAS de manera que no pierda mas información por causas de caida de tensión, como ya me ha pasado en varias ocasiones. Sólo he encontrado compatibilidades con APC, de precios de mas del triple que este, y no con mejores prestaciones. Por lo tanto, me puse a buscar en Internet, y vi que “otra vía era posible”. Alguien ya había probado con éxisto este mini tutorial que hoy os traigo, así que me tiré a la piscina, compré el mío, y hoy mismo mientras lo pruebo, os escribo este contenido.

Espero que os parezca interesante, contadme qué tal…

Culturilla general

Bien, como os comentaba, por mucho que diga “compatible con Linux”, no es del todo cierto… Ese software que promueve la marca (View Power) no sabe demasiado bien cómo comportarse con Linux. Pero existe otra alternativa, que es la plataforma NUT (Network UPS Tools). NUT ofrece infinidad de drivers, pero “ninguno” compatible con el SPS One (bien, no es del todo cierto). Pero alguien dice por ahí que el driver blazer_usb no se comporta del todo mal. Y es cierto! No voy a entrar en detalles, podréis encontrar mas info al respecto por Internet sin problemas…

El SPS One ofrece, como digo, unas prestaciones mas que interesantes, y la garantía del fabricane (español!) es mas que reconfortante: hasta 90000€ en caso de incidencia no cubierta por el SAI.

Así que me fui, como dije a por él. Y por ahora no me ha decepcionado, esperemos a ver cuando caiga la tensión, qué sucede…

Instalación del cliente

Al tajo. Vamos a por el software que nos interesa. Instalaremos las estupendas librerías y drivers del NUT, como ya he comentado. Tiene infinidad de posibilidades que en otra entrada, mas adelante, os comentaré. Por ahora centrémonos en lo básico, establecer la primera comunicación.

Lo primero de todo, como siempre, es tener al día nuestro repositorio de software y nuestro sistema operativo:

Ahora ya podemos instalar el cliente y el server (con la siguiente orden se instalan ambos por defecto):

Si todo ha ido bien, al final de la instalación veréis una información importante, la confirmación de la instalación y las rutas de los ficheros de configuración.

En este caso se habrán instalado los paquetes:

  • nut-client
  • nut-server

Resultado para el cliente:

Resultado para el server:

Bien, nuestro fichero de configuración es: /etc/nut/nut.conf para ambos casos

En ese mismo directorio encontramos, a demás, el resto de ficheros que tendremos que configurar:

Configuración

A continuación, un pequeño detalle de qué es cada fichero y algunas indicaciones de cómo configurarlos. Cuando accedáis a cada uno de ellos podréis ver la documentación, añadida al principio en modo de comentarios. Os recomiendo que los leáis antes de modificarlos y entonces lo hagáis en base a vuestras necesidades. Lo que a continuación os expongo son puros ejemplos muy básicos.

nut.conf

Este fichero es el que contiene la configuración “genérica” del driver. En nuestro caso le tendremos que indicar que sólo vamos a administrar o monitorizar un SAI:

 ups.conf

Este fichero es el que define cada uno de los SAIs que vamos a administrar. En nuestro caso, solo uno, un SPS One 900VA. Indicaremos el driver a utilizar, blazer_usb, el puerto serie de comunucación, debe ser auto (ya que es USB y no serial, y por lo tanto será el driver quien lo administre), y por último la descripción, desc, en la que podemos escribir aquello que mas nos convenga para describir el dispositivo configurado:

upsd.conf

Este fichero contiene la configuración del demonio de comunicación. Define quién realiza la comunicación, así como el puerto y el número de conexiones máximas permitidas. Para nuestro caso, los valores por defecto son correctos:

upsd.users

Definición del (los) usuario(s) con permisos para obtener datos de la comunicación abierta. El contenido es bastante autoexplicativo. Cada sección define un usuario y los permisos otorgados. Para nuestro caso, solo hemos creado un usuario, admin (podemos crear cuantos queramos) con los valores que vienen por defecto:

Este usuario admin puede modificar algunos parámetros del SAI (actions = SET) y ejecutar todos los comandos posibles (instcmds = ALL). Para nuestro caso ilustrativo es suficiente, pero sería recomendable aplicar un password mas seguro y repartir las posibles acciones entre diversos usuarios, según su rol (aministrador, monitor, ejecutor, etc…).

upsmon.conf

Por último tenemos este fichero, que es el que contiene los parámetros utilizados por el driver, para realizar las comunicaciones, apagar automáticamente el sistema e incluso enviar emails en caso de existir alguna emergencia. Dejaremos la mayoría de valores por defecto, excepto algunas cosillas que paso a explicaros:

Con esto ya podemos conectar el SAI al usb de la Pi y lanzar el daemon. Recordad reiniciar la Pi antes, para asegurarnos que el driver obtiene los datos de configuración correctamente y que se carga el driver usb.

Probando el driver

Bien, ya podemos probar el driver. Si todo ha ido bien, tras reiniciar la Pi, se habrá lanzado el daemon automáticamente.

Así que para comprobar que está todo funcionando, podemos ejecutar el siguiente comando:

Y obtenemos un listado de valores, en el que se especifica, entre otros, la carga de la batería actual, voltajes de entrada / salida, de las baterías, etc…

Arranque manual del driver, del daemon y del monitor

Si algo ha fallado, y el driver no se ha iniciado automáticamente, el comando anterior no funcionará…

Podemos arrancar de manera manual de la siguiente forma:

Bien, ¿qué estamos haciendo en cada línea?

  • primero arrancamos el driver usb: upsdrvctl start
  • luego arrancamos el daemon: upsd
  • y, finalmente, el proceso monitor de estado del sai: upsmon

No es necesario indicar la ruta física de los comandos, dado que al instalarlo con apt-get el mismo instalador nos configura el servicio y el PATH.

Si todo ha ido correctamente, no aparecerá ningún mensaje de error. En caso contrario, podemos añadir el modificador -D a cada comando para ejecutarlo en modo debug, el cuál nos ofrece algo mas de información…

Con esto concluyo esta primera entrega. En una segunda veremos cómo explotar estos datos. Como veis, no sería demasiado difícil extraer los datos y tratarlos, hay muchas maneras de hacerlo. Ya veremos alguna otra…

Espero que os haya parecido interesante.

Jordi

Share

17 comentarios

  1. Buenas,

    Sin animo de ofender este SAI es bastante malo. Mi experiencia con este modelo concreto es que al cabo de un año la batería muere y no es posible sustituirla. En la primera ocasión aproveche que aún estaba en garantía y me lo sustituyeron por otro nuevo pero, un año después, el nuevo también ha dejado de funcionar la batería, ojo el resto funciona bien.

    Acabo de adquirir otro modelo de otro fabricante fijándome en dos cosas, compatibilidad con Linux, 100% desde el minuto cero y la posibilidad de cambiar las baterías de forma sencilla, cuestan 25€.

    Créeme a la larga acabarás haciendo como yo, porque estarás en casa pensando que tus datos están a salvo cuando se va la luz y el día que esto suceda se apagará todo sin contemplaciones. Por cierto, tengo conectado al SAI un HP Proliant con 4 discos WD Green un router y un AP, nada más, total de carga indicada 6%(cuando lo compre aguantaba 40m) y hacia una prueba desenchufando cada 3-4 meses para verificar que todo estaba ok.

    Un saludo.

    • Muy buenas, Neodian.

      Muchas gracias por tu comentario, en absoluto ofende, sino al contrario, siempre es bueno conocer todas las facetas, buenas y malas, del material que uno tiene. Te agradezco mucho tu comentario, y me gustaría saber qué marca y modelo es el SAI que has adquirido, para poder estudiarlo.

      Muchas gracias!

      Jordi

  2. Buenos días a todos,

    En primer lugar agradecer a Jordi este magnifico Howto y los comentarios realizados sobre el funcionamiento de nuestro SAI SPS ONE, y su integración con el Software NUT. Sobre todo destacar el valor constructivo y colaborativo de mismo.

    Respecto a los comentarios de Neodian, solo comentar:

    – Los SAIS SALICRU de la Serie SPS ONE, tienen 3 años de Garantía, se puede consultar directamente en la WEB http:/support.salicru.com
    – El SAI SPS ONE, incorpora una batería estándar de 7Ah, que se puede comprar en cualquier tienda que vendan baterías, su substitución es solo quitar 4 tornillos situados en la base del SAI, desencajar la base y la tapa del frontal, y desembornar la batería.

    • Buenos días, Pep.

      Muchas gracias por tu comentario. Espero que este post sea de gran ayuda a todos los que se han decidido por este SAI, y por lo que aún tienen dudas.
      En efecto, el echo de que me decidiera por vuestro equipo es exactamente lo que comentas. Estuve mirando durante mucho tiempo, pregunté en diversas ocasiones a vuestro SAT y obtuve las respuestas que esperaba, y es que el soporte es posible y fácil, como comentas. Mi decisión por el SAI fue por su precio mas que competitivo y por las prestaciones que ofrece en contra del mismo. El echo de que solo fuera compatible con Windows, a priori, era el aliciente que necesitaba para verme involucrado en todo este tejemaneje que, al final, resulta ser divertido y entretenido, a la vez que fructífero. Ahora tengo funcionando al 100% el SAI tanto en Windows como en Linux (RasptberryPi), y pr ahora todo correcto.

      Animo a cualquiera que lea este post y este comentario, y sea usuario de este equipo, a que nos indique su experiencia para poder contrastar.

      Muchas gracias a todos, por las críticas y por los comentarios. Todos son bienvenidos.

      Y por visitar mi web por supuesto! 😉

      Jordi

  3. Hola felicidades por tu trabajo, tu web me la paso un tecnico oficial de salicru y es la bomba
    podrías explicarme como puedo hacer para que me envie un mail cuando no tenga electricidad?
    y si no es mucho pedir que comando usas para que te diga solo el estado (si esta online etc…) sin todo lo demas

    mil gracias

    • Hola asako,
      Muchas gracias por tus palabras! Se agradece que recomienden mi web alguien que es técnico de una gran empresa, es todo un detalle!
      Con respecto a tu pregunta, debes indicar el comando a ejecutar en la línea:
      NOTIFYCMD /usr/local/ups/bin/notifyme.sh
      Se trata de que allí escribas el comando a ejecutar cuando se queda sin electricidad. Por ejemplo, un sendmail en el que vuelques el valor de las variables que indican el estado que necesitas.
      Para saber el estado, debes pedir al driver que te diga toda la info, y de allí lo sacas mediante filtrado de cadenas de texto. Si esto no te queda muy claro, avísame, intentaría escribir un mini tutorial relacionado con todo esto, así te ayudo y a alguien mas que lo pueda necesitar…

      Dime qué tal te ha ido, sino hacemos otro mini tuto… 😉

      Gracias!

      Jordi

  4. Estoy pensando en comprarme uno, pero tengo una duda que no he encontrado la respuesta. Mirando los parámetros al comprobar el demonio, veo que en la línea 20 hay un ups.beeper.status: enabled . ¿Esa variable está relacionada con el pitido que dan los SAIs al cortarse la entrada AC? ¿Puede modificarse a “disabled”?

    Un saludo.

    • En efecto, así es, según documentación, es el parámetro que aplica los cambios que comentas. Aunque yo no lo he probado. Si te interesa, puedo hacer alguna prueba en cuanto me sea posible… y te digo el resultado, pero si miramos por google, vemos algunos que hablan del tema también. Ya me dices.

      Saludos, y gracias por tu comentario!

      Jordi

  5. Muy buenas, en primer lugar darte la enhorabuena por el tutorial, me ha parecido bastante interesante.
    En segundo, estoy pensando en adquirir varios de estos SAIs para una instalación que tengo que realizar, en la que cada uno de los SAIs irán en un cuadro eléctrico en el que hay un Router y un Arduino Ethernet. Necesitaría saber si hay alguna forma de poder gestionar y saber el estado del dispositivo a través de la red, (que envíe un email cuando no está funcionando correctamente, etc), ya que no dispongo de ningún dispositivo con conexión USB en el cuadro eléctrico y es completamente necesario para tener controlado el correcto funcionamiento del sistema.
    Tengo un PC con Windows que está en red con todos los routers.
    Muchas gracias, un saludo.

    • Hola!
      Pues creo, hasta dónde yo se, que la única vía de comunicación es por USB. No hay manera de hacerlo mediante red. El puerto, si mal no recuerdo, es un RJ12, para proteger la línea de teléfono… ¿Has pensado en montar una Raspberry Pi junto a los SAIs para gestionarlos por USB? Sólo necesitarías un hub, que no es muy caro. Y si montas la B+ dispones de 4 puertos USB… El consumo es mínimo, y no ocupa mucho mas que un Arduino Uno… Creo que podrías conectarlos sin problemas. Una vez conectados a la Pi, puedes hacer cuanto se te antoje… Enviar emails, avisar a la red, etc… Siento no poder ayudarte en mucho mas… Si consiguieras algo diferente a lo que te propongo, te agradeceré enormemente que me lo comentes.
      Muchas gracias a tí por tu comentario!
      Jordi

      • Muchas gracias por el comentario. Sí, me he estado informando y tengo que irme a modelos que tengan SNMP para poder realizar todas estas funciones.
        La idea de la Raspberry pi para el caso que me ocupa no es viable porque el software ya está hecho para Arduino y habría que volverlo a desarrollar para que funcionara en la Raspberry Pi.
        Lo que voy a hacer va a ser coger de la alimentación sin proteger del SAI y hacer un pequeño circuito con un transformador y un rectificador (220VAC/5VDC), básicamente un transformador como el de nuestros móviles pero con mucha menos capacidad de corriente. Esa señal de 5VDC será la que entre en el Arduino y la que leeré para saber si hay caida de tensión o no.
        En cualquier caso, muchas gracias. Un saludo.

    • Hola kampa,

      Muchísimas gracias por el apunte, no lo había tenido en cuenta (aunque si bien es cierto que los ejemplos que os pongo son mis propios ficheros, y funcionó correctamente tal cuál!).

      Creo que te refieres a algo del estilo: MONITOR salicru@127.0.0.1 1 local_mon MYSECRETPASSWD master

      Lo tendré muy en cuenta, en cuanto pueda hago un repaso del post y lo añado.

      Gracias por la corrección!!! 😉

  6. Hola,
    Me gustaría dejarte este comentario… para los que como yo, aun caen aquí con acierto, buscando como configurar este SAI en linux.
    En las nuevas versiones de NUT 2.7…. hay un controlador mas especifico: nutdrv_qx
    El archivo ups.conf me queda tal que así:

    [salicru]
    #driver = blazer_usb
    driver = nutdrv_qx
    subdriver = cypress
    desc = “SAI Salicru ONE 500VA”
    port = auto
    vendorid = 0665
    productid = 5161
    #bus = “004”

    Ah!… ¡Muchas gracias Jordi! Con tus instrucciones tuve el SAI configurado en 5 minutos.
    Saludos.

  7. Hola, sé que hace tiempo del post, pero he seguido las instrucciones, consigo lanzar correctamente el driver pero no consigo configurar las notificaciones.

    Tengo un script que puedo lanzar manualmente ( /home/pi/scripts/notify.sh) y envia el correo correctamente, pero al hacerlo a partir de NOTIFYCMD no hay manera.

    He visto en otras webs hacer falta indicar la opción EXEC, por ejemplo: NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC pero tampoco funciona.

    Help!!!

    Gracias!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *