Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change default folder for ha-addon and fix docker dependencies #5

Closed
wants to merge 15 commits into from

Conversation

felipecrs
Copy link

@felipecrs
Copy link
Author

The command to build and push the image is:

docker buildx build --build-arg BASEIMGTYPE=hassio --build-arg BUILD_VERSION=latest --file docker/Dockerfile --platform linux/amd64 --target hassio --tag ghcr.io/felipecrs/libretuya-esphome-hassio-amd64:latest --push .

Of course you can adjust it to your own GitHub user name. But, for testing https://github.com/felipecrs/libretuya-esphome-hass-addon is configured to pull from an image in my repo.

After you publish your image, like ghcr.io/kuba2k2/libretuya-esphome-hassio-amd64:latest, you have to access its page (https://ghcr.io/kuba2k2/libretuya-esphome-hassio-amd64) in your browser and set the visibility to Anonymous so everyone can pull it.

@felipecrs
Copy link
Author

If you want to test, just add https://github.com/felipecrs/libretuya-esphome-hass-addon to your HA Addon Store and install it. It should work.

@felipecrs
Copy link
Author

I will transfer the repo to you also.

@felipecrs
Copy link
Author

felipecrs commented Jan 2, 2023

I'm facing some issues. When I try to build a binary from ESPHome, it complains about some missing binaries, like:

arm-none-eabi-g++, cc1plus

Is there a list of OS packages which are required by libretuya?

@felipecrs
Copy link
Author

Actually, I think I found them:

gcc-arm-none-eabi and g++-11 (Debian)

@kuba2k2
Copy link
Member

kuba2k2 commented Jan 2, 2023

We don't need to use GCC system-wide. PlatformIO should pull the toolchain from PIO registry, and use that instead of any other. On "host" Debian/Windows/Ubuntu/etc. you don't need any GCC in your PATH, and PIO chooses one automatically. Can you post any error logs that indicate the requirement of GCC?

@kuba2k2
Copy link
Member

kuba2k2 commented Jan 2, 2023

There's also a release workflow here, which I think we can tweak to run on each push to develop. How would updating the Docker container look like, client-side? Will HA show any info about an available update? Does the HA addon repo need to be updated then as well?

@felipecrs felipecrs changed the title Change default folder for ha-addon Change default folder for ha-addon and fix docker dependencies Jan 2, 2023
@felipecrs
Copy link
Author

I was able to compile a binary just fine by adding these two dependencies.

Without gcc-arm-none-eabi and without g++-11:

chrome_HpVdQfb7FK

INFO Reading configuration /config/libretuya-esphome/portao-tuya.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing portao-tuya (board: wr2e; framework: arduino; platform: https://github.com/kuba2k2/libretuya.git)
--------------------------------------------------------------------------------
Installing/updating ltchiptool
Collecting ltchiptool
  Downloading ltchiptool-2.0.2-py3-none-any.whl (118 kB)
Collecting bk7231tools<2.0.0,>=1.2.1
  Downloading bk7231tools-1.2.4-py3-none-any.whl (27 kB)
Collecting xmodem<0.5.0,>=0.4.6
  Downloading xmodem-0.4.6.tar.gz (32 kB)
Requirement already satisfied: colorama<0.5.0,>=0.4.5 in /usr/local/lib/python3.9/dist-packages (from ltchiptool) (0.4.6)
Collecting prettytable<4.0.0,>=3.3.0
  Downloading prettytable-3.5.0-py3-none-any.whl (26 kB)
Requirement already satisfied: click<9.0.0,>=8.1.3 in /usr/local/lib/python3.9/dist-packages (from ltchiptool) (8.1.3)
Collecting importlib-metadata<5.0.0,>=4.12.0
  Downloading importlib_metadata-4.13.0-py3-none-any.whl (23 kB)
Collecting pycryptodomex<4.0.0,>=3.15.0
  Downloading pycryptodomex-3.16.0-cp35-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.3 MB)
Requirement already satisfied: pyserial<4.0,>=3.5 in /usr/local/lib/python3.9/dist-packages (from bk7231tools<2.0.0,>=1.2.1->ltchiptool) (3.5)
Collecting zipp>=0.5
  Downloading zipp-3.11.0-py3-none-any.whl (6.6 kB)
Collecting wcwidth
  Downloading wcwidth-0.2.5-py2.py3-none-any.whl (30 kB)
Building wheels for collected packages: xmodem
  Building wheel for xmodem (setup.py): started
  Building wheel for xmodem (setup.py): finished with status 'done'
  Created wheel for xmodem: filename=xmodem-0.4.6-py3-none-any.whl size=34564 sha256=3351413bfeb958b74a4f0905351ca1e74212fcc36173bb40a80fc51f6e383495
  Stored in directory: /tmp/pip-ephem-wheel-cache-_x6xr7mn/wheels/03/02/db/af85b84f5d4713e3fcbdf10bbd72306cb4516e1105eddd86d7
Successfully built xmodem
Installing collected packages: zipp, wcwidth, pycryptodomex, xmodem, prettytable, importlib-metadata, bk7231tools, ltchiptool
Successfully installed bk7231tools-1.2.4 importlib-metadata-4.13.0 ltchiptool-2.0.2 prettytable-3.5.0 pycryptodomex-3.16.0 wcwidth-0.2.5 xmodem-0.4.6 zipp-3.11.0
HARDWARE: RTL8710BN 125MHz, 256KB RAM, 788KB Flash
 - framework-arduino-api @ 3.0.0-a4cbfc+sha.3a4cbfc 
 - framework-realtek-amb1 @ 750.0.0-b0bc+sha.750b0bc 
 - library-flashdb@03500fa @ 3500.0.0-fa+sha.03500fa 
 - library-lwip@2.1.3-amb1 @ 2.1.3-amb1+sha.5d6edaa 
 - library-printf@6.0.0 @ 6.0.0+sha.8b831c1 
 - tool-ltchiptool @ 2.0.2+sha.7559033 
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- ESPAsyncWebServer-esphome @ 3.0.0
|   |-- AsyncTCP-esphome @ 2.0.0
|-- DNSServer @ 1.1.0
|-- ArduinoJson @ 6.18.5
Compiling /data/portao-tuya/.pioenvs/portao-tuya/src/esphome/components/api/api_frame_helper.cpp.o
Compiling /data/portao-tuya/.pioenvs/portao-tuya/src/esphome/components/api/api_connection.cpp.o
Compiling /data/portao-tuya/.pioenvs/portao-tuya/src/esphome/components/api/api_pb2.cpp.o
sh: 1: arm-none-eabi-g++: not found
sh: 1: arm-none-eabi-g++: not found
Compiling /data/portao-tuya/.pioenvs/portao-tuya/src/esphome/components/api/api_pb2_service.cpp.o
*** [/data/portao-tuya/.pioenvs/portao-tuya/src/esphome/components/api/api_frame_helper.cpp.o] Error 127
*** [/data/portao-tuya/.pioenvs/portao-tuya/src/esphome/components/api/api_connection.cpp.o] Error 127
sh: 1: arm-none-eabi-g++: not found
*** [/data/portao-tuya/.pioenvs/portao-tuya/src/esphome/components/api/api_pb2.cpp.o] Error 127
sh: 1: arm-none-eabi-g++: not found
*** [/data/portao-tuya/.pioenvs/portao-tuya/src/esphome/components/api/api_pb2_service.cpp.o] Error 127
========================= [FAILED] Took 13.13 seconds =========================

With gcc-arm-none-eabi but without g++-11:

chrome_e0HOWA2XsX

INFO Reading configuration /config/libretuya-esphome/portao-tuya.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing portao-tuya (board: wr2e; framework: arduino; platform: https://github.com/kuba2k2/libretuya.git)
--------------------------------------------------------------------------------
Installing/updating ltchiptool
Collecting ltchiptool
  Downloading ltchiptool-2.0.2-py3-none-any.whl (118 kB)
Collecting prettytable<4.0.0,>=3.3.0
  Downloading prettytable-3.5.0-py3-none-any.whl (26 kB)
Collecting importlib-metadata<5.0.0,>=4.12.0
  Downloading importlib_metadata-4.13.0-py3-none-any.whl (23 kB)
Requirement already satisfied: click<9.0.0,>=8.1.3 in /usr/local/lib/python3.9/dist-packages (from ltchiptool) (8.1.3)
Collecting pycryptodomex<4.0.0,>=3.15.0
  Downloading pycryptodomex-3.16.0-cp35-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.3 MB)
Collecting xmodem<0.5.0,>=0.4.6
  Downloading xmodem-0.4.6.tar.gz (32 kB)
Collecting bk7231tools<2.0.0,>=1.2.1
  Downloading bk7231tools-1.2.4-py3-none-any.whl (27 kB)
Requirement already satisfied: colorama<0.5.0,>=0.4.5 in /usr/local/lib/python3.9/dist-packages (from ltchiptool) (0.4.6)
Requirement already satisfied: pyserial<4.0,>=3.5 in /usr/local/lib/python3.9/dist-packages (from bk7231tools<2.0.0,>=1.2.1->ltchiptool) (3.5)
Collecting zipp>=0.5
  Downloading zipp-3.11.0-py3-none-any.whl (6.6 kB)
Collecting wcwidth
  Downloading wcwidth-0.2.5-py2.py3-none-any.whl (30 kB)
Building wheels for collected packages: xmodem
  Building wheel for xmodem (setup.py): started
  Building wheel for xmodem (setup.py): finished with status 'done'
  Created wheel for xmodem: filename=xmodem-0.4.6-py3-none-any.whl size=34564 sha256=b664ea40990f308db4f39ebe85bc71a71f88b140d4a02d1728bd5a0bca6e6de1
  Stored in directory: /tmp/pip-ephem-wheel-cache-2kea2y_a/wheels/03/02/db/af85b84f5d4713e3fcbdf10bbd72306cb4516e1105eddd86d7
Successfully built xmodem
Installing collected packages: zipp, wcwidth, pycryptodomex, xmodem, prettytable, importlib-metadata, bk7231tools, ltchiptool
Successfully installed bk7231tools-1.2.4 importlib-metadata-4.13.0 ltchiptool-2.0.2 prettytable-3.5.0 pycryptodomex-3.16.0 wcwidth-0.2.5 xmodem-0.4.6 zipp-3.11.0
HARDWARE: RTL8710BN 125MHz, 256KB RAM, 788KB Flash
 - framework-arduino-api @ 3.0.0-a4cbfc+sha.3a4cbfc 
 - framework-realtek-amb1 @ 750.0.0-b0bc+sha.750b0bc 
 - library-flashdb@03500fa @ 3500.0.0-fa+sha.03500fa 
 - library-lwip@2.1.3-amb1 @ 2.1.3-amb1+sha.5d6edaa 
 - library-printf@6.0.0 @ 6.0.0+sha.8b831c1 
 - tool-ltchiptool @ 2.0.2+sha.7559033 
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- ESPAsyncWebServer-esphome @ 3.0.0
|   |-- AsyncTCP-esphome @ 2.0.0
|-- DNSServer @ 1.1.0
|-- ArduinoJson @ 6.18.5
Compiling /data/portao-tuya/.pioenvs/portao-tuya/src/esphome/components/api/api_connection.cpp.o
arm-none-eabi-g++: error trying to exec 'cc1plus': execvp: No such file or directory
Compiling /data/portao-tuya/.pioenvs/portao-tuya/src/esphome/components/api/api_frame_helper.cpp.o
Compiling /data/portao-tuya/.pioenvs/portao-tuya/src/esphome/components/api/api_pb2.cpp.o
*** [/data/portao-tuya/.pioenvs/portao-tuya/src/esphome/components/api/api_connection.cpp.o] Error 1
arm-none-eabi-g++: error trying to exec 'cc1plus': execvp: No such file or directory
arm-none-eabi-g++: error trying to exec 'cc1plus': execvp: No such file or directory
Compiling /data/portao-tuya/.pioenvs/portao-tuya/src/esphome/components/api/api_pb2_service.cpp.o
*** [/data/portao-tuya/.pioenvs/portao-tuya/src/esphome/components/api/api_pb2.cpp.o] Error 1
*** [/data/portao-tuya/.pioenvs/portao-tuya/src/esphome/components/api/api_frame_helper.cpp.o] Error 1
arm-none-eabi-g++: error trying to exec 'cc1plus': execvp: No such file or directory
*** [/data/portao-tuya/.pioenvs/portao-tuya/src/esphome/components/api/api_pb2_service.cpp.o] Error 1
========================= [FAILED] Took 14.06 seconds =========================

There's also a release workflow here, which I think we can tweak to run on each push to develop.

Yes, I plan to refactor it as well. But I would prefer to do it in a separate PR. This PR is more about "making it work".

How would updating the Docker container look like, client-side? Will HA show any info about an available update? Does the HA addon repo need to be updated then as well?

All you need to do is to publish a docker image for the new version, like ghcr.io/kuba2k2/libretuya-esphome-hassio-amd64:2022.12.13 (which will hopefully be automated), and then update the config.yaml from the addon with the new version (https://github.com/kuba2k2/libretuya-esphome-hass-addon/blob/1913d1b519eb3dae098e278f51a768515611b8b9/libretuya-esphome/config.yaml#L37), which certainly can be automated but the automation can come later.

@felipecrs
Copy link
Author

Oh, and yes, it will be displayed as an update for end users just like the ESPHome addon or any other addon does. Users can choose whether to update it or not.

@felipecrs
Copy link
Author

felipecrs commented Jan 2, 2023

Small demo:

chrome_3XfFQCJcPG.mp4

@cyber-junkie9
Copy link

If you want to test

This looks interesting!
Which hardware are you using?

I am getting an error with Pi4 (HAOS 64)

Failed to install add-on
Can't install ghcr.io/felipecrs/libretuya-esphome-hassio-aarch64:latest: 500 Server Error for http+docker://localhost/v1.41/images/create?tag=latest&fromImage=ghcr.io%2Ffelipecrs%2Flibretuya-esphome-hassio-aarch64&platform=linux%2Farm64: Internal Server Error ("Head "https://ghcr.io/v2/felipecrs/libretuya-esphome-hassio-aarch64/manifests/latest": denied")

@felipecrs
Copy link
Author

Oh, I did not publish ARM docker images, so you can only test it with amd64. I'm using an Intel J4125 (amd64).

@felipecrs
Copy link
Author

But this is something the automated workflow will handle.

@catalin2402
Copy link

catalin2402 commented Jan 2, 2023

Also building on ARM64 / ARM v7 is broken in libretuya libretiny-eu/libretiny#48

@mihsu81
Copy link

mihsu81 commented Jan 2, 2023

The file rlx8711B-symbol-v02-img2_xip1_4M_cpp.ld seems to be missing from the add-on.
Compiling locally on my workstation works fine.

libretuya:
  board: generic-rtl8710bx-4mb-980k
  framework:
    version: dev
Linking /data/plug-ezviz/.pioenvs/plug-ezviz/firmware.elf
|-- Image 1: firmware.ota1.elf
/data/cache/platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/5.2.1/../../../../arm-none-eabi/bin/ld: cannot open linker script file rlx8711B-symbol-v02-img2_xip1_4M_cpp.ld: No such file or directory
collect2: error: ld returned 1 exit status
|-- Generated file not found: /data/plug-ezviz/.pioenvs/plug-ezviz/firmware.ota1.elf
*** [/data/plug-ezviz/.pioenvs/plug-ezviz/firmware.elf] Error 1

Edit: Adding compilation logs.
logs_plug-ezviz_upload.txt

@felipecrs
Copy link
Author

The file rlx8711B-symbol-v02-img2_xip1_4M_cpp.ld seems to be missing from the add-on.

Chances are that this is due to the same reason why some dependencies were missing for me.

@mihsu81
Copy link

mihsu81 commented Jan 3, 2023

The file rlx8711B-symbol-v02-img2_xip1_4M_cpp.ld seems to be missing from the add-on.

Chances are that this is due to the same reason why some dependencies were missing for me.

@felipecrs @kuba2k2 I've realized there was typo in realtek-ambz-4mb-980k.json and I've created a PR libretiny-eu/libretiny#56 (comment) to correct it.
P.S. On my machine I had corrected the name manually and forgot to submit a PR.

@felipecrs
Copy link
Author

On "host" Debian/Windows/Ubuntu/etc. you don't need any GCC in your PATH

Are you sure about it? Have you tried with a system that hasn't these libraries?

@catalin2402
Copy link

catalin2402 commented Jan 4, 2023

@felipecrs I've tried without them on a docker image without these 2 dependencies, and it worked (Windows 11 host, docker image build with arch amd64)

@felipecrs
Copy link
Author

Maybe they are only needed for building the boarding I'm building them: wr2e. I'll try again though.

@catalin2402
Copy link

PS: I've made a PR in your fork, that enables aarch64 to use binaries compiled for armhf, so we can compile LT (Beken chips at least) on docker images without any changes. Can you review it and maybe build the docker image for aarch64 ? :)

@catalin2402
Copy link

Oh, didn't tried to compile a RTL chip so far, but for Beken ones, it works without those libraries, I will check for RTL too

@felipecrs
Copy link
Author

Just tried here, same issue, even using the latest git version of libretuya.

@catalin2402
Copy link

catalin2402 commented Jan 4, 2023

PR created here: felipecrs#2
PS: Without these 2 dependencies, docker images went down from 1.8 GB to 300 MB

@felipecrs
Copy link
Author

Tested here, worked for me too!

Stroe Andrei Catalin and others added 3 commits January 4, 2023 16:23
@felipecrs
Copy link
Author

Pushed and updated all the three variants, which can be installed through https://github.com/kuba2k2/libretuya-esphome-hass-addon.

@felipecrs
Copy link
Author

They range from 300MB to 350MB. Quite light!

@kuba2k2
Copy link
Member

kuba2k2 commented Jan 5, 2023

Do I understand correctly, that the docker images don't contain LT itself, they're rather configured to use LT in platformio? But they do contain esphome source, right?

@kuba2k2
Copy link
Member

kuba2k2 commented Jan 5, 2023

I still don't get it why GCC ARM is required during building. Ltchiptool is a pure Python package which doesn't need the C compiler, and compiling LT is done using PlatformIO which manages its toolchains.
Is the apt package fixing some files that PIO's toolchains are missing?

@catalin2402
Copy link

catalin2402 commented Jan 5, 2023

@kuba2k2 The GCC ARM is required on ARMv7 only to build ltchiptool because it depends on pycryptodomex , and when the wheels are builded for pycryptodomex they fail because of missing gcc-arm-linux-gnueabihf , on aarch64 and amd64 there was no issue building pycryptodomex

And yes, the docker contains only the esphome application installed, everything is pulled via platformio, including the esp8266 / esp32 sdks/frameworks etc. It also contains some of the libraries used in esp just to be cached locally

@kuba2k2
Copy link
Member

kuba2k2 commented Jan 5, 2023

So it's because of crypto.. I wonder if there are wheels for pycryptodome instead of pycryptodomex..

Anyway, we can make it an optional dependency of ltchiptool, because currently it's only needed for packaging Beken OTA images (UG, not UF2). Since the images have a field specifying the encryption type, it should be possible to disable it entirely and the bootloader shouldn't complain.

@kuba2k2
Copy link
Member

kuba2k2 commented Jan 8, 2023

FYI, I've transferred the ESPHome HA Addon to the LT organization on GitHub.

@kuba2k2
Copy link
Member

kuba2k2 commented Jan 28, 2023

So it's because of crypto.. I wonder if there are wheels for pycryptodome instead of pycryptodomex..

Anyway, we can make it an optional dependency of ltchiptool, because currently it's only needed for packaging Beken OTA images (UG, not UF2). Since the images have a field specifying the encryption type, it should be possible to disable it entirely and the bootloader shouldn't complain.

Did that today, ltchiptool is now pure-Python so Docker building shouldn't require crypto.

@felipecrs
Copy link
Author

BTW this is the command to build aarch64:

docker buildx build --build-arg BASEIMGTYPE=hassio --build-arg BUILD_VERSION=latest --file docker/Dockerfile --platform linux/arm64 --target hassio --tag ghcr.io/felipecrs/libretuya-esphome-hassio-aarch64:latest . --push

binfmt is needed, so:

docker run --privileged --rm tonistiigi/binfmt --install all

(this is for my own reference as well).

@voed
Copy link

voed commented Apr 25, 2023

Are you planning to keep it up to date? It is really useful.

@kuba2k2 kuba2k2 changed the base branch from platform/libretiny to platform/libretuya April 28, 2023 11:49
@ashthespy
Copy link

ashthespy commented Aug 5, 2023

Ran into the same thing using ghcr.io/libretiny-eu/libretiny-esphome-docker:latest to build my bk7231n based device.
image

Full long in text
INFO Reading configuration /config/libresm.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing kickstart-bk7231n (board: generic-bk7231n-qfn32-tuya; framework: arduino; platform: https://github.com/kuba2k2/libretiny.git)
--------------------------------------------------------------------------------
HARDWARE: BK7231N 120MHz, 256KB RAM, 1.03MB Flash
- framework-arduino-api @ 2022.8.24+sha.237b10a 
- framework-beken-bdk @ 0.0.0+v2021.06.07.sha.6491b8c 
- library-flashdb @ 1.2.0+sha.d5c892f 
- library-freertos @ 9.0.0+sha.95cc959 
- library-freertos-port @ 2023.5.23+sha.a917d93 
- library-lwip @ 2.1.3-bdk+sha.4ee4d34 
- library-printf @ 6.1.0+sha.28a79bd 
- library-uf2ota @ 5.0.0+sha.f955412 
PLATFORM VERSIONS:
- libretiny @ 1.2.0+sha.e99c612
- ltchiptool @ 4.2.3
CUSTOM OPTIONS:
- fw_name = esphome
- fw_version = 2023.7.0-dev
Dependency Graph
|-- ESPAsyncWebServer-esphome @ 3.0.0+sha.9f822c0
|-- DNSServer @ 1.1.0
|-- noise-c @ 0.1.4
|-- ArduinoJson @ 6.18.5
Compiling .pioenvs/kickstart-bk7231n/src/esphome/components/api/api_connection.cpp.o
sh: 1: arm-none-eabi-g++: not found
Compiling .pioenvs/kickstart-bk7231n/src/esphome/components/api/api_frame_helper.cpp.o
sh: 1: arm-none-eabi-g++: not found
Compiling .pioenvs/kickstart-bk7231n/src/esphome/components/api/api_pb2.cpp.o
sh: 1: arm-none-eabi-g++: not found
*** [.pioenvs/kickstart-bk7231n/src/esphome/components/api/api_connection.cpp.o] Error 127
Compiling .pioenvs/kickstart-bk7231n/src/esphome/components/api/api_pb2_service.cpp.o
*** [.pioenvs/kickstart-bk7231n/src/esphome/components/api/api_frame_helper.cpp.o] Error 127
*** [.pioenvs/kickstart-bk7231n/src/esphome/components/api/api_pb2.cpp.o] Error 127
sh: 1: arm-none-eabi-g++: not found
*** [.pioenvs/kickstart-bk7231n/src/esphome/components/api/api_pb2_service.cpp.o] Error 127
========================= [FAILED] Took 10.26 seconds =========================

FWIW, image is running on a Pi based with an aarch64 user space.

Copy link

github-actions bot commented Nov 4, 2023

There hasn't been any activity on this pull request recently. This pull request has been automatically marked as stale because of that and will be closed if no further activity occurs within 7 days. Thank you for your contributions.

@github-actions github-actions bot added the stale label Nov 4, 2023
@felipecrs
Copy link
Author

felipecrs commented Nov 4, 2023

This is no longer needed. @kuba2k2 I would recommend you archive this repo.

@felipecrs felipecrs closed this Nov 4, 2023
@felipecrs felipecrs deleted the ha-addon branch November 4, 2023 15:52
@kuba2k2
Copy link
Member

kuba2k2 commented Nov 4, 2023

This is still a repo for development of LibreTiny in ESPHome. It's not actively maintained, but will certainly be used if there are any changes required to ESPHome's support for LibreTiny.

@felipecrs
Copy link
Author

Ok ok. Thanks.

@github-actions github-actions bot locked and limited conversation to collaborators Nov 6, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants