Conector MQTT v3
Publique os dados em tempo real dos dispositivos e das estratégias no seu próprio broker MQTT e aceite comandos provenientes dele.
→ Visão geral
O conector MQTT v3 liga o controlador, como cliente, a um broker MQTT à sua escolha, por exemplo o broker de um sistema de gestão de edifícios, de um SCADA ou de uma plataforma de domótica. O controlador publica então os valores em tempo real de todos os dispositivos e estratégias, os preços da eletricidade e uma mensagem de keep-alive, e fica à escuta de comandos como setpoints de dispositivos, ligar/desligar estratégias, horários do External EMS e definições da rede elétrica.
O conector está desligado até introduzir um Host. É independente da ligação à Reduxi Cloud; ambas podem funcionar em simultâneo.
Quem puder publicar nos tópicos de comando do controlador no seu broker pode alterar setpoints de dispositivos, desligar estratégias, alterar os limites da rede elétrica e reiniciar o controlador. Utilize um broker com autenticação de utilizadores, atribua ao controlador uma conta própria e permita o acesso de escrita a controllers/<Unit ID>/…/set e controllers/<Unit ID>/commands/… apenas a clientes de confiança.
1 Ligar a um broker
2 Parâmetros
Estado
| Parâmetro | O que faz | Unidade / predefinição |
|---|---|---|
| Client | ID de cliente MQTT utilizado pelo controlador. É o Unit ID do controlador e forma também todos os tópicos: controllers/<Unit ID>/…. Só de leitura. |
texto |
| Host | O broker para o qual aponta a configuração guardada. Vazio = conector desligado. Só de leitura. | texto |
| Connected | Visto verde = ligado ao broker; cruz vermelha = não ligado. Só de leitura. | — |
| Ícone de atualização | Lê novamente o estado. | — |
Mqtt connection
| Parâmetro | O que faz | Unidade / predefinição |
|---|---|---|
| Host | Nome do host ou endereço IP do broker. Deixe vazio para desligar o conector. | texto · vazio = desligado |
| Port | Porta TCP do broker. | número · predefinição 1883 |
| Username | Nome de utilizador no broker. Opcional. | texto |
| Password | Palavra-passe no broker. Só é utilizada em conjunto com Username. O campo mostra a palavra-passe em texto simples. | texto |
| Use SSL | Yes abre a ligação com encriptação TLS. Se nunca o definiu, é ativado automaticamente quando está guardada uma cadeia CA do servidor ou um certificado de cliente. | Yes / No · predefinição No |
| Verify server cert | Yes verifica o certificado do broker com a Server CA chain (ou com as autoridades de confiança integradas no controlador, se não tiver sido carregada nenhuma cadeia). No aceita qualquer certificado: a ligação é encriptada, mas o controlador não verifica com quem está a comunicar. Só é utilizado com Use SSL = Yes. | Yes / No · predefinição No |
| Server CA chain (PEM format) | Certificado (cadeia) da autoridade que assinou o certificado do broker. Clique em Choose File e escolha um ficheiro PEM. Depois de guardado, o campo mostra em vez disso um botão Download. | ficheiro PEM |
| Client public certificate (PEM format) | O certificado de cliente do próprio controlador, para brokers que autenticam os clientes por certificado (TLS mútuo). Requer a chave privada correspondente. | ficheiro PEM |
| Client private key (PEM format) | Chave privada do certificado de cliente. | ficheiro PEM |
A chave privada do cliente e a palavra-passe do broker dão acesso ao seu broker. Guarde os ficheiros num local seguro, não os envie por e-mail e não deixe cópias em computadores partilhados. Qualquer pessoa com acesso a esta página do Configurator pode transferir os certificados guardados e ver a palavra-passe.
Um certificado guardado mostra apenas um botão Download. Para carregar outro, clique em Clear connection configuration e introduza novamente toda a ligação com os novos ficheiros.
Additional topics
| Parâmetro | O que faz | Unidade / predefinição |
|---|---|---|
| Name or path | Tópico a publicar, relativo a controllers/<Unit ID>/. Por exemplo, site/name é publicado como controllers/<Unit ID>/site/name. As linhas com o nome vazio são ignoradas. |
texto |
| Payload | Texto fixo publicado nesse tópico. | texto |
| Add | Adiciona uma linha vazia. | — |
| Ícone do caixote do lixo | Remove a linha. Produz efeito após Save. | — |
Os tópicos adicionais são publicados em conjunto com os metadados do controlador: sempre que o conector se liga ao broker e sempre que o broker envia commands/refresh.
Publicação e botões
| Parâmetro | O que faz | Unidade / predefinição |
|---|---|---|
| Readout interval | Com que frequência o controlador publica a leitura e o setpoint de cada dispositivo e a leitura, o estado e os valores dos parâmetros de cada estratégia. Valores mais baixos dão dados mais recentes, mas mais tráfego. | s · vazio = 60 s · mínimo 0.25 s |
| Guardar | Guarda as definições e reinicia o conector. Registado no Audit log como CONNECTOR_EDIT. |
— |
| Clear connection configuration | Após a confirmação Are you sure to clear MQTT settings? (Yes / Cancel), elimina o host, a porta, o nome de utilizador, a palavra-passe, as definições SSL e todos os certificados. O conector desliga-se. Readout interval e Additional topics são mantidos. | — |
Após Clear connection configuration, o controlador deixa de publicar dados ou aceitar comandos por MQTT. Um sistema que dependa dos dados, ou que envie horários do External EMS, deixa de os receber ou de os entregar. Tem de introduzir novamente a palavra-passe e carregar os certificados de novo para restabelecer a ligação.
3 Tópicos
Todos os tópicos começam por controllers/<Unit ID>/. O controlador publica com QoS 0 e sem a flag retain, e subscreve os tópicos de comando com QoS 1. Os payloads são JSON ou valores simples; os formatos completos dos payloads encontram-se no artigo do centro de ajuda "Reduxi Controller - MQTT API".
Publicado pelo controlador:
| Tópico | Conteúdo | Quando |
|---|---|---|
identifier |
Identificação do controlador (unit ID, versões, …) | Ao ligar e em commands/refresh
|
settings/interval/readout, settings/interval/keepAlive
|
Intervalos atuais em ms | Ao ligar e em refresh |
devices/list, devices/types, devices/<id>/info
|
Dispositivos configurados e os seus tipos | Ao ligar e em refresh |
strategies/list, strategies/types, strategies/<id>/info, strategies/<id>/parameters/list, strategies/<id>/parameters/<id>/info
|
Estratégias configuradas e os seus parâmetros | Ao ligar e em refresh |
<additional topic> |
Payload de Additional topics | Ao ligar e em refresh |
devices/<id>/readout |
Valores em tempo real de um dispositivo | A cada intervalo de leitura |
devices/<id>/setpoint |
Setpoint atual de um dispositivo | A cada intervalo de leitura |
strategies/<id>/active, strategies/<id>/readout, strategies/<id>/parameters/<id>/value
|
Estratégia ligada/desligada, valores em tempo real, valores dos parâmetros | A cada intervalo de leitura |
prices |
Preços da eletricidade de hoje e de amanhã | Ao ligar, quando os preços mudam, em prices/refresh
|
strategies/<id>/externalEMS/<type> |
Horário do External EMS guardado (battery, evse, hvac, pv) |
Em …/externalEMS/<type>/refresh
|
keepAlive |
Hora atual (Unix ms) | A cada intervalo de keep-alive, predefinição 60 s |
Comandos que o controlador aceita:
| Tópico | Efeito |
|---|---|
commands/refresh |
Publica novamente os tópicos de metadados. |
commands/reboot |
Reinicia o controlador cerca de 5 s depois. |
prices/refresh |
Publica novamente prices. |
settings/interval/readout/set |
Altera o intervalo de leitura (ms) e guarda-o. |
settings/interval/keepAlive/set |
Altera o intervalo de keep-alive (ms) e guarda-o. |
devices/<id>/setpoint/set |
Define o setpoint de um dispositivo. |
strategies/<id>/parameters/<id>/value/set |
Define um parâmetro de uma estratégia. |
strategies/<id>/active/set |
Liga ou desliga uma estratégia. |
strategies/<id>/externalEMS/<type>/set |
Carrega um horário do External EMS para battery, evse, hvac ou pv. Ignorado, a menos que a estratégia tenha um modo de otimização External EMS. |
strategies/<id>/externalEMS/<type>/refresh |
Publica o horário do External EMS guardado. |
settings/grid/set |
Altera as definições da rede elétrica (localização, fusíveis, limite de importação e de exportação), opcionalmente também em estratégias selecionadas. |
settings/grid/set substitui os valores em Settings → Grid e, se solicitado, os limites das estratégias — com o mesmo efeito que guardar a página de definições da rede elétrica. devices/<id>/setpoint/set escreve o setpoint diretamente no dispositivo. Não envie setpoints para um dispositivo que uma estratégia também controla, ou os dois substituir-se-ão mutuamente.
4 Resolução de problemas
| Sintoma | O que verificar |
|---|---|
| Connected continua vermelho | Host e Port estão corretos; o controlador consegue alcançar o broker (TCP port test no host e na porta do broker); nome de utilizador e palavra-passe; com TLS, a cadeia CA corresponde ao certificado do broker, ou experimente Verify server cert = No para delimitar o problema. |
| Ligado, mas sem dados no broker | Subscreva controllers/# e verifique o valor de Client: os tópicos utilizam o Unit ID exatamente como aí é apresentado. |
| Os comandos não têm efeito | O cliente que os envia tem direitos de publicação no broker; o tópico utiliza o ID de dispositivo ou de estratégia correto (consulte devices/list, strategies/list). |
5 Lista de verificação
- Host e Port correspondem ao broker e Connected mostra um visto verde após uma atualização.
- Em instalações de produção: Use SSL = Yes, a cadeia CA está carregada e Verify server cert = Yes.
- Os dados chegam a
controllers/<Unit ID>/com o Readout interval configurado. - O acesso de escrita aos tópicos de comando está limitado a clientes de confiança no broker.
- Os ficheiros de certificados e as palavras-passe estão guardados em segurança fora do controlador.