vejvik

led displej 8x32

Oct 9th, 2024
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.41 KB | None | 0 0
  1. substitutions:
  2. devicename: led
  3. mypin: GPIO33
  4.  
  5. external_components:
  6. - source:
  7. type: local
  8. path: components
  9. components: [ ehmtx ]
  10.  
  11. esphome:
  12. name: $devicename
  13. on_boot:
  14. priority: -100
  15. then:
  16. - ehmtx.text.color:
  17. id: rgb8x32
  18. red: !lambda return 255;
  19. green: !lambda return 140;
  20. blue: !lambda return 0;
  21. - ehmtx.clock.color:
  22. id: rgb8x32
  23. red: !lambda return 150;
  24. green: !lambda return 0;
  25. blue: !lambda return 100;
  26. - ehmtx.today.color:
  27. id: rgb8x32
  28. red: !lambda return 0;
  29. green: !lambda return 100;
  30. blue: !lambda return 0;
  31. - ehmtx.weekday.color:
  32. id: rgb8x32
  33. red: !lambda return 0;
  34. green: !lambda return 0;
  35. blue: !lambda return 100;
  36. - ehmtx.alarm.color:
  37. id: rgb8x32
  38. red: !lambda return 200;
  39. green: !lambda return 150;
  40. blue: !lambda return 30;
  41.  
  42. esp32:
  43. board: esp32dev
  44. framework:
  45. type: arduino
  46.  
  47. font:
  48. - file: fonts/monobit.ttf
  49. id: ehmtx_font
  50. size: 16
  51. glyphs: |
  52. !?"%()+*=,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz€@<>/
  53.  
  54. binary_sensor:
  55. - platform: status
  56. name: "$devicename Status"
  57.  
  58. logger:
  59.  
  60. # Enable Home Assistant API
  61. api:
  62. services:
  63. - service: alarm
  64. variables:
  65. icon_name: string
  66. text: string
  67. then:
  68. lambda: |-
  69. id(rgb8x32)->add_screen(icon_name,text,7,30,true);
  70. id(rgb8x32)->force_screen(icon_name);
  71. - service: screen
  72. variables:
  73. icon_name: string
  74. text: string
  75. then:
  76. - lambda: |-
  77. id(rgb8x32)->add_screen(icon_name,text,5,10,false);
  78. - service: status
  79. then:
  80. lambda: |-
  81. id(rgb8x32)->get_status();
  82. - service: del_screen
  83. variables:
  84. icon_name: string
  85. then:
  86. - ehmtx.delete.screen:
  87. id: rgb8x32
  88. icon_name: !lambda return icon_name;
  89. - service: indicator_on
  90. variables:
  91. r: int
  92. g: int
  93. b: int
  94. then:
  95. - ehmtx.indicator.on:
  96. id: rgb8x32
  97. red: !lambda return r;
  98. green: !lambda return g;
  99. blue: !lambda return b;
  100. - service: force_screen
  101. variables:
  102. icon_name: string
  103. then:
  104. - ehmtx.force.screen:
  105. id: rgb8x32
  106. icon_name: !lambda return icon_name;
  107. - service: text_color
  108. variables:
  109. r: int
  110. g: int
  111. b: int
  112. then:
  113. lambda: |-
  114. id(rgb8x32)->set_text_color(r,g,b);
  115. - service: clock_color
  116. variables:
  117. r: int
  118. g: int
  119. b: int
  120. then:
  121. lambda: |-
  122. id(rgb8x32)->set_clock_color(r,g,b);
  123. - service: alarm_color
  124. variables:
  125. r: int
  126. g: int
  127. b: int
  128. then:
  129. lambda: |-
  130. id(rgb8x32)->set_alarm_color(r,g,b);
  131. - service: weekday_color
  132. variables:
  133. r: int
  134. g: int
  135. b: int
  136. then:
  137. lambda: |-
  138. id(rgb8x32)->set_weekday_color(r,g,b);
  139. - service: today_color
  140. variables:
  141. r: int
  142. g: int
  143. b: int
  144. then:
  145. lambda: |-
  146. id(rgb8x32)->set_today_color(r,g,b);
  147. - service: indicator_off
  148. then:
  149. - ehmtx.indicator.off:
  150. id: rgb8x32
  151.  
  152. number:
  153. - platform: template
  154. name: "$devicename brightness"
  155. min_value: 0
  156. max_value: 255
  157. step: 1
  158. lambda: |-
  159. return id(rgb8x32)->get_brightness();
  160. set_action:
  161. lambda: |-
  162. id(rgb8x32)->set_brightness(x);
  163.  
  164. ota:
  165. password: "fb7842a39223fc32a7bb501416d772b2"
  166.  
  167. wifi:
  168. ssid: !secret wifi_ssid
  169. password: !secret wifi_password
  170.  
  171. light:
  172. - platform: neopixelbus
  173. id: ehmtx_light
  174. type: GRB
  175. variant: WS2812
  176. pin: $mypin
  177. num_leds: 256
  178. color_correct: [30%, 30%, 30%]
  179. name: "$devicename Light"
  180. restore_mode: ALWAYS_OFF
  181. on_turn_on:
  182. lambda: |-
  183. id(ehmtx_display)->set_enabled(false);
  184. on_turn_off:
  185. lambda: |-
  186. id(ehmtx_display)->set_enabled(true);
  187.  
  188. switch:
  189. - platform: template
  190. name: "$devicename Display"
  191. icon: "mdi:power"
  192. restore_mode: ALWAYS_ON
  193. lambda: |-
  194. return id(rgb8x32)->show_display;
  195. turn_on_action:
  196. lambda: |-
  197. id(rgb8x32)->set_display_on();
  198. turn_off_action:
  199. lambda: |-
  200. id(rgb8x32)->set_display_off();
  201.  
  202. time:
  203. - platform: homeassistant
  204. id: ehmtx_time
  205.  
  206. display:
  207. - platform: addressable_light
  208. id: ehmtx_display
  209. addressable_light_id: ehmtx_light
  210. width: 32
  211. height: 8
  212. pixel_mapper: |-
  213. if (x % 2 == 0) {
  214. return (x * 😎 + y;
  215. }
  216. return (x * 😎 + (7 - y);
  217. rotation: 0°
  218. update_interval: 8ms
  219. auto_clear_enabled: true
  220. lambda: |-
  221. id(rgb8x32)->tick();
  222. id(rgb8x32)->draw();
  223.  
  224. ehmtx:
  225. id: rgb8x32
  226. clock_time: 10
  227. screen_time: 15
  228. show_date: true
  229. brightness: 80
  230. matrix_component: ehmtx_display
  231. time_component: ehmtx_time
  232. week_start_monday: true
  233. scroll_count: 2
  234. scroll_interval: 80
  235. frame_interval: 192
  236. font_id: ehmtx_font
  237.  
  238.  
  239. icons:
  240. - file: icons/0_poplach.gif
  241. id: boot
  242. - file: icons/1_barva.gif
  243. id: barva
Advertisement
Add Comment
Please, Sign In to add comment