As an response to my article on operating the EDIMAX Smart Plug with Python today I got an E-Mail from Jorge, asking if I could give some details on how to program the schedule of the EDIMAX Smart Plug. So here are some basics on how this could be done through HTTP/XML (
sorry, no Python code yet basic Python API supporting scheduling).
This is the shell script I use to post the example XML requests and print the results from the plug.
Sample XML to query the current scheduling set on the plug. E.g. the following call:
Would return a result as shown in 02_getsched_response.xml. For each day we have an entry like:
X = 0 is Sunday, X = 1 is Monday, X = 6 is Saturday. The „value“ attribute is „ON“ if the schedule for this day is active or „OFF“ if disabled. The data of the „Device.System.Power.Schedule.X“ tag is 360 bytes long. Each hour is represented by 15 bytes, thus 360 bytes = 24h.
Each byte in the hour could represent 1, 2, 3 or 4 minutes on an ending interval:
0 = 0 min 8 = 1 min C = 2 min D = 3 min F = 4 min
And on an beginning interval:
0 = 0 min 7 = 1 min 3 = 2 min 1 = 3 min F = 4 min
The sum of all hour bytes is 60. Thus, a full hour of scheduling could be represented by:
Half an hour would be:
This is because F = 4 min., C = 2 min. and thus: 4 + 4 + 4 + 4 + 4 + 4 + 4 + 2 = 30 min.
So for example set a schedule for Sunday from 01:00 till 01:30, we could send the XML as shown in „04_sched_sun_0100-0130.xml“.