SMS Brasil UPS - Add-on para Nobreaks!

logo

Oi Pessoal,

Publiquei hoje o meu 1° add-on para home assistant.
Comprei um Nobreak Manager III Senoidal , mas os softwares disponibilizados para Linux não me atendia.

Então fiz o meu próprio add-on para monitorar e controlar o Nobreak, segue o guithub: dmslabsbr/smsUps.
Testei no SMS Manager III, mas deve funcionar em alguns outros nobreaks da mesma marcas. Quem tiver este nobreak e quiser testar e mandar um feedback eu agradeço. Lembrando que o add-on ainda está em estágio beta.

Antes do tutorial não se esqueça de conectar a porta USB do seu UPS à porta USB do computador/hardware onde o Home Assistant está sendo executado.

Vamos ao tutorial:

Para iniciar, vá em Configurações, clique em Add-ons, backups e supervisor.

Vá em “Loja de Add-ons ” no canto direito abaixo.

No menu no canto direito a cima e vá em Repositórios.

Preencha com o endereço do guithub: dmslabsbr/smsUps e clique em Adicionar.

1

Vai perceber que irá aparecer um add-on novo. Clique nele.

2

Clique em Instalar.

Com ele instalado vá em Ajustes para configurar antes de iniciar.

Preencha com todas as informações necessárias:

UPS_NAME e UPS_ID: são apenas para referência caso você tenha mais de um UPS.
SMSUPS_SERVER: definido como true se o UPS estiver conectado à mesma máquina que o Home Assistant.
SMSUPS_CLIENTE defina como true para que o add-on monitore o servidor MQTT e desligue a máquina se necessário.
PORTA: a porta de dispositivo USB padrão, geralmente /dev/ttyUSB0
Allow_shutdown: desligamento automático do host quando o nível da bateria cair em 30%.
SHUTDOWN_CMD, comandos utilizados para desligar o equipamento. Como existem diferenças entre os sistemas, o add-on tentará várias opções.

USE_SECRETS: definindo como false, o complemento usará essa configuração, se definido como true usará a configuração no arquivo secrets.ini.
Long_lived_access_token: parâmetro opcional. Você precisa preencher se quiser receber notificações na interface da Web do Home Assistant. Como obter o token de acesso de longa duração.

Com tudo preenchido clique em Salvar.

Clique em Iniciar.

Agora vai ter as informações.

Um abraço.
Daniel

9 Likes

Funciona apenas com SMS ou também com outros que usam o software NUT?

Oi. Eu fiz o software exatamente por não conseguir fazer o SMS funcionar com o NUT. Mas como é software livre qualquer pessoa pode fazer adaptações.

Olá Daniel, boa tarde! Adquiri recentemente o mesmo Nobreak e também fiz tentativas sem sucesso de utilização do NUT.

Estou querendo testar sua solução mas estou com algumas dúvidas. Tenho pouca prática com Linux e posso estar fazendo perguntas muito básicas mas…

1 - Tenho o home assistant instalado via docker no raspbian em um RPi4. O NoBreak está conectado em uma das portas USB do RPi4. As instruções abaixo devem ser executadas em qual ambiente? No Raspbian ou no Home Assistant via Web Terminal?

Before run you need to install: https://github.com/eclipse/paho.mqtt.python
git clone https://github.com/dmslabsbr/smsUps.git
cd smsUps
python3 -m venv ./smsUps/
source ./bin/activate
pip3 install paho-mqtt
pip3 install pyserial

2 - Uma vez completados os passos acima você faz referência a um MQTT Server. Como devo instala-lo? O único add on que encontrei foi o Mosquitto Broker. Seria isso? Nele que configuro o usuário e senha? Devo também instalar a integração sugerida pelo HA após a instalação do Mosquitto Broker?

You also need you MQTT Server address, username and password.

Antecipadamente grato
Marcelo Franco

Oi Marcelo,
Na realidade as instruções que você seguiu é quando o computador que você quer desligar não usa o home assistant. Tipo o seu RP4 monitora o UPS SMS e caso acabe a energia ele manda um sinal para os outros computadores ligados desligarem.
Para o home assistant use estas instruções - https://github.com/dmslabsbr/smsUps/blob/master/DOCS.md

Tem que ter o Mosquitto Broker instalado e rodando.

Não entendi que sugestão é esta em: “Devo também instalar a integração sugerida pelo HA após a instalação do Mosquitto Broker?”

Qualquer coisa envie mensagem.

Oi Daniel. Vou repetir a instalação do Mosquitto Broker e tentar novamente. Estava obtendo um erro ao tentar inicializar o seu add-on. Vou repetir o processo e colo o erro aqui.

Na documentação do Mosquitto Broker fala sobre a integração. Grifei na imagem abaixo. Realmente assim que o add-on é instalado o HA detecta e pergunta se quer configurar.

Oi Daniel, Fiz a instalação do Mosquitto Broker e criei um usuario e senha padrao apenas para testes. Depois instalei o seu Add On. Continuo tendo o erro na inicializacao do seu add on, conforme imagens abaixo. Se puder me dar uma dica agradeço imensamente.

Configurações do Mosquitto Broker:


Configuração do SMS UPS Add on:

Erro de Inicialização do Add on:

Porta em que o UPS está:

Muito obrigado.
Marcelo Franco

Oi @dmsgyn, bom dia. Apenas esclarecendo, quando mencionei que ocorre erro na inicialização do Add on, na verdade é no salvamento das configurações, antes mesmo de inicializa-lo.

Att
Marcelo Franco

Estranho. Tenta colocar uma letra no Long_access_token. Veja se grava.

Se não conseguir, copia o YAML da configuração para ficar mais fácil de ver.

O meu é este:

UPS_NAME: SMS
UPS_ID: ‘01’
SMSUPS_SERVER: true
SMSUPS_CLIENTE: true
SMSUPS_FULL_POWER: 1400
PORTA: /dev/ttyUSB0
allow_shutdown: true
SHUTDOWN_CMD: sudo shutdown -h now,sudo shutdown now,systemctl poweroff,sudo poweroff
USE_SECRETS: false
Long_lived_access_token: >-
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.byJpc3MiOiIyYTk3MmIyZjY3Yzk0OTYyOWI4MzJhY2VlMDQ2MTI1ZSIsImlhdCI6MTYxNDk3NzQ3NCwiZXhaIjoxOTMwMzM3NDc0fQ.26_bRAvcPMc4SFCEZwviHGrSTBtOq6fYbPMyHmn2QY9
DEVELOPERS_MODE: true

Parece que tem um problema no código. Vou ver se mando uma versão nova hoje ou amanhã.

Show! Muito obrigado!

Segue o meu yaml, retirando as 3 primeiras linhas de autenticacao no mqtt. A proposito, utilizei o mqtt explorer e vi que o broker está funcionando ok com o usuario e senha que criei.

UPS_NAME: SMS
UPS_ID: ‘01’
SMSUPS_SERVER: true
SMSUPS_CLIENTE: true
PORTA: /dev/ttyUSB0
allow_shutdown: true
SHUTDOWN_CMD:

  • sudo shutdown -h now
  • sudo shutdown now
  • systemctl poweroff
  • sudo poweroff
    USE_SECRETS: false
    Long_lived_access_token: ‘’

Boa noite, Daniel! Tudo bem? Por acaso você teve oportunidade de verificar o código? Me desculpe a insistência. Seu add-on me parece bastante interessante!

Antecipadamente grato.
Marcelo

Marcelo, só hoje consegui tempo para ver o que estava ocorrendo. Acho que agora você ira conseguir usar sem problemas.

Qualquer coisa avisa por aqui ou pelo GITHUB - GitHub - dmslabsbr/smsUps: Application to read data from SMS BRASIL UPS

1 Like

Dei uma atualizada no tutorial!

Legal! Valeu pela ajuda!!

2 Likes

Olá,

Estou tentado usar esse add-on, mas não está iniciando.
Meu Home Assistant roda em um note com ubuntu

Segue log do erro.

Logger: homeassistant.components.hassio
Source: components/hassio/websocket_api.py:120
Integration: Home Assistant Supervisor (documentation, issues)
First occurred: 21:11:01 (1 occurrences)
Last logged: 21:11:01

Failed to to call /addons/e52e67e4_hassio_sms_ups/start - Can’t start addon_e52e67e4_hassio_sms_ups: 500 Server Error for http+docker://localhost/v1.41/containers/978ce43a4dc1a702c1b4ecb94a4c97a317737778ba3ea5dd4dd390e0bdaee2c5/start: Internal Server Error (“error while creating mount source path ‘/sys/firmware/devicetree/base’: mkdir /sys/firmware/devicetree: operation not permitted”)

Integridade Do Sistema

Version core-2022.2.0b6
Installation Type Home Assistant Supervised
Development false
Supervisor true
Docker true
User root
Virtual Environment false
Python Version 3.9.7
Operating System Family Linux
Operating System Version 5.4.0-97-generic
CPU Architecture x86_64
Timezone America/Sao_Paulo

Home Assistant Community Store

GitHub API ok
Github API Calls Remaining 4960
Installed Version 1.21.0
Stage running
Available Repositories 966
Downloaded Repositories 6

Home Assistant Cloud

Logged In false
Reach Certificate Server ok
Reach Authentication Server ok
Reach Home Assistant Cloud ok

Home Assistant Supervisor

Host Operating System Ubuntu 20.04.3 LTS
Update Channel beta
Supervisor Version supervisor-2022.01.1
Docker Version 20.10.12
Disk Total 54.3 GB
Disk Used 37.7 GB
Healthy true
Supported Unsupported
Supervisor API ok
Version API ok

O que pode está errado?

Em que momento este erro ocorre?
a) Ele chega a instalar?
b) Chega a aparecer esta tela?

c) O que ocorre se clicar no recompilar?

Olá,

Obrigado pelo retorno!

Ele instala normalmente.

O Recompilar fica carregando alguns segundo e depois para. E mesmo assim, quando clico em iniciar aparece essa tela.

Olhando os arquivo no github, vi que algum serviço usa a porta 5000. Eu tenho outro addon que usa essa mesma porta.
Abrir os aquivos desse outro addon e consegui alterar para outro porta e listado com o netstat, a porta 5000 agora está livre.

Seguindo o tutorial do Github, tbm tentei rodar no prompt, mas ele para na tela de debug.
bachelddd@ha:~/smsUps$ python3 smsUPS.py
********** dmslabs smsUPS v.0.39j
Starting up… 2022-02-01 10:35:25
Path: /home/hameassistant/smsUps
hassio_token:
Getting Config Parser.
Existe secrets.ini
Reading secrets.ini
Getting Config Parser.
Existe secrets.ini
False
NORMAL MODE
SMSUPS_SERVER: True
SMSUPS_CLIENTE: True
IP: 192.168.2.160
UPS_ID: 01
UPS_NAME: SMS
UPS_NAME_ID: ups_SMS_01
ALLOW_SHUTDOWN: True
info / Error! Code: OSError, Message, [Errno 6] No such device or address
MQTT connected with result code 0
Connected to 192.168.2.160
Subscribe Topics: (‘home/ups/cmd’, 0), (‘home/ups_SMS_01/cmd’, 0), (‘home/ups_SMS_01/json’, 0), (‘home/ups_SMS_01/batterylevel’, 0), (‘home/ups_SMS_01/BateriaBaixa’, 0), (‘home/ups_SMS_01/BateriaEmUso’, 0)
I was unable to open the serial port /dev/ttyUSB0
WEB SERVER Starting …
Loop start!
No UPS Data
Dados UPS Publicados…2022-02-01 10:35:28.447530
Port: 4443
Host: 0.0.0.0

  • Serving Flask app ‘webserver’ (lazy loading)
  • Environment: production
    WARNING: This is a development server. Do not use it in a production deployment.
    Use a production WSGI server instead.
  • Debug mode: on
  • Running on all addresses.
    WARNING: This is a development server. Do not use it in a production deployment.
  • Running on http://192.168.2.160:4567/ (Press CTRL+C to quit)
  • Restarting with stat
    Traceback (most recent call last):
    File “smsUPS.py”, line 1574, in
    dl.writeJsonFile(FILE_COMM, upsData)
    NameError: name ‘FILE_COMM’ is not defined
    ********** dmslabs smsUPS v.0.39j
    Starting up… 2022-02-01 10:35:29
    Path: /home/bachelddd/smsUps
    hassio_token:
    Getting Config Parser.
    Existe secrets.ini
    Reading secrets.ini
    Getting Config Parser.
    Existe secrets.ini
    False
    NORMAL MODE
    SMSUPS_SERVER: True
    SMSUPS_CLIENTE: True
    IP: 192.168.2.160
    UPS_ID: 01
    UPS_NAME: SMS
    UPS_NAME_ID: ups_SMS_01
    ALLOW_SHUTDOWN: True
    info / Error! Code: OSError, Message, [Errno 6] No such device or address
    MQTT connected with result code 0
    Connected to 192.168.2.160
    Subscribe Topics: (‘home/ups/cmd’, 0), (‘home/ups_SMS_01/cmd’, 0), (‘home/ups_SMS_01/json’, 0), (‘home/ups_SMS_01/batterylevel’, 0), (‘home/ups_SMS_01/BateriaBaixa’, 0), (‘home/ups_SMS_01/BateriaEmUso’, 0)
    I was unable to open the serial port /dev/ttyUSB0
    WEB SERVER Starting …
    Loop start!
    Port: 4443
    No UPS Data
    Host: 0.0.0.0
    Dados UPS Publicados…2022-02-01 10:35:32.729842
  • Debugger is active!
  • Debugger PIN: 732-268-763
    Traceback (most recent call last):
    File “/home/bachelddd/smsUps/smsUPS.py”, line 1574, in
    dl.writeJsonFile(FILE_COMM, upsData)
    NameError: name ‘FILE_COMM’ is not defined

smsUPS.log:
2022-02-02 10:50:25,777 DEBUG LOG file: /home/bachelddd/smsUps/smsUPS.log
2022-02-02 10:50:25,779 DEBUG ********** dmslabs smsUPS v.0.39j
2022-02-02 10:50:25,779 DEBUG Starting up…
2022-02-02 10:50:25,779 DEBUG Path: /home/bachelddd/smsUps
2022-02-02 10:50:25,780 DEBUG Running inside HASSIO False
2022-02-02 10:50:25,780 DEBUG env1:
2022-02-02 10:50:25,780 DEBUG Existe secrets.ini
2022-02-02 10:50:25,784 WARNING Reading secrets.ini
2022-02-02 10:50:25,786 DEBUG Config: SMSUPS_FULL_POWER use default: 1450
2022-02-02 10:50:25,786 DEBUG Existe secrets.ini
2022-02-02 10:50:25,788 DEBUG Config: ALLOW_SHUTDOWN use default: True
2022-02-02 10:50:25,789 DEBUG Config: DEVELOPERS_MODE use default: False
2022-02-02 10:50:25,790 DEBUG PORTA secrets: /dev/ttyUSB0
2022-02-02 10:50:25,790 DEBUG SMSUPS_SERVER: True
2022-02-02 10:50:25,790 DEBUG SMSUPS_CLIENTE: True
2022-02-02 10:50:25,790 DEBUG MQTT_HOST: 192.168.2.160
2022-02-02 10:50:25,791 DEBUG IP: 192.168.2.160
2022-02-02 10:50:25,791 INFO os.name: posix
2022-02-02 10:50:25,792 DEBUG info / Error! Code: OSError, Message, [Errno 6] No such device or address
2022-02-02 10:50:25,792 INFO Starting MQTT 192.168.2.160
2022-02-02 10:50:25,793 DEBUG mqttStart MQTT_PASSWORD: ******
2022-02-02 10:50:25,802 DEBUG MQTT connected with result code 0
2022-02-02 10:50:25,803 INFO Subscribe Topics: (‘home/ups/cmd’, 0), (‘home/ups_SMS_01/cmd’, 0), (‘home/ups_SMS_01/json’, 0), (‘home/ups_SMS_01/batterylevel’, 0), (‘home/ups_SMS_01/BateriaBaixa’, 0), (‘home/ups_SMS_01/BateriaEmUso’, 0)
2022-02-02 10:50:26,814 INFO Port /dev/ttyUSB0 - is open: True
2022-02-02 10:50:28,617 DEBUG cmd:Name / str: 49 ff ff ff ff bb 0d / Q: False
2022-02-02 10:50:30,321 DEBUG response: b’3a4d332053454e4f4944414c20322e30270d’
2022-02-02 10:50:30,321 DEBUG cmd:Info / str: 46 ff ff ff ff be 0d / Q: False
2022-02-02 10:50:32,025 DEBUG response: b’3b3131352f3232303030303031323630e20d’
/ 2-02-02 10:50:32,025 DEBUG UPS Info: M3 SENOIDAL 2.0’
2022-02-02 10:50:32,025 DEBUG UPS Info: M3 SENOIDAL 2.0’ /
2022-02-02 10:50:33,550 DEBUG LOG file: /home/bachelddd/smsUps/smsUPS.log
2022-02-02 10:50:33,550 DEBUG ********** dmslabs smsUPS v.0.39j
2022-02-02 10:50:33,550 DEBUG Starting up…
2022-02-02 10:50:33,550 DEBUG Path: /home/bachelddd/smsUps
2022-02-02 10:50:33,550 DEBUG Running inside HASSIO False
2022-02-02 10:50:33,551 DEBUG env1:
2022-02-02 10:50:33,551 DEBUG Existe secrets.ini
2022-02-02 10:50:33,553 WARNING Reading secrets.ini
2022-02-02 10:50:33,554 DEBUG Config: SMSUPS_FULL_POWER use default: 1450
2022-02-02 10:50:33,554 DEBUG Existe secrets.ini
2022-02-02 10:50:33,556 DEBUG Config: ALLOW_SHUTDOWN use default: True
2022-02-02 10:50:33,557 DEBUG Config: DEVELOPERS_MODE use default: False
2022-02-02 10:50:33,558 DEBUG PORTA secrets: /dev/ttyUSB0
2022-02-02 10:50:33,558 DEBUG SMSUPS_SERVER: True
2022-02-02 10:50:33,558 DEBUG SMSUPS_CLIENTE: True
2022-02-02 10:50:33,558 DEBUG MQTT_HOST: 192.168.2.160
2022-02-02 10:50:33,559 DEBUG IP: 192.168.2.160
2022-02-02 10:50:33,559 INFO os.name: posix
2022-02-02 10:50:33,559 DEBUG info / Error! Code: OSError, Message, [Errno 6] No such device or address
2022-02-02 10:50:33,560 INFO Starting MQTT 192.168.2.160
2022-02-02 10:50:33,560 DEBUG mqttStart MQTT_PASSWORD: ******
2022-02-02 10:50:33,563 DEBUG MQTT connected with result code 0
2022-02-02 10:50:33,564 INFO Subscribe Topics: (‘home/ups/cmd’, 0), (‘home/ups_SMS_01/cmd’, 0), (‘home/ups_SMS_01/json’, 0), (‘home/ups_SMS_01/batterylevel’, 0), (‘home/ups_SMS_01/BateriaBaixa’, 0), (‘home/ups_SMS_01/BateriaEmUso’, 0)
2022-02-02 10:50:34,569 INFO Port /dev/ttyUSB0 - is open: True
2022-02-02 10:50:36,372 DEBUG cmd:Name / str: 49 ff ff ff ff bb 0d / Q: False
2022-02-02 10:50:38,076 DEBUG response: b’3a4d332053454e4f4944414c20322e30270d’
2022-02-02 10:50:38,076 DEBUG cmd:Info / str: 46 ff ff ff ff be 0d / Q: False
2022-02-02 10:50:39,781 DEBUG response: b’3b3131352f3232303030303031323630e20d’
/ 2-02-02 10:50:39,781 DEBUG UPS Info: M3 SENOIDAL 2.0’
2022-02-02 10:50:39,781 DEBUG UPS Info: M3 SENOIDAL 2.0’ /

Aparentemente o add-on não consegue comunicação com o no-break na porta /dev/ttyUSB0. Pode ser que seu no-break esteja em outra porta, ou outro app também está tentando acesso.

Mas no arquivo smsUPS.log que vc mandou ele está conseguindo abrir a porta e pegar os dados do no-break.

Depois deste erro de inicialização, aparece alguma coisa no Log do add-on?

E no log do sistema, logo após tentar inicializar o add-on, tem algum warnning(laranja) ou error (vermelho) Log do sistema? - caminho: configurações → add-ons, backups e supervisor → Sistema → supervisor