[RELEASE] Sonoff (Connect)

This is an old firmware and driver, I don't know what is not working here, but it does work with this version (current firmware version is 8.3.1):

2 Likes

Hey markus,
Thanks for responding! Will this work with Sonoff connect or do I need install another app for this? Also can I flash this through the FTDI adapter pins method instead of using the Raspberry Pi one?

It's a different app, that thread and the Wiki it links to explains it all.

You do not need to use the Raspberry Pi route, serial flashing is fine and actually what I myself prefer. You can also flash over the Tasmota webpage if you already have Tasmota on the device. In that case, first Minimal of the current version of Tasmota you're running (like 6.7.1) and then go for the full version of the target version of Tasmota, like 8.3.1.

1 Like

Hey Markus,
Thanks for the quick response! I shall check out the Wiki. Regarding the flashing over Tasmota part, I like flashing using the FTDI adapter because it's the only one I have a Youtube video for and doesn't require me to buy anything new. The Pi version seems a lot less messy though maybe I'll eventually graduate to it! For now, I do have Tasmota on the device so I shall try flashing it through the webpage.

Regarding the minimal version, my info page says: "{"deviceType":"Sonoff POW", "version":"2.0.5", "date":"May 23 2019 13:25:55", "mac":"807d3a32c3c2"}". So I should first install the minimal version of 2.0.5? The current interface looks pretty sparse anyway.

Type in "Status 2" in the console and you should get something like this:

STATUS2 = {"StatusFWR":{"Version":"8.3.1(tasmota-he)","BuildDateTime":"2020-05-20T14:46:42","Boot":7,"Core":"2_7_1","SDK":"2.2.2-dev(38a443e)","Hardware":"ESP8266EX","CR":"473/699"}}

Or check at the bottom of the Tasmota device webpage:

Hey Markus,
Wow, that was fast! Not sure how to get to the console here - my interface doesn't look anything like the nice one you have. Here's a screenshot of what it looks likesonoff_web1

Any clue how to get to the console here?

That is an old firmware I suppose, I've never seen it. What does it show under info and under firmware?

1 Like

Yeah, it looks pretty ancient - which is why I wasn't sure if there even was a minimal version of this. When I click info I get "{"deviceType":"Sonoff POW", "version":"2.0.5", "date":"May 23 2019 13:25:55", "mac":"807d3a32c3c2"}" in black text against a completely white background (basically nothing but text). When I click firmware it just gives me an option to update it, nothing else.

Chances are there is then no firmware check, you could try to upload the latest full firmware (NOT minimal) and see if that works. It could fail and make the device not boot. If that happens you would need to flash over serial. If it does work, the first thing you will probably have to do is to find the wifi network it created and login to set your wifi credentials. After that, open the console of that device and run "reset 5".

I didn't even know there was anything that old of Tasmota still running anywhere. It is either that or it is the original Sonoff firmware, but I don't know how that one looks since I have never used it.

Hi Markus,
Tried both the minimal and the full one to no avail. It uploads then briefly stops responding before loading back to the normal page. I believe this is the firmware Eric shared in his earlier release - I can share the file here if that will help. Nothing seems to be working. :frowning:

Edit: Just flashed it with the latest 8.3.1 using the FTDI Adapter - appears to be working well! Thank you for all your help, markus! Really grateful.

2 Likes

Great! Yes, that is probably the easiest way when you're on a version that old. Do make sure to run "reset 5" if you haven't already done so, that is so that all settings are stored properly. You may experience odd behavior otherwise. If you did use the erase and flash method when serially flashing reset 5 is not needed.

1 Like

Will do, Markus! Thank you! Really appreciate your help and the great work you've done on in adapting Tasmota to Hubitat! :smiley:

1 Like

Help...
something is wrong with my arduino environment....not sure what I did but have code that compiled a while back that is getting errors.
I made sure I picked the right chip
image
I'm posting this in the hope that someone else has done the same thing

Thanks
Tim

libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi.cpp.o: In function st::SmartThingsESP32WiFi::WiFiEvent(system_event_id_t)': C:\Users\TimothyO'Callaghan\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi\src/WiFiServer.h:39: multiple definition of st::SmartThingsESP32WiFi::WiFiEvent(system_event_id_t)'
libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi (1).cpp.o:C:\Users\TimothyO'Callaghan\Documents\Arduino\libraries\SmartThingsESP32WiFi/SmartThingsESP32WiFi (1).cpp:70: first defined here
libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi.cpp.o: In function st::SmartThingsESP32WiFi::init()': SmartThingsESP32WiFi.cpp:(.text._ZN2st20SmartThingsESP32WiFi4initEv+0x0): multiple definition of st::SmartThingsESP32WiFi::init()'
libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi (1).cpp.o:SmartThingsESP32WiFi (1).cpp:(.text._ZN2st20SmartThingsESP32WiFi4initEv+0x0): first defined here
libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi.cpp.o:(.bss._ZN2st20SmartThingsESP32WiFi17disconnectCounterE+0x0): multiple definition of st::SmartThingsESP32WiFi::disconnectCounter' libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi (1).cpp.o:(.bss._ZN2st20SmartThingsESP32WiFi17disconnectCounterE+0x0): first defined here libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi.cpp.o: In function st::SmartThingsESP32WiFi::SmartThingsESP32WiFi(unsigned short, IPAddress, unsigned short, void ()(String), String, bool, int)':
SmartThingsESP32WiFi.cpp:(.text._ZN2st20SmartThingsESP32WiFiC2Et9IPAddresstPFv6StringES2_bi+0x0): multiple definition of st::SmartThingsESP32WiFi::SmartThingsESP32WiFi(unsigned short, IPAddress, unsigned short, void (*)(String), String, bool, int)' libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi (1).cpp.o:SmartThingsESP32WiFi (1).cpp:(.text._ZN2st20SmartThingsESP32WiFiC2Et9IPAddresstPFv6StringES2_bi+0x0): first defined here libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi.cpp.o: In function st::SmartThingsESP32WiFi::SmartThingsESP32WiFi(unsigned short, IPAddress, unsigned short, void (
)(String), String, bool, int)':
SmartThingsESP32WiFi.cpp:(.text._ZN2st20SmartThingsESP32WiFiC2Et9IPAddresstPFv6StringES2_bi+0x0): multiple definition of st::SmartThingsESP32WiFi::SmartThingsESP32WiFi(unsigned short, IPAddress, unsigned short, void (*)(String), String, bool, int)' libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi (1).cpp.o:SmartThingsESP32WiFi (1).cpp:(.text._ZN2st20SmartThingsESP32WiFiC2Et9IPAddresstPFv6StringES2_bi+0x0): first defined here libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi.cpp.o: In function st::SmartThingsESP32WiFi::SmartThingsESP32WiFi(String, String, IPAddress, IPAddress, IPAddress, IPAddress, unsigned short, IPAddress, unsigned short, void ()(String), String, bool, int)':
SmartThingsESP32WiFi.cpp:(.text._ZN2st20SmartThingsESP32WiFiC2E6StringS1_9IPAddressS2_S2_S2_tS2_tPFvS1_ES1_bi+0x0): multiple definition of st::SmartThingsESP32WiFi::SmartThingsESP32WiFi(String, String, IPAddress, IPAddress, IPAddress, IPAddress, unsigned short, IPAddress, unsigned short, void (*)(String), String, bool, int)' libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi (1).cpp.o:SmartThingsESP32WiFi (1).cpp:(.text._ZN2st20SmartThingsESP32WiFiC2E6StringS1_9IPAddressS2_S2_S2_tS2_tPFvS1_ES1_bi+0x0): first defined here libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi.cpp.o: In function st::SmartThingsESP32WiFi::SmartThingsESP32WiFi(String, String, IPAddress, IPAddress, IPAddress, IPAddress, unsigned short, IPAddress, unsigned short, void (
)(String), String, bool, int)':
SmartThingsESP32WiFi.cpp:(.text._ZN2st20SmartThingsESP32WiFiC2E6StringS1_9IPAddressS2_S2_S2_tS2_tPFvS1_ES1_bi+0x0): multiple definition of st::SmartThingsESP32WiFi::SmartThingsESP32WiFi(String, String, IPAddress, IPAddress, IPAddress, IPAddress, unsigned short, IPAddress, unsigned short, void (*)(String), String, bool, int)' libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi (1).cpp.o:SmartThingsESP32WiFi (1).cpp:(.text._ZN2st20SmartThingsESP32WiFiC2E6StringS1_9IPAddressS2_S2_S2_tS2_tPFvS1_ES1_bi+0x0): first defined here libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi.cpp.o: In function st::SmartThingsESP32WiFi::SmartThingsESP32WiFi(String, String, unsigned short, IPAddress, unsigned short, void ()(String), String, bool, int)':
SmartThingsESP32WiFi.cpp:(.text._ZN2st20SmartThingsESP32WiFiC2E6StringS1_t9IPAddresstPFvS1_ES1_bi+0x0): multiple definition of st::SmartThingsESP32WiFi::SmartThingsESP32WiFi(String, String, unsigned short, IPAddress, unsigned short, void (*)(String), String, bool, int)' libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi (1).cpp.o:SmartThingsESP32WiFi (1).cpp:(.text._ZN2st20SmartThingsESP32WiFiC2E6StringS1_t9IPAddresstPFvS1_ES1_bi+0x0): first defined here libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi.cpp.o: In function st::SmartThingsESP32WiFi::SmartThingsESP32WiFi(String, String, unsigned short, IPAddress, unsigned short, void (
)(String), String, bool, int)':
SmartThingsESP32WiFi.cpp:(.text._ZN2st20SmartThingsESP32WiFiC2E6StringS1_t9IPAddresstPFvS1_ES1_bi+0x0): multiple definition of st::SmartThingsESP32WiFi::SmartThingsESP32WiFi(String, String, unsigned short, IPAddress, unsigned short, void (*)(String), String, bool, int)' libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi (1).cpp.o:SmartThingsESP32WiFi (1).cpp:(.text._ZN2st20SmartThingsESP32WiFiC2E6StringS1_t9IPAddresstPFvS1_ES1_bi+0x0): first defined here libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi.cpp.o: In function st::SmartThingsESP32WiFi::~SmartThingsESP32WiFi()':
SmartThingsESP32WiFi.cpp:(.text._ZN2st20SmartThingsESP32WiFiD2Ev+0x0): multiple definition of st::SmartThingsESP32WiFi::~SmartThingsESP32WiFi()' libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi (1).cpp.o:SmartThingsESP32WiFi (1).cpp:(.text._ZN2st20SmartThingsESP32WiFiD2Ev+0x0): first defined here libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi.cpp.o: In function st::SmartThingsESP32WiFi::~SmartThingsESP32WiFi()':
SmartThingsESP32WiFi.cpp:(.text._ZN2st20SmartThingsESP32WiFiD2Ev+0x0): multiple definition of st::SmartThingsESP32WiFi::~SmartThingsESP32WiFi()' libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi (1).cpp.o:SmartThingsESP32WiFi (1).cpp:(.text._ZN2st20SmartThingsESP32WiFiD2Ev+0x0): first defined here libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi.cpp.o: In function st::SmartThingsESP32WiFi::~SmartThingsESP32WiFi()':
SmartThingsESP32WiFi.cpp:(.text._ZN2st20SmartThingsESP32WiFiD0Ev+0x0): multiple definition of st::SmartThingsESP32WiFi::~SmartThingsESP32WiFi()' libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi (1).cpp.o:SmartThingsESP32WiFi (1).cpp:(.text._ZN2st20SmartThingsESP32WiFiD0Ev+0x0): first defined here libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi.cpp.o: In function st::SmartThingsESP32WiFi::run()':
SmartThingsESP32WiFi.cpp:(.text._ZN2st20SmartThingsESP32WiFi3runEv+0x0): multiple definition of st::SmartThingsESP32WiFi::run()' libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi (1).cpp.o:SmartThingsESP32WiFi (1).cpp:(.text._ZN2st20SmartThingsESP32WiFi3runEv+0x0): first defined here libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi.cpp.o: In function st::SmartThingsESP32WiFi::send(String)':
SmartThingsESP32WiFi.cpp:(.text._ZN2st20SmartThingsESP32WiFi4sendE6String+0x0): multiple definition of st::SmartThingsESP32WiFi::send(String)' libraries\SmartThingsESP32WiFi\SmartThingsESP32WiFi (1).cpp.o:SmartThingsESP32WiFi (1).cpp:(.text._ZN2st20SmartThingsESP32WiFi4sendE6String+0x0): first defined here libraries\ST_Anything\EX_Alarm.cpp.o: In function st::EX_Alarm::init()':
C:\Users\TimothyO'Callaghan\Documents\Arduino\libraries\ST_Anything/EX_Alarm.cpp:95: multiple definition of st::EX_Alarm::init()' libraries\ST_Anything\EX_Alarm (1).cpp.o:C:\Users\TimothyO'Callaghan\Documents\Arduino\libraries\ST_Anything/EX_Alarm (1).cpp:95: first defined here libraries\ST_Anything\EX_Alarm.cpp.o: In function st::EX_Alarm::~EX_Alarm()':
EX_Alarm.cpp:(.text._ZN2st8EX_AlarmD2Ev+0x0): multiple definition of st::EX_Alarm::~EX_Alarm()' libraries\ST_Anything\EX_Alarm (1).cpp.o:EX_Alarm (1).cpp:(.text._ZN2st8EX_AlarmD2Ev+0x0): first defined here libraries\ST_Anything\EX_Alarm.cpp.o: In function st::EX_Alarm::~EX_Alarm()':
EX_Alarm.cpp:(.text._ZN2st8EX_AlarmD2Ev+0x0): multiple definition of st::EX_Alarm::~EX_Alarm()' libraries\ST_Anything\EX_Alarm (1).cpp.o:EX_Alarm (1).cpp:(.text._ZN2st8EX_AlarmD2Ev+0x0): first defined here libraries\ST_Anything\EX_Alarm.cpp.o: In function st::EX_Alarm::~EX_Alarm()':
EX_Alarm.cpp:(.text._ZN2st8EX_AlarmD0Ev+0x0): multiple definition of st::EX_Alarm::~EX_Alarm()' libraries\ST_Anything\EX_Alarm (1).cpp.o:EX_Alarm (1).cpp:(.text._ZN2st8EX_AlarmD0Ev+0x0): first defined here libraries\ST_Anything\EX_Alarm.cpp.o: In function st::EX_Alarm::refresh()':
EX_Alarm.cpp:(.text._ZN2st8EX_Alarm7refreshEv+0x0): multiple definition of st::EX_Alarm::refresh()' libraries\ST_Anything\EX_Alarm (1).cpp.o:EX_Alarm (1).cpp:(.text._ZN2st8EX_Alarm7refreshEv+0x0): first defined here libraries\ST_Anything\EX_Alarm.cpp.o: In function st::EX_Alarm::writeStateToPin()':
EX_Alarm.cpp:(.text._ZN2st8EX_Alarm15writeStateToPinEv+0x0): multiple definition of st::EX_Alarm::writeStateToPin()' libraries\ST_Anything\EX_Alarm (1).cpp.o:EX_Alarm (1).cpp:(.text._ZN2st8EX_Alarm15writeStateToPinEv+0x0): first defined here libraries\ST_Anything\EX_Alarm.cpp.o: In function st::EX_Alarm::beSmart(String const&)':
EX_Alarm.cpp:(.text._ZN2st8EX_Alarm7beSmartERK6String+0x0): multiple definition of st::EX_Alarm::beSmart(String const&)' libraries\ST_Anything\EX_Alarm (1).cpp.o:EX_Alarm (1).cpp:(.text._ZN2st8EX_Alarm7beSmartERK6String+0x0): first defined here libraries\ST_Anything\EX_Alarm.cpp.o: In function st::EX_Alarm::setPin(unsigned char)':
EX_Alarm.cpp:(.text._ZN2st8EX_Alarm6setPinEh+0x0): multiple definition of st::EX_Alarm::setPin(unsigned char)' libraries\ST_Anything\EX_Alarm (1).cpp.o:EX_Alarm (1).cpp:(.text._ZN2st8EX_Alarm6setPinEh+0x0): first defined here libraries\ST_Anything\EX_Alarm.cpp.o: In function st::EX_Alarm::EX_Alarm(__FlashStringHelper const*, unsigned char, bool, bool, unsigned char)':
EX_Alarm.cpp:(.text._ZN2st8EX_AlarmC2EPK19__FlashStringHelperhbbh+0x0): multiple definition of st::EX_Alarm::EX_Alarm(__FlashStringHelper const*, unsigned char, bool, bool, unsigned char)' libraries\ST_Anything\EX_Alarm (1).cpp.o:EX_Alarm (1).cpp:(.text._ZN2st8EX_AlarmC2EPK19__FlashStringHelperhbbh+0x0): first defined here libraries\ST_Anything\EX_Alarm.cpp.o: In function st::EX_Alarm::EX_Alarm(__FlashStringHelper const*, unsigned char, bool, bool, unsigned char)':
EX_Alarm.cpp:(.text._ZN2st8EX_AlarmC2EPK19__FlashStringHelperhbbh+0x0): multiple definition of st::EX_Alarm::EX_Alarm(__FlashStringHelper const*, unsigned char, bool, bool, unsigned char)' libraries\ST_Anything\EX_Alarm (1).cpp.o:EX_Alarm (1).cpp:(.text._ZN2st8EX_AlarmC2EPK19__FlashStringHelperhbbh+0x0): first defined here libraries\ST_Anything\EX_RGBW_Dim.cpp.o: In function st::EX_RGBW_Dim::~EX_RGBW_Dim()':
C:\Users\TimothyO'Callaghan\Documents\Arduino\libraries\ST_Anything/EX_RGBW_Dim.cpp:149: multiple definition of st::EX_RGBW_Dim::~EX_RGBW_Dim()' libraries\ST_Anything\EX_RGBW_Dim (1).cpp.o:C:\Users\TimothyO'Callaghan\Documents\Arduino\libraries\ST_Anything/EX_RGBW_Dim (1).cpp:125: first defined here libraries\ST_Anything\EX_RGBW_Dim.cpp.o: In function st::EX_RGBW_Dim::~EX_RGBW_Dim()':
EX_RGBW_Dim.cpp:(.text._ZN2st11EX_RGBW_DimD2Ev+0x0): multiple definition of st::EX_RGBW_Dim::~EX_RGBW_Dim()' libraries\ST_Anything\EX_RGBW_Dim (1).cpp.o:EX_RGBW_Dim (1).cpp:(.text._ZN2st11EX_RGBW_DimD2Ev+0x0): first defined here libraries\ST_Anything\EX_RGBW_Dim.cpp.o: In function st::EX_RGBW_Dim::~EX_RGBW_Dim()':
EX_RGBW_Dim.cpp:(.text._ZN2st11EX_RGBW_DimD0Ev+0x0): multiple definition of st::EX_RGBW_Dim::~EX_RGBW_Dim()' libraries\ST_Anything\EX_RGBW_Dim (1).cpp.o:EX_RGBW_Dim (1).cpp:(.text._ZN2st11EX_RGBW_DimD0Ev+0x0): first defined here libraries\ST_Anything\EX_RGBW_Dim.cpp.o: In function st::EX_RGBW_Dim::refresh()':
EX_RGBW_Dim.cpp:(.text._ZN2st11EX_RGBW_Dim7refreshEv+0x0): multiple definition of st::EX_RGBW_Dim::refresh()' libraries\ST_Anything\EX_RGBW_Dim (1).cpp.o:EX_RGBW_Dim (1).cpp:(.text._ZN2st11EX_RGBW_Dim7refreshEv+0x0): first defined here libraries\ST_Anything\EX_RGBW_Dim.cpp.o: In function st::EX_RGBW_Dim::refresh()':
EX_RGBW_Dim.cpp:(.text._ZN2st11EX_RGBW_Dim7refreshEv+0x0): multiple definition of st::EX_RGBW_Dim::init()' libraries\ST_Anything\EX_RGBW_Dim (1).cpp.o:EX_RGBW_Dim (1).cpp:(.text._ZN2st11EX_RGBW_Dim7refreshEv+0x0): first defined here libraries\ST_Anything\EX_RGBW_Dim.cpp.o: In function st::EX_RGBW_Dim::setRedPin(unsigned char, unsigned char)':
EX_RGBW_Dim.cpp:(.text._ZN2st11EX_RGBW_Dim9setRedPinEhh+0x0): multiple definition of st::EX_RGBW_Dim::setRedPin(unsigned char, unsigned char)' libraries\ST_Anything\EX_RGBW_Dim (1).cpp.o:EX_RGBW_Dim (1).cpp:(.text._ZN2st11EX_RGBW_Dim9setRedPinEhh+0x0): first defined here libraries\ST_Anything\EX_RGBW_Dim.cpp.o: In function st::EX_RGBW_Dim::setGreenPin(unsigned char, unsigned char)':
EX_RGBW_Dim.cpp:(.text._ZN2st11EX_RGBW_Dim11setGreenPinEhh+0x0): multiple definition of st::EX_RGBW_Dim::setGreenPin(unsigned char, unsigned char)' libraries\ST_Anything\EX_RGBW_Dim (1).cpp.o:EX_RGBW_Dim (1).cpp:(.text._ZN2st11EX_RGBW_Dim11setGreenPinEhh+0x0): first defined here libraries\ST_Anything\EX_RGBW_Dim.cpp.o: In function st::EX_RGBW_Dim::setBluePin(unsigned char, unsigned char)':
EX_RGBW_Dim.cpp:(.text._ZN2st11EX_RGBW_Dim10setBluePinEhh+0x0): multiple definition of st::EX_RGBW_Dim::setBluePin(unsigned char, unsigned char)' libraries\ST_Anything\EX_RGBW_Dim (1).cpp.o:EX_RGBW_Dim (1).cpp:(.text._ZN2st11EX_RGBW_Dim10setBluePinEhh+0x0): first defined here libraries\ST_Anything\EX_RGBW_Dim.cpp.o: In function st::EX_RGBW_Dim::setWhitePin(unsigned char, unsigned char)':
EX_RGBW_Dim.cpp:(.text._ZN2st11EX_RGBW_Dim11setWhitePinEhh+0x0): multiple definition of st::EX_RGBW_Dim::setWhitePin(unsigned char, unsigned char)' libraries\ST_Anything\EX_RGBW_Dim (1).cpp.o:EX_RGBW_Dim (1).cpp:(.text._ZN2st11EX_RGBW_Dim11setWhitePinEhh+0x0): first defined here libraries\ST_Anything\EX_RGBW_Dim.cpp.o: In function st::EX_RGBW_Dim::writeRGBWToPins()':
EX_RGBW_Dim.cpp:(.text._ZN2st11EX_RGBW_Dim15writeRGBWToPinsEv+0x0): multiple definition of st::EX_RGBW_Dim::writeRGBWToPins()' libraries\ST_Anything\EX_RGBW_Dim (1).cpp.o:EX_RGBW_Dim (1).cpp:(.text._ZN2st11EX_RGBW_Dim15writeRGBWToPinsEv+0x0): first defined here libraries\ST_Anything\EX_RGBW_Dim.cpp.o: In function st::EX_RGBW_Dim::beSmart(String const&)':
EX_RGBW_Dim.cpp:(.text._ZN2st11EX_RGBW_Dim7beSmartERK6String+0x0): multiple definition of st::EX_RGBW_Dim::beSmart(String const&)' libraries\ST_Anything\EX_RGBW_Dim (1).cpp.o:EX_RGBW_Dim (1).cpp:(.text._ZN2st11EX_RGBW_Dim7beSmartERK6String+0x0): first defined here libraries\ST_Anything\EX_RGBW_Dim.cpp.o: In function st::EX_RGBW_Dim::EX_RGBW_Dim(__FlashStringHelper const*, unsigned char, unsigned char, unsigned char, unsigned char, bool, unsigned char, unsigned char, unsigned char, unsigned char)':
EX_RGBW_Dim.cpp:(.text._ZN2st11EX_RGBW_DimC2EPK19__FlashStringHelperhhhhbhhhh+0x0): multiple definition of st::EX_RGBW_Dim::EX_RGBW_Dim(__FlashStringHelper const*, unsigned char, unsigned char, unsigned char, unsigned char, bool, unsigned char, unsigned char, unsigned char, unsigned char)' libraries\ST_Anything\EX_RGBW_Dim (1).cpp.o:EX_RGBW_Dim (1).cpp:(.text._ZN2st11EX_RGBW_DimC2EPK19__FlashStringHelperhhhhbhhhh+0x0): first defined here libraries\ST_Anything\EX_RGBW_Dim.cpp.o: In function st::EX_RGBW_Dim::EX_RGBW_Dim(__FlashStringHelper const*, unsigned char, unsigned char, unsigned char, unsigned char, bool, unsigned char, unsigned char, unsigned char, unsigned char)':
EX_RGBW_Dim.cpp:(.text._ZN2st11EX_RGBW_DimC2EPK19__FlashStringHelperhhhhbhhhh+0x0): multiple definition of st::EX_RGBW_Dim::EX_RGBW_Dim(__FlashStringHelper const*, unsigned char, unsigned char, unsigned char, unsigned char, bool, unsigned char, unsigned char, unsigned char, unsigned char)' libraries\ST_Anything\EX_RGBW_Dim (1).cpp.o:EX_RGBW_Dim (1).cpp:(.text._ZN2st11EX_RGBW_DimC2EPK19__FlashStringHelperhhhhbhhhh+0x0): first defined here libraries\ST_Anything\IS_Button.cpp.o: In function st::IS_Button::~IS_Button()':
C:\Users\TimothyO'Callaghan\Documents\Arduino\libraries\ST_Anything/IS_Button.cpp:47: multiple definition of st::IS_Button::~IS_Button()' libraries\ST_Anything\IS_Button (1).cpp.o:C:\Users\TimothyO'Callaghan\Documents\Arduino\libraries\ST_Anything/IS_Button (1).cpp:47: first defined here libraries\ST_Anything\IS_Button.cpp.o: In function st::IS_Button::~IS_Button()':
IS_Button.cpp:(.text._ZN2st9IS_ButtonD2Ev+0x0): multiple definition of st::IS_Button::~IS_Button()' libraries\ST_Anything\IS_Button (1).cpp.o:IS_Button (1).cpp:(.text._ZN2st9IS_ButtonD2Ev+0x0): first defined here libraries\ST_Anything\IS_Button.cpp.o: In function st::IS_Button::~IS_Button()':
IS_Button.cpp:(.text._ZN2st9IS_ButtonD0Ev+0x0): multiple definition of st::IS_Button::~IS_Button()' libraries\ST_Anything\IS_Button (1).cpp.o:IS_Button (1).cpp:(.text._ZN2st9IS_ButtonD0Ev+0x0): first defined here libraries\ST_Anything\IS_Button.cpp.o: In function st::IS_Button::refresh()':
IS_Button.cpp:(.text._ZN2st9IS_Button7refreshEv+0x0): multiple definition of st::IS_Button::refresh()' libraries\ST_Anything\IS_Button (1).cpp.o:IS_Button (1).cpp:(.text._ZN2st9IS_Button7refreshEv+0x0): first defined here libraries\ST_Anything\IS_Button.cpp.o: In function st::IS_Button::runInterrupt()':
IS_Button.cpp:(.text._ZN2st9IS_Button12runInterruptEv+0x0): multiple definition of st::IS_Button::runInterrupt()' libraries\ST_Anything\IS_Button (1).cpp.o:IS_Button (1).cpp:(.text._ZN2st9IS_Button12runInterruptEv+0x0): first defined here libraries\ST_Anything\IS_Button.cpp.o: In function st::IS_Button::runInterruptEnded()':
IS_Button.cpp:(.text._ZN2st9IS_Button17runInterruptEndedEv+0x0): multiple definition of st::IS_Button::runInterruptEnded()' libraries\ST_Anything\IS_Button (1).cpp.o:IS_Button (1).cpp:(.text._ZN2st9IS_Button17runInterruptEndedEv+0x0): first defined here libraries\ST_Anything\IS_Button.cpp.o: In function st::IS_Button::IS_Button(__FlashStringHelper const*, unsigned char, long, bool, bool, long)':
IS_Button.cpp:(.text._ZN2st9IS_ButtonC2EPK19__FlashStringHelperhlbbl+0x0): multiple definition of st::IS_Button::IS_Button(__FlashStringHelper const*, unsigned char, long, bool, bool, long)' libraries\ST_Anything\IS_Button (1).cpp.o:IS_Button (1).cpp:(.text._ZN2st9IS_ButtonC2EPK19__FlashStringHelperhlbbl+0x0): first defined here libraries\ST_Anything\IS_Button.cpp.o: In function st::IS_Button::IS_Button(__FlashStringHelper const*, unsigned char, long, bool, bool, long)':
IS_Button.cpp:(.text._ZN2st9IS_ButtonC2EPK19__FlashStringHelperhlbbl+0x0): multiple definition of st::IS_Button::IS_Button(__FlashStringHelper const*, unsigned char, long, bool, bool, long)' libraries\ST_Anything\IS_Button (1).cpp.o:IS_Button (1).cpp:(.text._ZN2st9IS_ButtonC2EPK19__FlashStringHelperhlbbl+0x0): first defined here libraries\ST_Anything\IS_Button.cpp.o: In function st::IS_Button::init()':
IS_Button.cpp:(.text._ZN2st9IS_Button4initEv+0x0): multiple definition of st::IS_Button::init()' libraries\ST_Anything\IS_Button (1).cpp.o:IS_Button (1).cpp:(.text._ZN2st9IS_Button4initEv+0x0): first defined here libraries\ST_Anything\PS_PulseCounter.cpp.o:(.bss._ZN2st9m_nCountsE+0x0): multiple definition of st::m_nCounts'
libraries\ST_Anything\PS_PulseCounter (1).cpp.o:(.bss._ZN2st9m_nCountsE+0x0): first defined here
libraries\ST_Anything\PS_PulseCounter.cpp.o: In function st::isrPulse()': PS_PulseCounter.cpp:(.text._ZN2st8isrPulseEv+0x0): multiple definition of st::isrPulse()'
libraries\ST_Anything\PS_PulseCounter (1).cpp.o:PS_PulseCounter (1).cpp:(.text._ZN2st8isrPulseEv+0x0): first defined here
libraries\ST_Anything\PS_PulseCounter.cpp.o: In function st::PS_PulseCounter::~PS_PulseCounter()': PS_PulseCounter.cpp:(.text._ZN2st15PS_PulseCounterD2Ev+0x0): multiple definition of st::PS_PulseCounter::~PS_PulseCounter()'
libraries\ST_Anything\PS_PulseCounter (1).cpp.o:PS_PulseCounter (1).cpp:(.text._ZN2st15PS_PulseCounterD2Ev+0x0): first defined here
libraries\ST_Anything\PS_PulseCounter.cpp.o: In function st::PS_PulseCounter::~PS_PulseCounter()': PS_PulseCounter.cpp:(.text._ZN2st15PS_PulseCounterD2Ev+0x0): multiple definition of st::PS_PulseCounter::~PS_PulseCounter()'
libraries\ST_Anything\PS_PulseCounter (1).cpp.o:PS_PulseCounter (1).cpp:(.text._ZN2st15PS_PulseCounterD2Ev+0x0): first defined here
libraries\ST_Anything\PS_PulseCounter.cpp.o: In function st::PS_PulseCounter::~PS_PulseCounter()': PS_PulseCounter.cpp:(.text._ZN2st15PS_PulseCounterD0Ev+0x0): multiple definition of st::PS_PulseCounter::~PS_PulseCounter()'
libraries\ST_Anything\PS_PulseCounter (1).cpp.o:PS_PulseCounter (1).cpp:(.text._ZN2st15PS_PulseCounterD0Ev+0x0): first defined here
libraries\ST_Anything\PS_PulseCounter.cpp.o: In function st::PS_PulseCounter::beSmart(String const&)': PS_PulseCounter.cpp:(.text._ZN2st15PS_PulseCounter7beSmartERK6String+0x0): multiple definition of st::PS_PulseCounter::beSmart(String const&)'
libraries\ST_Anything\PS_PulseCounter (1).cpp.o:PS_PulseCounter (1).cpp:(.text._ZN2st15PS_PulseCounter7beSmartERK6String+0x0): first defined here
libraries\ST_Anything\PS_PulseCounter.cpp.o: In function st::PS_PulseCounter::getData()': PS_PulseCounter.cpp:(.text._ZN2st15PS_PulseCounter7getDataEv+0x0): multiple definition of st::PS_PulseCounter::getData()'
libraries\ST_Anything\PS_PulseCounter (1).cpp.o:PS_PulseCounter (1).cpp:(.text._ZN2st15PS_PulseCounter7getDataEv+0x0): first defined here
libraries\ST_Anything\PS_PulseCounter.cpp.o: In function st::PS_PulseCounter::setPin(unsigned char)': PS_PulseCounter.cpp:(.text._ZN2st15PS_PulseCounter6setPinEh+0x0): multiple definition of st::PS_PulseCounter::setPin(unsigned char)'
libraries\ST_Anything\PS_PulseCounter (1).cpp.o:PS_PulseCounter (1).cpp:(.text._ZN2st15PS_PulseCounter6setPinEh+0x0): first defined here
libraries\ST_Anything\PS_PulseCounter.cpp.o: In function st::PS_PulseCounter::PS_PulseCounter(__FlashStringHelper const*, unsigned int, int, unsigned char, unsigned char, unsigned char, float, float)': Multiple libraries were found for "WiFi.h" PS_PulseCounter.cpp:(.text._ZN2st15PS_PulseCounterC2EPK19__FlashStringHelperjihhhff+0x0): multiple definition of st::PS_PulseCounter::PS_PulseCounter(__FlashStringHelper const*, unsigned int, int, unsigned char, unsigned char, unsigned char, float, float)'
Used: C:\Users\TimothyO'Callaghan\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi
Not used: C:\Users\TimothyO'Callaghan\Documents\Arduino\libraries\WiFiNINA
Not used: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.51.0_x86__mdqgnx93n4wtt\libraries\WiFi
libraries\ST_Anything\PS_PulseCounter (1).cpp.o:PS_PulseCounter (1).cpp:(.text._ZN2st15PS_PulseCounterC2EPK19__FlashStringHelperjihhhff+0x0): first defined here
libraries\ST_Anything\PS_PulseCounter.cpp.o: In function st::PS_PulseCounter::PS_PulseCounter(__FlashStringHelper const*, unsigned int, int, unsigned char, unsigned char, unsigned char, float, float)': PS_PulseCounter.cpp:(.text._ZN2st15PS_PulseCounterC2EPK19__FlashStringHelperjihhhff+0x0): multiple definition of st::PS_PulseCounter::PS_PulseCounter(__FlashStringHelper const*, unsigned int, int, unsigned char, unsigned char, unsigned char, float, float)'
libraries\ST_Anything\PS_PulseCounter (1).cpp.o:PS_PulseCounter (1).cpp:(.text._ZN2st15PS_PulseCounterC2EPK19__FlashStringHelperjihhhff+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
exit status 1
Error compiling for board DOIT ESP32 DEVKIT V1.

Hi Sonoffers,
I'm moving over to HE from ST.... It's been looking good, but I've hit issues with Sonoff (Connect) & 4ch devices
I added all my Basics fine (though I had to manually change their network ID to be their MAC address).
but when I tried to add a 4CH wifi switch, I don't get the children created.
I had the driver & child driver installed.
I went in to the parent driver once created, and clicked on "Configure", but nothing appears in the log.

On creating the device I am getting this error in the log:

app:2652021-12-10 15:47:14.927 errorjava.lang.NullPointerException: Cannot get property 'label' on null object on line 69 (method configurePDevice)

app:2652021-12-10 15:47:07.684 debugCreating Sonoff Wifi Switch with dni: c0a8563a:0050

Is there a trick to getting the children created?

I'm also finding that the Sonoff (connect) app vanishes/never appears in my Apps list.
If I add it again, I end up with a new instance, which can't be clever.

Any tips for 4ch and for cleaning up my app installs and getting it working nicely?
(apologies - this is a sloppy post)

James

It probably never fully installs because of the error. So first off you might want to click "Add user app", choose Sonoff Connect, and then just clicking "Done". Then go back to the app in the "Apps" list.

As for the error, I will see if it is something that can be fixed real quick. I'm guessing you have the drivers installed for the 4-channel?

Edit: I just ran through everything and once I had all the drivers installed, it seemed to work for me. In addition to the App I had to have these installed:

https://raw.githubusercontent.com/erocm123/Hubitat/master/Drivers/switch-child-device.src/switch-child-device.groovy

https://raw.githubusercontent.com/erocm123/Hubitat/master/Drivers/sonoff-4ch-tasmota.src/sonoff-4ch-tasmota.groovy

Hi Eric - thanks for the speedy response.

I have switch-child-device installed, but for the 4ch I have:

because I think I need to use this vn for it to work with the (non Tasmota) firmware I currently have on them - I think it's this vn:

I'm coming over from ST, and I have 5 of them, all wired up and screwed to the wall, so if I can make these work without moving them to Tasmota I'd like to.

I suspect that I need to resolve the App install first.
I've cleaned right down again, rebooted & re-installed, and the Sonoff Connect app looks good again - it persists etc.
I manually install the 4 CH, and all looks right:


The logs are unhappy, because the device has the wrong Network ID:

but if I change that here:

I can resolve that:

However the device has no children:

The Device page suggests I should hit "configure":

Though this doesn't cause any log lines or events....

Is there anything further I can do? I'd rather not move to Tasmota unless I have to....

Cheers, James

Hi Eric,

Scratch the previous post - the more a read up & look around, the more I realise that I ought to move to Tasmota - So I've bitten the nullet and started moving my 4CH devices over to Tasmota , and Tasmota Device Manager.
It's been pretty painless TBH!

Thanks for all your hard work on all of this (and many many other things that I use).

Cheers - James

1 Like

Hey, Does anyone know if there is a way to change the SSID/password without having to flash the firmware over UART? I have 3 Sonoff wifi switches one is the Sonoff Touch and they are installed in hard to reach places. However, I would like to add a guest/iot SSID to my router, so these are isolated and more secure, the guest would not have internet access. I set these up years ago, I do remember that the WIFI settings were when the sonoff device broadcast it's internal SSID on 192.168.4.1 and then you join that and add user WIFI details. So, my guess is that the base firmware has to be reflashed. Also, I'm up to newer versions which could help, aka Tasmota.

Thanks.

I'm doing this from memory, as I've moved my Sonoffs to tasomota, so may be wrong, but I'm pretty sure that as long as you have them connected to their current wifi, you can go to the IP for the device, and put the new settings in - this is what it looks like for Tasmota:

1 Like

Thanks for the response, but unfortunately no, the sonoff-connect app and devices spawned do not offer any setting for wifi other than ip/mask/gateway.

However, there is an option in the device ip address http page for 'Firmware Update' in which you can select a file and select 'Update'. So, I wonder if that would permit me to upload tasmota?