From be9b6fa69721764f229e2b4ce8e0b8a7e181bed2 Mon Sep 17 00:00:00 2001 From: LuBeDa Date: Wed, 10 May 2023 20:26:41 +0200 Subject: [PATCH] CI/CD 3 --- .github/workflows/main.yml | 4 +- tests/EHMTXv2.ttf | Bin 0 -> 12504 bytes {copy2esphome => tests}/ehtmxv2-template.yaml | 22 +- {copy2esphome => tests}/secrets.yaml | 0 tests/ulanzi-easy.yaml | 257 ++++++++++++++++++ 5 files changed, 263 insertions(+), 20 deletions(-) create mode 100644 tests/EHMTXv2.ttf rename {copy2esphome => tests}/ehtmxv2-template.yaml (82%) rename {copy2esphome => tests}/secrets.yaml (100%) create mode 100644 tests/ulanzi-easy.yaml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8af1d28..f2c706e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -15,10 +15,10 @@ jobs: strategy: matrix: firmware: - - file: copy2esphome/ulanzi-easy.yaml + - file: tests/ulanzi-easy.yaml name: Ulanzi-Easy manifest_filename: ulanzi-easy-manifest.json - - file: copy2esphome/ehtmxv2-template.yaml + - file: tests/ehtmxv2-template.yaml name: EHMTX template manifest_filename: ehtmxv2-template-manifest.json fail-fast: false diff --git a/tests/EHMTXv2.ttf b/tests/EHMTXv2.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0709311300c50765061316d86f6e77660916bc87 GIT binary patch literal 12504 zcmb7KX^ zdv7G&SKWQP`=0Ndd$zm07EeUFB$7bxTEG70jr;!jvCBoq{u)o`U%l?C_40FBjQb~W zzvPCSmW@C1(7WFj@pj;TYU}RJ`*z*_^vfcp5YLWnJv2Qei~L7L%J1NP>7LC8_RY)) zIE+1x`<8ol-M9VWIS*VZQe7c(!L2*CZN7Wqif6at9ot{B0}o0YN(+Gnp0aqy?&-tN zw#y>i$0B~TYwy<0#~=Hv67b)}v$eZ7AKoW#%WbG{K>MLRn|E(}WXJFxk&D64i}vk3 zF#YwBr@BR!b>RNfl!Qn4gQvfEXZM=_k@EnB^5$L7FUYPlkr(>MaNi<6pQ3=qKQuL^eS-G*N6`4pBe2-hxwP4(%rD9uGX?q3>c`aiq_ZI^Wr6 zr*pMfb#2cOr;c7uUk=+3dnJ}zcd^~)uI#7kw@c^Z*?LMJf_IeZ*}hM&c;B!Nvh;be z?$YpG@xIvJ-n;Fh#`x@4u5T_4UNz;#b`cujpxh-KDD+z%^Yx*~w{geU^U(mgKo&?3 zo^;8>a#UWBA0easQeKz;kdyMBchk_kq36Z~Swdt;-~SMj{e%3AydnQ7|Lfgo-_QK( z%<-8&pLt>CyEEUJ`O}$i%^aP1X6BkVKmW#mz4mOv7ZA;gS1}Uvy~oH(qbs3+yg{j4 zskXGXwRd!Ob@%l4^`A8`XYSea&N+Af;DYmp7A_iIeEtO^OFnSn=tUPVT{gCSytZQE zl9iW!aMkKHlb2l{Ua|H{WXr2JTyyP*uG@J14Iloy@ww7^k+Zwxko<#g-0Lz((gU~l`ntwYrp>oN1k}{51;z_)8CM-Docd(-6Fe; zVB5?^z3_1@BgDe)(79z^E2to9sBP2J@38Zz2%F)z`xX=@~8br{qOld@qg*R6LbWN zgLT1{;PK#C@JjG@sZ<&&ttxFQ9WEUy9V?wEy;XX@e0F(7`TFvn@>j~wm5-NSFaNf3 zR%K1)_R52mBbDbW$1A_8yj}TSbxw7>dTn)kHL5;Y{fp|W)winewVcy(VavLfJ6aC6 z9BFyJ<;N{=ww!G3YQ3;^UF(k4FSPziYux%;>u=gvE@)fPc3s#44nyWZ+<>%O#m zSN9X$Kk0s_r>$qKXR7D3J>Tm&-t&6T?|RSbUDtbW?~&fW>3z3vPT!ioEq#yoz0miI zzTfs&`Y-Cg2%7YDOd3Zf4v?#tzUaxaH7`|5^6T*zE9KYMycGDT%8LOXm-+amYQ=kR z%}a2-Uys*%7xs?SdWRQzJ-<0|!aw$ZQ;YoV)+0m2ULfrv%O`3BBa?n@&<|N6J%`Gh zu^XdZneA3idbL4sSkF-yGZ~z1xI?x0ZP)>;zxJ+>ES0Js@DZMh65(7&6 z7EGX#RDbMvvbni z5({+*36;BHPA&mY65$J-cdKF`n7d#G2`c6Kf`>C)A}hR^hp5URRQSKoan(($kYD$pwociws9M=cTc2 zc`!nl66nfx%aY71hrB(Y#ud%fS^aCL+-AD3rLsm;JQXnKk>Ry^@`00QraE?*%VWg6b>y_sr|crW zbPM&FUdZ4tnRq2n>(Ix zuHKD2%b956*Ys|kzv(?X057-B9c4nK)jByc-JUvv-T30{8agv`9wvG{hz1j<>@o>V zEz@~~{7(Bo32^&{84``Ne3i`mOux;DX8M}3P_EXdDSnb>yunh|G8KmSvBriO`*L&Q zM2~UOI`I_=>*lU#032Vj$XDkOoL#4ram7g5Fct;cV-`d#pcj~@Ah0x(Muu7boR58G z4E0pb*=8eyRMx+R+0)o6&~c)njT-U^Fo{Aq%pzWnkIC(m;9?`a*+j?4me`5o7u$$n$!zV-{kz@vPVCA%rbCqe9N)8ajYQQ^Rn*sO=z^ zu{pfCA1wl#DNR$hdp|aHBTMGf0jxr6f-1=c&;b3$MzAI0H6pdq8Rb%`kgZ&=w(pIe z(yXX{nVOUVZvXLk*jqzjnBP~9gHC9sDm|Al60IMudy)oGbp*l@r+pPbs+JEC)$c7_Kr<|Wewz<9XL1K%&n>iB&9OeS{g1Be432uJ0ieS9+j`>Zpo*bd14RX4Zwx>~Gf( z9BJ%cNB#H$uY_VS=Eus`VXjr9^TfUw7n}&S{7VjvVx*@=Hh|_ibsxd7-*8AVT&;_~09$tgbc_W)_kaqfPPmvg6`~MvYS)0-$l_=+ zqFgbA(gK;d7Gs`^@^tKzx+Qvrrja&}^_=;8++=?VIfHh=4`YBX$c#U5dm@2wF6nv@ zVPST?xaX&16NhSlu!J;-O|;>GUI-H@r8zqwVaO>!jEjVJeR)beCQpN8&Y@c}ybvma zr?SKj=5W1~SohTi=0ei`R8mLVMf6nO3ZeC{Gu!`R87ZLm0vVvH2clOq4zb!Na^YDw zbD~&P5{6`9*WGb*J*Pd02!Rso**&GWqH;qgVTxBTcVJ~UPNct6mbL6PtKgM@l$YS4h*IRYTm3szB&YLz^cn@6Za{VyWbVI%2^y|o(5u+!XZ_O}auUesoSjmJ5^Y>r2T zWCE!kT|;Mh6j8F=OgqiRe@4SOow|}X@b!ANX80z@seUtTMfR& z((Q7CpmIe`v`mSDVf9SZdDqebv!c5t48b9lKvO#)9a1RQvYlqvk7^f*r+DV z338)Q?nY9FoQq&igXt=K0&|gtqXAY~_$S(W7#0*dui0-HQf@lq((s3g3oxE2zlFl_N zK@~Nxe2SRL7@@{7J(p#3ea<7+d!WUN;CJR-UYyx9O2aPi)ljJ_*U_u-?R*~0Nr$G ztkc4BlR^_H#d7UkKPT4>D~*kS(z)FKo$K^jP`AHog3d`!G&aW!(O6n!FF<&@SrXKlz^1OoQ zuSg(X311ltzJpHc9%u)Wx{v1$OUK5>@T3`(`iss1YS2@C zIf_SI!UPye%CJKf--x$L8}?p1@UKu8tlxt?+y@^x3%Z?y8OhmLOP+(#aX$Qb0cM0l zSXVB>s%kOpc>(sOmdFS2HRh;X1pP0SWh(l()MSNB$R)B;E|m|;D%g9COv+_)xrA~B ztaGKTLm$@5)ll{|a;Hc7GxN zBs=6waxWD92^et~lzkK`|D^0w^&gaJnEX?6Snikmc8-l*F=no7CrVcx+`pGMH5i8a_Vi0&54A2FXVZMpH@~FkSH8?yv=QI)NX|cf S|AjYr^RvUFSMbX3`Trl2*cZzH literal 0 HcmV?d00001 diff --git a/copy2esphome/ehtmxv2-template.yaml b/tests/ehtmxv2-template.yaml similarity index 82% rename from copy2esphome/ehtmxv2-template.yaml rename to tests/ehtmxv2-template.yaml index 9ba87bb..d72632a 100644 --- a/copy2esphome/ehtmxv2-template.yaml +++ b/tests/ehtmxv2-template.yaml @@ -6,14 +6,12 @@ substitutions: external_components: - source: - type: git - url: https://github.com/lubeda/EspHoMaTriXv2 - ref: release - refresh: 60s + type: local + path: EspHoMaTriXv2/components # e.g. /config/esphome/components components: [ ehmtxv2 ] esphome: - comment: "EHMTXv2 from LuBeDa" + comment: "EHMTXv2 TEXT from LuBeDa" name: $devicename esp32: @@ -52,7 +50,7 @@ light: type: GRB internal: true variant: WS2812 - pin: $ledpin + pin: $matrix_pin num_leds: 256 color_correct: [30%, 30%, 30%] gamma_correct: 2.0 @@ -94,17 +92,5 @@ ehmtxv2: icons: - id: error lameid: 40530 - - id: home_assistant - lameid: 47693 - - id: temperature - lameid: 2056 - - id: lightbulb - lameid: 1762 - - id: music - lameid: 45625 - - id: phone - lameid: 1232 - - id: car - lameid: 2819 - id: sleep8x32 url: https://user-images.githubusercontent.com/16407309/224850723-634c9b2d-55d9-44f2-9f93-765c0485b090.gif diff --git a/copy2esphome/secrets.yaml b/tests/secrets.yaml similarity index 100% rename from copy2esphome/secrets.yaml rename to tests/secrets.yaml diff --git a/tests/ulanzi-easy.yaml b/tests/ulanzi-easy.yaml new file mode 100644 index 0000000..1a2a49f --- /dev/null +++ b/tests/ulanzi-easy.yaml @@ -0,0 +1,257 @@ +substitutions: + devicename: ulanzi + ledpin: GPIO32 + buzzerpin: GPIO15 + friendly_name: LED Matrix + board: esp32dev + # Pin definition from https://github.com/aptonline/PixelIt_Ulanzi + battery_pin: GPIO34 + ldr_pin: GPIO35 + matrix_pin: GPIO32 + left_button_pin: GPIO26 + mid_button_pin: GPIO27 + right_button_pin: GPIO14 + buzzer_pin: GPIO15 + scl_pin: GPIO22 + sda_pin: GPIO21 + +switch: + - platform: template + name: "Auto-Adjust Brightness" + id: switch_autobrightness + icon: mdi:brightness-auto + restore_mode: RESTORE_DEFAULT_ON + lambda: |- + if (id(aab_enable)) { + return true; + } else { + return false; + } + turn_on_action: + lambda: |- + id(aab_enable) = true; + turn_off_action: + lambda: |- + id(aab_enable) = false; + +globals: + # aab = auto-adjustable brightness + - id: aab_enable + type: "bool" + restore_value: true + initial_value: "true" + - id: aab_add + type: int + initial_value: '10' + - id: aab_max + type: int + initial_value: '220' + - id: aab_min + type: int + initial_value: '20' + +external_components: + - source: + type: git + url: https://github.com/lubeda/EspHoMaTriXv2 + ref: main + refresh: 60s + components: [ ehmtxv2 ] + +esphome: + comment: "EHMTXv2 from LuBeDa" + name: $devicename + on_boot: + then: + - ds1307.read_time: + +esp32: + board: esp32dev + +font: + - file: EHMTXv2.ttf + size: 16 + id: default_font + glyphs: | + !?"%()+*=,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnÖÄÜöäüopqrstuvwxyz@<>ß§€/ + +binary_sensor: + - platform: status + name: "$devicename Status" + - platform: gpio + pin: + number: $left_button_pin + inverted: true + name: "Left button" + - platform: gpio + pin: + inverted: true + number: $mid_button_pin + mode: INPUT_PULLUP + name: "Middle button" + - platform: gpio + pin: + number: $right_button_pin + inverted: true + name: "Right button" + +logger: + level: WARN + +api: + services: + - service: tune + variables: + tune: string + then: + - rtttl.play: + rtttl: !lambda 'return tune;' + +sensor: + - platform: sht3xd + temperature: + name: "$devicename Temperature" + humidity: + name: "$devicename Relative Humidity" + update_interval: 60s + - platform: adc + pin: $battery_pin + name: "$devicename Battery" + id: battery_voltage + update_interval: 10s + device_class: battery + accuracy_decimals: 0 + attenuation: auto + filters: + - sliding_window_moving_average: + window_size: 15 + send_every: 15 + send_first_at: 1 + - multiply: 1.6 + - lambda: |- + auto r = ((x - 3) / 0.69 * 100.00); + if (r >= 100) return 100; + if (r > 0) return r; + if (r <= 0) return 1; + return 0; + unit_of_measurement: '%' + - platform: adc + id: light_sensor + name: "$devicename Illuminance" + pin: $ldr_pin + update_interval: 10s + attenuation: auto + unit_of_measurement: lx + device_class: illuminance + accuracy_decimals: 0 + filters: + - lambda: |- + return (x / 10000.0) * 2000000.0 - 15 ; + on_value: + then: + - lambda: |- + if ( id(aab_enable) ) { + int n = x / 4 + id(aab_add); // new_value + if (n > id(aab_max)) n = id(aab_max); + if (n < id(aab_min)) n = id(aab_min); + int c = id(rgb8x32)->get_brightness(); // current value + int d = (n - c) * 100 / c; // diff in % + if ( abs(d) > 2 ) id(rgb8x32)->set_brightness(n); + } + +ota: + password: !secret ota_password + +wifi: + ssid: !secret wifi_ssid + password: !secret wifi_password + +web_server: + +output: + - platform: ledc + pin: $buzzerpin + id: rtttl_out + +rtttl: + output: rtttl_out + +i2c: + sda: $sda_pin + scl: $scl_pin + scan: true + id: i2cbus + +light: + - platform: neopixelbus + id: ehmtx_light + type: GRB + internal: true + variant: WS2812 + pin: $ledpin + num_leds: 256 + color_correct: [30%, 30%, 30%] + gamma_correct: 2.0 + name: "$devicename Light" + restore_mode: ALWAYS_OFF + +time: + - platform: homeassistant + on_time_sync: + then: + ds1307.write_time: + - platform: ds1307 + update_interval: never + id: ehmtx_time + +display: + - platform: addressable_light + id: ehmtx_display + addressable_light_id: ehmtx_light + width: 32 + height: 8 + pixel_mapper: |- + if (y % 2 == 0) { + return (y * 32) + x; + } + return (y * 32) + (31 - x); + rotation: 0° + update_interval: 16ms + auto_clear_enabled: true + lambda: |- + id(rgb8x32)->tick(); + id(rgb8x32)->draw(); + +ehmtxv2: + id: rgb8x32 + icons2html: true + matrix_component: ehmtx_display + time_component: ehmtx_time + time_format: "%H:%M" + date_format: "%d.%m." + show_seconds: false + default_font_id: default_font + special_font_id: default_font + icons: + - id: error + lameid: 40530 + - id: home_assistant + lameid: 47693 + - id: temperature + lameid: 2056 + - id: lightbulb + lameid: 1762 + - id: music + lameid: 45625 + - id: phone + lameid: 1232 + - id: car + lameid: 2819 + - id: sleep8x32 + url: https://user-images.githubusercontent.com/16407309/224850723-634c9b2d-55d9-44f2-9f93-765c0485b090.gif + on_next_screen: + - homeassistant.event: + event: esphome.new_screen + data_template: + iconname: !lambda "return icon.c_str();" + text: !lambda "return text.c_str();"