Git Product home page Git Product logo

solarflow-statuspage's Introduction

About Me - well not everything about me...

Besides my real work, I'm an engineer. I like trying new stuff and automating things that I do not like to do twice or repeatedly. As I'm generally a perfectionist (or at least try to be) I hate it when things do not work to my liking. Then I either try fixing it, or discard it.

On my github profile you will find various things, old an new, work-related or private! Everything I do I like to share! I'm taking feedback but always expect a respecting exchange/give and take.

solarflow-statuspage's People

Contributors

jvinkovic avatar mdillmann avatar reinhard-brandstaedter avatar ricariel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

solarflow-statuspage's Issues

Authentication failed - since last update

Watchdog updated today to :last version - since this update I got the following error
Running it on --online mode

Not sure if it is a problem of Zendure MQTT?

2024-06-18` 20:33:47,860:INFO: Authenticating with Zendure ...
2024-06-18 20:33:48,922:ERROR: Authentication failed!
2024-06-18 20:33:48,927:ERROR:
MethodNotAllowedThe specified method is not allowed against this resource.POSTOBJECTSYAQ6VTNBZ9RXTY5k0UAFKEhWaF62XS07bQw01YRJSEkMNWIpNQTERTPScRjjEwaqfVMc938NRmfxOxbJQrF6qqRIlg=
2024-06-18 20:33:48,927:INFO: Getting device list ...
2024-06-18 20:33:49,733:ERROR: Fetching device list failed!
2024-06-18 20:33:49,737:ERROR:
MethodNotAllowedThe specified method is not allowed against this resource.POSTOBJECTWTE5VJHTJ9PJ0BXCa0Kfsh7bbiOOiRHLKMpH3dhhESVSFZzNBM7Cj53xNZdGwGBdqGYZZesAI3Q3RdLivfTuhTLUAiM=
2024-06-18 20:33:49,737:ERROR: Connecting to Zendure's MQTT broker failed!
Traceback (most recent call last):
File "//solarflow-status.py", line 311, in zendure_mqtt_background_task
auth = get_auth()
File "//solarflow-status.py", line 298, in get_auth
devices = api.get_device_ids()
File "/zenapi/ZendureAPI.py", line 102, in get_device_ids
for dev in devices:
TypeError: 'NoneType' object is not iterable

the new master doesn't work on (my) hub2000 , the old dev worked!

hi,
I updated from :dev(worked) to master. Now I get this Keyerror. Container run's but there is no connection to port 5000.

I get this message n the log-file.

2024-06-25 13:29:14,767:ERROR: No configuration file (config.ini) found in execution directory! Using environment variables.
2024-06-25 13:29:14,806:INFO: Connectiong local MQTT: 192.168.1.144:1883
2024-06-25 13:29:14,806:INFO: Connecting to MQTT with: solarflow-statuspage-86
2024-06-25 13:29:14,807:INFO: Subscribing to topics...
Traceback (most recent call last):
File "//solarflow-status.py", line 419, in
setup()
File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1130, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.10/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "//solarflow-status.py", line 404, in setup
local_mqtt_background_task()
File "//solarflow-status.py", line 338, in local_mqtt_background_task
local_subscribe(client)
File "//solarflow-status.py", line 274, in local_subscribe
report_topic = f'/{device_details["productKey"]}/+/properties/report'
KeyError: 'productKey'

Which broker for what

Not really an issue more a question.

But the brokers mq.zen-iot.com and mqtteu.zen-iot.com are the ones the SolarFlow "talks" to, right? The broker for receiving data (Home Assistant, etc.) is still mqtt.zen-iot.com for both?

The difference for the API endpoint is only that one has v2 and the other eu in the URL.

Since last update Output to home is limited during day

image
image

It will switch between 1.2 and 2.1 if the value is above the 200 watt max limit.

My understanding was that "max" is used during the night... not during the day?
Maybe I'm wrong or I don't understand the setting "discharge_during_daytime" as it is used.

Thanks
Azra

Mqtt/REST commands feature

Would be awesome if the statuspage could also listen for a specific topic on a local broker so we can add properties like output limit , switches etc. in Homeassistant as entities. Alternatively REST would work, too.

Login issue / Missing MQTT data

Hi all, I have a Solarflow 1200 registered in region Germany but I am not able to successfully run the statuspage in the '--online' mode. I using the 'dev' branch.

My configuration initially looked like this:

zen_mqtt = mqtteu.zen-iot.com
zen_api = https://app.zendure.tech/eu

but then I got following error WARNING: Unexpected Zendure disconnection.Disconnecting reason 5.
I guess, that means that the statuspage is not able to connect to the MQTT sever.

First I thought that I accessing the wrong MQTT server but the authentification response from the Zendure API indicates also that mqtteu.zen-iot.com should be used as the MQTT server, as I understand.

Auth response:

{'userType': '21', 'accessToken': '****', 'userId': '****', 'tenantId': '', 'oauthId': '', 'avatar': 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', 'authority': '', 'userName': '', 'account': '', 'countryCode': 'DE', 'serverNode': 'eu', 'iotUrl': 'mqtteu.zen-iot.com', 'iotUserName': 'zenApp', 'iotPassword': 'h+jwZv*****=', 'serverNodeUrl': 'https://app.zendure.tech/eu', 'serverH5Url': 'https://app.zendure.tech', 'mallSwitch': 1, 'isNew': 1, 'whitelist': 0}

However, I was experimenting a bit with the configuration and a half-working configuration is a combination of the global and EU server:

zen_mqtt = mq.zen-iot.com
zen_api = https://app.zendure.tech/eu

With this configuration I don't get the error messages anymore but not all data are available on the statuspage, see screenshot below, probably because the SolarFlow is not sending the messages to the global MQTT server?

Screenshot 2024-09-03 at 09 01 46

Can someone confirm that the EU region login still works?
Has maybe the MQTT login procedure changed recently for the EU region?
I wondering also about the iotPassword attribute in the auth response, which is at the moment not used by the statuspage application.

Modification to make it work with PV Hub 2000

Hi Reinhardt.

Can you please add support for PV Hub 2000. I am currently testing on offline mode an can see in the code that you are looking for "73bkTV" in the topic. Would be great if you can modify it to support "A8yh63" as well. Please let me know is I can test it. Thanks.

Best
Oliver

Graphs not displayed usable

Hi
As you can see in the screenshot, “Home Power Meter” and “Battery Power” are not displayed properly. Over time the graphic becomes smaller and smaller. Maybe use the same diagram as in “Solar Input” for a nicer representation?

Bildschirmfoto 2024-01-29 um 10 03 26

Regards

MQTT_Port not working

Hi guys,
i have the statuspage running on my Synology NAS. Sadly this MQTT_PORT env isnt working

image
image

Dont know why this is the case. Problem is that i have multiple MQTT Server on my nas. I dont even know why i have to set a MQTT as i use --online

image

Stops Working if homeUsage is float

When hichi ir is configured to send float values. Statuspage stops working.

2023-11-08T10:37:00.443444269Z 2023-11-08 11:37:00,443:ERROR: Error converting payload to int: 47.0
2023-11-08T10:37:00.443489437Z Exception in thread Thread-1 (_thread_main):
2023-11-08T10:37:00.443513969Z Traceback (most recent call last):
2023-11-08T10:37:00.443518326Z   File "/usr/local/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
2023-11-08T10:37:00.443838639Z     self.run()
2023-11-08T10:37:00.443850696Z   File "/usr/local/lib/python3.10/threading.py", line 953, in run
2023-11-08T10:37:00.444134705Z     self._target(*self._args, **self._kwargs)
2023-11-08T10:37:00.444149970Z   File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 3591, in _thread_main
2023-11-08T10:37:00.445014943Z     self.loop_forever(retry_first_connection=True)
2023-11-08T10:37:00.445028277Z   File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 1756, in loop_forever
2023-11-08T10:37:00.445514364Z     rc = self._loop(timeout)
2023-11-08T10:37:00.445528738Z   File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 1164, in _loop
2023-11-08T10:37:00.445947187Z     rc = self.loop_read()
2023-11-08T10:37:00.445960129Z   File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 1556, in loop_read
2023-11-08T10:37:00.446346464Z     rc = self._packet_read()
2023-11-08T10:37:00.446355853Z   File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 2439, in _packet_read
2023-11-08T10:37:00.446815436Z     rc = self._packet_handle()
2023-11-08T10:37:00.446825932Z   File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 3033, in _packet_handle
2023-11-08T10:37:00.447400419Z     return self._handle_publish()
2023-11-08T10:37:00.447427521Z   File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 3327, in _handle_publish
2023-11-08T10:37:00.448239169Z     self._handle_on_message(message)
2023-11-08T10:37:00.448282176Z   File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 3570, in _handle_on_message
2023-11-08T10:37:00.449174523Z     on_message(self, self._userdata, message)
2023-11-08T10:37:00.449203506Z   File "//solarflow-status.py", line 190, in on_local_message
2023-11-08T10:37:00.449312997Z     socketio.emit('updateSensorData', {'metric': 'homeUsage', 'value': int(payload), 'date': round(time.time()*1000)})
2023-11-08T10:37:00.449323513Z ValueError: invalid literal for int() with base 10: '47.0'

No updates on Zendure MQTT broker

Hi all,

I have a Hub 2000 and wanted to test the Solarflow status page. Currently, I am using Home Assistant with Mosquitto and subscribed to the mqtt.zen-iot.com. However, I experienced that a lot of messages are not available and the updates are not "real time" or completely missed for hours.

So I tried your implementation and realized that you are using (most likely) the same MQTT broker as the mobile apps (which are showing updates in almost real time).

I have used the current DEV branch (used also master branch before, but same behaviour):

[zendure]
login = m******de
password = *******

# since Zendure introduces regional brokers please set the one where you have registered your device
# Global: mq.zen-iot.com
# EU: mqtteu.zen-iot.com
zen_mqtt = mqtteu.zen-iot.com
# likewise for the API endpoint please select the correct one
# Global: https://app.zendure.tech/v2
# EU: https://app.zendure.tech/eu
zen_api = https://app.zendure.tech/eu

[local]
mqtt_host = 192.168.2.50
mqtt_user = ****
mqtt_pwd = ****

As I am based in Germany, I am expecting that my account is on the EU server. To double-check I have issued the following request:

curl -i -v --json "{'password': '*****','account': '****','appId': '121c83f761305d6cf7e','appType': 'iOS','grantType': 'password','tenantId': ''}" \
-H "Content-Type: application/json" \
-H "Accept-Language: de-DE" \
-H "appVersion: 4.3.1" \
-H "User-Agent: Zendure/4.3.1 (iPhone; iOS 14.4.2; Scale/3.00)" \
-H "Accept: */*" \
-H "Authorization: Basic Q29uc3VtZXJBcHA6NX4qUmRuTnJATWg0WjEyMw==" \
-H "Blade-Auth': 'bearer (null)" \
https://app.zendure.tech/eu/auth/app/token

The reply included also the MQTT broker by Zendure (mqttee.zen-iot.com):

{
   "code": 200,
   "data": {
      "accessToken": "*****",
      "account": "",
      "authority": "",
      "avatar": "https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png",
      "countryCode": "DE",
      "iotPassword": "******",
      "iotUrl": "mqtteu.zen-iot.com",
      "iotUserName": "zenApp",
      "isNew": 1,
      "mallSwitch": 1,
      "oauthId": "",
      "serverH5Url": "https://app.zendure.tech",
      "serverNode": "eu",
      "serverNodeUrl": "https://app.zendure.tech/eu",
      "tenantId": "",
      "userId": "43639",
      "userName": "",
      "userType": "21",
      "whitelist": 0
   },
   "msg": "Vorgang erfolgreich",
   "success": true
}

However, after running the statuspage script in online mode, I am continuously getting in error when connecting to the mqtteu broker:

2024-07-23 14:59:37,325:INFO: Authenticating with Zendure ...
2024-07-23 14:59:40,042:INFO: Getting device list ...
2024-07-23 14:59:40,331:INFO: [
  {
    "id": 93304,
    "deviceKey": "***",
    "snNumber": "****",
    "name": "Hub 2000 Energiespeicher",
    "productId": 66,
    "productKey": "A8yh63",
    "onlineFlag": "00601",
    "productName": "SolarFlow Hub 2000",
    "wifiStatus": true,
    "blueState": false,
    "fourGStatus": false,
    "isShareFlag": "00601",
    "input": false,
    "output": false,
    "electricity": 95,
    "restState": 0,
    "upsMode": false,
    "upgradeStatusDes": "",
    "productType": 8,
    "upgradeStatus": {},
    "bindId": 0,
    "bindStatus": 0,
    "batteryCode": "",
    "packList": [],
    "inputPower": 0,
    "outputPower": 0,
    "slowChargePower": 0,
    "temperature": 0,
    "temperatureUnit": 0,
    "remainOutTime": 0,
    "bindType": 0,
    "seriesMode": 0,
    "parallelMode": 0,
    "networkType": 0,
    "standard": "O",
    "isSwitch": false,
    "url": "",
    "remainOil": 0,
    "genMode": 0,
    "shortCode": "H1",
    "phaseCheck": 0,
    "clusterList": [],
    "clusterNotice": false,
    "nodeStatus": 0,
    "clusterId": null,
    "phase": null
  }
]
2024-07-23 14:59:40,332:INFO: Getting device details for [93304] ...
2024-07-23 14:59:40,756:INFO: {
  "isShare": true,
  "productKey": "A8yh63",
  "productModelId": 40,
  "productName": "SolarFlow Hub 2000",
  "deviceName": "Hub 2000 Energiespeicher",
  "deviceId": 93304,
  "deviceKey": "***",
  "snNumber": "****",
  "onlineFlag": "00601",
  "standard": "",
  "consumerId": ***,
  "shortCode": "H1",
  "productType": 8,
  "priceType": "",
  "id": 22721,
  "masterSwitch": true,
  "restState": 0,
  "restTime": "",
  "hubState": 0,
  "wifiState": true,
  "wifiName": "****",
  "mac": "*****",
  "ip": "192.168.178.151",
  "buzzerSwitch": true,
  "autoHeat": 0,
  "loraInvState": 0,
  "loraAddr": "",
  "ambientSwitch": false,
  "ambientLightMode": 0,
  "ambientLightColor": 0,
  "ambientLightNess": 0,
  "solarInputPower": 0,
  "pvPower1": 0,
  "pvPower2": 0,
  "packInputPower": 0,
  "outputPackPower": 0,
  "outputHomePower": 0,
  "outputInversePower": 0,
  "bindSn": "",
  "invOutputPower": 0,
  "outputLimit": 200,
  "inputLimit": 0,
  "remainOutTime": 59940,
  "remainInputTime": 59940,
  "socSet": 950,
  "minSoc": 130,
  "packState": 0,
  "packNum": 1,
  "electricLevel": 95,
  "isDeleted": 0,
  "createTime": "2024-07-02T15:28:17Z",
  "updateTime": "2024-07-23T12:59:29Z",
  "inverseMaxPower": 800,
  "brandId": 1,
  "cycle": 0,
  "blueOta": 1,
  "solarInputPowerCycle": 0,
  "solarInputPower1Cycle": 0,
  "solarInputPower2Cycle": 0,
  "packInputPowerCycle": 0,
  "outputPackPowerCycle": 0,
  "outputInverseCycle": 0,
  "outputHomePowerCycle": 0,
  "gridInputPowerCycle": 0,
  "gridInputPower": 0,
  "smartMode": 0,
  "smartPower": 0,
  "pass": 0,
  "lowTemperature": 0,
  "heatState": 0,
  "modelName": "Hoymiles-HM-800",
  "passMode": 0,
  "lowTempNotice": 0,
  "autoRecover": 1,
  "acMode": 0,
  "acSwitch": 0,
  "dcSwitch": 0,
  "acOutputPower": 0,
  "dcOutputPower": 0,
  "acOutputPowerCycle": 0,
  "dcOutputPowerCycle": 0,
  "socStatus": 0,
  "gridStandard": "",
  "phaseCheck": null,
  "priority": 0,
  "gridReverse": 0,
  "reverseState": 0,
  "energyPower": 0,
  "lampSwitch": 0,
  "clusterSw": 0,
  "hyperTmp": 0,
  "packDataList": [
    {
      "updateUser": 0,
      "id": 332891,
      "deviceId": 93304,
      "socLevel": 95,
      "state": 0,
      "maxTemp": 312.1,
      "batteryCode": "****",
      "softVersion": 4110,
      "version": "1.0.14",
      "sn": "****",
      "heatState": 0,
      "packType": 2,
      "packName": "",
      "packModel": ""
    }
  ],
  "todayEnergy": 2521.8,
  "temperatureUnit": 0,
  "faultFlag": false,
  "bateUser": false,
  "deviceId2": 93304,
  "autoModel": 6,
  "solarPower1": 0,
  "solarPower2": 0,
  "bindProduct": null,
  "bindName": "",
  "bindDeviceKey": "",
  "bindDeviceState": "",
  "bindId": null,
  "aceSolarPower": 0,
  "clusterId": null,
  "nodeStatus": null,
  "clusterStatus": null,
  "hyperNum": 0,
  "remindTime": ""
}
2024-07-23 14:59:40,757:INFO: Zendure Auth: ZenAuth(productKey='A8yh63', deviceKey='***', clientId='****')
2024-07-23 14:59:41,077:INFO: Connectiong local MQTT: 192.168.2.50:1883
2024-07-23 14:59:41,078:INFO: Connecting to MQTT with: solarflow-statuspage-35
2024-07-23 14:59:41,084:INFO: Subscribing to topics...
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Serving Flask app 'solarflow-status'
 * Debug mode: off
2024-07-23 14:59:41,087:INFO:  * Running on all addresses (0.0.0.0)
   WARNING: This is a development server. Do not use it in a production deployment.
 * Running on http://127.0.0.1:10001
 * Running on http://192.168.2.225:10001 (Press CTRL+C to quit)
2024-07-23 14:59:41,098:ERROR: Failed to connect, return code 4

2024-07-23 14:59:41,098:WARNING: Unexpected Zendure disconnection.Disconnecting reason  5
2024-07-23 14:59:41,099:INFO: Authenticating with Zendure ...
2024-07-23 14:59:41,136:INFO: Connected to MQTT Broker: Local MQTT (192.168.2.50:1883)
[...]

Then, I changed the broker to mq.zen-iot.com to which I could connect. However, I do not receive any messages and thus updates from this broker and the values on the status page are not updating.

Is there a way to explicitly change the broker "region"? Or is there any other advice?

BR
André

Shelly3em homeUsage in float

Logfile shows the following errors:

2023-11-13 08:23:06,956:ERROR: Error converting payload to int: 387.19000000000005
2023-11-13 08:23:58,923:ERROR: Error converting payload to int: 337.56000000000006
2023-11-13 08:24:02,924:ERROR: Error converting payload to int: 365.36
2023-11-13 08:24:02,970:ERROR: Error converting payload to int: 365.45

so graphs on the webpages couldn't be drawn

Recognising errors/terminations in the container

Is there a way to register errors/script aborts within the container?

I occasionally have the problem that the connection to the Zendure Broker fails (as far as I can tell, it tries to reconnect for a while) and the script then stops working.

Unfortunately, the container just keeps running and doesn't exit, so I don't notice it directly.

2024-07-31 11:00:46,256:ERROR: Connecting to Zendure's MQTT broker failed!
Traceback (most recent call last):
  File "//solarflow-status.py", line 296, in zendure_mqtt_background_task
    client = connect_zendure_mqtt(auth.clientId)
  File "//solarflow-status.py", line 242, in connect_zendure_mqtt
    zendure_client.connect(broker, port)
  File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 914, in connect
    return self.reconnect()
  File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 1044, in reconnect
    sock = self._create_socket_connection()
  File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 3685, in _create_socket_connection
    return socket.create_connection(addr, timeout=self._connect_timeout, source_address=source)
  File "/usr/local/lib/python3.10/socket.py", line 845, in create_connection
    raise err
  File "/usr/local/lib/python3.10/socket.py", line 833, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
2024-07-31 11:00:46,372:ERROR: Connecting to Zendure's MQTT broker failed!
Traceback (most recent call last):
  File "//solarflow-status.py", line 296, in zendure_mqtt_background_task
    client = connect_zendure_mqtt(auth.clientId)
  File "//solarflow-status.py", line 242, in connect_zendure_mqtt
    zendure_client.connect(broker, port)
  File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 914, in connect
    return self.reconnect()
  File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 1044, in reconnect
    sock = self._create_socket_connection()
  File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 3685, in _create_socket_connection
    return socket.create_connection(addr, timeout=self._connect_timeout, source_address=source)
  File "/usr/local/lib/python3.10/socket.py", line 845, in create_connection
    raise err
  File "/usr/local/lib/python3.10/socket.py", line 833, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

Or

2024-07-23 02:43:03,577:ERROR: Connecting to Zendure's MQTT broker failed!
Traceback (most recent call last):
  File "//solarflow-status.py", line 296, in zendure_mqtt_background_task
    client = connect_zendure_mqtt(auth.clientId)
  File "//solarflow-status.py", line 242, in connect_zendure_mqtt
    zendure_client.connect(broker, port)
  File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 914, in connect
    return self.reconnect()
  File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 1044, in reconnect
    sock = self._create_socket_connection()
  File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 3685, in _create_socket_connection
    return socket.create_connection(addr, timeout=self._connect_timeout, source_address=source)
  File "/usr/local/lib/python3.10/socket.py", line 845, in create_connection
    raise err
  File "/usr/local/lib/python3.10/socket.py", line 833, in create_connection
    sock.connect(sa)
TimeoutError: timed out
2024-07-23 02:43:04,500:ERROR: Connecting to Zendure's MQTT broker failed!
Traceback (most recent call last):
  File "//solarflow-status.py", line 296, in zendure_mqtt_background_task
    client = connect_zendure_mqtt(auth.clientId)
  File "//solarflow-status.py", line 242, in connect_zendure_mqtt
    zendure_client.connect(broker, port)
  File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 914, in connect
    return self.reconnect()
  File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 1044, in reconnect
    sock = self._create_socket_connection()
  File "/usr/local/lib/python3.10/site-packages/paho/mqtt/client.py", line 3685, in _create_socket_connection
    return socket.create_connection(addr, timeout=self._connect_timeout, source_address=source)
  File "/usr/local/lib/python3.10/socket.py", line 845, in create_connection
    raise err
  File "/usr/local/lib/python3.10/socket.py", line 833, in create_connection
    sock.connect(sa)
TimeoutError: timed out

can't change maxInverterInput-value

I disconnected my HUB2000 from cloud, therefore it's not possible to change some values. I took 400W for the maxInverterInput.
and now it's impossible to change the value. (1,2).
Is there a mqtt-order(command) which can overwrite the 400W maxInverterInput ( or the outputLimit)?

Also is there the question for me: should the inputs (3,4) have any effects for the program? I think, my instance will ignore the changed vales!

image

at the end of charging, the output to home is max 400 W all the time .....
image
green is the output of the inverter
red is the feedin-power and
blue is the used (from the inverter-produced ) power

Online argument not recognized

I tried to use the ONLINE connecition and unfortunately the container is not picking up the argument. Every time it tries to use the LOCAL use case.

Following command is used:
docker run --rm --env-file /tmp/conf.env -p 127.0.0.1:5011:5000 --name solarflow-statuspage rbrandstaedter/solarflow-statuspage:master --online

Output is

Unable to find image 'rbrandstaedter/solarflow-statuspage:master
locally master: Pulling from rbrandstaedter/solarflow-statuspage
579b34f0a95b: Pull complete 
470a5c3c55f5: Pull complete 
6a33a6f017af: Pull complete 
e2c3fdef3b5c: Pull complete 
ee4a832d112a: Pull complete 
1742608fc7fd: Pull complete 
f4f567df629e: Pull complete 
d04ce9950f2b: Pull complete 
1958863e63a7: Pull complete 
4078e61dfc20: Pull complete 
272ac057eb8d: Pull complete 
Digest: sha256:2dc996eeeb28c679183415fb8f606a39b73c7af2531fb674ae988eb91920c909
Status: Downloaded newer image for rbrandstaedter/solarflow-statuspage:master
2024-04-15 15:58:49,212:ERROR: No configuration file (config.ini) found in execution directory! Using environment variables.
2024-04-15 15:58:49,212:ERROR: You need a local MQTT broker (set environment variable MQTT_HOST)!

The content of the .env-file:

ZEN_MQTT='mqtt.zen-iot.com'
ZEN_USER=XXXX
ZEN_PASSWD=XXXX
ZEN_API='https://app.zendure.tech/'

Any ideas how to fix this?

Crash after changing region

Got connection errors when running in online mode:
log

After a while the container is unhealthy.

The Solarflow is visible in the zendure app and is working correct. Region is EU.
Environment Variables:

TRAEFIK_RULE=Host(`domain`)
ZEN_USER=user@email
ZEN_PASSWD=password
MQTT_HOST=ipofmqtt
ZEN_MQTT=mqtteu.zen-iot.com
COMMAND= --online
SF_DEVICE_ID=deviceid
SMARTMETER_TOPIC=/tele/

Snippet of compose file:

version: '3.8'
services:
solarflow-dashboard:
image: rbrandstaedter/solarflow-statuspage:latest
command: ${COMMAND:-" --offline"}
restart: unless-stopped
environment:
- ZEN_USER=${ZEN_USER}
- ZEN_PASSWD=${ZEN_PASSWD}
- ZEN_MQTT=${ZEN_MQTT:-'mq.zen-iot.com'}
- MQTT_HOST=${MQTT_HOST}
- MQTT_USER=${MQTT_USER:-"none"}
- MQTT_PWD=${MQTT_PWD:-"none"}
- MQTT_PORT=${MQTT_PORT:-1883}
volumes:
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"
networks:
- default
- docker_gwbridge
labels:
- traefik.enable=true
- traefik.http.routers.solarflow.entrypoints=websecure
- traefik.http.routers.solarflow.rule=${TRAEFIK_RULE}
- traefik.http.routers.solarflow.middlewares=localnet@file
- traefik.http.routers.solarflow.tls=true
- traefik.http.routers.solarflow.tls.certresolver=myresolver
- traefik.http.services.solarflow.loadbalancer.server.port=5000
- traefik.docker.network=docker_gwbridge

networks:
- default:
driver: bridge
driver_opts:
com.docker.network.driver.mtu: 1400
docker_gwbridge:
external: true

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.