biemond / solaredge.modbus

Homey Solaredge modbus app
GNU General Public License v3.0
7 stars 8 forks source link

Uitlezen Modbus TPC over VPN werkt niet #32

Closed haandrw closed 1 year ago

haandrw commented 1 year ago

Ik probeer via VPN een andere SolarEdge inverter uit te lezen. Met Modbus tools kan ik zien dat de verbinding werkt, echter in de Homey app krijg ik geen data. Als ik port forwarding gebruik (veel te gevaarlijk) lukt het wel om data te ontvangen. Ik begrijp niet waar dit fout gaat/waarom het niet werkt. Wellicht een blokkering in de software.

biemond commented 1 year ago

hey,

is je homey in een vlan of zo en mag het geen connectie opzetten naar je inverter over vpn. als port forwarding werkt dan zal waarschijnlijk op dat device het fout gaan en wordt geblokt.

Ik doe niks speciaal. kun je een logger of sniffer aanzetten.

Laatst nog homey over een vpn geconnect naar inverter in belgie.

haandrw commented 1 year ago

Nee Homey is gewoon in LAN, via zelfde connection point als waarmee ik via iPad en een Modbus app wel de data ontvang. Als het standaard wel zou moeten werken ga ik eens verder onderzoeken of ik een oorzaak kan vinden. Dank voor de snelle reactie.

biemond commented 1 year ago

kun je me een diagnostic rapport sturen. misschien crashed de app.

haandrw commented 1 year ago

2f988951-87df-4fbf-b999-2f795c8edf5a

Ik heb nog geprobeerd om mijn eigen inverter (lokale connectie via LAN) te verwijderen om te testen of dat invloed heeft op de 2e remote (via VPN) inverter. Dit heeft niets opgeleverd, nog altijd geen gegevens van de inverter die via VPN is gekoppeld beschikbaar in Homey app.

Als beide geconfigureerd zijn werkt alleen de weergave van de lokale inverter.

biemond commented 1 year ago

ga het checken

biemond commented 1 year ago
Error: connect ETIMEDOUT [192.168.2.67:1502](http://192.168.2.67:1502/)
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1157:16) {
  errno: -110,
  code: 'ETIMEDOUT',
  syscall: 'connect',
  address: '192.168.2.67',
  port: 1502
}
biemond commented 1 year ago

ik denk dat de weg terug niet goed gaat en daarom krijg ik een timeout.

biemond commented 1 year ago

ik vermoed dat er een soort handshaking plaats vind. Ik krijg geen connection refused.

biemond commented 1 year ago

ik gebruik https://github.com/biemond/solaredge.modbus/blob/main/package.json#L18 misschien keep alive kan het verschil maken

   let modbusOptions = {
      'host': this.getSetting('address'),
      'port': this.getSetting('port'),
      'unitId': this.getSetting('id'),
      'timeout': 15,
      'autoReconnect': false,
      'logLabel' : 'solaredge Inverter',
      'logLevel': 'error',
      'logEnabled': true
    }    

    let socket = new net.Socket();
    var unitID = this.getSetting('id');
    let client = new Modbus.client.TCP(socket, unitID);
    socket.setKeepAlive(false);
    socket.connect(modbusOptions);
biemond commented 1 year ago

ben nu bezig een test versie te pushen maar daarna kan ik het aanpassen en een test versie voor je klaar zetten

haandrw commented 1 year ago

Oorzaak is denk ik gevonden… mijn permanente VPN connection is down. Ik ga proberen die weer in de lucht te krijgen.

haandrw commented 1 year ago

Probleem was inderdaad netwerk gerelateerd. Nu dat is opgelost werkt het als een zonnetje! 22C785AE-773E-4803-A0EC-ADFB917F58B0