Today, I am excited to share a major breakthrough in the world of smart home energy management. After several days of intensive research and analysis, I have successfully reverse-engineered the communication protocol used by the EcoFlow Power STREAM Ultra to manage its internal scheduling system (allTimerTask).
The Challenge
EcoFlow units are incredibly powerful, but their official API often lacks write access to advanced features like custom scheduling. This makes it difficult to automate the battery behavior based on dynamic energy tariffs like Octopus Intelligent Go.
The Breakthrough: timeTable Encoding
The core of the scheduling system lies in a single uint32 field called timeTable. This field encodes both the Start Time and End Time using bitwise packing.
packed_value = (endMinute << 16) | startMinute
By shifting the end time (in minutes from midnight) by 16 bits and ORing it with the start time, we get the exact integer the EcoFlow app sends over the wire.
Why it Matters
By unlocking this protocol, we can now programmatically trigger charge and discharge sessions. This means your home battery can now respond in real-time to grid dispatch signals, charging when prices are negative and discharging when demand is highest.
I have released the full technical details, including a Protobuf definition and Python examples, on my GitHub.