1type: custom:mod-card
2view_layout:
3 column: 2
4style:
5 .: |
6 ha-card {
7 opacity: {{ '100%' if is_state('input_boolean.waerme_RAUMNAME_an_und_aus', 'on') else '0%' }};
8 }
9card:
10 type: custom:state-switch
11 entity: input_select.modus_waerme
12 default: 1
13 transition: null
14 transition_time: 200
15 states:
16 zuhause:
17 type: horizontal-stack
18 view_layout:
19 column: 3
20 cards:
21 - type: horizontal-stack
22 cards:
23 - type: custom:mod-card
24 style:
25 .: |
26 ha-card {
27 background-color: transparent;
28 border-radius: 20px;
29 }
30 card:
31 type: custom:button-card
32 entity: input_number.gewunschte_temperatur_THERMOSTATNAME_zu_hause
33 show_icon: false
34 show_label: false
35 tap_action:
36 action: call-service
37 service: |
38 [[[
39 if( entity.entity_id.startsWith("input_number.") )
40 return "input_number.increment";
41 if( entity.entity_id.startsWith("counter.") )
42 return "counter.increment";
43 return "";
44 ]]]
45 service_data:
46 entity_id: '[[[ return entity.entity_id ]]]'
47 icon: ''
48 name: +
49 style:
50 .: |
51 ha-card {
52 #background-color: rgba(0,0,0,0.1);
53 box-shadow: 4px 4px 5px 1px rgba(0,0,0,0.3), inset 1px 1px 1px 0px rgba(255,255,255,0.2);
54 border-radius: 20px;
55 height: 80px;
56 }
57 styles:
58 icon:
59 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
60 card:
61 - transform: scale(0.8, 0.8)
62 - height: 80px
63 - weight: 80px
64 name:
65 - font-size: 20px
66 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
67 - type: horizontal-stack
68 cards:
69 - type: custom:mod-card
70 style:
71 .: |
72 ha-card {
73 background-color: transparent;
74 border-radius: 20px;
75
76 }
77 card:
78 type: custom:button-card
79 entity: input_number.gewunschte_temperatur_THERMOSTATNAME_zu_hause
80 show_icon: false
81 show_label: false
82 show_state: true
83 show_name: false
84 tap_action:
85 action: call-service
86 service: |
87 [[[
88 if( entity.entity_id.startsWith("input_number.") )
89 return "input_number.increment";
90 if( entity.entity_id.startsWith("counter.") )
91 return "counter.increment";
92 return "";
93 ]]]
94 service_data:
95 entity_id: '[[[ return entity.entity_id ]]]'
96 icon: ''
97 name: zu Hause
98 units: °C
99 aspect_ratio: 2/1
100 style:
101 .: |
102 ha-card {
103 #background-color: rgba(0,0,0,0.1);
104 box-shadow: 4px 4px 5px 1px rgba(0,0,0,0.3), inset 1px 1px 1px 0px rgba(255,255,255,0.2);
105 #border-radius: 20px;
106 #margin-top: 10px;
107
108 }
109 styles:
110 icon:
111 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
112 card:
113 - transform: scale(0.8, 0.8)
114 - height: 80px
115 - weight: 154px
116 state:
117 - font-size: 30px
118 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
119 name:
120 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
121 state_display: |
122 [[[
123 return ((Math.round(Number(entity.state)))+'°');
124 ]]]
125 - type: horizontal-stack
126 cards:
127 - type: custom:mod-card
128 style:
129 .: |
130 ha-card {
131 background-color: transparent;
132 border-radius: 20px;
133 }
134 card:
135 type: custom:button-card
136 entity: input_number.gewunschte_temperatur_THERMOSTATNAME_zu_hause
137 show_icon: false
138 show_label: false
139 tap_action:
140 action: call-service
141 service: |
142 [[[
143 if( entity.entity_id.startsWith("input_number.") )
144 return "input_number.decrement";
145 if( entity.entity_id.startsWith("counter.") )
146 return "counter.decrement";
147 return "";
148 ]]]
149 service_data:
150 entity_id: '[[[ return entity.entity_id ]]]'
151 icon: ''
152 name: '-'
153 style:
154 .: |
155 ha-card {
156 #background-color: rgba(0,0,0,0.1);
157 box-shadow: 4px 4px 5px 1px rgba(0,0,0,0.3), inset 1px 1px 1px 0px rgba(255,255,255,0.2);
158 border-radius: 20px;
159 height: 80px;
160 }
161 styles:
162 icon:
163 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
164 card:
165 - transform: scale(0.8, 0.8)
166 name:
167 - font-size: 20px
168 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
169 abwesend:
170 type: horizontal-stack
171 view_layout:
172 column: 3
173 cards:
174 - type: horizontal-stack
175 cards:
176 - type: custom:mod-card
177 style:
178 .: |
179 ha-card {
180 background-color: transparent;
181 border-radius: 20px;
182 }
183 card:
184 type: custom:button-card
185 entity: input_number.gewunschte_temperatur_THERMOSTATNAME_abwesend
186 show_icon: false
187 show_label: false
188 tap_action:
189 action: call-service
190 service: |
191 [[[
192 if( entity.entity_id.startsWith("input_number.") )
193 return "input_number.increment";
194 if( entity.entity_id.startsWith("counter.") )
195 return "counter.increment";
196 return "";
197 ]]]
198 service_data:
199 entity_id: '[[[ return entity.entity_id ]]]'
200 icon: ''
201 name: +
202 style:
203 .: |
204 ha-card {
205 #background-color: rgba(0,0,0,0.1);
206 box-shadow: 4px 4px 5px 1px rgba(0,0,0,0.3), inset 1px 1px 1px 0px rgba(255,255,255,0.2);
207 border-radius: 20px;
208 height: 80px;
209 }
210 styles:
211 icon:
212 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
213 card:
214 - transform: scale(0.8, 0.8)
215 - height: 80px
216 - weight: 80px
217 name:
218 - font-size: 20px
219 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
220 - type: horizontal-stack
221 cards:
222 - type: custom:mod-card
223 style:
224 .: |
225 ha-card {
226 background-color: transparent;
227 border-radius: 20px;
228
229 }
230 card:
231 type: custom:button-card
232 entity: input_number.gewunschte_temperatur_THERMOSTATNAME_abwesend
233 show_icon: false
234 show_label: false
235 show_state: true
236 show_name: false
237 tap_action:
238 action: call-service
239 service: |
240 [[[
241 if( entity.entity_id.startsWith("input_number.") )
242 return "input_number.increment";
243 if( entity.entity_id.startsWith("counter.") )
244 return "counter.increment";
245 return "";
246 ]]]
247 service_data:
248 entity_id: '[[[ return entity.entity_id ]]]'
249 icon: ''
250 name: Abwesend
251 units: °C
252 aspect_ratio: 2/1
253 style:
254 .: |
255 ha-card {
256 #background-color: rgba(0,0,0,0.1);
257 box-shadow: 4px 4px 5px 1px rgba(0,0,0,0.3), inset 1px 1px 1px 0px rgba(255,255,255,0.2);
258 #border-radius: 20px;
259 #margin-top: 10px;
260
261 }
262 styles:
263 icon:
264 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
265 card:
266 - transform: scale(0.8, 0.8)
267 - height: 80px
268 - weight: 154px
269 state:
270 - font-size: 30px
271 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
272 name:
273 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
274 state_display: |
275 [[[
276 return ((Math.round(Number(entity.state)))+'°');
277 ]]]
278 - type: horizontal-stack
279 cards:
280 - type: custom:mod-card
281 style:
282 .: |
283 ha-card {
284 background-color: transparent;
285 border-radius: 20px;
286 }
287 card:
288 type: custom:button-card
289 entity: input_number.gewunschte_temperatur_THERMOSTATNAME_abwesend
290 show_icon: false
291 show_label: false
292 tap_action:
293 action: call-service
294 service: |
295 [[[
296 if( entity.entity_id.startsWith("input_number.") )
297 return "input_number.decrement";
298 if( entity.entity_id.startsWith("counter.") )
299 return "counter.decrement";
300 return "";
301 ]]]
302 service_data:
303 entity_id: '[[[ return entity.entity_id ]]]'
304 icon: ''
305 name: '-'
306 style:
307 .: |
308 ha-card {
309 #background-color: rgba(0,0,0,0.1);
310 box-shadow: 4px 4px 5px 1px rgba(0,0,0,0.3), inset 1px 1px 1px 0px rgba(255,255,255,0.2);
311 border-radius: 20px;
312 height: 80px;
313 }
314 styles:
315 icon:
316 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
317 card:
318 - transform: scale(0.8, 0.8)
319 name:
320 - font-size: 20px
321 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
322 nacht:
323 type: horizontal-stack
324 view_layout:
325 column: 3
326 cards:
327 - type: horizontal-stack
328 cards:
329 - type: custom:mod-card
330 style:
331 .: |
332 ha-card {
333 background-color: transparent;
334 border-radius: 20px;
335 }
336 card:
337 type: custom:button-card
338 entity: input_number.gewunschte_temperatur_THERMOSTATNAME_nacht
339 show_icon: false
340 show_label: false
341 tap_action:
342 action: call-service
343 service: |
344 [[[
345 if( entity.entity_id.startsWith("input_number.") )
346 return "input_number.increment";
347 if( entity.entity_id.startsWith("counter.") )
348 return "counter.increment";
349 return "";
350 ]]]
351 service_data:
352 entity_id: '[[[ return entity.entity_id ]]]'
353 icon: ''
354 name: +
355 style:
356 .: |
357 ha-card {
358 #background-color: rgba(0,0,0,0.1);
359 box-shadow: 4px 4px 5px 1px rgba(0,0,0,0.3), inset 1px 1px 1px 0px rgba(255,255,255,0.2);
360 border-radius: 20px;
361 height: 80px;
362 }
363 styles:
364 icon:
365 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
366 card:
367 - transform: scale(0.8, 0.8)
368 - height: 80px
369 - weight: 80px
370 name:
371 - font-size: 20px
372 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
373 - type: horizontal-stack
374 cards:
375 - type: custom:mod-card
376 style:
377 .: |
378 ha-card {
379 background-color: transparent;
380 border-radius: 20px;
381
382 }
383 card:
384 type: custom:button-card
385 entity: input_number.gewunschte_temperatur_THERMOSTATNAME_nacht
386 show_icon: false
387 show_label: false
388 show_state: true
389 show_name: false
390 tap_action:
391 action: call-service
392 service: |
393 [[[
394 if( entity.entity_id.startsWith("input_number.") )
395 return "input_number.increment";
396 if( entity.entity_id.startsWith("counter.") )
397 return "counter.increment";
398 return "";
399 ]]]
400 service_data:
401 entity_id: '[[[ return entity.entity_id ]]]'
402 icon: ''
403 name: Nacht
404 units: °C
405 aspect_ratio: 2/1
406 style:
407 .: |
408 ha-card {
409 #background-color: rgba(0,0,0,0.1);
410 box-shadow: 4px 4px 5px 1px rgba(0,0,0,0.3), inset 1px 1px 1px 0px rgba(255,255,255,0.2);
411 #border-radius: 20px;
412 #margin-top: 10px;
413
414 }
415 styles:
416 icon:
417 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
418 card:
419 - transform: scale(0.8, 0.8)
420 - height: 80px
421 - weight: 154px
422 state:
423 - font-size: 30px
424 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
425 name:
426 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
427 state_display: |
428 [[[
429 return ((Math.round(Number(entity.state)))+'°');
430 ]]]
431 - type: horizontal-stack
432 cards:
433 - type: custom:mod-card
434 style:
435 .: |
436 ha-card {
437 background-color: transparent;
438 border-radius: 20px;
439 }
440 card:
441 type: custom:button-card
442 entity: input_number.gewunschte_temperatur_TEMP_nacht
443 show_icon: false
444 show_label: false
445 tap_action:
446 action: call-service
447 service: |
448 [[[
449 if( entity.entity_id.startsWith("input_number.") )
450 return "input_number.decrement";
451 if( entity.entity_id.startsWith("counter.") )
452 return "counter.decrement";
453 return "";
454 ]]]
455 service_data:
456 entity_id: '[[[ return entity.entity_id ]]]'
457 icon: ''
458 name: '-'
459 style:
460 .: |
461 ha-card {
462 #background-color: rgba(0,0,0,0.1);
463 box-shadow: 4px 4px 5px 1px rgba(0,0,0,0.3), inset 1px 1px 1px 0px rgba(255,255,255,0.2);
464 border-radius: 20px;
465 height: 80px;
466 }
467 styles:
468 icon:
469 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
470 card:
471 - transform: scale(0.8, 0.8)
472 name:
473 - font-size: 20px
474 - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))