Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

sungrow-websocket

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sungrow-websocket

Add a short description here!

  • 0.2.2
  • PyPI
  • Socket score

Maintainers
1

========================================= Read Sungrow inverter data from websocket

This library is used to read real time data from Sungrow inverters with the WiNet module that expose the websocket interface.

Known supported inverters:

  • SH8.0RT (SH6.0RT and SH10.0RT likely too)

To check if your inverter is supported, simply try it out!


Installation

Installation is straight forward:

.. code::

pip install sungrow-websocket

Command line interface

The command line interface is quite simple:

.. code::

sungrow-websocket <host>

<host> is the hostname or IP address of the inverter. Check your home router for the inverter (maybe registers as espressif).

You will then get a table with the live data:

.. code::

+---------------------------------------+-----------+
| Item                                  | Value     |
+---------------------------------------+-----------+
| Device Status                         | Standby   |
| Bus Voltage                           | 16.0 V    |
| Internal Air Temperature              | 28.6 ℃    |
| Array Insulation Resistance           | 997 kΩ    |
| Daily Self-consumption Rate           | 23.8 %    |
| ...                                   | ...       |

API

Using the library is easy:

.. code:: python

>>> from sungrow_websocket import SungrowWebsocket
>>> host = "your-ip-or-hostname"
>>> sg = SungrowWebsocket(host)
>>> data = sg.get_data()

data is a dict of identifiers mapping to InverterItem entries:

.. code:: python

>>> from pprint import pprint
>>> pprint(data)
{'air_tem_inside_machine': InverterItem(name='I18N_COMMON_AIR_TEM_INSIDE_MACHINE', desc='Internal Air Temperature', value='28.5', unit='℃'),
 'bus_voltage': InverterItem(name='I18N_COMMON_BUS_VOLTAGE', desc='Bus Voltage', value='16.0', unit='V'),

The name entry is the internal name of the item, while desc is the clear description. This is loaded according to the locale (en_US by default) and can be set as parameter to the class:

.. code:: python

>>> from sungrow_websocket import SungrowWebsocket
>>> host = "your-ip-or-hostname"
>>> sg = SungrowWebsocket(host, locale="zh_CN")
>>> data = sg.get_data()
>>> from pprint import pprint
>>> pprint(data)
{'air_tem_inside_machine': InverterItem(name='I18N_COMMON_AIR_TEM_INSIDE_MACHINE', desc='机内空气温度', value='28.5', unit='℃'),
 'bus_voltage': InverterItem(name='I18N_COMMON_BUS_VOLTAGE', desc='母线电压', value='16.0', unit='V'),

If your locale is not supported, it will fall back to en_US.

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc