Advertisement
marrecar

custom cover

Jul 31st, 2022
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.96 KB | None | 0 0
  1. ---
  2. ### Card Cover ###
  3. custom_card_cover_marko:
  4. template:
  5. - "icon_more_info_new"
  6. - "ulm_actions_card"
  7. - "ulm_translation_engine"
  8. variables:
  9. ulm_card_cover_name: "[[[ return entity.attributes.friendly_name ]]]"
  10. ulm_card_cover_display_left_right: false
  11. ulm_card_curtain_display_collapse_expand: false
  12. ulm_card_cover_garage: false
  13. ulm_card_cover_gate: false
  14. ulm_card_cover_enable_controls: false
  15. ulm_card_cover_enable_slider: false
  16. ulm_card_cover_enable_horizontal: false
  17. ulm_card_cover_enable_popup: false
  18. show_icon: false
  19. show_name: false
  20. show_label: false
  21. styles:
  22. grid:
  23. - grid-template-areas: >
  24. [[[
  25. var areas = [];
  26. if (variables.ulm_card_cover_enable_horizontal) {
  27. if ( variables.ulm_card_cover_enable_slider) {
  28. return "\"item1 item3\"";
  29. } else {
  30. return "\"item1 item2\"";
  31. }
  32. } else {
  33. areas.push("item1 item1");
  34. if ( variables.ulm_card_cover_enable_controls) {
  35. areas.push("item2 item2");
  36. }
  37. if ( variables.ulm_card_cover_enable_slider) {
  38. areas.push("item3 item3");
  39. }
  40. }
  41. return "\"" + areas.join("\" \"") + "\"";
  42. ]]]
  43. - grid-template-columns: "1fr 1fr"
  44. - grid-template-rows: >
  45. [[[
  46. var rows = [];
  47. rows.push("min-content");
  48. if (variables.ulm_card_cover_enable_horizontal) {
  49. return "min-content";
  50. } else {
  51. if ( variables.ulm_card_cover_enable_controls) {
  52. rows.push("min-content");
  53. }
  54. if ( variables.ulm_card_cover_enable_slider) {
  55. rows.push("min-content");
  56. }
  57. }
  58. return rows.join(" ");
  59. ]]]
  60. - row-gap: "12px"
  61. card:
  62. - border-radius: "var(--border-radius)"
  63. - box-shadow: "var(--box-shadow)"
  64. - padding: "12px"
  65. custom_fields:
  66. item2:
  67. - display: >
  68. [[[
  69. if (variables.ulm_card_cover_enable_controls) {
  70. return "block";
  71. } else {
  72. return "none";
  73. }
  74. ]]]
  75. item3:
  76. - display: >
  77. [[[
  78. if (variables.ulm_card_cover_enable_slider) {
  79. return "block";
  80. } else {
  81. return "none";
  82. }
  83. ]]]
  84. custom_fields:
  85. item1:
  86. card:
  87. type: "custom:button-card"
  88. custom_fields:
  89. item1:
  90. card:
  91. type: "custom:button-card"
  92. variables:
  93. ulm_input_select_option: "[[[ return variables.ulm_input_select_option; ]]]"
  94. ulm_input_select: "[[[ return variables.ulm_input_select; ]]]"
  95. entity: "[[[ return entity.entity_id ]]]"
  96. icon: |
  97. [[[
  98. var icon = "mdi:help-circle";
  99. if (typeof states[entity.entity_id].attributes.current_position === "undefined"){
  100. if (states[entity.entity_id].state == "closed"){
  101. if (variables.ulm_card_curtain_display_collapse_expand){
  102. var icon = "mdi:curtains-closed";
  103. } else if (variables.ulm_card_cover_garage){
  104. var icon = "mdi:garage-variant";
  105. } else if (variables.ulm_card_cover_gate){
  106. var icon = "mdi:gate";
  107. } else
  108. var icon = "mdi:curtains-closed";
  109. } else
  110. if (variables.ulm_card_curtain_display_collapse_expand){
  111. var icon = "mdi:curtains";
  112. } else if (variables.ulm_card_cover_garage){
  113. var icon = "mdi:garage-open-variant";
  114. } else if (variables.ulm_card_cover_gate){
  115. var icon = "mdi:gate-open";
  116. }else
  117. var icon = "mdi:curtains";
  118. } else {
  119. if (states[entity.entity_id].attributes.current_position == 0){
  120. if (variables.ulm_card_curtain_display_collapse_expand){
  121. var icon = "mdi:curtains-closed";
  122. } else if (variables.ulm_card_cover_garage){
  123. var icon = "mdi:garage-variant";
  124. } else if(variables.ulm_card_cover_gate){
  125. var icon = "mdi:gate";
  126. } else
  127. var icon = "mdi:curtains-closed";
  128. } else
  129. if (variables.ulm_card_curtain_display_collapse_expand){
  130. var icon = "mdi:curtains";
  131. } else if(variables.ulm_card_cover_garage){
  132. var icon = "mdi:garage-open-variant";
  133. } else if(variables.ulm_card_cover_gate){
  134. var icon = "mdi:gate-open";
  135. }
  136. else
  137. var icon = "mdi:curtains";
  138. }
  139. return icon ;
  140. ]]]
  141. styles:
  142. icon:
  143. - color: >
  144. [[[
  145. if (typeof states[entity.entity_id].attributes.current_position === "undefined"){
  146. if (states[entity.entity_id].state == "closed"){
  147. return 'rgba(var(--color-theme),0.2)';
  148. } else
  149. return 'rgba(var(--color-blue),1)'
  150. } else {
  151. if (states[entity.entity_id].attributes.current_position == 0){
  152. return 'rgba(var(--color-theme),0.2)';
  153. } else {
  154. return 'rgba(var(--color-blue),1)'
  155. }
  156. }
  157. ]]]
  158. img_cell:
  159. - background-color: >
  160. [[[
  161. if (typeof states[entity.entity_id].attributes.current_position === "undefined"){
  162. if (states[entity.entity_id].state == "closed"){
  163. return 'rgba(var(--color-theme),0.05)';
  164. } else
  165. return 'rgba(var(--color-blue),0.2)';
  166. } else {
  167. if (states[entity.entity_id].attributes.current_position == 0){
  168. return 'rgba(var(--color-theme),0.05)';
  169. } else {
  170. return 'rgba(var(--color-blue),0.2)';
  171. }
  172. }
  173. ]]]
  174. item2:
  175. card:
  176. type: "custom:button-card"
  177. variables:
  178. ulm_input_select_option: "[[[ return variables.ulm_input_select_option; ]]]"
  179. ulm_input_select: "[[[ return variables.ulm_input_select; ]]]"
  180. entity: "[[[ return entity.entity_id ]]]"
  181. name: "[[[ return variables.ulm_card_cover_name ]]]"
  182. label: >-
  183. [[[
  184. if (entity.state !="unavailable"){
  185. if (typeof states[entity.entity_id].attributes.current_position === "undefined"){
  186. if (states[entity.entity_id].state == "closed"){
  187. return variables.ulm_translation_state;
  188. } else
  189. return variables.ulm_translation_state;
  190. } else {
  191. if (states[entity.entity_id].attributes.current_position == 0){
  192. return variables.ulm_translation_state;
  193. } else {
  194. return variables.ulm_translation_state + " • " + (states[entity.entity_id].attributes.current_position) + "%" ;
  195. }
  196. }
  197. } else {
  198. return variables.ulm_translation_state;
  199. }
  200. ]]]
  201. item2:
  202. card:
  203. type: "custom:button-card"
  204. template: "list_3_items"
  205. custom_fields:
  206. item1:
  207. card:
  208. type: "custom:button-card"
  209. template: "widget_icon"
  210. state:
  211. - value: "closed"
  212. styles:
  213. icon:
  214. - color: "rgba(var(--color-theme),0.4)"
  215. tap_action:
  216. action: "call-service"
  217. service: "cover.close_cover"
  218. service_data:
  219. entity_id: "[[[ return entity.entity_id ]]]"
  220. icon: >-
  221. [[[
  222. if (variables.ulm_card_cover_display_left_right){
  223. return "mdi:arrow-collapse-horizontal";
  224. }
  225. if (variables.ulm_card_curtain_display_collapse_expand || variables.ulm_card_cover_gate){
  226. return "mdi:arrow-collapse-horizontal";
  227. }
  228. return "mdi:arrow-down";
  229. ]]]
  230. item2:
  231. card:
  232. type: "custom:button-card"
  233. template: "widget_icon"
  234. tap_action:
  235. action: "call-service"
  236. service: "cover.stop_cover"
  237. service_data:
  238. entity_id: "[[[ return entity.entity_id ]]]"
  239. icon: "mdi:pause"
  240. item3:
  241. card:
  242. type: "custom:button-card"
  243. template: "widget_icon"
  244. state:
  245. - value: "open"
  246. styles:
  247. icon:
  248. - color: "rgba(var(--color-theme),0.4)"
  249. tap_action:
  250. action: "call-service"
  251. service: "cover.open_cover"
  252. service_data:
  253. entity_id: "[[[ return entity.entity_id ]]]"
  254. icon: >-
  255. [[[
  256. if (variables.ulm_card_cover_display_left_right){
  257. return "mdi:arrow-expand-horizontal";
  258. }
  259. if (variables.ulm_card_curtain_display_collapse_expand || variables.ulm_card_cover_gate){
  260. return "mdi:arrow-expand-horizontal";
  261. }
  262. return "mdi:arrow-up";
  263. ]]]
  264. item3:
  265. card:
  266. type: "custom:my-slider"
  267. entity: "[[[ return entity.entity_id ]]]"
  268. radius: "14px"
  269. height: "42px"
  270. mainSliderColor: >
  271. [[[
  272. if (entity.state == "unavailable"){
  273. return "rgba(var(--color-grey),1)";
  274. }
  275. else{
  276. return "rgba(var(--color-blue),1)";
  277. }
  278. ]]]
  279. secondarySliderColor: >
  280. [[[
  281. if (entity.state == "unavailable"){
  282. return "rgba(var(--color-grey),0.2)";
  283. }
  284. else{
  285. return "rgba(var(--color-blue),0.2)";
  286. }
  287. ]]]
  288. mainSliderColorOff: "rgba(var(--color-theme),0.05)"
  289. secondarySliderColorOff: "rgba(var(--color-theme),0.05)"
  290. thumbHorizontalPadding: "0px"
  291. thumbVerticalPadding: "0px"
  292. thumbWidth: "0px"
  293. card_mod:
  294. style: |
  295. ha-card {
  296. border-radius: 14px;
  297. box-shadow: none;
  298. }
  299.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement