Integration broken FW 1.6.2.43
Opened this issue · 21 comments
Fist of all many thanks for this beautiful integraiton.
Sadly I updated my Firmware Version to 1.6.2.43
on my Delta MAX and now the Integration with Home-Assistant is broken. I tried to remove and re-add my Delta MAX in Home-Assistant with no success.
Do you have some advises or tests I can to to provide further logs?
Hopefully EcoFlow hasn't disabled there local API. Anyone else facing similar problems?
Cheers e-bits
I have Delta MAX with FW 1.6.2.43 and everything is working to me.
Sometimes is reset needed - try to disconnect everything (input+output) from your unit. turn off you Delta MAX (10s long press of main button) and wait 30m before power on again.
I have Delta MAX with FW 1.6.2.43 and everything is working to me. Sometimes is reset needed - try to disconnect everything (input+output) from your unit. turn off you Delta MAX (10s long press of main button) and wait 30m before power on again.
Thanks for feedback. I tried your workflow but without any success.
Delta MAX is connected to WiFi and responding to ping on a static IP served by DHCP. App is working as well but the integration is stuck somehow.
Anything else I can try?
Can you try to check if port 8055 is opened on DELTA Max? E.g. by running following command (xx.xx.xx.xx is IP address of your DELTA Max) in some linux terminal
nmap -p 8055 xx.xx.xx.xx
Sure, here we go.
Starting Nmap 7.80 ( https://nmap.org ) at 2022-09-21 18:14 CEST
Nmap scan report for 192.168.1.70
Host is up (0.0064s latency).
PORT STATE SERVICE
8055/tcp closed senomix04
Nmap done: 1 IP address (1 host up) scanned in 0.17 seconds
I did a fresh setup with linking my Delta MAX to the App again. Therefore I unlinked my existing Delta MAX and did the Setup again. During the Setup I did a Port-Scan and realized shortly after adding my WiFi Credentials the Port 8055 is getting closed.
I just opened a request at EcoFlow Zendesk and described my problem. I asked if the Port 8055 will be open again on newer Firmware Version or if it would be possible to do a Firmware Downgrade.
I will keep you posted.
Cheers
I opened request also (two days ago) but it seems EcoFlow is focusing only on use of their official API (https://api.ecoflow.com/iot-service/open/api/device/queryDeviceQuota/...).
From communication it seems that closing of 8055 port was intentional :-(
Hi, not sure if it works for your delta, but did you try the commands describe in v1ckxy/ecoflow-withoutflow#2 ?
Especially the command curl -X POST -d '{"action":"getTCPServer"}' http://ip-address of your device could be interesting, maybe they change the port?
Hello, I have DELTA Pro, DELTA Max and River RIVER Pro. All units are on latest FW, But only DELTA Pro has all TCP ports closed.
DELTA Max and RIVER Pro still works correctly with this integration. They have also port 80 opened.
So curl -X POST -d '{"action":"getTCPServer"}' http://ip-address/ return following:
DELTA Max: {"action":"getTCPServer","data":{"port":8055},"Msg":"success"}
RIVER Pro: {"action":"getTCPServer","data":{"port":8055},"Msg":"success"}
DELTA Pro: curl: (7) Failed to connect to xx.xx.xx.xx port 80: Connection refused
That is strange as the unit must have a port open to communicate with the external server. Have you made a deep scan with nmap?
nmap -Pn -sS -sV --version-all --reason -v -A -O --osscan-guess -p0-65535 IP Address
I will try full scan. So far I tried only to 0-30000
I try a full scan -p0-65535 on Delta2, all are closed.
Here is my result ...
DELTA Max FW 1.6.2.43:
Not shown: 65533 closed ports
Reason: 65533 resets
PORT STATE SERVICE REASON VERSION
80/tcp open http? syn-ack ttl 255
6093/tcp open unknown syn-ack ttl 255
8055/tcp open senomix04? syn-ack ttl 255
RIVER Pro FW 1.2.5.23:
Not shown: 65533 closed ports
Reason: 65533 resets
PORT STATE SERVICE REASON VERSION
80/tcp open http? syn-ack ttl 255
6093/tcp open unknown syn-ack ttl 255
8055/tcp open senomix04? syn-ack ttl 255
DELTA Pro FW 1.0.0.96:
All 65536 scanned ports on xx.xx.xx.xx are closed because of 65536 resets
That is interesting. So what we need is a capture between the device and the server from Ecoflow.
If you have a Fritzbox , it is quite easy with the internal http://fritz.box/html/capture.html to see the ports that they are using.
But do not place a capture here, as it will contain a lot of private information. You should open the capture with wireshark and look at the traffic between your device and the ecoflow server by filtering the stream with ip.addr == IP Address of your device
Without a Fritzbox it is depending on your router if a capture feature is build in or not
I think that Ecoflow unit is connecting to Ecoflow cloud and act as a sender of data. Capture of this communication will not help because Ecoflow unit has probably hardcoded connection to Ecoflow cloud in FW (probably by some URL). If no port is open then it cannot serve as local server which provides some data.
In theory can be created local 'Ecoflow cloud' server, which could be used instead of official - e.g. if local DNS server will return your local IP of this local 'Ecoflow cloud' intead of official IP of Ecoflow cloud. But I am skeptical with it because communication between Ecoflow unit and Ecoflow cloud will be probably protected with some certificates which cannot be easily replaced.
In case of taking data from Ecoflow cloud is better to use official API or MQTT as it was described here #58
I like this integration because it didn't require connection to Ecoflow cloud to get data. For me it's strange that such units which at least partially designed for emergency use will require internet connection over the world or unit must be started in IoT mode which is not secure. If somebody has more units then it's real nightmare to have all units in IoT mode with limited WiFi range and which isn't secured...
Hi I received an answer to my open support ticket.
From the perspective of device security and data privacy, we will not open this port to the public, please you understand.
What should I say, I'm really disappointed.
That's a joke, as many private data will go to their cloud. Even your wireless password might be send.
So still it would be interesting, how the communication flow to their server is.
That is the mobile app, but does the device now really connect using MQTT to the ecoflow server? Would be great if so.
Yes it probably connects via MQTT, using the log from the android device I found out the name and password to ecoflow MQTT server. And using the MQTTX app I was able to read the information through the MQTT from the ecoflow server. The information which I got is shown here But I am unable to get the data into home assistant(I am new to MQTT).