The Internet Protocol version 6 was designed 20 years ago. Unfortunately many devices (including virtually all IoT devices) still do not support it. IPv4 addresses are getting extremely scarce these days and many ISPs no longer allocate public IPv4 addresses for their customers (Carrier grade NAT) which is already causing connectivity issues for many people including myself. Therefore we should all strive for 100% IPv6 support.
Would it be possible to implement IPv6 on Sonoff devices or is there anything in particular that stands in the way?
Last I checked, the upstream libraries didn't support IPv6 yet: esp8266/Arduino#638
I found this: espressif/arduino-esp32#1261, but this doesn't apply to the ESP8266. And it seems to be in active development and not completely ready for release. When this is finished (and merged into esp8266/Arduino), IPv6 can be used in Tasmota.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
This issue will be auto-closed because there hasn't been any activity for a few months. Feel free to open a new one if you still experience this problem.
Check again https://github.com/esp8266/Arduino/issues/638
Ardui core now supports IPv6 : https://github.com/esp8266/Arduino/pull/5136
can we re-open thins one ?
can we re-open thins one ?
No because it is already implemented in Tasmota. You have to compile by yourself enabling IPV6 support in platformio.ini
If you need further assistant, please, do not hesitate on asking on the Support Chat. Thanks.
Hi @ascillato , thank you for your quick answer.
I had a look at platformio.ini and I didn't find a self exaplanatory commented out parameter to enable it.
That would be good if you could tell which one it is?
my bad , it looks like related to this:
; lwIP 1.4
; -DPIO_FRAMEWORK_ARDUINO_LWIP_HIGHER_BANDWIDTH
; lwIP 2 - Low Memory
; -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY
; lwIP 2 - Higher Bandwidth
; -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH
; lwIP 2 - Higher Bandwidth Low Memory no Features
; -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY_LOW_FLASH
; lwIP 2 - Higher Bandwidth no Features (Tasmota default)
-DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH_LOW_FLASH
; lwIP 2 - Higher Bandwidth IPv6 (use ONLY if you need IPv6, experimental!)
; -DPIO_FRAMEWORK_ARDUINO_LWIP2_IPV6_HIGHER_BANDWIDTH
yes, exactly.
If you need help on using those, you can use the support chat if you want.
Anyway, as the comment explains, it is experimental because the support is on the Arduino Core. You should use the stage core that have several fixes for that, but still experimental.
Use it, if you really need ipv6 in your local network. ipv4 for a local network is reliable and works for all usecases.
Hello,
from the post above I understand that TASMOTA is supporting IPV6 in general.
I have already a working platformio-core setup where I can compile TASMOTA with different features with success!
But I fail with IPV6 :-/
In platformio.ini I have set:
; lwIP 2 - Higher Bandwidth IPv6 (use ONLY if you need IPv6, experimental!)
-DPIO_FRAMEWORK_ARDUINO_LWIP2_IPV6_HIGHER_BANDWIDTH
But it fails to work on a NODEMCU V3 board.
The serial-log from the device shows:
00:00:00 CFG: aus Flash geladen am F4, zählen 8
00:00:00 QPC: Count 1
00:00:00 Projekt tasmota Tasmota Version 8.5.0.1(tasmota)-2_7_4_1
00:00:00 HTP: Web-Server aktiv bei tasmota_40FABB-6843 mit IP-Adresse (IP unset)
00:00:01 RSL: tele/tasmota_40FABB/INFO1 = {"Module":"Sonoff Basic","Version":"8.5.0.1(tasmota)","FallbackTopic":"cmnd/DVES_40FABB_fb/","GroupTopic":"cmnd/tasmotas/"}
00:00:01 RSL: tele/tasmota_40FABB/INFO2 = {"WebServerMode":"Admin","Hostname":"tasmota_40FABB-6843","IPAddress":"(IP unset)","IPv6Address":""}
00:00:01 RSL: tele/tasmota_40FABB/INFO3 = {"RestartReason":"Software/System restart"}
00:00:01 RSL: stat/tasmota_40FABB/RESULT = {"POWER":"OFF"}
00:00:01 RSL: stat/tasmota_40FABB/POWER = OFF
00:00:01 RSL: homeassistant/discovery/807D3A40FABB/config = {"ip":"(IP unset)","dn":"Tasmota","fn":["Tasmota",null,null,null,null,null,null,null],"hn":"tasmota_40FABB-6843","mac":"807D3A40FABB","md":"Sonoff Basic","ofln":"Offline","onln":"Online","state":["OFF","ON","TOGGLE","HOLD"],"sw":"8.5.0.1","t":"tasmota_40FABB","ft":"%prefix%/%topic%/","tp":["cmnd","stat","tele"],"rl":[1,0,0,0,0,0,0,0],"swc":[-1,-1,-1,-1,-1,-1,-1,-1],"btn":[1,0,0,0],"so":{"11":0,"13":0,"17":0,"20":0,"30":0,"37":1,"68":0,"73":0,"80":0},"lt_st":0,"ver":1}
00:00:05 RSL: tele/tasmota_40FABB/STATE = {"Time":"1970-01-01T00:00:05","Uptime":"0T00:00:07","UptimeSec":7,"Heap":27,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":8,"MqttCount":0,"POWER":"OFF","Wifi":{"AP":1,"SSId":"lalala.net","BSSId":"FF:FF:FF:FF:FF:FF","Channel":1,"RSSI":100,"Signal":31,"LinkCount":1,"Downtime":"0T00:00:01"}}
00:00:06 QPC: Reset
So somehow IPV6 is mentioned but for it looks like I miss some build-parameters.
The documentation on having TASMOTA IP6 is quite weak.
Has anyone compiled TASMOTA with IPV6 and can give dedicated hints what settings in platformio.iniare necessary?
I am also curious if ESP-8266 is then turned into a single IPV6 stack or into a dual stack (IP4/IP6) device?
Kai
Hi,
no, you didn't miss a build-parameter. Just did a build on my own
including #pragma message to see if #ifdef LWIP_IPV6 is set. And yes, it
is but the startup seems to be messed up. Normaly IPv6 was DualStack and
you should get at least an IPv4 address but now there is no address at
all. I have to admit that this code was implemented in october 2019 and
since then I didn't check this part. There where a lot of changes
(including ESP32 support) since then. First step is to check
https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WiFi/examples/IPv6/IPv6.ino
what is the example code of the arduino framework. If this works it
needs some digging into the current tasmota code...can't promise to find
some time, soon.
Greetings,
                 Altelch.
LWIP_IPV6
Am 23.09.2020 um 16:24 schrieb freifunkerffm:
>
Hello,
from the post above I understand that TASMOTA is supporting IPV6 in
general.
I have already a working platformio-core setuo where I can compile
TASMOTA with different features with success!
But I fail with IPV6 :-/
In platformio.ini I have set:
; lwIP 2 - Higher Bandwidth IPv6 (use ONLY if you need IPv6,
experimental!)
-DPIO_FRAMEWORK_ARDUINO_LWIP2_IPV6_HIGHER_BANDWIDTHBut it fails to work on a NODEMCU V3 board.
The serial-log from the device shows:
00:00:00 CFG: aus Flash geladen am F4, zählen 8
00:00:00 QPC: Count 1
00:00:00 Projekt tasmota Tasmota Version 8.5.0.1(tasmota)-2_7_4_1
00:00:00 HTP: Web-Server aktiv bei tasmota_40FABB-6843 mit IP-Adresse
(IP unset)
00:00:01 RSL: tele/tasmota_40FABB/INFO1 = {"Module":"Sonoff
Basic","Version":"8.5.0.1(tasmota)","FallbackTopic":"cmnd/DVES_40FABB_fb/","GroupTopic":"cmnd/tasmotas/"}
00:00:01 RSL: tele/tasmota_40FABB/INFO2 =
{"WebServerMode":"Admin","Hostname":"tasmota_40FABB-6843","IPAddress":"(IP
unset)","IPv6Address":""}
00:00:01 RSL: tele/tasmota_40FABB/INFO3 =
{"RestartReason":"Software/System restart"}
00:00:01 RSL: stat/tasmota_40FABB/RESULT = {"POWER":"OFF"}
00:00:01 RSL: stat/tasmota_40FABB/POWER = OFF
00:00:01 RSL: homeassistant/discovery/807D3A40FABB/config = {"ip":"(IP
unset)","dn":"Tasmota","fn":["Tasmota",null,null,null,null,null,null,null],"hn":"tasmota_40FABB-6843","mac":"807D3A40FABB","md":"Sonoff
Basic","ofln":"Offline","onln":"Online","state":["OFF","ON","TOGGLE","HOLD"],"sw":"8.5.0.1","t":"tasmota_40FABB","ft":"%prefix%/%topic%/","tp":["cmnd","stat","tele"],"rl":[1,0,0,0,0,0,0,0],"swc":[-1,-1,-1,-1,-1,-1,-1,-1],"btn":[1,0,0,0],"so":{"11":0,"13":0,"17":0,"20":0,"30":0,"37":1,"68":0,"73":0,"80":0},"lt_st":0,"ver":1}
00:00:05 RSL: tele/tasmota_40FABB/STATE =
{"Time":"1970-01-01T00:00:05","Uptime":"0T00:00:07","UptimeSec":7,"Heap":27,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":8,"MqttCount":0,"POWER":"OFF","Wifi":{"AP":1,"SSId":"lalala.net","BSSId":"FF:FF:FF:FF:FF:FF","Channel":1,"RSSI":100,"Signal":31,"LinkCount":1,"Downtime":"0T00:00:01"}}
00:00:06 QPC: ResetSo somehow IPV6 is mentioned but for it looks like I miss some
buld-parameters.
The documentation on having TASMOTA IP6 is quite weak.Has anyone compiled TASMOTA with IPV6 and can give dedicated hints
what settings in platformio.iniare necessary?
I am also curious if ESP-8266 is then turned into a single IPV6 stack
or into a dual stack (IP4/IP6) device?Kai
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/arendst/Tasmota/issues/2521#issuecomment-697437859,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AATUA4NFDCZP2AT6KTXXN33SHIAIPANCNFSM4E33KYZQ.
That example will work ;-)
Ok,
I'll trust you ;-) Then I need to find what's got messed up and when...
Thx,
            Altelch.
Am 23.09.2020 um 18:46 schrieb david gauchard:
>
That example will work ;-)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/arendst/Tasmota/issues/2521#issuecomment-697675022,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AATUA4JWALBLLDIZOH6LMXLSHIQ5FANCNFSM4E33KYZQ.
Hi,
IPv6 works with 8.5.0. Somehow platformio.ini isn't evaluated after changing DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH_LOW_FLASH to DPIO_FRAMEWORK_ARDUINO_LWIP2_IPV6_HIGHER_BANDWIDTH
Did also put a
into support_wifi.ino in WifiBegin after #ifdef LWIP_IPv6 to see if this branch is compiled. After a few trials gitpod started to compile the whole project again and this time I got my above message during compile. The firmare works as expected:
00:00:05 WIF: Got IPv6 global address xxxx:xxxx:150:5ecf:7fff:fe88:xxxx
Greetings,
Heiko.
Hello Heiko,
I tested it again with a freschly checked out TASMOTA : git clone https://github.com/arendst/Tasmota.git
I changed platformio.ini like that:
;-DPIO_FRAMEWORK_ARDUINO_LWIP3_HIGHER_BANDWIDTH_LOW_FLASH
-DPIO_FRAMEWORK_ARDUINO_LWIP2_IPV6_HIGHER_BANDWIDTH
and used no user_config_override.h
But compiled it with platformio and not with gitpod.
I also added your pragma message in the support_wifi.ino.
That is visible in the build log:
Retrieved .pio/build/tasmota/libeec/ESP8266SdFat/FatLib/FatFileSFN.cpp.o' from cache
/home/k/platformio-coreIP6/TasmotaIPV6/tasmota/support_wifi.ino: In function 'void WifiBegin(uint8_t, uint8_t)':
/home/k/platformio-coreIP6/TasmotaIPV6/tasmota/support_wifi.ino:214:52: note: #pragma message: IPv6 compile time enabled!
#pragma message ("IPv6 compile time enabled!")
^
Retrieved.pio/build/tasmota/libeec/ESP8266SdFat/FatLib/FatVolume.cpp.o' from cache
I pushed the bin via tasmotizer to the NodeMCU V3 board and got:
00:00:00 CFG: aus Flash geladen am F9, zählen 3
00:00:00 QPC: Count 1
00:00:00 Projekt tasmota Tasmota Version 8.5.0.1(tasmota)-2_7_4_1
00:00:00 HTP: Web-Server aktiv bei tasmota_40FABB-6843 mit IP-Adresse (IP unset)
00:00:01 RSL: tele/tasmota_40FABB/INFO1 = {"Module":"Sonoff Basic","Version":"8.5.0.1(tasmota)","FallbackTopic":"cmnd/DVES_40FABB_fb/","GroupTopic":"cmnd/tasmotas/"}
00:00:01 RSL: tele/tasmota_40FABB/INFO2 = {"WebServerMode":"Admin","Hostname":"tasmota_40FABB-6843","IPAddress":"(IP unset)","IPv6Address":""}
00:00:01 RSL: tele/tasmota_40FABB/INFO3 = {"RestartReason":"External System"}
00:00:01 RSL: stat/tasmota_40FABB/RESULT = {"POWER":"OFF"}
00:00:01 RSL: stat/tasmota_40FABB/POWER = OFF
00:00:01 RSL: homeassistant/discovery/807D3A40FABB/config = {"ip":"(IP unset)","dn":"Tasmota","fn":["Tasmota",null,null,null,null,null,null,null],"hn":"tasmota_40FABB-6843","mac":"807D3A40FABB","md":"Sonoff Basic","ofln":"Offline","onln":"Online","state":["OFF","ON","TOGGLE","HOLD"],"sw":"8.5.0.1","t":"tasmota_40FABB","ft":"%prefix%/%topic%/","tp":["cmnd","stat","tele"],"rl":[1,0,0,0,0,0,0,0],"swc":[-1,-1,-1,-1,-1,-1,-1,-1],"btn":[1,0,0,0],"so":{"11":0,"13":0,"17":0,"20":0,"30":0,"37":1,"68":0,"73":0,"80":0},"lt_st":0,"ver":1}
00:00:05 RSL: tele/tasmota_40FABB/STATE = {"Time":"1970-01-01T00:00:05","Uptime":"0T00:00:07","UptimeSec":7,"Heap":26,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":8,"MqttCount":0,"POWER":"OFF","Wifi":{"AP":1,"SSId":"","BSSId":"FF:FF:FF:FF:FF:FF","Channel":1,"RSSI":100,"Signal":31,"LinkCount":1,"Downtime":"0T00:00:01"}}
00:00:06 QPC: Reset
I noticed a new WLAN named ESP-40FABB I could join and found at 192.168.4.1 a new tasmota device to configure.
(no hint for that in the logging)
I just changed the WIFI credentials via GUI and got:
00:00:00 CFG: aus Flash geladen am F6, zählen 6
00:00:00 QPC: Count 1
00:00:00 Projekt tasmota Tasmota Version 8.5.0.1(tasmota)-2_7_4_1
00:00:00 HTP: Web-Server aktiv bei tasmota_40FABB-6843 mit IP-Adresse (IP unset)
00:00:01 RSL: tele/tasmota_40FABB/INFO1 = {"Module":"Generic","Version":"8.5.0.1(tasmota)","FallbackTopic":"cmnd/DVES_40FABB_fb/","GroupTopic":"cmnd/tasmotas/"}
00:00:01 RSL: tele/tasmota_40FABB/INFO2 = {"WebServerMode":"Admin","Hostname":"tasmota_40FABB-6843","IPAddress":"(IP unset)","IPv6Address":""}
00:00:01 RSL: tele/tasmota_40FABB/INFO3 = {"RestartReason":"Software/System restart"}
00:00:01 RSL: homeassistant/discovery/807D3A40FABB/config = {"ip":"(IP unset)","dn":"Tasmota","fn":["Tasmota",null,null,null,null,null,null,null],"hn":"tasmota_40FABB-6843","mac":"807D3A40FABB","md":"Generic","ofln":"Offline","onln":"Online","state":["OFF","ON","TOGGLE","HOLD"],"sw":"8.5.0.1","t":"tasmota_40FABB","ft":"%prefix%/%topic%/","tp":["cmnd","stat","tele"],"rl":[1,0,0,0,0,0,0,0],"swc":[-1,-1,-1,-1,-1,-1,-1,-1],"btn":[0,0,0,0],"so":{"11":0,"13":0,"17":0,"20":0,"30":0,"37":1,"68":0,"73":0,"80":0},"lt_st":0,"ver":1}
00:00:05 RSL: tele/tasmota_40FABB/STATE = {"Time":"1970-01-01T00:00:05","Uptime":"0T00:00:07","UptimeSec":7,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":20,"MqttCount":0,"Wifi":{"AP":1,"SSId":"lalala.net","BSSId":"FF:FF:FF:FF:FF:FF","Channel":1,"RSSI":100,"Signal":31,"LinkCount":1,"Downtime":"0T00:00:01"}}
00:00:06 QPC: Reset
After this the ESP-40FABB WIFI is not gone, but the ESP8266 detects the W-Lan Network.
So for me IPv6 is still not really usable
Is there a kind of command list to execute to get some more information about that.
I am happy to help, if I can
Kai
Hi all,
I gave it another go, this time I compliled the tasmota Development Branch: https://gitpod.io#https://github.com/arendst/Tasmota/tree/development via gitpod.
Just changed one line in platformio.ini , I replaced:
DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH_LOW_FLASH
with
DPIO_FRAMEWORK_ARDUINO_LWIP2_IPV6_HIGHER_BANDWIDTH
And compiled a pure tasmota with: "platformio run -e tasmota"
Used tasmotizer to flash, and got again something I have already seen:
CFG: Loaded from flash at F8, Count 4
00:00:00 QPC: Count 1
00:00:00 Project tasmota Tasmota Version 8.5.0.1(tasmota)-2_7_4_1
00:00:00 HTP: Web server active on tasmota_40FABB-6843 with IP address (IP unset)
00:00:01 RSL: tele/tasmota_40FABB/INFO1 = {"Module":"Sonoff Basic","Version":"8.5.0.1(tasmota)","FallbackTopic":"cmnd/DVES_40FABB_fb/","GroupTopic":"cmnd/tasmotas/"}
00:00:01 RSL: tele/tasmota_40FABB/INFO2 = {"WebServerMode":"Admin","Hostname":"tasmota_40FABB-6843","IPAddress":"(IP unset)","IPv6Address":""}
00:00:01 RSL: tele/tasmota_40FABB/INFO3 = {"RestartReason":"External System"}
So sorry I am not able to confirm that IPV6 is working on a TASMOTA device.
Kai
Most helpful comment
Last I checked, the upstream libraries didn't support IPv6 yet: esp8266/Arduino#638
I found this: espressif/arduino-esp32#1261, but this doesn't apply to the ESP8266. And it seems to be in active development and not completely ready for release. When this is finished (and merged into esp8266/Arduino), IPv6 can be used in Tasmota.