Problemas em configurar Sdm630 e Wlan Modbus TCP/Ip Gateway

Olá,

Comprei um SDM630 e um Gateway Zähler 2x SDM630.

Segui as instruções neste site Sean R. Mitchell’s Homepage, consigo ver os consumos no firefox através do ip 192.168.xxx.xxx
mas não consigo configurar o Home Assistant

Já tentei no configuration.yaml

modbus:
  type: tcp
  host: 192.168.xxx.xxx
  port: 80

No sensors.yaml

- platform: modbus
  scan_interval: 10
    registers:
      - name: L1 Voltage
        unit_of_measurement: V
        register: 0
        data_type: float
        precision: 2
        count: 2
      - name: L2 Voltage
        unit_of_measurement: V
        register: 2
        data_type: float
        precision: 2
        count: 2
      - name: L3 Voltage
        unit_of_measurement: V
        register: 4
        data_type: float
        precision: 2
        count: 2

Mas não consigo obter valores no HA
Já ando nisto à dois dias e nada. Agradeço a vossa ajuda.

Já tentaste utilizar as opções udp e rtuovertcp em type?

Experimenta apagar todos esses sensores que criaste para o modbus e ficar apenas com a configuração do configuration.yaml. Depois reinicia o HA e vê o que te aparece no states do developer tools para palavra modbus em entity. Se possível, publica uma imagem do resultado.

Retirei todos os sensores.
Já experimentei assim, “type: tcp”, “type: udp” e “type: rtuovertcp” e no no states do developer tools não aparece nada.

modbus:
type: rtuovertcp
host: 192.168.1.xxx
port: 80

Uma coisa que acho estranho, é que nas configurações que vejo para aí na net, aparece a porta 520, mas se eu colocar no browser 192.168.1.xxx:520, não estabelece ligação.

Neste momento, estou mesmo confuso, este módulo, Gateway Zähler 2x SDM630, está a transmitir via wifi, eu consigo ver os valores no browser, só não consigo é vê-los no HA…

No browser estás a vê-los “dentro” do gateway, ou seja, estás a ver uma página web que está alojada dentro do gateway.

No HA o dados têm de passar da gateway para o HA e deve ser ai que está o problema. Não conheço esse equipamento em especifico mas penso que ele não cria uma ligação Modbus para fora (a ligação da gateway para o SDM essa sim é feita em Modbus).

Tens algum manual da gateway?

Acho que começo a perceber, agora resta saber como conseguir pasar esses dados para o HA.
Tenho o manual estava em alemão mas já traduzi para inglês.

Na tua primeira publicação tens um sensors.yaml com vários sensores e a formatação está mal feita. Além disso publicaste o código como citação e não como código. Quando publicares código deves utilizar o ícone </>. Altera, por favor, para código para podermos confirmar o espaçamento.

Quando defines o Modbus estás a utilizar o port: 80 que normalmente é a interface web e duvido que seja por essa porta que a gateway está a enviar os dados. Na página 7 do manual falam de uma ferramenta chamada Readout tool for the Modbus TCP/IP Gateway. Experimenta instalar esse software para tentares descobrir o endereço da porta (aparece nas imagens da pagina 8 - item 5). Possivelmente, a configuração da porta também pode ser consultada na interface web.

Uma das coisas que vi também, é que estás a criar sensores em registers que não existem. o L1_voltage por exemplo estás a dar o register: 0 (que não existe) e devias estar a utilizar register: 30001. A lista dos registers está no PDF que colocaste. E falta-te também indicar para cada sensor qual é o slave a que te estás a ligar.

slave (Required): The number of the slave (Optional for tcp and upd Modbus).

Os manuais são nossos amigos… Lol…

Em primeiro lugar, peço desculpa pelo código estar mal formatado, já está correto.
Já usei o software e configurei-o para o IP: 192.168.1.xxx, porta 80 e funcionou,
Também já li o manual Modbus Sensor e mesmo assim não consigo obter valores.
Quando uso o Modbus Sensor tenho que colocar

modbus:
  type: tcp
  host: 192.168.1.xxx
  port: 80

no configuration.yaml correto?

Com esta configuração, tenho estes erros:

Mas como sabes que funcionou? Porque abriste com o browser e viste os valores? A interface web não tem nada a ver com o envio de valores do Modbus… A interface tem uma porta e o Modbus tem de ter outra diferente. Continuo a achar que não é na porta 80 que tem de estar.

Quanto à mensagem de erro, adicionas-te o slave e corrigiste os register: para os valores que estão no PDF?

Tenta a porta 502 e depois diz coisas…

Já tentei a porta 80, 502…
Já experimentei os registers 30001 em vez de 1, já não sei que mais tentar :frowning:

A primeira coisa a resolver é a questão da porta de acesso, sem isso não vale a pena mexer em registers.

Experimenta instalar um port scanner e faz um scan ao IP da gateway para ver que portas estão abertas.

Já fiz um port scanner ao ip:192.168.1.xxx e dá porta tcp 502

É só essa que aparece?

Sim, quando tento o IP 192.168.1.xxx porta 502 não dá erro de ligação, quando tento outro ip, ou uma porta diferente dá este erro “Connection to (192.168.1.xxx, 502) failed: timed out”, aqui coloquei um ip diferente de modo a dar erro.
Dá-me ideia que o problema está aqui

- platform: modbus
  registers:
    - name: L1 Voltage
      unit_of_measurement: V
      register: 30001
      data_type: float
      precision: 2
      count: 2

No register, já tentei “1” e “30001” e nada.

O erro, é sempre o mesmo:
“No response from modbus slave None, register 30001” ou “No response from modbus slave None, register 1”

Isto é o que vejo no browser :frowning:

Usando o qmodmaster, consigo conectar

qmod

Como já te disse anteriormente o slave: é OBRIGATÓRIO na configuração dos sensores!

slave (Required): The number of the slave (Optional for tcp and upd Modbus).

Por isso a configuração tem de ser:

- platform: modbus
  registers:
    - name: L1 Voltage
      unit_of_measurement: V
      register: 30001
      slave: 1
      data_type: float
      precision: 2
      count: 2

Já tentei tudo ou quase tudo e nada, não consigo obter valores nenhuns.
slave: 1,2,3 enfim estou farto de reiniciar o HA.
De qualquer forma, obrigado pela ajuda.

Os registers não serão aqueles 10 que aparecem no qmodmaster?
Ou então tenta sem o 30 inicial…

Por vezes perde-se tanto tempo apenas por uma linha de código.
O que faltava era “register_type: input”

Para quem precisar:
configuration.yaml

modbus:
  type: tcp
  host: 192.168.1.xxx
  port: 502

sensors.yaml

- platform: modbus
  registers:
    - name: L1 Voltage
      unit_of_measurement: V
      register: 0
      register_type: input
      data_type: float
      precision: 2
      count: 2
    - name: L2 Voltage
      unit_of_measurement: V
      register: 2
      register_type: input
      data_type: float
      precision: 2
      count: 2
    - name: L3 Voltage
      unit_of_measurement: V
      register: 4
      register_type: input
      data_type: float
      precision: 2
      count: 2

Ainda bem que hoje é dia 1 porque assim deu para fazer reset ao sdm630 :slight_smile:

SDM630_3

Obrigado pela ajuda!

3 Likes

Óptimo! Obrigado por.publicares a solução.


Copyright © 2017-2020. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade