incub77 / solis2mqtt

Modbus RTU / RS485 to MQTT bridge for Solis Mini solar inverter.
GNU General Public License v3.0
53 stars 12 forks source link

OSError: [Errno 0] Error #13

Open TomComm27 opened 11 months ago

TomComm27 commented 11 months ago

I have the following problem when executing the script:

pi@raspberrypi:~ $ cd /opt/solis2mqtt
pi@raspberrypi:/opt/solis2mqtt $ python3 ./solis2mqtt.py
2023-08-05 11:46:31,306 - root - Starting up...
Traceback (most recent call last):
  File "./solis2mqtt.py", line 189, in <module>
    start_up(args.daemon, args.verbose)
  File "./solis2mqtt.py", line 180, in start_up
    Solis2Mqtt().main()
  File "./solis2mqtt.py", line 27, in __init__
    self.mqtt = Mqtt(self.cfg['inverter']['name'], self.cfg['mqtt'])
  File "/opt/solis2mqtt/mqtt.py", line 13, in __init__
    self.connect(cfg['url'], cfg['port'])
  File "/usr/local/lib/python3.7/dist-packages/paho/mqtt/client.py", line 914, in connect
    return self.reconnect()
  File "/usr/local/lib/python3.7/dist-packages/paho/mqtt/client.py", line 1073, in reconnect
    sock.do_handshake()
  File "/usr/lib/python3.7/ssl.py", line 1117, in do_handshake
    self._sslobj.do_handshake()
OSError: [Errno 0] Error
pi@raspberrypi:/opt/solis2mqtt $

My current version of Python: 3.9.9

My manually adapted files: 1)solis2mqtt

 - name: active_power
  description: Active Power
  unit: W
  active: true
  modbus:
    register: 33004
    read_type: long
    function_code: 4
    signed: false
  homeassistant:
    device: sensor
    state_class: measurement
    device_class: power
- name: inverter_temp
  description: Inverter temperature
  unit: "°C"
  active: true
  modbus:
    register: 33041
    read_type: register
    function_code: 4
    number_of_decimals: 1
    signed: false
  homeassistant:
    device: sensor
    state_class: measurement
    device_class: temperature
- name: total_power
  description: Inverter total power generation
  unit: kWh
  active: true
  modbus:
    register: 33008
    read_type: long
    function_code: 4
    signed: true
  homeassistant:
    device: sensor
    state_class: total_increasing
    device_class: energy
- name: generation_today
  description: Energy generated today
  unit: kWh
  active: true
  modbus:
    register: 33014
    read_type: register
    function_code: 4
    number_of_decimals: 1
    signed: false
  homeassistant:
    device: sensor
    state_class: total_increasing
    device_class: energy
- name: generation_yesterday
  description: Energy generated yesterday
  unit: kWh
  active: true
  modbus:
    register: 33015
    read_type: register
    function_code: 4
    number_of_decimals: 1
    signed: false
  homeassistant:
    device: sensor
    state_class: total_increasing
    device_class: energy
- name: total_dc_output_power
  description: Total DC output power
  unit: W
  active: true
  modbus:
    register: 33006
    read_type: long
    function_code: 4
    signed: false
  homeassistant:
    device: sensor
    state_class: measurement
    device_class: power
- name: energy_this_month
  description: Energy generated this month
  unit: kWh
  active: true
  modbus:
    register: 33010
    read_type: long
    function_code: 4
    signed: false
  homeassistant:
    device: sensor
    state_class: total_increasing
    device_class: energy
- name: generation_last_month
  description: Energy generated last month
  unit: kWh
  active: true
  modbus:
    register: 33012
    read_type: long
    function_code: 4
    signed: false
  homeassistant:
    device: sensor
    state_class: total_increasing
    device_class: energy
- name: generation_this_year
  description: Energy generated this year
  unit: kWh
  active: true
  modbus:
    register: 33016
    read_type: long
    function_code: 4
    signed: false
  homeassistant:
    device: sensor
    state_class: total_increasing
    device_class: energy
- name: generation_last_year
  description: Energy generated last year
  unit: kWh
  active: true
  modbus:
    register: 33018
    read_type: long
    function_code: 4
    signed: false
  homeassistant:
    device: sensor
    state_class: total_increasing
    device_class: energy
# frequency currently not supported by home-assistant, topic is in discussion
#- name: grid_frequency
#  description: Grid Frequency
#  unit: Hz
#  active: true
#  modbus:
#    register: 33042
#    read_type: register
#    function_code: 4
#    number_of_decimals: 2
#    signed: false
#  homeassistant:
#    device: sensor
#    state_class: measurement
#    device_class: frequency
- name: system_datetime
  description: System DateTime
  unit:
  active: true
  modbus:
    register: [33072, 33073, 33074, 33075, 33076, 33077]
            # [year, month, day, hour, minute, seconds]
    read_type: composed_datetime
    function_code: 4
  homeassistant:
    device: sensor
    state_class:
    device_class: timestamp
- name: serial_number
  description: Serial Number
  unit:
  active: false
  modbus:
    register: 33229
    read_type: register
    function_code: 4
    number_of_decimals: 0
    signed: false
  homeassistant:
    device: sensor
    state_class:
    device_class:
- name: power_limitation
  description: Power limitation
  unit: "%"
  active: true
  modbus:
    register: 33051
    read_type: register
    function_code: 3
    write_function_code: 6
    number_of_decimals: 2
    signed: false
  homeassistant:
    device: number
    min: 0
    max: 100
    step: 0.01
    state_class:
    device_class:
- name: on_off
  description: On/Off
  unit:
  active: true
  modbus:
    register: 33006
    read_type: register
    function_code: 3
    write_function_code: 6
    number_of_decimals: 0
    signed: false
  homeassistant:
    device: switch
    payload_on: 190
    payload_off: 222
    state_class:
    device_class:

2) config.yaml

device: /dev/ttyUSB1
mqtt:
   url: 192.168.178.XXX
   port: 1883
   user: Tom
   passwd: mypassword

My inverter is: Solis 4G Mini Single-phase inverter

image

I use this adapter:

image

TomComm27 commented 11 months ago

Ich habe das problem selber gelöst. Einfach das komplette "config.yaml" Skript verwendet:

device: /dev/ttyUSB1
slave_address: 1
poll_interval: 60
poll_interval_if_off: 600
inverter:
    name: solis2mqtt
    manufacturer: Ginlong Technologies
    model: solis2mqtt
mqtt:
    url: 192.168.178.XXX
    port: 1883
    use_ssl: false
    validate_cert: false
    user: Tom
    passwd: mypassword

I think the "use_ssl: false" and/or "validate_cert: false" was the key changer👍