Problemas em configurar Sdm630 e Wlan Modbus TCP/Ip Gateway


(Rui Nunes) #1

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.


(Jorge Assunção) #2

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.


(Rui Nunes) #3

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…


(Jorge Assunção) #4

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?


(Rui Nunes) #5

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.


(Jorge Assunção) #6

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…


(Rui Nunes) #7

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?


(Rui Nunes) #8

Com esta configuração, tenho estes erros:


(Jorge Assunção) #9

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?


(Nuno Neves) #10

Tenta a porta 502 e depois diz coisas…


(Rui Nunes) #11

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


(Jorge Assunção) #12

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.


(Rui Nunes) #13

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


(Jorge Assunção) #14

É só essa que aparece?


(Rui Nunes) #15

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


(Jorge Assunção) #16

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

(Rui Nunes) #17

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.


(Nuno Neves) #18

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


(Rui Nunes) #19

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!


(Jorge Assunção) #20

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