Giter Site home page Giter Site logo

sonota's Introduction

SonOTA

A script to update a Sonoff device from the stock firmware to Sonoff-Tasmota purely over WiFi.

This is beta software, and it may not work 100% of the time, and require to manually flash your device using serial. Although it can not be guaranteed, it's unlikely the device will be damaged such that it can't be flashed with Sonoff-Tasmota via serial (the difficulty of this depends on the device and the headers in provides). Typically if it does not work, a power cycle restores the functionality to the default firmware.

ATTENTION: It appears SonOTA does not work with devices running current firmware

Please refer to the wiki for known working versions. Devices running v1 firmware will not upgrade to v2, they appear to be different series of firmware for different devices, not upgrades from v1 to v2.

See #58 for more information. Please request ITEAD to allow downgrading so this can work again here: http://disq.us/p/1oqbm8m and here: http://support.iteadstudio.com/support/discussions/topics/11000017070 (maybe with enough requests they'll do something, downgrading to the older firmware feels like the ideal solution for everyone). Through the second site you may also be able to submit a support request, there have been mixed responses from this as well.

Note: Not all ITEAD Devices use the same Firmware. Be sure to check the Supported Device List in the Wiki

Updating a new Sonoff device

The latest updates include binary files (thanks to the great work by https://github.com/khcnz/Espressif2Arduino) so you can update your Sonoff device from start to finish without having to build anything.

The included final Arduino Sketch binary is v5.9.1, defaulting WIFI_CONFIG_TOOL to WIFI_MANAGER.

Prerequisites

Windows users: Skip if you use the sonota.exe file

  • Download and install Python v3.5.x: https://www.python.org/downloads/windows/ (Python v3.5.x is recommended for Windows as the netifaces module has prebuilt wheels)
  • All firewalls must be disabled when running SonOTA

Linux users:

  • Download and install python3, python3-pip and python3-dev packages (Python v3.5 or v3.6 is required)
  • Update pip by running: python3 -m pip install --upgrade pip (see #22 for more information)
  • All firewalls must be disabled when running SonOTA

Mac users:

  • Downloaded and install the latest Python 3.6 for Mac: https://www.python.org/downloads/
  • Install the clang developer tools if prompted during the pip install phase
  • All firewalls must be disabled when running SonOTA

Running

Method 1) After setting up the prerequisites, download the repo (either using git clone, or downloading and extracting the .zip file). Then install the Python dependencies by changing into the SonOTA directory and running: pip3 install --user -r requirements.txt

Once installed, you can run SonOTA (./sonota.py, you may need something like python3 sonota.py on Windows), and it will prompt you for the various settings it needs, and guide you through what to do for each step.

Method 2) Download latest sonota.exe from the releases page

Run the exe as administrator**

A Console Windows will popup and it will prompt you for the various settings it needs, and guide you through what to do for each step.

Ensure all firewalls are disabled on all WiFi networks, including FinalStage when connected. This is the most common reason things to not complete.

Once complete and Sonoff-Tasmota is installed, you will have an AP called sonoff-#### (note: this will be up for a minute then down for a minute until configured).

For more information see the Sonoff-Tasmota Initial Config and Button Functionality.

Update Steps

The update will go as follows (assuming a stock Sonoff device, the included .bin files have been tested with a Sonoff Basic and a Sonoff Dual). The program will prompt you what to do for each step as required.

  1. You will be promted to fill out the settings for your network (the "server" IP, this is the IP of the PC you are running sonota on, and the SSID and password for your WiFi). (These can also be passed as command line arguments if preferred, or doing a lot of devices.)
  2. Connect to the ITEAD-* WiFi network, you may need to reset your Sonoff to defaults to do this. This stage tells the Sonoff where to get future updates.
  3. Typically, you will be disconnected automatically from the ITEAD-* WiFi network, and your PC will reconnect to your normal network. So this stage will require no intervention, and the Sonoff will connect to your PC to download the required firmware.
  4. Once the firmware has been downloaded, there will be a new FinalStage SSID that you can connect to. Do this, and the device will then download the final stages of the firmware, including the Arduino image, replacing the default boot loader.
  5. That's it! You should be all done and ready to use your new Arduino Firmware (see the Running section).

Important Files

The static/ directory includes 3 binary files, these are:

  • image_user1-0x01000.bin: The image for the first half of the flash, this may not be required depending on the initial state of the Sonoff. This just downloads the user2 image below.
  • image_user2-0x81000.bin: The image for the second half of the flash, this is the one that will replace the boot loader, then install image_arduino.bin.
  • image_arduino.bin: The actual Arduino built image, the repo has Sonoff-Tasmota included, but can be overwritten.

The ssl/ directory has some pregenerated SSL certificates. As the Sonoff does not verify the SSL certificates, these offer no real security, so to make things easy, they have been included in the repo.

Updating the included Sonoff-Tasmota

If a new release of Sonoff-Tasmota is available and you wish to use it, download the binary from the Sonoff-Tasmota Releases page, and copy it to static/image_arduino.bin, replacing the existing file.

This same process can be used if you have your own build with, for example, default settings for your network.

Changing Firmware

If you have flashed your Sonoff and decide that Sonoff-Tasmota is not for you, it has an easy to use feature to allow uploading of new firmware.

If you connect to the web interface of the device (either normally, or in AP mode), then change the URL path to be /up, you can browse to a local binary file on your computer, and upload. Be sure to use something that you have tested as if this goes bad, you'll need to open up your Sonoff and update using the old serial method.

Flashing Itead Sonoff devices via original OTA mechanism

This program is based on research documented here:

The script is fairly well documented (I think) - apart from that above stated links should provide some context of what's been done how and why. Feel free to open issue tickets or contact me directly: [email protected]

Building own Exe File

just run the built.bat in the Release folder to create your own sonota.exe. You will find the exe in the Release/dist folder.

Compatibility

Please see the wiki for known working configurations.

Reporting issues

If you are having an issue runinng this, please include the following information:

  • The full output of the actual run, a log file is now produced which can be uploaded by dragging and dropping the file in your web browser
  • The model and version of your Sonoff device
  • The operating system and version of Python you're using

sonota's People

Contributors

ashimokawa avatar imarkus avatar jalmeroth avatar kellerza avatar mirko avatar reloxx13 avatar sillyfrog 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sonota's Issues

Syntax Error

I'm receiving the following error:

Barends-MacBook-Pro:~ Barend$ sudo python sonota.py
File "sonota.py", line 397
print(".", end="", flush=True)
^
SyntaxError: invalid syntax

When I try to run the script

OSError: [Errno 0] Error

  • Operating System: Windows 7
  • Python Version: 3.5
  • Sonoff model: Basic
    log.txt

File "C:\Users\doqu\AppData\Local\Programs\Python\Python37-32\lib\ssl.py", lin
e 1075, in do_handshake
self._sslobj.do_handshake()
File "C:\Users\doqu\AppData\Local\Programs\Python\Python37-32\lib\ssl.py", lin
e 696, in do_handshake
self._sslobj.do_handshake()
OSError: [Errno 0] Error

Any idea?

FinalStage does not show up

  • Operating System:
    MacOS 10.13.1

  • Python Version:
    python3.5

  • Sonoff model:
    Sonoff Basic

Please also drag and drop the log file to the issue so it is attached.
issue.log

No "FinalStage"

Hello!
My Sonoff model TH16
Tried few times but no luck

Select IP address of the WiFi interface:
0: 192.168.88.208
Select IP address [0]: 0
WiFi SSID: m5_home
WiFi Password: xxxxxxxx

Using the following configuration:
Server IP Address: 192.168.88.208
WiFi SSID: m5_home
WiFi Password: xxxxxxxx
** Now connect via WiFi to your Sonoff device.
** Please change into the ITEAD WiFi network (ITEAD-100001XXXX). The default password is 12345678.
To reset the Sonoff to defaults, press the button for 7 seconds and the light will start flashing rapidly.
** This application should be kept running and will wait until connected to the Sonoff...
............................~~ Connection attempt

HTTP GET /10.10.7.1/device
timed out
HTTP GET /10.10.7.1/device
timed out
HTTP GET /10.10.7.1/device
timed out
HTTP GET /10.10.7.1/device
timed out
HTTP GET /10.10.7.1/device
timed out
HTTP GET /10.10.7.1/device
timed out
HTTP GET /10.10.7.1/device
timed out
HTTP GET /10.10.7.1/device
timed out
HTTP GET /10.10.7.1/device
timed out
HTTP GET /10.10.7.1/device
timed out
HTTP GET /10.10.7.1/device
timed out
HTTP GET /10.10.7.1/device
timed out
HTTP GET /10.10.7.1/device
timed out
HTTP GET /10.10.7.1/device
timed out
HTTP GET /10.10.7.1/device
<< {
"deviceid": "100006af71",
"apikey": "71ec9611-82ad-44c4-a915-120a084a7f11",
"accept": "post"
}
HTTP POST /10.10.7.1/ap
%s {
"version": 4,
"ssid": "m5_home",
"password": "xxxxxxxx",
"serverName": "192.168.88.208",
"port": 8443
}
<< {
"error": 0
}
~~ Provisioning completed
Starting stage2...
** The IP address of <serve_host> (192.168.88.208) is not assigned to any interface on this machine.
** Please change WiFi network to m5_home and make sure 192.168.88.208 is being assigned to your WiFi interface.
** This application should be kept running and will wait until connected to the WiFi...
.......~~ Starting web server (HTTP port: 8080, HTTPS port 8443)
~~ Waiting for device to connect

*** IMPORTANT! ***
** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
This server should automatically be allocated the IP address: 192.168.4.2.
If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.
.......2017-10-08 22:59:25,125 (WARNING) 404 POST /inform (192.168.88.169) 5.43ms
.......................
*** IMPORTANT! ***
** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
This server should automatically be allocated the IP address: 192.168.4.2.
If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.
..............................
*** IMPORTANT! ***
** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
This server should automatically be allocated the IP address: 192.168.4.2.
If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.
.........2017-10-08 23:01:28,443 (WARNING) 404 POST /inform (192.168.88.169) 0.96ms
.....................
*** IMPORTANT! ***
** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
This server should automatically be allocated the IP address: 192.168.4.2.
If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.
..............................
*** IMPORTANT! ***
** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
This server should automatically be allocated the IP address: 192.168.4.2.
If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.
..........2017-10-08 23:03:31,505 (WARNING) 404 POST /inform (192.168.88.169) 0.96ms
....................
*** IMPORTANT! ***
** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
This server should automatically be allocated the IP address: 192.168.4.2.
If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.
..............................

and so on
Please help)

How to directly upload the last Sonoff-Tasmota version?

Hi,

According to the readme, SonOTA uploads the v5.5.2, which is not the last one (v5.8.0i currently).
How to directly upload the last Sonoff-Tasmota version?

Best regards and thanks for your very convenient OTA tool!

Flashing a Sonoff T1 and questions on the process

Hello

I am trying to flash a Sonoff T1 and getting stuck.

Am I right in thinking the process is as follows:

  1. Connect PC to HOMENET
  2. Run script and answer 3 questions (local IP and HOMENET creditials)
  3. Put Sonoff in WiFi AP mode and connect to ITEAD wifi AP
  4. Script configs the Sonoff with the OTA settings including connecting to HOMENET
  5. PC needs to reconnect to the HOMENET but this time must be on a hardcoded IP of 192.168.4.2
  6. Sonoff pulls the OTA update from the script which is running a web server for this purpose
  7. Reboot, happy days

I am getting as far as step 5 but the issue I am having is 192.168.4.2 is not routable on HOMENET

Questions:

a) Is there any reason why when passing the HOMENET details to the Sonoff, it cannot also configure the IP address of the PC so that it works on the existing network

b) Any reason why the last step of downloading the firmware cannot be done over the Internet -- it would be easy to create a portable hotspot for this purpose

Kind regards

James

Stuck in FinalStage - Sonoff TH16, MacOS

Stuck in FinalStage AP mode currently.
By my reading there are no glaring errors - see output below. Any advice? Cycling power returns to FInalStage, button appears to do nothing, I don't seem to have an OTA recovery option - serial it is then? Or can I step through the script to pickup at FinalStage again?
How long should I expect the flashing to take place during FinalStage? I think I gave it a good 5 minutes, but it never connected to the SSID again.
@mirko ?

Select IP address of the WiFi interface:
    0: 10.0.1.10
Select IP address [0]: 0
WiFi SSID: SSID_WHAT_I_OWN
WiFi Password: PASSWORD_WHAT_GETS_ME_IN

Using the following configuration:
	Server IP Address: 10.0.1.10
	WiFi SSID: SSID_WHAT_I_OWN
	WiFi Password: PASSWORD_WHAT_GETS_ME_IN
** Now connect via WiFi to your Sonoff device.
** Please change into the ITEAD WiFi network (ITEAD-100001XXXX). The default password is 12345678.
To reset the Sonoff to defaults, press the button for 7 seconds and the light will start flashing rapidly.
** This application should be kept running and will wait until connected to the Sonoff...
......................................^[[C.......~~ Connection attempt
>> HTTP GET /10.10.7.1/device
<< {
    "deviceid": "100006b46f",
    "apikey": "0f01e839-97a1-4abd-9c5d-ff4deb5050fe",
    "accept": "post"
}
>> HTTP POST /10.10.7.1/ap
>> %s {
    "version": 4,
    "ssid": "SSID_WHAT_I_OWN",
    "password": "PASSWORD_WHAT_GETS_ME_IN",
    "serverName": "10.0.1.10",
    "port": 8443
}
<< {
    "error": 0
}
~~ Provisioning completed
Starting stage2...
** The IP address of <serve_host> (10.0.1.10) is not  assigned to any interface on this machine.
** Please change WiFi network to applepomis and make sure 10.0.1.10 is being assigned to your WiFi interface.
** This application should be kept running and will wait until connected to the WiFi...
...............~~ Starting web server (HTTP port: 8080, HTTPS port 8443)
~~ Waiting for device to connect


*** IMPORTANT! ***
** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
This server should automatically be allocated the IP address: 192.168.4.2.
If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.
.<< HTTP POST /dispatch/device
>> /dispatch/device
>> {
    "error": 0,
    "reason": "ok",
    "IP": "10.0.1.10",
    "port": 8443
}
2017-09-27 21:42:33,485 (INFO) 200 POST /dispatch/device (10.0.1.52) 2.13ms
2017-09-27 21:42:33,669 (INFO) 101 GET /api/ws (10.0.1.52) 0.84ms
2017-09-27 21:42:33,669 (DEBUG) << WEBSOCKET OPEN
2017-09-27 21:42:33,678 (DEBUG) << WEBSOCKET INPUT
2017-09-27 21:42:33,678 (DEBUG) << {
    "userAgent": "device",
    "apikey": "0f01e839-97a1-4abd-9c5d-ff4deb5050fe",
    "deviceid": "100006b46f",
    "action": "register",
    "version": 2,
    "romVersion": "2.0.4",
    "model": "PSA-BHA-GL",
    "ts": 466
}
~~~ device sent action request,  acknowledging / answering...
2017-09-27 21:42:33,678 (INFO) We are dealing with a PSA-BHA-GL model.
~~~~ register
>> {
    "error": 0,
    "deviceid": "100006b46f",
    "apikey": "c06ca5ba-2113-4820-9c3f-f22058d90ab7",
    "config": {
        "hb": 1,
        "hbInterval": 145
    }
}
2017-09-27 21:42:33,687 (DEBUG) << WEBSOCKET INPUT
2017-09-27 21:42:33,687 (DEBUG) << {
    "userAgent": "device",
    "apikey": "c06ca5ba-2113-4820-9c3f-f22058d90ab7",
    "deviceid": "100006b46f",
    "action": "date"
}
~~~ device sent action request,  acknowledging / answering...
~~~~ date
>> {
    "error": 0,
    "deviceid": "100006b46f",
    "apikey": "c06ca5ba-2113-4820-9c3f-f22058d90ab7",
    "date": "2017-09-27T21:42:33.687Z"
}
2017-09-27 21:42:33,694 (DEBUG) << WEBSOCKET INPUT
2017-09-27 21:42:33,694 (DEBUG) << {
    "userAgent": "device",
    "apikey": "c06ca5ba-2113-4820-9c3f-f22058d90ab7",
    "deviceid": "100006b46f",
    "action": "update",
    "params": {
        "switch": "off",
        "fwVersion": "2.0.4",
        "rssi": -63,
        "staMac": "5C:CF:7F:9F:22:F5",
        "startup": "off"
    }
}
~~~ device sent action request,  acknowledging / answering...
~~~~ update
>> {
    "error": 0,
    "deviceid": "100006b46f",
    "apikey": "c06ca5ba-2113-4820-9c3f-f22058d90ab7"
}
>> {
    "action": "update",
    "deviceid": "100006b46f",
    "apikey": "c06ca5ba-2113-4820-9c3f-f22058d90ab7",
    "userAgent": "app",
    "sequence": "1506501753695",
    "ts": 0,
    "params": {
        "switch": "off"
    },
    "from": "hackepeter"
}
>> {
    "action": "update",
    "deviceid": "100006b46f",
    "apikey": "c06ca5ba-2113-4820-9c3f-f22058d90ab7",
    "userAgent": "app",
    "sequence": "1506501753695",
    "ts": 0,
    "params": {
        "switch": "on"
    },
    "from": "hackepeter"
}
>> {
    "action": "update",
    "deviceid": "100006b46f",
    "apikey": "c06ca5ba-2113-4820-9c3f-f22058d90ab7",
    "userAgent": "app",
    "sequence": "1506501753695",
    "ts": 0,
    "params": {
        "switch": "off"
    },
    "from": "hackepeter"
}
>> {
    "action": "update",
    "deviceid": "100006b46f",
    "apikey": "c06ca5ba-2113-4820-9c3f-f22058d90ab7",
    "userAgent": "app",
    "sequence": "1506501753695",
    "ts": 0,
    "params": {
        "switch": "on"
    },
    "from": "hackepeter"
}
>> {
    "action": "update",
    "deviceid": "100006b46f",
    "apikey": "c06ca5ba-2113-4820-9c3f-f22058d90ab7",
    "userAgent": "app",
    "sequence": "1506501753695",
    "ts": 0,
    "params": {
        "switch": "off"
    },
    "from": "hackepeter"
}
>> {
    "action": "upgrade",
    "deviceid": "100006b46f",
    "apikey": "c06ca5ba-2113-4820-9c3f-f22058d90ab7",
    "userAgent": "app",
    "sequence": "1506501753698",
    "ts": 0,
    "params": {
        "binList": [
            {
                "downloadUrl": "http://10.0.1.10:8080/ota/image_user1-0x01000.bin",
                "digest": "97fe70d737390bbde7b8d208c79d590e29fc76962623c7bd198ee210210ea616",
                "name": "user1.bin"
            },
            {
                "downloadUrl": "http://10.0.1.10:8080/ota/image_user2-0x81000.bin",
                "digest": "e6d0cbb641542bd0a27e6c4628fc9331f1f5d3ac3afa42c9307569cf4d70fcdc",
                "name": "user2.bin"
            }
        ],
        "model": "PSA-BHA-GL",
        "version": "23.42.5"
    }
}
2017-09-27 21:42:34,167 (DEBUG) << WEBSOCKET INPUT
2017-09-27 21:42:34,168 (DEBUG) << {
    "error": 0,
    "userAgent": "device",
    "apikey": "c06ca5ba-2113-4820-9c3f-f22058d90ab7",
    "deviceid": "100006b46f",
    "sequence": "1506501753695"
}
2017-09-27 21:42:34,168 (DEBUG) ~~~ device acknowledged our action request (seq 1506501753695) with error code 0
2017-09-27 21:42:34,583 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=196150922&sign=7bbc897f00354ab8f9552f4a894dff18f828ccc6f8d39c8200d435fafd6bb82e (10.0.1.52) 13.98ms
2017-09-27 21:42:34,769 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=2138392511&sign=080156b920b6db8fe9cdbc03c506db9bd7fc6d60568aabb33fa92dfb6b14d24c (10.0.1.52) 0.95ms
2017-09-27 21:42:34,860 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=862720893&sign=5146b498ad168f4794fe8972c667f9544e7e773307bbe5cc76a89d9f7e7c8364 (10.0.1.52) 1.06ms
2017-09-27 21:42:34,957 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=354043648&sign=22d57ebb6cbde5a5a94436c51809b0d07965b4eb3cac9b6d4d87af0fb6b8e89e (10.0.1.52) 1.72ms
2017-09-27 21:42:35,047 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1546965957&sign=5293af37e0b8f379afaf6223f2ff69d23eaf73d40523c373db85e917190c171e (10.0.1.52) 2.25ms
2017-09-27 21:42:35,140 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1466668831&sign=ad6974b3e50a61c06df0164df1b89080f2015c046258fb236b0628a5dea1c725 (10.0.1.52) 1.68ms
2017-09-27 21:42:35,306 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=916382919&sign=ba9b753b98d0204d6b8ce4325f4605eece12c9002de8daf53562a02f5fda9ef7 (10.0.1.52) 2.15ms
2017-09-27 21:42:35,388 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1322111512&sign=43da2e6ac5e847c019204edda1b616eac0f4bf9a4024c6761fe35ef97efe60f0 (10.0.1.52) 0.96ms
.2017-09-27 21:42:35,476 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=164897092&sign=660f4767f313d00d6caccac1241c77d51b0cb596a9c712c820aff5daa14d2c0f (10.0.1.52) 1.96ms
2017-09-27 21:42:35,575 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1258046232&sign=ac398e88d4f73b9663ccfa9a5767ebc5b311816f0c34c88818a7aa0ff6e339c1 (10.0.1.52) 2.17ms
2017-09-27 21:42:35,664 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=478762220&sign=bff5d3d5f00c0467cd7da863e066c25d8b289b373bd2af9df155c9c3643db205 (10.0.1.52) 1.74ms
2017-09-27 21:42:35,748 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=254320223&sign=7770fd0d5c76840c5897f672e015915f4f7f9c5a7caf4b9de1d96a88fbad44af (10.0.1.52) 1.90ms
2017-09-27 21:42:35,850 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1715848038&sign=47a28d1a416d3869e611aee26ad50a91c458942552fea9d399ffd01d96e5d0fb (10.0.1.52) 1.58ms
2017-09-27 21:42:35,937 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1696058609&sign=022eb61ded33e90e6c7a3ca1762b238efa8b12b7d9ed73e89ea3f30141b89f66 (10.0.1.52) 1.95ms
2017-09-27 21:42:36,024 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=2006807452&sign=9d043e3120cb1947b8bb127088fd5e2b6714eb479f4cb5518a2fc17f93d017b5 (10.0.1.52) 1.89ms
2017-09-27 21:42:36,111 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1341788522&sign=5e669b00f9a249e7e9d9f3461514ac8494a39bd89dc19fbd00348bed5948ed47 (10.0.1.52) 1.30ms
2017-09-27 21:42:36,205 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1604321728&sign=32f75efb268ea6b5698312b739c13ef8543c3c0a1aa6f106b83db3bb910804ae (10.0.1.52) 2.52ms
2017-09-27 21:42:36,290 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1382741976&sign=78511801c3b34f8f2bfab58fcbd7506a8bb732e10772b3e2141afd21ff750ee2 (10.0.1.52) 1.83ms
2017-09-27 21:42:36,384 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=584975152&sign=168ac5ae46c23a1a44ae9d3953986bf198c8736addb2ca1cf15df800ffdcd7ee (10.0.1.52) 1.91ms
2017-09-27 21:42:36,475 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1537501517&sign=8aab40c5109ae81b5a384a1cc022301a5bec7e0e5172c03124d8c9dd62506a55 (10.0.1.52) 2.32ms
2017-09-27 21:42:36,566 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1471641423&sign=004801e7c3fce9fe1cc5f3df88650b879885f2c0b9b6f1960876381cb6abbe4c (10.0.1.52) 2.03ms
2017-09-27 21:42:36,652 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=180281402&sign=9706e4cda970a76276711c7f8827da686ca0cc26af15d0d3593ac48b4baa9df7 (10.0.1.52) 1.56ms
2017-09-27 21:42:36,742 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=943538704&sign=df73564b2603e96b3f9ea60f1d616213ab0944914187ad7d82c914e6464ecead (10.0.1.52) 1.56ms
2017-09-27 21:42:36,831 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=390271936&sign=a2bc2cf21d0f99a13f549ec3a77ff2d818315730194466d00ba9ebd2064515d8 (10.0.1.52) 2.00ms
2017-09-27 21:42:36,918 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1860379350&sign=472bf657a5610d9b673f70259471aa92fda23cadc7f208346f65732353c33f0f (10.0.1.52) 2.10ms
2017-09-27 21:42:37,004 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1895591035&sign=59a5bfaed69f95aaf3e0e3bbf847e475fac2d5502682bc94322b2e95d2e4bf25 (10.0.1.52) 2.07ms
2017-09-27 21:42:37,095 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1631817825&sign=4cfad5cf92e00bf60b71b504f085938f5aef14a895f0ec303f4808b3390f4629 (10.0.1.52) 2.09ms
2017-09-27 21:42:37,185 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=952331128&sign=d88267667c891d2b7d350ca0a97ee059a0ddbcfd8e92ee68d2631f66c9c20b1d (10.0.1.52) 1.21ms
2017-09-27 21:42:37,271 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=832433964&sign=c26806db6574e17b406f687b8fbb45433bcc586b1de6aa3722c2b89ad419915a (10.0.1.52) 2.08ms
2017-09-27 21:42:37,359 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=2102803426&sign=58ba068e5ab429801f672f6428d185e4946a9ee6e0c148e6167a7c2b0b194829 (10.0.1.52) 1.99ms
.2017-09-27 21:42:37,448 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=2110844165&sign=b7f1556cce779c33ff8b4bfb824190d6d554fc0ecaf4c140cc5c35693ccb464d (10.0.1.52) 1.83ms
2017-09-27 21:42:37,536 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1339394775&sign=66da3b368f31336c7db3a4055b03ed906a0b578ba512225f769eb3170e9e2dae (10.0.1.52) 2.09ms
2017-09-27 21:42:37,625 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1588783404&sign=c85ebb210789c0308b2dd23c043aed8a63ab9d8b3af6e85d7c622bd89d67c9f4 (10.0.1.52) 1.33ms
2017-09-27 21:42:37,713 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1455244164&sign=74255557136a72c0572fc8851933ccb59ed44dd4704b05d3905789c442311c90 (10.0.1.52) 1.83ms
2017-09-27 21:42:37,803 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=308476873&sign=35d61e06c409ea1a7fb42883f587786fd7a49f21fb9418d269a090d09fd216a1 (10.0.1.52) 1.67ms
2017-09-27 21:42:37,890 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=38297258&sign=a3328d40658533fa33d91b660a8d1af65233fb04c014a1a7e05ce55b0ea83ebe (10.0.1.52) 1.63ms
2017-09-27 21:42:37,979 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=938993624&sign=077db0ff3d2f6bfa963ebcb878383dbab08570b4bdb4dfeb75cb67f3de4b9899 (10.0.1.52) 2.10ms
2017-09-27 21:42:38,064 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1048555821&sign=bd086c24c72858780d07785c34a1d7abfe02f8fe1314ad0ac0bf0f9efde10c27 (10.0.1.52) 1.60ms
2017-09-27 21:42:38,152 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1930358829&sign=0149f6f0975f81707b58b565da064ada5e969a2b802c6da3f92d7bd7d1c64504 (10.0.1.52) 1.59ms
2017-09-27 21:42:38,239 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=2139193777&sign=57eb8c278945c9ed81d89ac59f207535fcf173fedfe64293cbed4f40811547cb (10.0.1.52) 2.01ms
2017-09-27 21:42:38,328 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=447992224&sign=f494b768d9004fa29307b332f5f81e7d513d84e88a7a242ff20127b55cb2fca9 (10.0.1.52) 1.69ms
2017-09-27 21:42:38,411 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=117920226&sign=489103c4e8300379aefc4cc738a306f7179b7435ded8d49452c64e7bce3c0625 (10.0.1.52) 1.26ms
2017-09-27 21:42:38,500 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1682827604&sign=f40187f169dfcca35b9980ef570691558c75b06f978d671b294b6b893a0cc232 (10.0.1.52) 1.64ms
2017-09-27 21:42:38,588 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=669388451&sign=1f2d1a0528464c6a759341171e6ed549e4ab4643ea0c91c4bd2a825f7ae91b9c (10.0.1.52) 1.98ms
2017-09-27 21:42:38,678 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=562105037&sign=8248ba7baad371dc80b8ccd673999139efd2e931aec74d6be35a29a85b1c72bd (10.0.1.52) 1.99ms
2017-09-27 21:42:38,763 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=2028664838&sign=c81b22fceba8b7289a1878f251665ce4ecab244a621fcb16cc8787902204a665 (10.0.1.52) 1.84ms
2017-09-27 21:42:38,851 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=2019386625&sign=a16cb331f35a0490eab62fa2aae3355898ca69df3ad6e91c11988a3a37d29a7b (10.0.1.52) 1.63ms
2017-09-27 21:42:38,941 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1464321379&sign=2eaaef086a8384282aa5a090d080f48749dc8cfe3c86e7f700584c3200d89430 (10.0.1.52) 2.10ms
2017-09-27 21:42:39,029 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1297990419&sign=d4e73a223bbf910579b4c2bb2901224b896f79ed6f72bf78e9b74476a333863d (10.0.1.52) 1.85ms
2017-09-27 21:42:39,122 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1144638575&sign=7f8f733d5b5b8b13e8a323b18a3fbfe9cfc751db617ba8df349ab5ec5dd05dbd (10.0.1.52) 1.95ms
2017-09-27 21:42:39,211 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=852188688&sign=8c052c99d9550d1bf75fd596d849c9a1e0402242c8770b89e168660c129786bf (10.0.1.52) 1.65ms
2017-09-27 21:42:39,301 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1430549897&sign=da565ed3816f4d897fd2a2ef84e7e3a5d8bb4ab92b2ba2e7d853d2d13932cd99 (10.0.1.52) 1.29ms
2017-09-27 21:42:39,390 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1114506820&sign=15065cb48c5c5681e8e86b2dc3f592a7cd742259b218d408f91e0dbaac8e47c0 (10.0.1.52) 2.05ms
.2017-09-27 21:42:39,493 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1413917078&sign=45e8f1e5d6f9c55194e3c20ba3ab02cde3710790336b0c773cd910681767159a (10.0.1.52) 2.09ms
2017-09-27 21:42:39,576 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=947037966&sign=702634541f3fa1c976254a3d513b4daa142e1ca2d14c5341a63929339937140d (10.0.1.52) 2.02ms
2017-09-27 21:42:39,663 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=885118797&sign=43380648a0c30c3a9c73846dba6660be7cae8d0a32123604768c79b9b55df3e9 (10.0.1.52) 1.61ms
2017-09-27 21:42:39,751 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1841827055&sign=7937d23f0ffcd5b686e4eeb32aa09cd2d23b117e1ebd36082628cc8ae16d3e85 (10.0.1.52) 2.04ms
2017-09-27 21:42:39,842 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=537716674&sign=f638fd36326efefcf23ad16b0056d72901805d38afe8acaefc015a77f7f4846b (10.0.1.52) 2.00ms
2017-09-27 21:42:39,930 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006b46f&ts=1060528228&sign=b20f39d269e4f570f731845a8966b84b36de7c72ef21b01879a2cdd196e459ea (10.0.1.52) 1.59ms
2017-09-27 21:42:40,246 (DEBUG) << WEBSOCKET INPUT
2017-09-27 21:42:40,246 (DEBUG) << {
    "error": 0,
    "userAgent": "device",
    "apikey": "c06ca5ba-2113-4820-9c3f-f22058d90ab7",
    "deviceid": "100006b46f",
    "sequence": "1506501753698"
}
2017-09-27 21:42:40,246 (DEBUG) ~~~ device acknowledged our action request (seq 1506501753698) with error code 0
......

*** IMPORTANT! ***
** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
This server should automatically be allocated the IP address: 192.168.4.2.
If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.
..........

*** IMPORTANT! ***
** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
This server should automatically be allocated the IP address: 192.168.4.2.
If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.
.........


The "FinalStage" SSID will disappear when the device has been fully flashed and image_arduino.bin has been installed
Once "FinalStage" has gone away, you can stop this program
2017-09-27 21:43:35,666 (INFO) 200 GET /ota/image_user2-0x81000.bin (192.168.4.1) 7100.75ms
No longer on "FinalStage" SSID, all done!
2017-09-27 21:43:59,653 (INFO) Quitting.

EDIT:
Watching the serial output (no surprises) shows the "FinalStage" boot and "Connecting..." output.
Clearly waiting to contact the OTA server that isn't there anymore.

Initalizing.......................................................................................................Done
Current rom: 2
Rom 1 magic byte: 0xE9
Reflashing rom: 0
Configuring Wifi...Connecting...
.Connecting...
.Connecting...
.Connecting...
.Connecting...

WSS (WebSocket Secure) will not work on device with older firmware

I have tried to use the script with a Sonoff POW running on firmware version 2.0.2.
To my knowledge this version did not yet support WSS. Therefore I had to upgrade the firmware to version 2.0.4 first. After that the script seems to work flawlessly.

Now the question is: do we want to implement the WS version too or shall people upgrade first?

Also stuck in FinalStage

Output of my run(s) here:
https://gist.github.com/tocklime/6d33a4f9d4a5acbd7e9c0a2e081544af

I'm stuck in a place where the FinalStage SSID is visible, But nothing seems to happen when I connect to it.

I'm guessing the problem is that my home IP network is on 192.168.4.0, and FinalStage wants to use that too.

But if it's got enough of a firmware on there to host the Finalstage network, and my PC is not connected to my home network when it's connected to FinalStage, that shouldn't be a problem, right?

Is there any useful diagnostics I can do?

This is a S20. I have another S20 and a T1 to flash like this, so I've got 2 more goes to diagnose this (if this one is going to need serial flashing).

Works with TH16 v2.0.4

Sorry I can't figure out how to update your wiki page for compatible models, but this worked for me to update a new Sonoff TH16 with firmware 2.0.4. Thanks. ๐Ÿ˜„

Sonoff Touch rebooted during flash

  • Operating System:
    Mac OS X 10.12.6
  • Python Version:
    Python 3.6.3
  • Sonoff model:
    Sonoff Touch Wall Switch
    Please also drag and drop the log file to the issue so it is attached.

I successfully flashed Sonoff 4CH Pro.
But Sonoff Touch rebooted itself during flashing and uploading started again, after several restarts I got message about FinalStage, but never got such SSID.

Unfortunately I don't have logs from first attempt.

Now Sonoff is connected to my network.
I tried to restart the process but got the exception.

Slow Sending file: /ota/image_user2-0x81000.bin (This may take several minutes) Uncaught exception GET /ota/image_user2-0x81000.bin?deviceid=10000e6c51&ts=561035572&sign=655579ab8f760c8eade3d0303b86f2deeb9bf3d2c152003c4c18e5cd0d69d898 (192.168.7.35) HTTPServerRequest(protocol='http', host='dl.itead.cn', method='GET', uri='/ota/image_user2-0x81000.bin?deviceid=10000e6c51&ts=561035572&sign=655579ab8f760c8eade3d0303b86f2deeb9bf3d2c152003c4c18e5cd0d69d898', version='HTTP/1.1', remote_ip='192.168.7.35', headers={'Host': 'dl.itead.cn', 'Range': 'bytes=0-4095', 'User-Agent': 'itead-device'}) Traceback (most recent call last): File "/Users/mike7/Library/Python/3.6/lib/python/site-packages/tornado/web.py", line 1511, in _execute result = yield result File "/Users/mike7/Library/Python/3.6/lib/python/site-packages/tornado/gen.py", line 1055, in run value = future.result() File "/Users/mike7/Library/Python/3.6/lib/python/site-packages/tornado/concurrent.py", line 238, in result raise_exc_info(self._exc_info) File "<string>", line 4, in raise_exc_info File "/Users/mike7/Library/Python/3.6/lib/python/site-packages/tornado/gen.py", line 1063, in run yielded = self.gen.throw(*exc_info) File "sonota.py", line 152, in get yield self.flush() File "/Users/mike7/Library/Python/3.6/lib/python/site-packages/tornado/gen.py", line 1055, in run value = future.result() File "/Users/mike7/Library/Python/3.6/lib/python/site-packages/tornado/concurrent.py", line 238, in result raise_exc_info(self._exc_info) File "<string>", line 4, in raise_exc_info tornado.iostream.StreamClosedError: Stream is closed Cannot send error response after headers written 200 GET /ota/image_user2-0x81000.bin?deviceid=10000e6c51&ts=561035572&sign=655579ab8f760c8eade3d0303b86f2deeb9bf3d2c152003c4c18e5cd0d69d898 (192.168.7.35) 14562.80ms

log is attached
SonoffTouch-flash.txt

As I understand SonOTA can't store firmware

Getting `"error": 404` and FinalStage SSID Never Comes

I'm using a sonoff basic. When I get to step #4, when I'm supposed to connect to FinalStage SSID, FinalStage never comes. The firmware never seems to flash since I am able to continue to use the switch to turn on/off the outlet and I can repeat the first few steps starting the ITEAD server and connecting, etc.
Anybody have this problem and any suggestions ? Using the latest commit. Thanks.

SonOff POW does not work after flashing

  • Operating System: Windows
  • Python Version: Python 3.5
  • Sonoff model: SOnOff POW

Hi.

I have successfully flashed SonOff basic and SonOff S20. I tried flashing SonOff POW, the process finished successfully but now the device does not respond, the wifi led just blink once when I powered it on but no more blinks after that. Do you know what could it be? I tried then with another SonOff POW device but with the same result.

Thanks you in advance for the help.

Christiam

Ailight

Is it possible to flash the Ailight with this method?

FinnalStage SSID never shows up

Hi.

First thank you for the effort for developing this tool.

I know a similar issue has been reported but i still want to share the following information:

-I tried SonOff basic and SonOff S20 in two different wifi networks with all the requirement but I get stuck waiting for the FinalStage SSID to show up but this never happen. After this I can still control the SonOffs with ewelink app but only in the wifi network, not anymore from internet. Ewelink app shows the message "Control by Lan".

I don't know if this info could help but I share it just in case.

Thanks

SSL Error when device is connecting to sonota webserver

I have created a dummy cert earlier, using:

openssl req -x509 -nodes -newkey rsa:2048 -keyout ssl/server.key -out ssl/server.crt -days 42235

But when SONOFF SV tries to connect, I see SSL error as below:

~~ Waiting for device to connect
2017-07-05 13:14:02,654 (WARNING) error on read: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:1748)
2017-07-05 13:14:11,660 (WARNING) error on read: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:1748)
2017-07-05 13:14:45,717 (WARNING) error on read: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:1748)
2017-07-05 13:14:49,306 (WARNING) error on read: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:1748)
2017-07-05 13:15:17,768 (WARNING) error on read: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:1748)

Syntax error

Please be patient with a python newbie. I followed all the steps and installed the dependencies and requirements, but when I run the script I get this error:

File "./sonota.py", line 499
print(".", end="", flush=True)
^
SyntaxError: invalid syntax

Please help!

I'm using OSX and installed the latest python 3.6. I dragged the sonota.py file onto the launcher for the 3.6 app. I've also tried on 2 different macs and get the same error.

Thanks

OSX Install

  • Operating System: OSX High Sierra
  • Python Version: 3.5.2
  • Sonoff model: Sonoff

Please also drag and drop the log file to the issue so it is attached.

Getting the following error setting up requirements:

/usr/bin/clang -fno-strict-aliasing -Wsign-compare -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -arch i386 -arch x86_64 -g -DNETIFACES_VERSION=0.10.6 -I/Library/Frameworks/Python.framework/Versions/3.5/include/python3.5m -c netifaces.c -o build/temp.macosx-10.6-intel-3.5/netifaces.o
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
error: command '/usr/bin/clang' failed with exit status 1

----------------------------------------

Command "/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 -u -c "import setuptools, tokenize;file='/private/var/folders/nn/fmy5ryln6xn42nnkh0k_l7c80000gn/T/pip-build-4frne3vz/netifaces/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /var/folders/nn/fmy5ryln6xn42nnkh0k_l7c80000gn/T/pip-ybwlu4i9-record/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /private/var/folders/nn/fmy5ryln6xn42nnkh0k_l7c80000gn/T/pip-build-4frne3vz/netifaces/

Stuck in Final Stage

My device is stuck on Final stage, this time the firewall is already off, and I get the same behaviour running it in Linux. I've attached a serial monitor, and this is what is output:

Initalizing.......................................................................................................Done
Current rom: 2
Rom 1 magic byte: 0xFF
Reflashing rom: 0
Configuring Wifi...Connecting...
.Connected
Done
	0.0.0.0
Flash Mode: 3
Flash Mode not recognized

It's a Sonoff T1. Any ideas?

pip

1st: very well done, all working flawlessly!

2nd: i followed the guide, installing the exact python version suggested, on windows: 3.5.0, adding it to path... then went in the folder where i uncompressed the zip of the repository, and running:
pip3 install --user -r requirements.txt

it gave error about something to be updated, and suggested pip... so i run this:
python -m pip install --upgrade pip

and then again the line before, and all fine now, procedure went smoothly :)
pip3 install --user -r requirements.txt

had to took out the fixed ip from my wifi connection, though, and continue all in dhcp... better doing this BEFORE starting the procedure... i use fixed ip to speed up my wifi connection to router

SonOTA no longer working on new Sonoff devices

I received my sonoff 4ch. It has firmware v2.01. I wanted to try the new OTA process but the device no longer broadcasts the ssid. This is kind of breaking this process. Do you believe there is a solution to overcome this or is the end of OTA programming?
Thanks

Current Status of this solution?

Before I start fiddling with something that controls a 240V line, I thought it may be best to double check first. I'm not really a hardware kind of guy so soldering a header on isn't my idea of a fun afternoon, so this OTA solution is right up my street.

What's the current situation? Is it possible to flash a Sonoff OTA now? I just picked up two (possibly not iTad authentic, but hey, they were ยฃ10 for 2!) and I'm now looking to flash them as I didn't do enough research and didn't realise I'd need to flash them to get them working with Home Assistant. I just need to flash the MQTT-friendly firmware so that I can start using them with HASS really.

Device answer: error 404

Hi!

First: Sorry for my english ;)
I create a user1 and a user2 image from source eagle.flash.1m0.ld and copy them to the folder static/.
After that I run the script. It is what I see:

>> {
    "action": "upgrade",
    "deviceid": "100006dcbd",
    "apikey": "83e0dc72-4d5f-42bb-bef9-43871e386b90",
    "userAgent": "app",
    "sequence": "1499327137029",
    "ts": 0,
    "params": {
        "binList": [
            {
                "downloadUrl": "http://192.168.75.12:8080/ota/image_user1-0x01000.bin",
                "digest": "4f6b31fa2ca1a29d602b37040826ed62e9e357739cd0703c78cd12bdd3bcc5e9",
                "name": "user1.bin"
            },
            {
                "downloadUrl": "http://192.168.75.12:8080/ota/image_user2-0x81000.bin",
                "digest": "aaaa866e421d0eb844b8a6d0d5eef20cbda29cd307e69aac8b697c270cf34581",
                "name": "user2.bin"
            }
        ],
        "model": "ITA-GZ1-GL",
        "version": "23.42.5"
    }
}
2017-07-06 09:45:37,032 (DEBUG) << WEBSOCKET INPUT
2017-07-06 09:45:37,034 (DEBUG) << {
    "userAgent": "device",
    "apikey": "83e0dc72-4d5f-42bb-bef9-43871e386b90",
    "deviceid": "100006dcbd",
    "action": "query",
    "params": [
        "timers"
    ]
}
~~~ device sent action request,  acknowledging / answering...
~~~~ query
>> {
    "error": 0,
    "deviceid": "100006dcbd",
    "apikey": "83e0dc72-4d5f-42bb-bef9-43871e386b90",
    "params": 0
}
2017-07-06 09:45:37,951 (INFO) 206 GET /ota/image_user1-0x01000.bin?deviceid=100006dcbd&ts=1812158119&sign=5c9377401acaa5f49c2f65c7c539bf9e1e4d48902df3caada8a5bb4d2d852ce8 (192.168.
75.189) 1.00ms
2017-07-06 09:45:37,962 (DEBUG) << WEBSOCKET INPUT
2017-07-06 09:45:37,962 (DEBUG) << {
    "error": 404,
    "userAgent": "device",
    "apikey": "83e0dc72-4d5f-42bb-bef9-43871e386b90",
    "deviceid": "100006dcbd",
    "sequence": "1499327137029"
}
2017-07-06 09:45:37,962 (DEBUG) ~~~ device acknowledged our action request (seq 1499327137029) with error code 404

So, the question is: Is this correct to use the eagle.flash.1m0.ld as the source of user1 and user2 image or should I use the eagle.flash.1m64.ld file instead?

I see a similar post in this thread: https://github.com/arendst/Sonoff-Tasmota/issues/476

Sonoff Touch

Is there a way to get the Sonoff Touch to broadcast the ITEAD-XXXX network? AFAICT this script requires us to be n that network.

Sonoff POW not reconnecting to webserver

I've succesfully upgraded to Tasmota a stock wireless switch 10 minutes ago using SonOTA.
I plugged in a new sonoff POW, i can connect to the wifi network and the provisioning is being sent:

HTTP GET /10.10.7.1/device
<< {
"deviceid": "mydeviceid",
"apikey": "myapikey",
"accept": "post"
}
HTTP POST /10.10.7.1/ap
%s {
"version": 4,
"ssid": "myssid",
"password": "mypassword",
"serverName": "10.0.0.107",
"port": 4223
}
<< {
"error": 0
}
~~ Provisioning completed
~~ Starting web server
~~ Waiting for device to connect

then waits forever. The sonoff POW changes blinking pattern (2 fast blinks/2s pause) but nothing happens.
do i have to debug it with serial or there is something else i could try?

btw, thanks for this useful piece of software :)

Backup original firmware

Hi all
Great job for SonOTA project.
Is it possible using SonOTA to backup original frimware before flashing it?

Thank you

Sonoff RF does not connect to WLAN after flashing OTA

So, i wanted to try the OTA flash for a new device, followed the instructions and everything worked like a charm, but the device can't connect to my wireless network. So i hooked it up to the FTDI and am getting this from the serial console:
(SSID and password are masked by purpose)

.........Done
Current Rom: 1
              Rom 1 Magic Byte: 0xEA
                                    Flash Mode: 2
                                                 Attemping to read itead Wifi credentials... Done
                        SSID: ****
                                        Password: *******************
                                                                     Connecting to Wifi..................................................................................................

It won't boot into firmware download mode via serial as well, so I'm kinda stuck now.
Already tried to change some WiFi settings (channels, security mode..) without any success. It's trying to connect forever.

Shouldn't it connect to "indebuurt1" after the flash anyways? This never happened, the second AP is still configured for this network.

Any Ideas?

Script improvement

For users with less experience please add a script for raspberry pi 3:

  1. start wifi as AP with SSID sonota and password 12345678
    2.start python server on port 443 and download a compiled image of the latest tasmota version

The only configuration the user has to do is to select the AP and enter the password, and finally has a running version of Tasmota software

Or, better, provide a complete sd image for raspberry pi 3

Email address invalid?

Hi. I sent you an email but it keeps on coming back. Not sure if it is wrong on the wiki.
I must say thank you sooo much for this. I have flashed 3 Sonoff Basics and 2 Touch.
It worked with some issues but I managed to get them all done. The script would get stuck at the FinalStage SSID part. It would sit there and I can not kill the script. Only way is to close the window.
Then I have to restart the Windows PC as it will say that it is still busy with the FinalStage every time you start the script.

One of the touch units is non responsive after an update. It did do all its relay click etc but now it wont boot up. How can I get the unit back ? Like a hard reset.

Thanks again for all the work. It saved me a lot of time as I did 2 sonoffs the old way and it takes a lot longer.

SONOF RF Bridge WiFi 433 MHz

  • Operating System: Windows 10
  • Python Version: 3.5.4
  • Sonoff model: SONOFF RF Bridge WiFi 433 MHz

While trying to flash the Sonoff RF Bridge Device the process will not start stage 2 - FinalStage never shows up. Has anyone already successfully tried to flash this type of device?

debug_1510487306.log

with dual sonoff, bootloop no more AP

Hi,

Great job, didn't think I can achieve that without hardware mod... almost...

So everything seemed to be ok, got finalstage ssid.

Now the dual sonoff seems to boot loop, sometimes quick blinking during ~15 seconds, then no led during 15 seconds and so on.
No way to get the AP back, with all button sequence.
sonota.log

Thank you for your help

Final Stage does not show up

What I have done

  • put sonoff to pairing mode, connected to ITEAD- wifi

  • Started ./sonota.py without parameters, typed wifi SSID/password

  • After provisioning switched back to home wifi, firmware upload seems to complete without errors

  • A few seconds after the last WEBSOCKET INPUT message without error I get some 404s:

2017-11-11 14:55:41,703: WARNING: 404 GET /sockjs-node/info?t=1510408541677 (::1) 1.44ms
2017-11-11 14:55:41,706: WARNING: 404 GET /sockjs-node/info?t=1510408541678 (::1) 0.71ms
2017-11-11 14:55:41,708: WARNING: 404 GET /sockjs-node/info?t=1510408541676 (::1) 0.59ms
...

Problem

  • "Final Stage SSID" never shows up
  • When keeping the sonota process running, the upload starts again with the same symptoms (probably related to 2c93c19)
  • Looks night the device is still on the original firmware after the process. When plugging out and in again, it can be used from eWeLink

This might be related to #21, but it looks different to me as I don't get any 404's during the image uploads

System

  • Operating System: Arch Linux x64
  • Python Version: 3.6.3
  • Sonoff model: S20 on 1.5.5
  • SonOTA latest master 2c93c19

Attachments

debug_1510408005.log

โฏ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

Build script

(this might be cross-project enhancement)
It would be really great if there would be a platfrom.io built target added to sonoff-tasmota project that would build images for SonOTA (with modified irom0_0_seg) , or provide a standalone build script that would build the images from source and put them to right place.
I'm still struggling to do this even manually, so automated help would be more than welcome...

SSL error

Iยดm following the instructions here https://github.com/mirko/SonOTA and the first stage goes well. In the second stage i get the following error
.2017-10-12 21:07:01,051 (WARNING) error on read: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:2083)

Iยดm not at all an advance user but would be great if anyone could point me in the right direction.
Have upgrade sonoff to latest firmeware and working of a Mac.

Stuck on FinalStage ssid

I'm trying to flash a sonoff basic that was on v1.5.5, using a windows laptop with python 3.5 everything seemed ok but the program got stuck on the finalstage part.

I disabled all the firewalls rebooted the pc and tried again. It seemed to flash the image_arduino.bin file but I was still connected to the FinalStage ssid but with a 169.xxx ip instead of 192.168.4.2.

Also after rebooting the sonoff the led keeps flashing green, and keeps broadcasting the finalstage ssid. If I run the script again with --no-prov it flashes the file again the led stops blinking, it stays on the correct ip but the script just loops waiting for the ssid to go away.

FinalStage does not show up

Just trying this for the first time so excuse me if I did something simply wrong:

  • Operating System:
    Ubuntu 17.10
  • Python Version:
    3.5.3
  • Sonoff model:
    model: "PSA-BHA-GL",
    version: "23.42.5"

Please also drag and drop the log file to the issue so it is attached.

sonota_error.log

Sonoff POW red light intermittent relay

  • Operating System: Mac
  • Python Version: 3.6.0
  • Sonoff model: Sonoff Pow

I have recently tried to flash the sonoff pow using this process. The script seemed to work fine, having completed the final stage but the device does not show up in wifi list nor will it join an indebuurt1 guest network I've set up with the credentials you outlined.

The led just remains red with no flashing and the device intermittently clicks as if the relay is moving. I've tried all of the holding of buttons and button presses but the device doesn't seem to want to make the led flash on and off.

Logs attached - any help appreciated. Project looks like a great idea!

debug_1510270913.log

Unable to install requirements: issue with netifaces

System: Linux Mint 18.2 64 bit
Python installed: 3.5.2
PIP3 installed: 9.0.1

pip3 install --user -r requirements.txt 
Requirement already satisfied: httplib2>=0.10.3 in /home/atis/.local/lib/python3.5/site-packages (from -r requirements.txt (line 1))
Collecting netifaces>=0.10.6 (from -r requirements.txt (line 2))
  Using cached netifaces-0.10.6.tar.gz
Collecting tornado>=4.5.1 (from -r requirements.txt (line 3))
  Using cached tornado-4.5.2.tar.gz
Installing collected packages: netifaces, tornado
  Running setup.py install for netifaces ... error
    Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-r6gnu8lp/netifaces/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-o75pi5lg-record/install-record.txt --single-version-externally-managed --compile --user --prefix=:
    running install
    running build
    running build_ext
    checking for getifaddrs...found.
    checking for getnameinfo...found.
    checking for IPv6 socket IOCTLs...not found.
    checking for optional header files...netash/ash.h netatalk/at.h netax25/ax25.h neteconet/ec.h netipx/ipx.h netpacket/packet.h linux/irda.h linux/atm.h linux/llc.h linux/tipc.h linux/dn.h.
    checking whether struct sockaddr has a length field...no.
    checking which sockaddr_xxx structs are defined...at ax25 in in6 ipx un ash ec ll atmpvc atmsvc dn irda llc.
    checking for routing socket support...no.
    checking for sysctl(CTL_NET...) support...no.
    checking for netlink support...yes.
    will use netlink to read routing table
    building 'netifaces' extension
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DNETIFACES_VERSION=0.10.6 -DHAVE_GETIFADDRS=1 -DHAVE_GETNAMEINFO=1 -DHAVE_NETASH_ASH_H=1 -DHAVE_NETATALK_AT_H=1 -DHAVE_NETAX25_AX25_H=1 -DHAVE_NETECONET_EC_H=1 -DHAVE_NETIPX_IPX_H=1 -DHAVE_NETPACKET_PACKET_H=1 -DHAVE_LINUX_IRDA_H=1 -DHAVE_LINUX_ATM_H=1 -DHAVE_LINUX_LLC_H=1 -DHAVE_LINUX_TIPC_H=1 -DHAVE_LINUX_DN_H=1 -DHAVE_SOCKADDR_AT=1 -DHAVE_SOCKADDR_AX25=1 -DHAVE_SOCKADDR_IN=1 -DHAVE_SOCKADDR_IN6=1 -DHAVE_SOCKADDR_IPX=1 -DHAVE_SOCKADDR_UN=1 -DHAVE_SOCKADDR_ASH=1 -DHAVE_SOCKADDR_EC=1 -DHAVE_SOCKADDR_LL=1 -DHAVE_SOCKADDR_ATMPVC=1 -DHAVE_SOCKADDR_ATMSVC=1 -DHAVE_SOCKADDR_DN=1 -DHAVE_SOCKADDR_IRDA=1 -DHAVE_SOCKADDR_LLC=1 -DHAVE_PF_NETLINK=1 -I/usr/include/python3.5m -c netifaces.c -o build/temp.linux-x86_64-3.5/netifaces.o
    netifaces.c:1:20: fatal error: Python.h: No such file or directory
    compilation terminated.
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    
    ----------------------------------------
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-r6gnu8lp/netifaces/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-o75pi5lg-record/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-build-r6gnu8lp/netifaces/

Google doesn't help me with this error message.
Is Linux supported at all? Because only Windows is mentioned in the README.

Any idea would be great.

Sonoff S20 Wifi Settings - Device will reboot ....

Hi,

I try to update the firmware with your script but the device can not find Wi-Fi "indebuurt1"
and I can not change the settings.

An update of the firmware with the USB adapter is not possible because the
TX pin is not working on the connector strip.

How can I set WLAN?

Alternative would be an update of the firmware with the USB interface,
but I would need to know where I could still connect TX.

00:00:00 Project sonoff Sonoff (Topic sonoff, Fallback DVES_2E9208, GroupTopic sonoffs) Version 5.8.0
00:00:00 WIF: Connecting to AP2 indebuurt2 in mode 11N as sonoff-4616...
00:00:07 WIF: Connect failed as AP cannot be reached
00:00:07 WIF: Connecting to AP1 indebuurt1 in mode 11N as sonoff-4616...
00:00:14 WIF: Connect failed as AP cannot be reached
00:00:14 WIF: WPSConfigactive for 1 minute
00:00:33 APP: Restarting
---
00:00:00 Project sonoff Sonoff (Topic sonoff, Fallback DVES_2E9208, GroupTopic sonoffs) Version 5.8.0
00:00:00 WIF: Connecting to AP1 indebuurt1 in mode 11N as sonoff-4616...
00:00:07 WIF: Connect failed as AP cannot be reached
00:00:07 WIF: Connecting to AP2 indebuurt2 in mode 11N as sonoff-4616...
00:00:14 WIF: Connect failed as AP cannot be reached
00:00:14 WIF: WPSConfigactive for 1 minute
00:00:33 APP: Restarting

Sonoff 1 Channel Inching Relay Module (ESP 8285)

Hi,

Is there a different process for ESP8285 based boards? I've seen a separate item in the board manager on Arduino IDE, however, in the SonOTA OTA update procedures laid down, there's nothing specific for 8285.

Will the documented process work equally well for 8285 based boards like the one I mentioned?
Or is there anything different I must do?
So far I've not tried for the fear of bricking/overwriting the stock firmware.

Would really appreciate any advice/recommendations.

Thank you.
BG.

No FinalStage SSID on Sonoff POW

I've just managed to flash 3 Sonoff basics with no issues. Thanks again for a fantastic solution!

Now I'm trying to flash a POW and I'm going through the exact same steps but I'm just not getting a FinalStage SSID show up like with the basics.

Any ideas? The LED is flashing 2 shorts and then a pause.

.............................
*** IMPORTANT! ***
** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
This server should automatically be allocated the IP address: 192.168.4.2.
If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.
...........

Sonoff Touch not reaching FinalStage

I've got a Sonoff Touch T1 UK 3 channel switch which is stuck after provisioning stage 2. I however don't see the FinalStage SSID coming up. Down below is the debug log. I also attached 2 images of the PCB itself. If anyone can point out where I can find GND/V3/etc so I can flash it using a cable that would also help
wp_20171106_20_33_55_pro
wp_20171106_20_35_34_pro

:

2017-11-06 19:38:55,175: DEBUG: Current IPs: ['192.168.1.64', '169.254.80.80', '172.16.80.1']
2017-11-06 19:38:59,114: INFO: Using the following configuration:
2017-11-06 19:38:59,114: INFO: Server IP Address: 192.168.1.64
2017-11-06 19:38:59,114: INFO: WiFi SSID: florimel
2017-11-06 19:38:59,114: INFO: WiFi Password: *******************
2017-11-06 19:38:59,114: INFO: Platform: win32
2017-11-06 19:38:59,182: INFO: ** Now connect via WiFi to your Sonoff device.
2017-11-06 19:38:59,182: INFO: ** Please change into the ITEAD WiFi network (ITEAD-100001XXXX). The default password is 12345678.
2017-11-06 19:38:59,182: INFO: To reset the Sonoff to defaults, press the button for 7 seconds and the light will start flashing rapidly.
2017-11-06 19:38:59,182: INFO: ** This application should be kept running and will wait until connected to the Sonoff...
2017-11-06 19:47:44,776: DEBUG: Current IPs: ['169.254.80.80', '172.16.80.1']
2017-11-06 19:47:53,392: DEBUG: Current IPs: ['169.254.80.80', '172.16.80.1', '169.254.45.211']
2017-11-06 19:48:01,940: DEBUG: Current IPs: ['10.10.7.2', '169.254.80.80', '172.16.80.1']
2017-11-06 19:48:01,978: DEBUG: ~~ Connection attempt
2017-11-06 19:48:01,978: DEBUG: >> HTTP GET /10.10.7.1/device
2017-11-06 19:48:02,009: DEBUG: << {
2017-11-06 19:48:02,009: DEBUG: "deviceid": "1000199951",
2017-11-06 19:48:02,009: DEBUG: "apikey": "e6ce914e-f026-4a6f-9059-c7e1bcbc8f37",
2017-11-06 19:48:02,009: DEBUG: "accept": "post"
2017-11-06 19:48:02,009: DEBUG: }
2017-11-06 19:48:02,009: DEBUG: >> HTTP POST /10.10.7.1/ap
2017-11-06 19:48:02,009: DEBUG: >> {
2017-11-06 19:48:02,009: DEBUG: "version": 4,
2017-11-06 19:48:02,009: DEBUG: "ssid": "florimel",
2017-11-06 19:48:02,025: DEBUG: "password": "*******************",
2017-11-06 19:48:02,025: DEBUG: "serverName": "192.168.1.64",
2017-11-06 19:48:02,025: DEBUG: "port": 8443
2017-11-06 19:48:02,025: DEBUG: }
2017-11-06 19:48:02,210: DEBUG: << {
2017-11-06 19:48:02,210: DEBUG: "error": 0
2017-11-06 19:48:02,225: DEBUG: }
2017-11-06 19:48:02,225: INFO: ~~ Provisioning completed
2017-11-06 19:48:02,225: INFO: Starting stage2...
2017-11-06 19:48:02,309: INFO: ** The IP address of <serve_host> (192.168.1.64) is not assigned to any interface on this machine.
2017-11-06 19:48:02,309: INFO: ** Please change WiFi network to florimel and make sure 192.168.1.64 is being assigned to your WiFi interface.
2017-11-06 19:48:02,309: INFO: ** This application should be kept running and will wait until connected to the WiFi...
2017-11-06 19:48:19,000: DEBUG: Current IPs: ['192.168.1.64', '169.254.80.80', '172.16.80.1']
2017-11-06 19:48:19,000: INFO: ~~ Starting web server (HTTP port: 8080, HTTPS port 8443)
2017-11-06 19:48:19,000: INFO: ~~ Waiting for device to connect
2017-11-06 19:48:19,069: INFO: *** IMPORTANT! ***
2017-11-06 19:48:19,069: INFO: ** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
2017-11-06 19:48:19,069: INFO: ** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
2017-11-06 19:48:19,069: INFO: This server should automatically be allocated the IP address: 192.168.4.2.
2017-11-06 19:48:19,069: INFO: If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.
2017-11-06 19:48:28,260: DEBUG: << HTTP POST /dispatch/device
2017-11-06 19:48:28,260: DEBUG: >> /dispatch/device
2017-11-06 19:48:28,260: DEBUG: >> {
2017-11-06 19:48:28,260: DEBUG: "error": 0,
2017-11-06 19:48:28,260: DEBUG: "reason": "ok",
2017-11-06 19:48:28,275: DEBUG: "IP": "192.168.1.64",
2017-11-06 19:48:28,275: DEBUG: "port": 8443
2017-11-06 19:48:28,275: DEBUG: }
2017-11-06 19:48:28,275: INFO: 200 POST /dispatch/device (192.168.1.67) 15.67ms
2017-11-06 19:48:29,188: INFO: 101 GET /api/ws (192.168.1.67) 0.00ms
2017-11-06 19:48:29,188: DEBUG: << WEBSOCKET OPEN
2017-11-06 19:48:29,204: DEBUG: << WEBSOCKET INPUT
2017-11-06 19:48:29,204: DEBUG: << {
2017-11-06 19:48:29,204: DEBUG: "userAgent": "device",
2017-11-06 19:48:29,204: DEBUG: "apikey": "e6ce914e-f026-4a6f-9059-c7e1bcbc8f37",
2017-11-06 19:48:29,220: DEBUG: "deviceid": "1000199951",
2017-11-06 19:48:29,220: DEBUG: "action": "register",
2017-11-06 19:48:29,220: DEBUG: "version": 2,
2017-11-06 19:48:29,220: DEBUG: "romVersion": "2.0.1",
2017-11-06 19:48:29,220: DEBUG: "model": "PSF-B04-GL",
2017-11-06 19:48:29,235: DEBUG: "ts": 263
2017-11-06 19:48:29,235: DEBUG: }
2017-11-06 19:48:29,357: INFO: We are dealing with a PSF-B04-GL model.
2017-11-06 19:48:29,357: DEBUG: ~~~~ register
2017-11-06 19:48:29,373: DEBUG: >> {
2017-11-06 19:48:29,389: DEBUG: "error": 0,
2017-11-06 19:48:29,389: DEBUG: "deviceid": "1000199951",
2017-11-06 19:48:29,389: DEBUG: "apikey": "39076f91-a01f-4dc4-8658-d4a578dd465f",
2017-11-06 19:48:29,389: DEBUG: "config": {
2017-11-06 19:48:29,389: DEBUG: "hb": 1,
2017-11-06 19:48:29,389: DEBUG: "hbInterval": 145
2017-11-06 19:48:29,389: DEBUG: }
2017-11-06 19:48:29,404: DEBUG: }
2017-11-06 19:48:29,662: DEBUG: << WEBSOCKET INPUT
2017-11-06 19:48:29,662: DEBUG: << {
2017-11-06 19:48:29,678: DEBUG: "userAgent": "device",
2017-11-06 19:48:29,678: DEBUG: "apikey": "39076f91-a01f-4dc4-8658-d4a578dd465f",
2017-11-06 19:48:29,678: DEBUG: "deviceid": "1000199951",
2017-11-06 19:48:29,678: DEBUG: "action": "date"
2017-11-06 19:48:29,678: DEBUG: }
2017-11-06 19:48:29,841: DEBUG: ~~~~ date
2017-11-06 19:48:29,841: DEBUG: >> {
2017-11-06 19:48:29,841: DEBUG: "error": 0,
2017-11-06 19:48:29,841: DEBUG: "deviceid": "1000199951",
2017-11-06 19:48:29,841: DEBUG: "apikey": "39076f91-a01f-4dc4-8658-d4a578dd465f",
2017-11-06 19:48:29,841: DEBUG: "date": "2017-11-06T19:48:29.841Z"
2017-11-06 19:48:29,841: DEBUG: }
2017-11-06 19:48:29,863: DEBUG: << WEBSOCKET INPUT
2017-11-06 19:48:29,863: DEBUG: << {
2017-11-06 19:48:29,863: DEBUG: "userAgent": "device",
2017-11-06 19:48:29,879: DEBUG: "apikey": "39076f91-a01f-4dc4-8658-d4a578dd465f",
2017-11-06 19:48:29,879: DEBUG: "deviceid": "1000199951",
2017-11-06 19:48:29,879: DEBUG: "action": "update",
2017-11-06 19:48:29,894: DEBUG: "params": {
2017-11-06 19:48:29,894: DEBUG: "switches": [
2017-11-06 19:48:29,894: DEBUG: {
2017-11-06 19:48:29,894: DEBUG: "switch": "off",
2017-11-06 19:48:29,894: DEBUG: "outlet": 0
2017-11-06 19:48:29,894: DEBUG: },
2017-11-06 19:48:29,894: DEBUG: {
2017-11-06 19:48:29,894: DEBUG: "switch": "off",
2017-11-06 19:48:29,910: DEBUG: "outlet": 1
2017-11-06 19:48:29,910: DEBUG: },
2017-11-06 19:48:29,910: DEBUG: {
2017-11-06 19:48:29,926: DEBUG: "switch": "off",
2017-11-06 19:48:29,926: DEBUG: "outlet": 2
2017-11-06 19:48:29,926: DEBUG: },
2017-11-06 19:48:29,926: DEBUG: {
2017-11-06 19:48:29,926: DEBUG: "switch": "off",
2017-11-06 19:48:29,926: DEBUG: "outlet": 3
2017-11-06 19:48:29,926: DEBUG: }
2017-11-06 19:48:29,926: DEBUG: ],
2017-11-06 19:48:29,941: DEBUG: "configure": [
2017-11-06 19:48:29,941: DEBUG: {
2017-11-06 19:48:29,941: DEBUG: "startup": "off",
2017-11-06 19:48:29,941: DEBUG: "outlet": 0
2017-11-06 19:48:29,958: DEBUG: },
2017-11-06 19:48:29,960: DEBUG: {
2017-11-06 19:48:29,962: DEBUG: "startup": "off",
2017-11-06 19:48:29,963: DEBUG: "outlet": 1
2017-11-06 19:48:29,963: DEBUG: },
2017-11-06 19:48:29,963: DEBUG: {
2017-11-06 19:48:29,963: DEBUG: "startup": "off",
2017-11-06 19:48:29,963: DEBUG: "outlet": 2
2017-11-06 19:48:29,963: DEBUG: },
2017-11-06 19:48:29,963: DEBUG: {
2017-11-06 19:48:29,963: DEBUG: "startup": "off",
2017-11-06 19:48:29,979: DEBUG: "outlet": 3
2017-11-06 19:48:29,979: DEBUG: }
2017-11-06 19:48:29,979: DEBUG: ],
2017-11-06 19:48:29,995: DEBUG: "fwVersion": "2.0.1",
2017-11-06 19:48:29,995: DEBUG: "rssi": -55,
2017-11-06 19:48:29,995: DEBUG: "staMac": "60:01:94:99:86:FE"
2017-11-06 19:48:29,995: DEBUG: }
2017-11-06 19:48:29,995: DEBUG: }
2017-11-06 19:48:30,126: DEBUG: ~~~~ update
2017-11-06 19:48:30,126: DEBUG: >> {
2017-11-06 19:48:30,142: DEBUG: "error": 0,
2017-11-06 19:48:30,163: DEBUG: "deviceid": "1000199951",
2017-11-06 19:48:30,164: DEBUG: "apikey": "39076f91-a01f-4dc4-8658-d4a578dd465f"
2017-11-06 19:48:30,164: DEBUG: }
2017-11-06 19:48:30,164: DEBUG: >> {
2017-11-06 19:48:30,164: DEBUG: "action": "update",
2017-11-06 19:48:30,164: DEBUG: "deviceid": "1000199951",
2017-11-06 19:48:30,164: DEBUG: "apikey": "39076f91-a01f-4dc4-8658-d4a578dd465f",
2017-11-06 19:48:30,164: DEBUG: "userAgent": "app",
2017-11-06 19:48:30,164: DEBUG: "sequence": "1509994110164",
2017-11-06 19:48:30,164: DEBUG: "ts": 0,
2017-11-06 19:48:30,164: DEBUG: "params": {
2017-11-06 19:48:30,179: DEBUG: "switch": "off"
2017-11-06 19:48:30,179: DEBUG: },
2017-11-06 19:48:30,179: DEBUG: "from": "hackepeter"
2017-11-06 19:48:30,195: DEBUG: }
2017-11-06 19:48:30,195: DEBUG: >> {
2017-11-06 19:48:30,195: DEBUG: "action": "update",
2017-11-06 19:48:30,195: DEBUG: "deviceid": "1000199951",
2017-11-06 19:48:30,195: DEBUG: "apikey": "39076f91-a01f-4dc4-8658-d4a578dd465f",
2017-11-06 19:48:30,195: DEBUG: "userAgent": "app",
2017-11-06 19:48:30,195: DEBUG: "sequence": "1509994110195",
2017-11-06 19:48:30,195: DEBUG: "ts": 0,
2017-11-06 19:48:30,211: DEBUG: "params": {
2017-11-06 19:48:30,211: DEBUG: "switch": "on"
2017-11-06 19:48:30,211: DEBUG: },
2017-11-06 19:48:30,211: DEBUG: "from": "hackepeter"
2017-11-06 19:48:30,226: DEBUG: }
2017-11-06 19:48:30,226: DEBUG: >> {
2017-11-06 19:48:30,226: DEBUG: "action": "update",
2017-11-06 19:48:30,226: DEBUG: "deviceid": "1000199951",
2017-11-06 19:48:30,226: DEBUG: "apikey": "39076f91-a01f-4dc4-8658-d4a578dd465f",
2017-11-06 19:48:30,226: DEBUG: "userAgent": "app",
2017-11-06 19:48:30,226: DEBUG: "sequence": "1509994110226",
2017-11-06 19:48:30,226: DEBUG: "ts": 0,
2017-11-06 19:48:30,242: DEBUG: "params": {
2017-11-06 19:48:30,242: DEBUG: "switch": "off"
2017-11-06 19:48:30,257: DEBUG: },
2017-11-06 19:48:30,260: DEBUG: "from": "hackepeter"
2017-11-06 19:48:30,262: DEBUG: }
2017-11-06 19:48:30,264: DEBUG: >> {
2017-11-06 19:48:30,264: DEBUG: "action": "update",
2017-11-06 19:48:30,264: DEBUG: "deviceid": "1000199951",
2017-11-06 19:48:30,264: DEBUG: "apikey": "39076f91-a01f-4dc4-8658-d4a578dd465f",
2017-11-06 19:48:30,264: DEBUG: "userAgent": "app",
2017-11-06 19:48:30,264: DEBUG: "sequence": "1509994110264",
2017-11-06 19:48:30,264: DEBUG: "ts": 0,
2017-11-06 19:48:30,264: DEBUG: "params": {
2017-11-06 19:48:30,264: DEBUG: "switch": "on"
2017-11-06 19:48:30,280: DEBUG: },
2017-11-06 19:48:30,280: DEBUG: "from": "hackepeter"
2017-11-06 19:48:30,280: DEBUG: }
2017-11-06 19:48:30,295: DEBUG: >> {
2017-11-06 19:48:30,295: DEBUG: "action": "update",
2017-11-06 19:48:30,295: DEBUG: "deviceid": "1000199951",
2017-11-06 19:48:30,295: DEBUG: "apikey": "39076f91-a01f-4dc4-8658-d4a578dd465f",
2017-11-06 19:48:30,295: DEBUG: "userAgent": "app",
2017-11-06 19:48:30,295: DEBUG: "sequence": "1509994110295",
2017-11-06 19:48:30,295: DEBUG: "ts": 0,
2017-11-06 19:48:30,295: DEBUG: "params": {
2017-11-06 19:48:30,311: DEBUG: "switch": "off"
2017-11-06 19:48:30,311: DEBUG: },
2017-11-06 19:48:30,311: DEBUG: "from": "hackepeter"
2017-11-06 19:48:30,311: DEBUG: }
2017-11-06 19:48:30,327: DEBUG: >> {
2017-11-06 19:48:30,342: DEBUG: "action": "upgrade",
2017-11-06 19:48:30,342: DEBUG: "deviceid": "1000199951",
2017-11-06 19:48:30,342: DEBUG: "apikey": "39076f91-a01f-4dc4-8658-d4a578dd465f",
2017-11-06 19:48:30,342: DEBUG: "userAgent": "app",
2017-11-06 19:48:30,342: DEBUG: "sequence": "1509994110327",
2017-11-06 19:48:30,342: DEBUG: "ts": 0,
2017-11-06 19:48:30,359: DEBUG: "params": {
2017-11-06 19:48:30,364: DEBUG: "binList": [
2017-11-06 19:48:30,364: DEBUG: {
2017-11-06 19:48:30,364: DEBUG: "downloadUrl": "http://192.168.1.64:8080/ota/image_user1-0x01000.bin",
2017-11-06 19:48:30,364: DEBUG: "digest": "e9b6b18c9905834ec39f88d2ee64362dcc676d13be308460e4a9877f6ddefb0e",
2017-11-06 19:48:30,364: DEBUG: "name": "user1.bin"
2017-11-06 19:48:30,364: DEBUG: },
2017-11-06 19:48:30,364: DEBUG: {
2017-11-06 19:48:30,380: DEBUG: "downloadUrl": "http://192.168.1.64:8080/ota/image_user2-0x81000.bin",
2017-11-06 19:48:30,380: DEBUG: "digest": "fb4753bea76a37d8ce83204593d5d91ade05250e70c34b92f82136ad2e946c31",
2017-11-06 19:48:30,380: DEBUG: "name": "user2.bin"
2017-11-06 19:48:30,380: DEBUG: }
2017-11-06 19:48:30,380: DEBUG: ],
2017-11-06 19:48:30,380: DEBUG: "model": "PSF-B04-GL",
2017-11-06 19:48:30,395: DEBUG: "version": "23.42.5"
2017-11-06 19:48:30,395: DEBUG: }
2017-11-06 19:48:30,395: DEBUG: }
2017-11-06 19:48:30,395: DEBUG: << WEBSOCKET INPUT
2017-11-06 19:48:30,395: DEBUG: << {
2017-11-06 19:48:30,395: DEBUG: "error": 0,
2017-11-06 19:48:30,395: DEBUG: "userAgent": "device",
2017-11-06 19:48:30,395: DEBUG: "apikey": "39076f91-a01f-4dc4-8658-d4a578dd465f",
2017-11-06 19:48:30,411: DEBUG: "deviceid": "1000199951",
2017-11-06 19:48:30,411: DEBUG: "sequence": "1509994110164"
2017-11-06 19:48:30,411: DEBUG: }
2017-11-06 19:48:30,411: DEBUG: ~~~ device acknowledged our action request (seq 1509994110164) with error code 0
2017-11-06 19:48:30,627: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:30,627: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1191391529&sign=43db455013f62653f7895a8966495ee5f3b1a65bcb3e4fd7f5bae209742f2adf (192.168.1.67) 200.63ms
2017-11-06 19:48:30,901: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:30,901: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=812669700&sign=3c76e90eea70fa6663c4e756155ccf03ca5c61bc347d32692d970e37f4583167 (192.168.1.67) 0.00ms
2017-11-06 19:48:31,048: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:31,048: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=553475508&sign=e15b48b1b6cba40b30f2463dc2e66ba64e43ba34ef2b8b92695253f111937a9d (192.168.1.67) 0.00ms
2017-11-06 19:48:31,306: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:31,306: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=445349752&sign=7fc49accce39e4c19a115a978b43b5ed7eef6f5f06e847deb54b8862ba434990 (192.168.1.67) 0.00ms
2017-11-06 19:48:31,507: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:31,522: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1344887256&sign=95746bb969a30b2b34d7bdea4d1276671c16da758a8a48f804a86e80f84aa656 (192.168.1.67) 15.50ms
2017-11-06 19:48:31,674: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:31,676: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=730417256&sign=0b1e8ef27137dd76d9adf89516290ec2e37775bea74b80a41d099b81e2e23327 (192.168.1.67) 37.29ms
2017-11-06 19:48:31,923: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:31,923: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1812158119&sign=f3be10453a50efc74aa3f3ae4eb44291c7af18ab82a160ec61ca1162413d7029 (192.168.1.67) 0.00ms
2017-11-06 19:48:32,124: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:32,124: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=147699711&sign=b965fd51b4ea2047782b7c455f8bbd50d966a2f017c819b4f9e82abb523c11fc (192.168.1.67) 0.00ms
2017-11-06 19:48:32,239: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:32,239: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=880268351&sign=fb30846107b2464ec035bcaaf67aa7d055f095ef747f4a7137eede9c0fa0e2c2 (192.168.1.67) 0.00ms
2017-11-06 19:48:32,540: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:32,540: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1889772843&sign=d01458975679c0ec6a4b65195fe36176b762be2c3c0aaf5531e985c6aa525c5b (192.168.1.67) 0.00ms
2017-11-06 19:48:32,744: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:32,744: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=686078705&sign=d1d055c259c5fb12d4c0847fd3e09a8bc7d336eba923943e5fa89a89eb55d5a2 (192.168.1.67) 0.00ms
2017-11-06 19:48:32,882: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:32,882: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=2105754108&sign=58c246fa4ef444eab671a3c0027dfd199dada57e0b0f9ead899ab54337f02057 (192.168.1.67) 0.00ms
2017-11-06 19:48:33,149: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:33,149: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=182546393&sign=e597eab21ba0ea1cee43d1e6a1e2251b3e84ba0c3475475242e41189896eeac4 (192.168.1.67) 0.00ms
2017-11-06 19:48:33,392: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:33,392: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1949118330&sign=7bf5ba2ed48cb2dacbb7aad94ca0708e8689391662b69ff351265656c8596b64 (192.168.1.67) 1.50ms
2017-11-06 19:48:33,491: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:33,491: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=220137366&sign=8649d6bc7e90b746eda19b463fc74c36ff57ec60346ce03e84a656861b2642fd (192.168.1.67) 0.00ms
2017-11-06 19:48:33,770: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:33,770: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1979932169&sign=35d6b435441449877479fed2cff72f5f7450baac4d35f1ee11f2ff9c84b47d74 (192.168.1.67) 0.00ms
2017-11-06 19:48:33,970: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:33,970: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1089957932&sign=c31fe00db117e74db461b8804883bb534c4c40e5837dd7cc6edd186850ce18e7 (192.168.1.67) 0.00ms
2017-11-06 19:48:34,088: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:34,090: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1873226917&sign=0645eb3f56880f96c57148a2c2262057adb85b64603c959f5242ecd9e2f9e8db (192.168.1.67) 19.50ms
2017-11-06 19:48:34,329: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:34,344: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=715669847&sign=b01f125bab4e1e15370e66401338f47382cd736ecbeabde2e4f897b53108c9ff (192.168.1.67) 15.49ms
2017-11-06 19:48:34,641: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:34,641: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1486937972&sign=952e5a4dbeb52e68294897a0f842b4d79c2de575623b06c24598f1e8fb645b8c (192.168.1.67) 0.00ms
2017-11-06 19:48:34,757: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:34,757: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1196032868&sign=b23a54be06a2db6def29ebd07f957ae38c11435cb357e5a617a12b61595e3203 (192.168.1.67) 15.54ms
2017-11-06 19:48:34,858: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:34,858: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=777206980&sign=2b0e784753392fee663cd523a0d0c6d6fb66a2d0447557ebe977f257100512df (192.168.1.67) 0.00ms
2017-11-06 19:48:34,990: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:34,990: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=68706223&sign=f778cae8a1e8c5dd0de76dbec43a598be6c13ae7df4d2214d4a42b1cd2d087ab (192.168.1.67) 15.49ms
2017-11-06 19:48:35,110: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:35,111: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1843638549&sign=3e2a9f04411398682b2b702ba8340a87f1dd16a54dbfac073f76098cb3602835 (192.168.1.67) 2.99ms
2017-11-06 19:48:35,227: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:35,227: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=212567592&sign=dcaa572d669b1459f181af7df7096e22919e495eca45a52c823a458bc393f102 (192.168.1.67) 0.00ms
2017-11-06 19:48:35,343: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:35,343: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1883488164&sign=ebde06f897f86ee7fa211d0c9a522f3d28db38b5c32bd7a03b6639d3841626e5 (192.168.1.67) 0.00ms
2017-11-06 19:48:35,459: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:35,459: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=964776169&sign=2626cc256680ae5e27cf3eabb6952c253c9fd400b3b613544e237b7a24bc731c (192.168.1.67) 0.00ms
2017-11-06 19:48:35,574: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:35,590: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=928126551&sign=4cc292e6ebad94931ad2fe929cd09aad2ece6a69950be130a728d460236a970f (192.168.1.67) 15.49ms
2017-11-06 19:48:35,690: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:35,690: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1301950427&sign=7d23a4356dadcf33c90d63874ab35bdce0928e764dee79744f1a8f2a29c45eb9 (192.168.1.67) 0.00ms
2017-11-06 19:48:35,859: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:35,875: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1992516190&sign=732c990241c09b646814818252795f027a7694ab7c672b821dae98b970c02299 (192.168.1.67) 46.83ms
2017-11-06 19:48:35,975: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:35,975: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1426542624&sign=56a06c8099fd7985508c5ab1dc4c08c16bf0faa64a88a45a4bfbd1607cbb964a (192.168.1.67) 0.00ms
2017-11-06 19:48:36,091: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:36,091: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=849040635&sign=10c10205e1770b247bfcb2c317fb5c7372d82b8da91b3ee5da46498a3e9d8bce (192.168.1.67) 0.00ms
2017-11-06 19:48:36,190: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:36,206: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=941604920&sign=9abcb024e7df07e734aa178998722f6da9543beed68c11e1c59fa8947a544a39 (192.168.1.67) 15.98ms
2017-11-06 19:48:36,312: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:36,312: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1400427944&sign=f0e7c4762b7fbe169a5978b47d0464327359bba6a1f59a41da7b097c0bfa87d6 (192.168.1.67) 0.00ms
2017-11-06 19:48:36,444: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:36,444: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1994719310&sign=d1a219b7bf874ebfbdd9b3f5c3831d490cd8c6b618c90b7bd753d3208ba18cdb (192.168.1.67) 0.00ms
2017-11-06 19:48:36,560: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:36,560: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=2038269862&sign=9909e09cefa086a275a35af4c3a8c312897f0a348848aaf1b2fb2d169cdc7853 (192.168.1.67) 0.00ms
2017-11-06 19:48:36,675: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:36,675: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=659998484&sign=35a5100808aa59a32acee85e698df8ded404396682a94f67603bb3a24a96b9f2 (192.168.1.67) 0.00ms
2017-11-06 19:48:36,809: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:36,811: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1280937363&sign=3d87bc277ae34b98ba309975f59941f0edf3a72b6c128becc0e3871afa103925 (192.168.1.67) 4.00ms
2017-11-06 19:48:36,928: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:36,928: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1681643301&sign=456cc1b4eae4e6c4491e77f59c3f0682f0249d4c0f5b0badf64450553e1d9137 (192.168.1.67) 0.00ms
2017-11-06 19:48:37,044: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:37,044: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=725914710&sign=7fdfdeb7de0884542bb4b969d46e3b99ea82ea31a8650978b987b2a52b118530 (192.168.1.67) 0.00ms
2017-11-06 19:48:37,144: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:37,144: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1729267236&sign=31acca7d7ba13a303ceb50ff378eb5be2ae530ae1df575d77766312a0522a5fd (192.168.1.67) 0.00ms
2017-11-06 19:48:37,276: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:37,276: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=2023351876&sign=579cddc6d3fe5efcae7a865d2121f8431d5f857267eee178feaf9c6588b47e9b (192.168.1.67) 0.00ms
2017-11-06 19:48:37,392: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:37,408: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=142750431&sign=fc7df58a8e49c519fc52ddfa8232cfdd8a3b8eaab53865c697d1b8100c9fb348 (192.168.1.67) 16.04ms
2017-11-06 19:48:37,513: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:37,513: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1840579929&sign=5fa01fb8dc1dd056401e351bc8772dd0e240c10e6d464f51ad4106d09c27b330 (192.168.1.67) 0.00ms
2017-11-06 19:48:37,630: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:37,630: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=2098560397&sign=2c2771691ea2bffaa56841b672128ed2c3fdea0214505ff4be73931325c4700f (192.168.1.67) 0.00ms
2017-11-06 19:48:37,736: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:37,736: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1910500675&sign=6234a96c550d3b68efb25d7d6a7c163d0549b5948b5544f51fdd32189bc46651 (192.168.1.67) 0.00ms
2017-11-06 19:48:37,840: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:37,855: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1170970491&sign=011adf4759d004bca84d91207e47ed60d44a97a633fde9028f77e0b3bbc5f66c (192.168.1.67) 15.49ms
2017-11-06 19:48:37,971: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:37,971: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1856224190&sign=b5d681dc1ce9c4e1aff5a03a43265aa624447947f31c4562a7597b377b6ae41d (192.168.1.67) 0.00ms
2017-11-06 19:48:38,088: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:38,088: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=983059344&sign=14dce5b954bfd6bdbe4461d033faf4ea0f3a55c3cbfb5ed47b96c7e9d306cff3 (192.168.1.67) 0.00ms
2017-11-06 19:48:38,225: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:38,225: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1718458134&sign=d767a955e88be4fb2918170d1718d39a88bbbb7478e00aeff5f40459b8414f51 (192.168.1.67) 0.00ms
2017-11-06 19:48:38,327: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:38,343: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1876268425&sign=8d33dc4ec2b1ff99d678988176843a38ab1e1f35b261eecfba821a485647a640 (192.168.1.67) 15.66ms
2017-11-06 19:48:38,444: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:38,444: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1764841629&sign=e39c62f41d6ffd2f5ad27fe5b3c1c3dd08d20192e708c30afa61de178ee61a6c (192.168.1.67) 0.00ms
2017-11-06 19:48:38,559: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:38,559: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=398844030&sign=93d5f828587e49050111310ae5f7ec3f4a89b994ae37d78db4dec991980a6993 (192.168.1.67) 0.00ms
2017-11-06 19:48:38,660: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:38,660: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=185252727&sign=27d7c5f96f3a387deb104aeee59a156d8910b92cf407963c6e5bde2b570ba767 (192.168.1.67) 0.00ms
2017-11-06 19:48:38,776: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:38,776: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1370429126&sign=e162e9f0474cf15dca9db6f1b4814e4a83bc6409a6700cd7027fa1e0b1fdc888 (192.168.1.67) 0.00ms
2017-11-06 19:48:38,891: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:38,891: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=502141743&sign=1f725ecef6d0bbc7ec2affec3a0381481b713a8d1e245cb0041e5e09ca22e5cd (192.168.1.67) 15.49ms
2017-11-06 19:48:38,991: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:38,991: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=993687334&sign=19c9a7e8f7a80179c502ad45d99ae5f730e4cd0483be5db287c06d1aa43d592b (192.168.1.67) 0.00ms
2017-11-06 19:48:39,107: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:39,124: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=15934104&sign=53e2c76db8a34831f846b8bc6f70dbf4816cc3c5af251f524e0ab9693db8f1c7 (192.168.1.67) 16.51ms
2017-11-06 19:48:39,245: DEBUG: Sending file: /ota/image_user2-0x81000.bin
2017-11-06 19:48:39,245: INFO: 206 GET /ota/image_user2-0x81000.bin?deviceid=1000199951&ts=1363674760&sign=5c7701ee3f68163c31aace520cd7e092b79ad6d7d634e786fef694f5d09f2b38 (192.168.1.67) 15.64ms
2017-11-06 19:48:39,596: DEBUG: << WEBSOCKET INPUT
2017-11-06 19:48:39,596: DEBUG: << {
2017-11-06 19:48:39,596: DEBUG: "error": 0,
2017-11-06 19:48:39,596: DEBUG: "userAgent": "device",
2017-11-06 19:48:39,596: DEBUG: "apikey": "39076f91-a01f-4dc4-8658-d4a578dd465f",
2017-11-06 19:48:39,596: DEBUG: "deviceid": "1000199951",
2017-11-06 19:48:39,596: DEBUG: "sequence": "1509994110327"
2017-11-06 19:48:39,611: DEBUG: }
2017-11-06 19:48:39,611: DEBUG: ~~~ device acknowledged our action request (seq 1509994110327) with error code 0
2017-11-06 19:49:21,838: INFO: *** IMPORTANT! ***
2017-11-06 19:49:21,838: INFO: ** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
2017-11-06 19:49:21,838: INFO: ** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
2017-11-06 19:49:21,838: INFO: This server should automatically be allocated the IP address: 192.168.4.2.
2017-11-06 19:49:21,838: INFO: If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.
2017-11-06 19:50:24,458: INFO: *** IMPORTANT! ***
2017-11-06 19:50:24,458: INFO: ** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
2017-11-06 19:50:24,458: INFO: ** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
2017-11-06 19:50:24,458: INFO: This server should automatically be allocated the IP address: 192.168.4.2.
2017-11-06 19:50:24,458: INFO: If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.
2017-11-06 19:51:27,065: INFO: *** IMPORTANT! ***
2017-11-06 19:51:27,065: INFO: ** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
2017-11-06 19:51:27,065: INFO: ** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
2017-11-06 19:51:27,065: INFO: This server should automatically be allocated the IP address: 192.168.4.2.
2017-11-06 19:51:27,065: INFO: If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.
2017-11-06 19:52:27,329: DEBUG: ~~ websocket close
2017-11-06 19:52:29,699: INFO: *** IMPORTANT! ***
2017-11-06 19:52:29,699: INFO: ** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
2017-11-06 19:52:29,699: INFO: ** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
2017-11-06 19:52:29,715: INFO: This server should automatically be allocated the IP address: 192.168.4.2.
2017-11-06 19:52:29,716: INFO: If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.
2017-11-06 19:52:31,790: DEBUG: Current IPs: ['169.254.80.80', '172.16.80.1']
2017-11-06 19:52:42,295: DEBUG: Current IPs: ['192.168.1.64', '169.254.80.80', '172.16.80.1']
2017-11-06 19:53:32,334: INFO: *** IMPORTANT! ***
2017-11-06 19:53:32,350: INFO: ** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
2017-11-06 19:53:32,350: INFO: ** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
2017-11-06 19:53:32,350: INFO: This server should automatically be allocated the IP address: 192.168.4.2.
2017-11-06 19:53:32,350: INFO: If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.
2017-11-06 19:54:35,046: INFO: *** IMPORTANT! ***
2017-11-06 19:54:35,047: INFO: ** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
2017-11-06 19:54:35,049: INFO: ** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
2017-11-06 19:54:35,049: INFO: This server should automatically be allocated the IP address: 192.168.4.2.
2017-11-06 19:54:35,049: INFO: If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.
2017-11-06 19:55:39,014: INFO: *** IMPORTANT! ***
2017-11-06 19:55:39,014: INFO: ** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
2017-11-06 19:55:39,014: INFO: ** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
2017-11-06 19:55:39,014: INFO: This server should automatically be allocated the IP address: 192.168.4.2.
2017-11-06 19:55:39,014: INFO: If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.

SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC

Brand New SONOFF Basics(2) out of the box. Using latest master branch. Receive SSL error: (WARNING) error on read: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:2083) after First Stage succeeds. SONOFF units do join the wifi and do attempt to proceed but this error is thrown. Deleting the certificates generates general errors in stead and the use of self signed certificate/key does not change the error message.
`.....................~~ Connection attempt

HTTP GET /10.10.7.1/device
<< {
"apikey": "myapikey",
"accept": "post",
"deviceid": "mydeviceid"
}
HTTP POST /10.10.7.1/ap
%s {
"password": "mypassword",
"ssid": "myssid",
"version": 4,
"port": 8443,
"serverName": "192.168.1.39"
}
<< {
"error": 0
}
~~ Provisioning completed
Starting stage2...
** The IP address of <serve_host> (192.168.1.39) is not assigned to any interface on this machine.
** Please change WiFi network to nestegg and make sure 192.168.1.39 is being assigned to your WiFi interface.
** This application should be kept running and will wait until connected to the WiFi...
........~~ Starting web server (HTTP port: 8080, HTTPS port 8443)
~~ Waiting for device to connect

*** IMPORTANT! ***
** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
This server should automatically be allocated the IP address: 192.168.4.2.
If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.
.2017-10-08 14:38:59,059 (WARNING) error on read: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:2083)
.2017-10-08 14:39:01,439 (WARNING) error on read: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:2083)
...2017-10-08 14:39:07,822 (WARNING) error on read: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:2083)
................2017-10-08 14:39:39,358 (WARNING) error on read: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:2083)`

Did this bricked my sonoff?

i connected with ewelink and my sonoff was DHCP 192.168.1.221. control with ewelink was fine but i need programatical access.

i ran the script

image

now i have no access to it anymore. won't connect into my wifi. the default wifi indebuurt1 does indeed exist but nobody connects into aswell. wifi s:11223344 is where i want to place all my sonoffs later.

if i click the button long time, the green light blinks an i can connect into it's wifi. my PC then gets 10.10.7.2 as IP address but i cant access .7.1

am i misunderstanding the usage?

Client provisioning timesout on windwos

When running on windows the POST timeouts.

I think it relates to the newline \r\n in the JSON from dumps causing problems with parsing on the sonoff end. Additional research to follow - but adding this ticket for anyone else that encounters the same issue.

config and setup questions.

Hi
Im a little stuck on the process to get this installed. Im hoping someone can review my work and let me know this is correct - the Sonoff is connecting to my access point but not getting the bin files - do i have to do ssl?

This is what i have done.

  1. I have SonOTA downloaded and extracted and created directory called "static".
  2. I have Espressif2Arduino downloaded and extracted.
  3. I have esptool installed and running
  4. from Espressif2Arduino, I have added the boards and libraries.
  5. I compile Espressif2Arduino, after changing "URL_QIO_ROM_2" in the sketch to "http://192.168.0.10/static/Espressif2Arduino.ino-0x01000.bin"
  6. Choose "1M (Espressif OTA Rom 1)", in the Arduino menu.
    7, Compile in IDE, move to build (/tmp) and Run "esptool.py elf2image --version 2 Espressif2Arduino.ino.elf"
  7. once done, copy the file to the static directory in SonOTA.
  8. I then repeat from step 6-8, but choosing "1M (Espressif OTA Rom 2)"
  9. I now have Espressif2Arduino.ino-0x01000.bin , Espressif2Arduino.ino-0x81000.bin in my static directory.
  10. In the root of the SonOTA folder i run
    ./sonota.py --wifi-ssid mywifiaccesspoint --wifi-password 1234567890 192.168.0.10
  11. fire up the sonoff device, connect to it with my phone and give it the wifi credentials for mywifiaccesspoint.

...What happens now? where does this get me and what do i need to do to run tasmota ?

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.