├── .gitignore ├── .storage └── lovelace ├── README.md ├── automations.yaml ├── config ├── entities │ ├── binary_sensors │ │ └── babysitter.yaml │ ├── input_booleans │ │ ├── babysitter.yaml │ │ ├── enable_cinema_mode.yaml │ │ ├── enable_vacation.yaml │ │ ├── occupancy_simulator.yaml │ │ └── play_saskia_pick_up_sound.yaml │ └── switches │ │ └── gevelverlichting.yaml ├── integrations │ ├── automation.yaml │ ├── binary_sensor.yaml │ ├── camera.yaml │ ├── cloud.yaml │ ├── config.yaml │ ├── fan.yaml │ ├── frontend.yaml │ ├── group.yaml │ ├── history.yaml │ ├── home_connect.yaml │ ├── homeassistant.yaml │ ├── http.yaml │ ├── influxdb.yaml │ ├── input_boolean.yaml │ ├── input_number.yaml │ ├── ios.yaml │ ├── lovelace.yaml │ ├── map.yaml │ ├── mobile_app.yaml │ ├── octoprint.yaml │ ├── recorder.yaml │ ├── script.yaml │ ├── sensor.yaml │ ├── stream.yaml │ ├── sun.yaml │ ├── switch.yaml │ ├── system_health.yaml │ ├── tts.yaml │ ├── utility_meter.yaml │ └── weather.yaml ├── scripts.yaml └── sensors │ ├── afvalwijzer.yaml │ ├── car.yaml │ ├── darky_sky.yaml │ ├── dsmr-reader.yaml │ └── templates.yaml ├── configuration.yaml ├── customize.yaml ├── dwains-dashboard └── configs │ ├── cameras.yaml │ ├── global.yaml │ ├── house_information.yaml │ ├── icons.yaml │ ├── more_page.yaml │ ├── persons.yaml │ └── rooms.yaml └── themes └── github_dark_theme └── github_dark_theme.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .DS_Store? 3 | *.xml 4 | *.log 5 | *.sqlite 6 | *.pyc 7 | 8 | /.storage 9 | /deps 10 | /tts 11 | /custom_components 12 | /www 13 | /image 14 | __pycache__ 15 | .HA_VERSION 16 | .ios.conf 17 | .cloud 18 | .uuid 19 | known_devices.yaml 20 | OZW_Log.txt 21 | plex.conf 22 | secrets.yaml -------------------------------------------------------------------------------- /.storage/lovelace: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "key": "lovelace", 4 | "data": { 5 | "config": { 6 | "custom_header": { 7 | "compact_mode": true, 8 | "editor_warnings": false, 9 | "hide_help": true, 10 | "hide_unused": true, 11 | "shadow": false 12 | }, 13 | "title": "", 14 | "views": [ 15 | { 16 | "badges": [ 17 | { 18 | "entity": "person.sjors" 19 | }, 20 | { 21 | "entity": "input_boolean.babysitter" 22 | }, 23 | { 24 | "entity": "person.saskia" 25 | } 26 | ], 27 | "cards": [ 28 | { 29 | "cards": [ 30 | { 31 | "type": "custom:power-wheel-card", 32 | "title_power": "Verbruik", 33 | "solar_power_entity": "sensor.pv_power_formatted", 34 | "grid_power_consumption_entity": "sensor.dsmr_reading_electricity_currently_delivered_in_watt", 35 | "grid_power_production_entity": "sensor.dsmr_reading_electricity_currently_returned_in_watt", 36 | "solar_icon": "mdi:white-balance-sunny", 37 | "grid_icon": "mdi:flash-circle", 38 | "home_icon": "mdi:home-circle" 39 | }, 40 | { 41 | "cards": [ 42 | { 43 | "entity": "sensor.total_electricity_usage", 44 | "max": 5500, 45 | "name": "Totaal verbruik", 46 | "severity": { 47 | "green": 0, 48 | "red": 3000, 49 | "yellow": 1000 50 | }, 51 | "type": "gauge", 52 | "min": 0 53 | }, 54 | { 55 | "entity": "sensor.dsmr_reading_electricity_currently_delivered_in_watt", 56 | "max": 5500, 57 | "min": 0, 58 | "name": "Verbruik", 59 | "severity": { 60 | "green": 0, 61 | "red": 3000, 62 | "yellow": 2000 63 | }, 64 | "type": "gauge" 65 | }, 66 | { 67 | "entity": "sensor.pv_power_formatted", 68 | "max": 2395, 69 | "min": 0, 70 | "name": "PV Garage", 71 | "severity": { 72 | "green": 0, 73 | "red": 4000, 74 | "yellow": 4000 75 | }, 76 | "type": "gauge" 77 | } 78 | ], 79 | "type": "horizontal-stack" 80 | } 81 | ], 82 | "type": "vertical-stack" 83 | }, 84 | { 85 | "cards": [ 86 | { 87 | "entities": [ 88 | { 89 | "entity": "switch.zwave_energy_04_relay", 90 | "name": "TV", 91 | "tap_action": { 92 | "action": "toggle" 93 | } 94 | }, 95 | { 96 | "entity": "switch.zwave_energy_02_relay", 97 | "name": "Stereo", 98 | "tap_action": { 99 | "action": "toggle" 100 | } 101 | }, 102 | { 103 | "entity": "input_boolean.cinema_mode_enabled" 104 | } 105 | ], 106 | "show_state": false, 107 | "type": "glance", 108 | "title": "TV & Stereo" 109 | }, 110 | { 111 | "columns": 3, 112 | "entities": [ 113 | { 114 | "entity": "light.woonkamer", 115 | "icon": "mdi:lightbulb-group-outline", 116 | "tap_action": { 117 | "action": "toggle" 118 | } 119 | }, 120 | { 121 | "entity": "light.keuken", 122 | "icon": "mdi:lightbulb-group-outline", 123 | "tap_action": { 124 | "action": "toggle" 125 | } 126 | }, 127 | { 128 | "entity": "light.eetkamer", 129 | "icon": "mdi:lightbulb-group-outline", 130 | "tap_action": { 131 | "action": "toggle" 132 | } 133 | }, 134 | { 135 | "entity": "light.hal", 136 | "icon": "mdi:lightbulb-group-outline", 137 | "tap_action": { 138 | "action": "toggle" 139 | } 140 | }, 141 | { 142 | "entity": "light.overloop", 143 | "icon": "mdi:lightbulb-group-outline", 144 | "tap_action": { 145 | "action": "toggle" 146 | } 147 | }, 148 | { 149 | "entity": "light.kantoor", 150 | "icon": "mdi:lightbulb-group-outline", 151 | "tap_action": { 152 | "action": "toggle" 153 | } 154 | }, 155 | { 156 | "entity": "light.grote_slaapkamer", 157 | "icon": "mdi:lightbulb-group-outline", 158 | "tap_action": { 159 | "action": "toggle" 160 | } 161 | }, 162 | { 163 | "entity": "light.nachtlamp_sjors", 164 | "icon": "mdi:desk-lamp", 165 | "tap_action": { 166 | "action": "toggle" 167 | } 168 | }, 169 | { 170 | "entity": "light.nachtlamp_saskia", 171 | "icon": "mdi:desk-lamp", 172 | "tap_action": { 173 | "action": "toggle" 174 | } 175 | }, 176 | { 177 | "entity": "light.slaapkamer_saar", 178 | "icon": "mdi:lightbulb-group-outline", 179 | "tap_action": { 180 | "action": "toggle" 181 | } 182 | }, 183 | { 184 | "entity": "light.slaapkamer_saar_leeslampje", 185 | "icon": "mdi:desk-lamp", 186 | "tap_action": { 187 | "action": "toggle" 188 | } 189 | }, 190 | { 191 | "entity": "switch.lsc_switch_01_relay", 192 | "icon": "mdi:earth", 193 | "tap_action": { 194 | "action": "toggle" 195 | } 196 | }, 197 | { 198 | "entity": "switch.zijgevel_verlichting", 199 | "icon": "mdi:white-balance-iridescent", 200 | "tap_action": { 201 | "action": "toggle" 202 | } 203 | }, 204 | { 205 | "entity": "light.tuin" 206 | }, 207 | { 208 | "entity": "switch.tuinverlichting", 209 | "icon": "mdi:spotlight-beam", 210 | "tap_action": { 211 | "action": "toggle" 212 | } 213 | }, 214 | { 215 | "entity": "switch.schuurverlichting01", 216 | "icon": "mdi:led-strip", 217 | "tap_action": { 218 | "action": "toggle" 219 | } 220 | }, 221 | { 222 | "entity": "switch.schuurverlichting02", 223 | "icon": "mdi:led-strip", 224 | "tap_action": { 225 | "action": "toggle" 226 | } 227 | } 228 | ], 229 | "show_state": false, 230 | "type": "glance", 231 | "title": "Lights" 232 | } 233 | ], 234 | "type": "vertical-stack" 235 | }, 236 | { 237 | "cards": [ 238 | { 239 | "cards": [ 240 | { 241 | "entity": "sensor.afvalwijzer_today", 242 | "hold_action": { 243 | "action": "none" 244 | }, 245 | "name": "Vandaag", 246 | "show_state": false, 247 | "state_image": { 248 | "Geen": "/local/afvalwijzer/kliko.png", 249 | "gft": "/local/afvalwijzer/gft_large.png", 250 | "papier": "/local/afvalwijzer/papier_large.png", 251 | "plastic": "/local/afvalwijzer/plastic_large.png", 252 | "restafval": "/local/afvalwijzer/rest_large.png" 253 | }, 254 | "tap_action": { 255 | "action": "none" 256 | }, 257 | "theme": "slate", 258 | "type": "picture-entity" 259 | }, 260 | { 261 | "entity": "sensor.afvalwijzer_tomorrow", 262 | "hold_action": { 263 | "action": "none" 264 | }, 265 | "name": "Morgen", 266 | "show_state": false, 267 | "state_image": { 268 | "Geen": "/local/afvalwijzer/kliko.png", 269 | "gft": "/local/afvalwijzer/gft_large.png", 270 | "papier": "/local/afvalwijzer/papier_large.png", 271 | "plastic": "/local/afvalwijzer/plastic_large.png", 272 | "restafval": "/local/afvalwijzer/rest_large.png" 273 | }, 274 | "tap_action": { 275 | "action": "none" 276 | }, 277 | "theme": "slate", 278 | "type": "picture-entity" 279 | }, 280 | { 281 | "entity": "sensor.afvalwijzer_day_after_tomorrow", 282 | "hold_action": { 283 | "action": "none" 284 | }, 285 | "name": "Overmorgen", 286 | "show_state": false, 287 | "state_image": { 288 | "Geen": "/local/afvalwijzer/kliko.png", 289 | "gft": "/local/afvalwijzer/gft_large.png", 290 | "papier": "/local/afvalwijzer/papier_large.png", 291 | "plastic": "/local/afvalwijzer/plastic_large.png", 292 | "restafval": "/local/afvalwijzer/rest_large.png" 293 | }, 294 | "tap_action": { 295 | "action": "none" 296 | }, 297 | "theme": "slate", 298 | "type": "picture-entity" 299 | } 300 | ], 301 | "type": "horizontal-stack" 302 | }, 303 | { 304 | "type": "custom:auto-entities", 305 | "card": { 306 | "type": "glance" 307 | }, 308 | "filter": { 309 | "include": [ 310 | { 311 | "entity_id": "sensor.afvalwijzer_gft" 312 | }, 313 | { 314 | "entity_id": "sensor.afvalwijzer_papier" 315 | }, 316 | { 317 | "entity_id": "sensor.afvalwijzer_plastic" 318 | }, 319 | { 320 | "entity_id": "sensor.afvalwijzer_restafval" 321 | } 322 | ] 323 | }, 324 | "sort": { 325 | "attribute": "days_until_collection_date", 326 | "method": "attribute", 327 | "numeric": true 328 | } 329 | }, 330 | { 331 | "aspect_ratio": "56.25%", 332 | "camera_image": "camera.generic_camera", 333 | "camera_view": "live", 334 | "entities": [], 335 | "hold_action": { 336 | "action": "none" 337 | }, 338 | "image": "camera.generic_camera", 339 | "tap_action": { 340 | "action": "none" 341 | }, 342 | "type": "picture-glance", 343 | "title": "Oprit" 344 | } 345 | ], 346 | "type": "vertical-stack" 347 | } 348 | ], 349 | "path": "default_view", 350 | "title": "Home" 351 | }, 352 | { 353 | "badges": [], 354 | "cards": [ 355 | { 356 | "type": "vertical-stack", 357 | "cards": [ 358 | { 359 | "type": "horizontal-stack", 360 | "cards": [ 361 | { 362 | "type": "button", 363 | "tap_action": { 364 | "action": "toggle" 365 | }, 366 | "entity": "switch.nedis_smart_plug", 367 | "icon_height": "24px", 368 | "show_state": false, 369 | "show_name": true, 370 | "name": "Car charger" 371 | }, 372 | { 373 | "type": "glance", 374 | "title": "Currently", 375 | "entities": [ 376 | { 377 | "entity": "sensor.nedis_smart_plug_current", 378 | "name": "Current" 379 | }, 380 | { 381 | "entity": "sensor.nedis_smart_plug_current_consumption", 382 | "name": "Consumption" 383 | } 384 | ] 385 | } 386 | ] 387 | }, 388 | { 389 | "type": "horizontal-stack", 390 | "cards": [ 391 | { 392 | "type": "glance", 393 | "title": "Consumption", 394 | "entities": [ 395 | { 396 | "entity": "sensor.nedis_smart_plug_current_consumption_kwh_daily_usage", 397 | "name": "Daily" 398 | }, 399 | { 400 | "entity": "sensor.nedis_smart_plug_current_consumption_kwh_monthly_usage", 401 | "name": "Monthly" 402 | } 403 | ] 404 | }, 405 | { 406 | "type": "glance", 407 | "title": "Costs", 408 | "entities": [ 409 | { 410 | "entity": "sensor.nedis_smart_plug_current_consumption_cost_daily_usage", 411 | "name": "Daily" 412 | }, 413 | { 414 | "entity": "sensor.nedis_smart_plug_current_consumption_cost_monthly_usage", 415 | "name": "Monthly" 416 | } 417 | ] 418 | } 419 | ] 420 | }, 421 | { 422 | "type": "horizontal-stack", 423 | "cards": [ 424 | { 425 | "type": "glance", 426 | "title": "Power", 427 | "entities": [ 428 | { 429 | "entity": "sensor.nedis_smart_plug_current_consumption_daily_usage", 430 | "name": "Daily" 431 | }, 432 | { 433 | "entity": "sensor.nedis_smart_plug_current_consumption_monthly_usage", 434 | "name": "Monthly" 435 | } 436 | ] 437 | }, 438 | { 439 | "type": "glance", 440 | "title": "Current", 441 | "entities": [ 442 | { 443 | "entity": "sensor.nedis_smart_plug_current_daily_usage", 444 | "name": "Daily" 445 | }, 446 | { 447 | "entity": "sensor.nedis_smart_plug_current_monthly_usage", 448 | "name": "Monthly" 449 | } 450 | ] 451 | } 452 | ] 453 | }, 454 | { 455 | "type": "history-graph", 456 | "entities": [ 457 | { 458 | "entity": "sensor.nedis_smart_plug_current" 459 | } 460 | ], 461 | "hours_to_show": 24, 462 | "refresh_interval": 0, 463 | "title": "Current" 464 | }, 465 | { 466 | "type": "history-graph", 467 | "entities": [ 468 | { 469 | "entity": "sensor.nedis_smart_plug_current_consumption" 470 | } 471 | ], 472 | "hours_to_show": 24, 473 | "refresh_interval": 0, 474 | "title": "Current Consumption" 475 | } 476 | ] 477 | }, 478 | { 479 | "type": "vertical-stack", 480 | "cards": [ 481 | { 482 | "type": "entities", 483 | "show_header_toggle": false, 484 | "title": "Temperatuur", 485 | "entities": [ 486 | { 487 | "entities": [ 488 | { 489 | "entity": "sensor.temperature_reader_01_temperature", 490 | "name": "Temp", 491 | "secondary_info": "last-changed" 492 | }, 493 | { 494 | "entity": "sensor.temperature_reader_01_humidity", 495 | "name": "Humidity" 496 | } 497 | ], 498 | "entity": "sensor.temperature_reader_01_battery_level", 499 | "state_header": "Battery", 500 | "icon": "mdi:thermometer", 501 | "type": "custom:multiple-entity-row" 502 | }, 503 | { 504 | "entities": [ 505 | { 506 | "entity": "sensor.temperature_reader_02_temperature", 507 | "name": "Temp" 508 | }, 509 | { 510 | "entity": "sensor.temperature_reader_02_humidity", 511 | "name": "Humidity" 512 | } 513 | ], 514 | "entity": "sensor.temperature_reader_02_battery_level", 515 | "state_header": "Battery", 516 | "icon": "mdi:thermometer", 517 | "type": "custom:multiple-entity-row" 518 | }, 519 | { 520 | "entities": [ 521 | { 522 | "entity": "sensor.temperature_reader_03_temperature", 523 | "name": "Temp" 524 | }, 525 | { 526 | "entity": "sensor.temperature_reader_03_humidity", 527 | "name": "Humidity" 528 | } 529 | ], 530 | "entity": "sensor.temperature_reader_03_battery_level", 531 | "state_header": "Battery", 532 | "icon": "mdi:thermometer", 533 | "type": "custom:multiple-entity-row" 534 | }, 535 | { 536 | "entities": [ 537 | { 538 | "entity": "sensor.temperature_reader_04_temperature", 539 | "name": "Temp" 540 | }, 541 | { 542 | "entity": "sensor.temperature_reader_04_humidity", 543 | "name": "Humidity" 544 | } 545 | ], 546 | "entity": "sensor.temperature_reader_04_battery_level", 547 | "state_header": "Battery", 548 | "icon": "mdi:thermometer", 549 | "type": "custom:multiple-entity-row" 550 | }, 551 | { 552 | "entities": [ 553 | { 554 | "entity": "sensor.temperature_reader_05_temperature", 555 | "name": "Temp" 556 | }, 557 | { 558 | "entity": "sensor.temperature_reader_05_humidity", 559 | "name": "Humidity" 560 | } 561 | ], 562 | "entity": "sensor.temperature_reader_05_battery_level", 563 | "state_header": "Battery", 564 | "icon": "mdi:thermometer", 565 | "type": "custom:multiple-entity-row" 566 | }, 567 | { 568 | "entities": [ 569 | { 570 | "entity": "sensor.temperature_reader_02_06_temperature", 571 | "name": "Temp" 572 | }, 573 | { 574 | "entity": "sensor.temperature_reader_02_06_humidity", 575 | "name": "Humidity" 576 | } 577 | ], 578 | "entity": "sensor.temperature_reader_02_06_battery_level", 579 | "state_header": "Battery", 580 | "icon": "mdi:thermometer", 581 | "type": "custom:multiple-entity-row" 582 | }, 583 | { 584 | "entities": [ 585 | { 586 | "entity": "sensor.temperature_reader_02_07_temperature", 587 | "name": "Temp" 588 | }, 589 | { 590 | "entity": "sensor.temperature_reader_02_07_humidity", 591 | "name": "Humidity" 592 | } 593 | ], 594 | "entity": "sensor.temperature_reader_02_07_battery_level", 595 | "state_header": "Battery", 596 | "icon": "mdi:thermometer", 597 | "type": "custom:multiple-entity-row" 598 | }, 599 | { 600 | "entities": [ 601 | { 602 | "entity": "sensor.temperature_reader_02_08_temperature", 603 | "name": "Temp" 604 | }, 605 | { 606 | "entity": "sensor.temperature_reader_02_08_humidity", 607 | "name": "Humidity" 608 | } 609 | ], 610 | "entity": "sensor.temperature_reader_02_08_battery_level", 611 | "state_header": "Battery", 612 | "icon": "mdi:thermometer", 613 | "type": "custom:multiple-entity-row" 614 | } 615 | ] 616 | }, 617 | { 618 | "type": "entities", 619 | "show_header_toggle": false, 620 | "title": "Verbruik", 621 | "entities": [ 622 | { 623 | "entities": [ 624 | { 625 | "entity": "sensor.zwave_energy_01_daily_usage", 626 | "name": "vandaag" 627 | } 628 | ], 629 | "entity": "sensor.zwave_energy_01_monthly_usage", 630 | "name": "Kantoor PC", 631 | "state_header": "deze maand", 632 | "type": "custom:multiple-entity-row" 633 | }, 634 | { 635 | "entities": [ 636 | { 637 | "entity": "sensor.zwave_energy_05_daily_usage", 638 | "name": "vandaag" 639 | } 640 | ], 641 | "entity": "sensor.zwave_energy_05_monthly_usage", 642 | "name": "Prusa Mini+", 643 | "state_header": "deze maand", 644 | "type": "custom:multiple-entity-row" 645 | }, 646 | { 647 | "entities": [ 648 | { 649 | "entity": "sensor.zwave_energy_02_daily_usage", 650 | "name": "vandaag" 651 | } 652 | ], 653 | "entity": "sensor.zwave_energy_02_monthly_usage", 654 | "name": "Stereo", 655 | "state_header": "deze maand", 656 | "type": "custom:multiple-entity-row" 657 | }, 658 | { 659 | "entities": [ 660 | { 661 | "entity": "sensor.zwave_energy_03_daily_usage", 662 | "name": "vandaag" 663 | } 664 | ], 665 | "entity": "sensor.zwave_energy_03_monthly_usage", 666 | "name": "Vaatwasser", 667 | "state_header": "deze maand", 668 | "type": "custom:multiple-entity-row" 669 | }, 670 | { 671 | "entities": [ 672 | { 673 | "entity": "sensor.zwave_energy_04_daily_usage", 674 | "name": "vandaag" 675 | } 676 | ], 677 | "entity": "sensor.zwave_energy_04_monthly_usage", 678 | "name": "TV", 679 | "state_header": "deze maand", 680 | "type": "custom:multiple-entity-row" 681 | }, 682 | { 683 | "entities": [ 684 | { 685 | "entity": "sensor.energy_01_daily_usage", 686 | "name": "vandaag" 687 | } 688 | ], 689 | "entity": "sensor.energy_01_monthly_usage", 690 | "name": "Koelkast", 691 | "state_header": "deze maand", 692 | "type": "custom:multiple-entity-row" 693 | }, 694 | { 695 | "entities": [ 696 | { 697 | "entity": "sensor.energy_02_daily_usage", 698 | "name": "vandaag" 699 | } 700 | ], 701 | "entity": "sensor.energy_02_monthly_usage", 702 | "name": "NAS", 703 | "state_header": "deze maand", 704 | "type": "custom:multiple-entity-row" 705 | }, 706 | { 707 | "entities": [ 708 | { 709 | "entity": "sensor.energy_03_daily_usage", 710 | "name": "vandaag" 711 | } 712 | ], 713 | "entity": "sensor.energy_03_monthly_usage", 714 | "name": "Wasmachine", 715 | "state_header": "deze maand", 716 | "type": "custom:multiple-entity-row" 717 | }, 718 | { 719 | "entities": [ 720 | { 721 | "entity": "sensor.energy_04_daily_usage", 722 | "name": "vandaag" 723 | } 724 | ], 725 | "entity": "sensor.energy_04_monthly_usage", 726 | "name": "Droger", 727 | "state_header": "deze maand", 728 | "type": "custom:multiple-entity-row" 729 | } 730 | ] 731 | } 732 | ] 733 | }, 734 | { 735 | "type": "vertical-stack", 736 | "cards": [ 737 | { 738 | "entities": [ 739 | { 740 | "entity": "sensor.hue_motion_sensor_2_temperature", 741 | "name": "hal" 742 | }, 743 | { 744 | "entity": "sensor.hue_motion_sensor_1_temperature", 745 | "name": "overloop" 746 | }, 747 | { 748 | "entity": "sensor.dark_sky_temperature", 749 | "name": "darksky buiten" 750 | }, 751 | { 752 | "entity": "sensor.temperature_reader_01_temperature" 753 | }, 754 | { 755 | "entity": "sensor.temperature_reader_02_temperature" 756 | }, 757 | { 758 | "entity": "sensor.temperature_reader_03_temperature" 759 | }, 760 | { 761 | "entity": "sensor.temperature_reader_04_temperature" 762 | }, 763 | { 764 | "entity": "sensor.temperature_reader_05_temperature" 765 | }, 766 | { 767 | "entity": "sensor.temperature_reader_02_06_temperature" 768 | }, 769 | { 770 | "entity": "sensor.temperature_reader_02_07_temperature" 771 | }, 772 | { 773 | "entity": "sensor.temperature_reader_02_08_temperature" 774 | } 775 | ], 776 | "hours_to_show": 6, 777 | "refresh_interval": 0, 778 | "title": "Temperatuur - laatste 6 uur", 779 | "type": "history-graph" 780 | }, 781 | { 782 | "entities": [ 783 | { 784 | "entity": "sensor.dark_sky_humidity", 785 | "name": "darksky buiten" 786 | }, 787 | { 788 | "entity": "sensor.temperature_reader_01_humidity" 789 | }, 790 | { 791 | "entity": "sensor.temperature_reader_02_humidity" 792 | }, 793 | { 794 | "entity": "sensor.temperature_reader_03_humidity" 795 | }, 796 | { 797 | "entity": "sensor.temperature_reader_04_humidity" 798 | }, 799 | { 800 | "entity": "sensor.temperature_reader_05_humidity" 801 | }, 802 | { 803 | "entity": "sensor.temperature_reader_02_06_humidity" 804 | }, 805 | { 806 | "entity": "sensor.temperature_reader_02_07_humidity" 807 | }, 808 | { 809 | "entity": "sensor.temperature_reader_02_08_humidity" 810 | } 811 | ], 812 | "hours_to_show": 6, 813 | "refresh_interval": 0, 814 | "title": "Humidity - laatste 6 uur", 815 | "type": "history-graph" 816 | } 817 | ] 818 | } 819 | ], 820 | "path": "sensors", 821 | "title": "Sensors" 822 | }, 823 | { 824 | "badges": [], 825 | "cards": [ 826 | { 827 | "entity": "media_player.google_nest_hub", 828 | "name": "Woonkamer", 829 | "toggle_power": false, 830 | "tts": { 831 | "platform": "cloud", 832 | "language": "nl-NL" 833 | }, 834 | "type": "custom:mini-media-player" 835 | }, 836 | { 837 | "entity": "media_player.google_home", 838 | "name": "Kantoor", 839 | "toggle_power": false, 840 | "tts": { 841 | "platform": "cloud", 842 | "language": "nl-NL" 843 | }, 844 | "type": "custom:mini-media-player" 845 | }, 846 | { 847 | "entity": "media_player.google_home_mini", 848 | "name": "Slaapkamer", 849 | "toggle_power": false, 850 | "tts": { 851 | "platform": "cloud", 852 | "language": "nl-NL" 853 | }, 854 | "type": "custom:mini-media-player" 855 | }, 856 | { 857 | "entity": "input_boolean.play_saskia_pick_up_sound", 858 | "hold_action": { 859 | "action": "none" 860 | }, 861 | "show_icon": true, 862 | "show_name": true, 863 | "state_color": true, 864 | "tap_action": { 865 | "action": "toggle" 866 | }, 867 | "type": "button" 868 | }, 869 | { 870 | "type": "vertical-stack", 871 | "cards": [ 872 | { 873 | "type": "entities", 874 | "entities": [ 875 | { 876 | "entity": "binary_sensor.vaatwasser_door" 877 | }, 878 | { 879 | "entity": "sensor.vaatwasser_duration" 880 | }, 881 | { 882 | "entity": "sensor.vaatwasser_program_progress" 883 | }, 884 | { 885 | "entity": "sensor.vaatwasser_remaining_program_time" 886 | } 887 | ], 888 | "title": "Vaatwasser", 889 | "show_header_toggle": false, 890 | "state_color": true 891 | }, 892 | { 893 | "type": "entities", 894 | "entities": [ 895 | "switch.wasmachine", 896 | "sensor.wasmachine_washer_completion_time", 897 | "sensor.wasmachine_washer_job_state", 898 | "sensor.wasmachine_washer_machine_state" 899 | ] 900 | }, 901 | { 902 | "type": "entities", 903 | "entities": [ 904 | "switch.droger", 905 | "sensor.droger_dryer_completion_time", 906 | "sensor.droger_dryer_job_state", 907 | "sensor.droger_dryer_machine_state" 908 | ] 909 | } 910 | ] 911 | }, 912 | { 913 | "type": "entities", 914 | "entities": [ 915 | "sensor.switchbotone_linkquality", 916 | "switch.switchbotone_switch" 917 | ] 918 | } 919 | ], 920 | "path": "Speakers", 921 | "title": "Overig" 922 | }, 923 | { 924 | "title": "Prusa Mini+", 925 | "path": "prusa-mini", 926 | "icon": "", 927 | "panel": false, 928 | "badges": [], 929 | "cards": [ 930 | { 931 | "type": "vertical-stack", 932 | "cards": [ 933 | { 934 | "type": "custom:threedy-card", 935 | "base_entity": "sensor.prusa_mini", 936 | "use_24hr": true, 937 | "temperature_unit": "C", 938 | "monitored": [ 939 | "Status", 940 | "ETA", 941 | "Elapsed", 942 | "Hotend", 943 | "Bed", 944 | "Remaining" 945 | ], 946 | "printer_type": "Cantilever", 947 | "name": "Prusa Mini+" 948 | }, 949 | { 950 | "type": "picture-glance", 951 | "title": "Prusa mini+", 952 | "image": "http://192.168.178.200/webcam/?action=snapshot", 953 | "entities": [], 954 | "camera_image": "camera.octoprint", 955 | "camera_view": "live", 956 | "entity": "binary_sensor.prusa_mini_printing", 957 | "tap_action": { 958 | "action": "none" 959 | }, 960 | "hold_action": { 961 | "action": "none" 962 | }, 963 | "aspect_ratio": "17:9" 964 | } 965 | ] 966 | }, 967 | { 968 | "type": "vertical-stack", 969 | "cards": [ 970 | { 971 | "type": "horizontal-stack", 972 | "title": "Filament box", 973 | "cards": [ 974 | { 975 | "type": "gauge", 976 | "min": 0, 977 | "max": 100, 978 | "entity": "sensor.temperature_reader_09_humidity", 979 | "name": "Luchtvochtigheid", 980 | "severity": { 981 | "green": 0, 982 | "yellow": 20, 983 | "red": 60 984 | } 985 | }, 986 | { 987 | "type": "gauge", 988 | "min": 0, 989 | "max": 50, 990 | "entity": "sensor.temperature_reader_09_temperature", 991 | "name": "Temperatuur", 992 | "severity": { 993 | "green": 0, 994 | "yellow": 20, 995 | "red": 30 996 | } 997 | } 998 | ] 999 | } 1000 | ] 1001 | } 1002 | ] 1003 | }, 1004 | { 1005 | "title": "iPhones", 1006 | "path": "iphones", 1007 | "badges": [], 1008 | "cards": [ 1009 | { 1010 | "type": "entities", 1011 | "entities": [ 1012 | { 1013 | "entity": "device_tracker.iphone_van_saskia" 1014 | }, 1015 | { 1016 | "entity": "sensor.iphone_van_saskia_activity" 1017 | }, 1018 | { 1019 | "entity": "sensor.iphone_van_saskia_average_active_pace" 1020 | }, 1021 | { 1022 | "entity": "sensor.iphone_van_saskia_distance" 1023 | }, 1024 | { 1025 | "entity": "sensor.iphone_van_saskia_floors_ascended" 1026 | }, 1027 | { 1028 | "entity": "sensor.iphone_van_saskia_floors_descended" 1029 | }, 1030 | { 1031 | "entity": "sensor.iphone_van_saskia_steps" 1032 | }, 1033 | { 1034 | "entity": "sensor.iphone_van_saskia_storage" 1035 | } 1036 | ] 1037 | }, 1038 | { 1039 | "type": "entities", 1040 | "entities": [ 1041 | { 1042 | "entity": "device_tracker.iphone_van_sjors" 1043 | }, 1044 | { 1045 | "entity": "sensor.iphone_van_sjors_activity" 1046 | }, 1047 | { 1048 | "entity": "sensor.iphone_van_sjors_average_active_pace" 1049 | }, 1050 | { 1051 | "entity": "sensor.iphone_van_sjors_distance" 1052 | }, 1053 | { 1054 | "entity": "sensor.iphone_van_sjors_floors_ascended" 1055 | }, 1056 | { 1057 | "entity": "sensor.iphone_van_sjors_floors_descended" 1058 | }, 1059 | { 1060 | "entity": "sensor.iphone_van_sjors_steps" 1061 | }, 1062 | { 1063 | "entity": "sensor.iphone_van_sjors_storage" 1064 | } 1065 | ] 1066 | }, 1067 | { 1068 | "type": "horizontal-stack", 1069 | "cards": [ 1070 | { 1071 | "type": "gauge", 1072 | "entity": "sensor.iphone_van_sjors_steps", 1073 | "min": 0, 1074 | "max": 100, 1075 | "name": "Sjors", 1076 | "severity": { 1077 | "green": 10000, 1078 | "yellow": 5000, 1079 | "red": 0 1080 | } 1081 | }, 1082 | { 1083 | "type": "gauge", 1084 | "entity": "sensor.iphone_van_saskia_steps", 1085 | "min": 0, 1086 | "max": 100, 1087 | "name": "Saskia", 1088 | "severity": { 1089 | "green": 10000, 1090 | "yellow": 5000, 1091 | "red": 0 1092 | } 1093 | } 1094 | ] 1095 | } 1096 | ] 1097 | } 1098 | ] 1099 | } 1100 | } 1101 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Home Assistant Configuration 2 | 3 | This is my personal Home Assistant configuration, running my home automations. 4 | 5 | [Running docker](https://github.com/sjorsjes/docker-setup) on a Synology DS718+ 6 | Current Home Assistant version: 0.109.6 7 | -------------------------------------------------------------------------------- /automations.yaml: -------------------------------------------------------------------------------- 1 | - id: '1583864694414' 2 | alias: Droger is bezig 3 | description: '' 4 | trigger: 5 | - above: '2' 6 | entity_id: sensor.energy_04_wattage 7 | platform: numeric_state 8 | condition: [] 9 | action: 10 | - data: {} 11 | entity_id: input_boolean.dryer_busy 12 | service: input_boolean.turn_on 13 | -------------------------------------------------------------------------------- /config/entities/binary_sensors/babysitter.yaml: -------------------------------------------------------------------------------- 1 | platform: template 2 | sensors: 3 | babysitter: 4 | friendly_name: Babysitter 5 | value_template: "{{ states.input_boolean.babysitter.state == 'on' }}" 6 | device_class: presence -------------------------------------------------------------------------------- /config/entities/input_booleans/babysitter.yaml: -------------------------------------------------------------------------------- 1 | babysitter: 2 | name: Oppas 3 | initial: 'off' 4 | icon: "mdi:account-child" -------------------------------------------------------------------------------- /config/entities/input_booleans/enable_cinema_mode.yaml: -------------------------------------------------------------------------------- 1 | cinema_mode_enabled: 2 | name: Cinema mode 3 | initial: on 4 | icon: "mdi:theater" -------------------------------------------------------------------------------- /config/entities/input_booleans/enable_vacation.yaml: -------------------------------------------------------------------------------- 1 | enable_vacation: 2 | name: Vacation mode 3 | initial: 'off' -------------------------------------------------------------------------------- /config/entities/input_booleans/occupancy_simulator.yaml: -------------------------------------------------------------------------------- 1 | occupancy_simulator: 2 | name: Occupancy Simulator 3 | initial: 'on' -------------------------------------------------------------------------------- /config/entities/input_booleans/play_saskia_pick_up_sound.yaml: -------------------------------------------------------------------------------- 1 | play_saskia_pick_up_sound: 2 | name: Saskia neem je telefoon op 3 | initial: off 4 | icon: "mdi:voice" -------------------------------------------------------------------------------- /config/entities/switches/gevelverlichting.yaml: -------------------------------------------------------------------------------- 1 | platform: mqtt 2 | name: "Zijgevel verlichting" 3 | state_topic: "shellies/shelly1-BA0042/relay/0" 4 | command_topic: "shellies/shelly1-BA0042/relay/0/command" 5 | payload_on: "on" 6 | payload_off: "off" 7 | retain: true -------------------------------------------------------------------------------- /config/integrations/automation.yaml: -------------------------------------------------------------------------------- 1 | automation: !include_dir_merge_list ../automations 2 | -------------------------------------------------------------------------------- /config/integrations/binary_sensor.yaml: -------------------------------------------------------------------------------- 1 | binary_sensor: !include_dir_list ../entities/binary_sensors 2 | -------------------------------------------------------------------------------- /config/integrations/camera.yaml: -------------------------------------------------------------------------------- 1 | camera: 2 | - platform: generic 3 | still_image_url: !secret camera_image_url 4 | stream_source: !secret camera_stream_url 5 | username: !secret camera_username 6 | password: !secret camera_password 7 | 8 | - platform: mjpeg 9 | name: OctoPrint 10 | still_image_url: !secret octoprint_camera_image_url 11 | mjpeg_url: !secret octoprint_camera_stream_url -------------------------------------------------------------------------------- /config/integrations/cloud.yaml: -------------------------------------------------------------------------------- 1 | cloud: -------------------------------------------------------------------------------- /config/integrations/config.yaml: -------------------------------------------------------------------------------- 1 | config: -------------------------------------------------------------------------------- /config/integrations/fan.yaml: -------------------------------------------------------------------------------- 1 | fan: 2 | - platform: template 3 | fans: 4 | mechanical_ventilation: 5 | friendly_name: "Mechanical Ventilation" 6 | value_template: > 7 | {{ "off" if states('sensor.fanspeed') == 'Low' else "on" }} 8 | percentage_template: > 9 | {% if states('sensor.fanspeed') == 'Low' %} 10 | 33 11 | {% elif states('sensor.fanspeed') == 'Medium' %} 12 | 66 13 | {% else %} 14 | 100 15 | {% endif %} 16 | turn_on: 17 | service: switch.turn_on 18 | data: 19 | entity_id: switch.fansendhigh 20 | turn_off: 21 | service: switch.turn_on 22 | data: 23 | entity_id: switch.fansendlow 24 | set_percentage: 25 | service: switch.turn_on 26 | data_template: 27 | entity_id: > 28 | {% 29 | set mapper = { 30 | 'high':'switch.fansendhigh', 31 | 'mid':'switch.fansendmedium', 32 | 'low':'switch.fansendlow' 33 | } 34 | %} 35 | {{ mapper[preset_modes] if speed in mapper else switch.fansendlow }} 36 | preset_modes: 37 | - 'low' 38 | - 'mid' 39 | - 'high' -------------------------------------------------------------------------------- /config/integrations/frontend.yaml: -------------------------------------------------------------------------------- 1 | frontend: 2 | themes: !include_dir_merge_named ../../themes -------------------------------------------------------------------------------- /config/integrations/group.yaml: -------------------------------------------------------------------------------- 1 | group: 2 | hallway_motion_sensors: 3 | name: Bewegingssensoren Hal 4 | entities: 5 | - binary_sensor.hue_motion_sensor_2_motion 6 | - binary_sensor.hue_motion_sensor_1_motion_2 7 | bijkeuken_devices: 8 | name: Bijkeuken apparaten 9 | entities: 10 | - sensor.wasmachine_washer_job_state 11 | - sensor.droger_dryer_job_state 12 | tuin_lights: 13 | name: Tuinverlichting 14 | entities: 15 | - light.tuin 16 | - switch.tuinverlichting 17 | - switch.zijgevel_verlichting 18 | slaapkamer_lights: 19 | name: Slaapkamer 20 | entities: 21 | - light.grote_slaapkamer 22 | - light.nachtlamp_sjors 23 | - light.nachtlamp_saskia 24 | saar_slaapkamer_lights: 25 | name: Slaapkamer Saar 26 | entities: 27 | - light.slaapkamer_saar 28 | - light.slaapkamer_saar_leeslampje 29 | -------------------------------------------------------------------------------- /config/integrations/history.yaml: -------------------------------------------------------------------------------- 1 | history: 2 | include: 3 | domains: 4 | - sensor 5 | - switch 6 | - light 7 | - binary_sensor 8 | exclude: 9 | entities: 10 | - sensor.date 11 | - sensor.time -------------------------------------------------------------------------------- /config/integrations/home_connect.yaml: -------------------------------------------------------------------------------- 1 | home_connect: 2 | client_id: !secret home_connect_client_id 3 | client_secret: !secret home_connect_client_secret -------------------------------------------------------------------------------- /config/integrations/homeassistant.yaml: -------------------------------------------------------------------------------- 1 | homeassistant: -------------------------------------------------------------------------------- /config/integrations/http.yaml: -------------------------------------------------------------------------------- 1 | http: -------------------------------------------------------------------------------- /config/integrations/influxdb.yaml: -------------------------------------------------------------------------------- 1 | influxdb: 2 | host: !secret influxdb_url 3 | database: !secret influxdb_db 4 | include: 5 | entities: 6 | - sensor.dark_sky_humidity 7 | - sensor.dark_sky_temperature 8 | - sensor.hue_motion_sensor_1_light_level 9 | - sensor.hue_motion_sensor_1_temperature 10 | - sensor.hue_motion_sensor_2_light_level 11 | - sensor.hue_motion_sensor_2_temperature 12 | - sensor.energy_01_wattage 13 | - sensor.energy_01_total_daily_energy 14 | - sensor.energy_02_wattage 15 | - sensor.energy_02_total_daily_energy 16 | - sensor.energy_03_wattage 17 | - sensor.energy_03_total_daily_energy 18 | - sensor.energy_04_wattage 19 | - sensor.energy_04_total_daily_energy 20 | - sensor.zwave_energy_01_wattage 21 | - sensor.zwave_energy_01_total_daily_energy 22 | - sensor.zwave_energy_02_wattage 23 | - sensor.zwave_energy_02_total_daily_energy 24 | - sensor.zwave_energy_03_wattage 25 | - sensor.zwave_energy_03_total_daily_energy 26 | - sensor.zwave_energy_04_wattage 27 | - sensor.zwave_energy_04_total_daily_energy 28 | - sensor.zwave_energy_05_wattage 29 | - sensor.zwave_energy_05_total_daily_energy 30 | - sensor.temperature_reader_01_temperature 31 | - sensor.temperature_reader_02_temperature 32 | - sensor.temperature_reader_03_temperature 33 | - sensor.temperature_reader_04_temperature 34 | - sensor.temperature_reader_05_temperature 35 | - sensor.temperature_reader_02_06_temperature 36 | - sensor.temperature_reader_02_07_temperature 37 | - sensor.temperature_reader_02_08_temperature 38 | - sensor.temperature_reader_09_temperature 39 | - sensor.temperature_reader_01_humidity 40 | - sensor.temperature_reader_02_humidity 41 | - sensor.temperature_reader_03_humidity 42 | - sensor.temperature_reader_04_humidity 43 | - sensor.temperature_reader_05_humidity 44 | - sensor.temperature_reader_02_06_humidity 45 | - sensor.temperature_reader_02_07_humidity 46 | - sensor.temperature_reader_02_08_humidity 47 | - sensor.temperature_reader_09_humidity 48 | - sensor.pv_voltage 49 | - sensor.pv_voltage_a 50 | - sensor.pv_current_a 51 | - sensor.nedis_smart_plug_current 52 | - sensor.nedis_smart_plug_current_consumption 53 | - sensor.nedis_smart_plug_voltage 54 | - sensor.nedis_smart_plug_current_consumption_cost 55 | - sensor.nedis_smart_plug_consumption_kwh -------------------------------------------------------------------------------- /config/integrations/input_boolean.yaml: -------------------------------------------------------------------------------- 1 | input_boolean: !include_dir_merge_named ../entities/input_booleans -------------------------------------------------------------------------------- /config/integrations/input_number.yaml: -------------------------------------------------------------------------------- 1 | input_number: !include_dir_merge_named ../entities/input_numbers -------------------------------------------------------------------------------- /config/integrations/ios.yaml: -------------------------------------------------------------------------------- 1 | ios: -------------------------------------------------------------------------------- /config/integrations/lovelace.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjorsjes/home-assistant/b42e3e3373be479eeadb9120a298b7ad4077a73b/config/integrations/lovelace.yaml -------------------------------------------------------------------------------- /config/integrations/map.yaml: -------------------------------------------------------------------------------- 1 | map: -------------------------------------------------------------------------------- /config/integrations/mobile_app.yaml: -------------------------------------------------------------------------------- 1 | mobile_app: -------------------------------------------------------------------------------- /config/integrations/octoprint.yaml: -------------------------------------------------------------------------------- 1 | octoprint: 2 | host: !secret octoprint_url 3 | api_key: !secret octoprint_api_key 4 | bed: true 5 | name: Prusa Mini+ 6 | number_of_tools: 1 -------------------------------------------------------------------------------- /config/integrations/recorder.yaml: -------------------------------------------------------------------------------- 1 | recorder: 2 | db_url: !secret database_url -------------------------------------------------------------------------------- /config/integrations/script.yaml: -------------------------------------------------------------------------------- 1 | script: !include ../scripts.yaml -------------------------------------------------------------------------------- /config/integrations/sensor.yaml: -------------------------------------------------------------------------------- 1 | sensor: !include_dir_merge_list ../sensors -------------------------------------------------------------------------------- /config/integrations/stream.yaml: -------------------------------------------------------------------------------- 1 | stream: -------------------------------------------------------------------------------- /config/integrations/sun.yaml: -------------------------------------------------------------------------------- 1 | sun: 2 | elevation: !secret elevation -------------------------------------------------------------------------------- /config/integrations/switch.yaml: -------------------------------------------------------------------------------- 1 | switch: !include_dir_list ../entities/switches -------------------------------------------------------------------------------- /config/integrations/system_health.yaml: -------------------------------------------------------------------------------- 1 | system_health: -------------------------------------------------------------------------------- /config/integrations/tts.yaml: -------------------------------------------------------------------------------- 1 | tts: 2 | - platform: google_translate 3 | service_name: google_say 4 | language: 'nl' -------------------------------------------------------------------------------- /config/integrations/utility_meter.yaml: -------------------------------------------------------------------------------- 1 | utility_meter: 2 | zwave_energy_01_daily_usage: 3 | source: sensor.zwave_energy_01_total_daily_energy 4 | cycle: daily 5 | 6 | zwave_energy_01_monthly_usage: 7 | source: sensor.zwave_energy_01_total_daily_energy 8 | cycle: monthly 9 | 10 | zwave_energy_02_daily_usage: 11 | source: sensor.zwave_energy_02_total_daily_energy 12 | cycle: daily 13 | 14 | zwave_energy_02_monthly_usage: 15 | source: sensor.zwave_energy_02_total_daily_energy 16 | cycle: monthly 17 | 18 | zwave_energy_03_daily_usage: 19 | source: sensor.zwave_energy_03_total_daily_energy 20 | cycle: daily 21 | 22 | zwave_energy_03_monthly_usage: 23 | source: sensor.zwave_energy_03_total_daily_energy 24 | cycle: monthly 25 | 26 | zwave_energy_04_daily_usage: 27 | source: sensor.zwave_energy_04_total_daily_energy 28 | cycle: daily 29 | 30 | zwave_energy_04_monthly_usage: 31 | source: sensor.zwave_energy_04_total_daily_energy 32 | cycle: monthly 33 | 34 | zwave_energy_05_daily_usage: 35 | source: sensor.zwave_energy_05_total_daily_energy 36 | cycle: daily 37 | 38 | zwave_energy_05_monthly_usage: 39 | source: sensor.zwave_energy_05_total_daily_energy 40 | cycle: monthly 41 | 42 | energy_01_daily_usage: 43 | source: sensor.energy_01_total_daily_energy 44 | cycle: daily 45 | 46 | energy_01_monthly_usage: 47 | source: sensor.energy_01_total_daily_energy 48 | cycle: monthly 49 | 50 | energy_02_daily_usage: 51 | source: sensor.energy_02_total_daily_energy 52 | cycle: daily 53 | 54 | energy_02_monthly_usage: 55 | source: sensor.energy_02_total_daily_energy 56 | cycle: monthly 57 | 58 | energy_03_daily_usage: 59 | source: sensor.energy_03_total_daily_energy 60 | cycle: daily 61 | 62 | energy_03_monthly_usage: 63 | source: sensor.energy_03_total_daily_energy 64 | cycle: monthly 65 | 66 | energy_04_daily_usage: 67 | source: sensor.energy_04_total_daily_energy 68 | cycle: daily 69 | 70 | energy_04_monthly_usage: 71 | source: sensor.energy_04_total_daily_energy 72 | cycle: monthly 73 | 74 | nedis_smart_plug_current_consumption_daily_usage: 75 | source: sensor.nedis_smart_plug_current_consumption 76 | cycle: daily 77 | 78 | nedis_smart_plug_current_consumption_monthly_usage: 79 | source: sensor.nedis_smart_plug_current_consumption 80 | cycle: monthly 81 | 82 | nedis_smart_plug_current_daily_usage: 83 | source: sensor.nedis_smart_plug_current 84 | cycle: daily 85 | 86 | nedis_smart_plug_current_monthly_usage: 87 | source: sensor.nedis_smart_plug_current 88 | cycle: monthly 89 | 90 | nedis_smart_plug_current_consumption_cost_daily_usage: 91 | source: sensor.nedis_smart_plug_current_consumption_cost 92 | cycle: daily 93 | 94 | nedis_smart_plug_current_consumption_cost_monthly_usage: 95 | source: sensor.nedis_smart_plug_current_consumption_cost 96 | cycle: monthly 97 | 98 | nedis_smart_plug_current_consumption_kwh_daily_usage: 99 | source: sensor.nedis_smart_plug_consumption_kwh 100 | cycle: daily 101 | 102 | nedis_smart_plug_current_consumption_kwh_monthly_usage: 103 | source: sensor.nedis_smart_plug_consumption_kwh 104 | cycle: monthly -------------------------------------------------------------------------------- /config/integrations/weather.yaml: -------------------------------------------------------------------------------- 1 | weather: 2 | platform: darksky 3 | api_key: !secret darksky_api_key 4 | mode: daily 5 | -------------------------------------------------------------------------------- /config/scripts.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sjorsjes/home-assistant/b42e3e3373be479eeadb9120a298b7ad4077a73b/config/scripts.yaml -------------------------------------------------------------------------------- /config/sensors/afvalwijzer.yaml: -------------------------------------------------------------------------------- 1 | - platform: afvalwijzer 2 | provider: mijnafvalwijzer 3 | postal_code: !secret afvalwijzer_postcode 4 | street_number: !secret afvalwijzer_huisnummer 5 | include_date_today: true 6 | default_label: 'Geen' -------------------------------------------------------------------------------- /config/sensors/car.yaml: -------------------------------------------------------------------------------- 1 | - platform: integration 2 | source: sensor.nedis_smart_plug_current_consumption_watt 3 | name: Nedis smart plug consumption kwh 4 | unit_prefix: k 5 | method: trapezoidal 6 | round: 2 -------------------------------------------------------------------------------- /config/sensors/darky_sky.yaml: -------------------------------------------------------------------------------- 1 | - platform: darksky 2 | api_key: !secret darksky_api_key 3 | language: 'nl' 4 | monitored_conditions: 5 | - temperature 6 | - humidity 7 | scan_interval: 8 | minutes: 5 -------------------------------------------------------------------------------- /config/sensors/dsmr-reader.yaml: -------------------------------------------------------------------------------- 1 | - platform: dsmr_reader -------------------------------------------------------------------------------- /config/sensors/templates.yaml: -------------------------------------------------------------------------------- 1 | - platform: template 2 | sensors: 3 | # date_formatted: 4 | # value_template: '{{ as_timestamp(strptime(states.sensor.date.state, "%Y-%m-%d")) | timestamp_custom("%a %d %b") }}' 5 | 6 | dsmr_reading_electricity_currently_delivered_in_watt: 7 | unit_of_measurement: 'W' 8 | value_template: '{{ (states("sensor.dsmr_reading_electricity_currently_delivered") | float * 1000) | round(0) }}' 9 | 10 | dsmr_reading_electricity_currently_returned_in_watt: 11 | unit_of_measurement: 'W' 12 | value_template: '{{ (states("sensor.dsmr_reading_electricity_currently_returned") | float * 1000) | round(0) }}' 13 | 14 | pv_power_formatted: 15 | friendly_name: Current power generated 16 | unit_of_measurement: 'W' 17 | value_template: > 18 | {% if is_state('sensor.pv_voltage', 'unknown') %} 19 | 0 20 | {% else %} 21 | {{ states('sensor.pv_voltage') }} 22 | {% endif %} 23 | 24 | total_electricity_usage: 25 | friendly_name: Total house usage 26 | unit_of_measurement: W 27 | value_template: > 28 | {% if states('sensor.dsmr_reading_electricity_currently_delivered_in_watt')|int == 0 %} 29 | {{ states('sensor.pv_power_formatted')|int - states('sensor.dsmr_reading_electricity_currently_returned_in_watt')|int }} 30 | {% else %} 31 | {{ states('sensor.pv_power_formatted')|int + states('sensor.dsmr_reading_electricity_currently_delivered_in_watt')|int }} 32 | {% endif %} 33 | 34 | daily_yield_kwh: 35 | friendly_name: Daily power yield 36 | unit_of_measurement: kWh 37 | value_template: > 38 | {{ states('sensor.daily_yield') | float / 1000 }} 39 | 40 | nedis_smart_plug_current_consumption: 41 | friendly_name: Current consumption 42 | unit_of_measurement: kW 43 | value_template: > 44 | {{ (states.switch.nedis_smart_plug.attributes.current_consumption | float / 1000) | round(2) }} 45 | 46 | nedis_smart_plug_current_consumption_watt: 47 | friendly_name: Current consumption 48 | unit_of_measurement: W 49 | value_template: > 50 | {{ (states.switch.nedis_smart_plug.attributes.current_consumption | float) | round(2) }} 51 | 52 | nedis_smart_plug_current_consumption_cost: 53 | friendly_name: Current consumption costs 54 | unit_of_measurement: € 55 | value_template: > 56 | {{ (states('sensor.nedis_smart_plug_consumption_kwh') | float * 0.20813) | round(2) }} 57 | 58 | nedis_smart_plug_current: 59 | friendly_name: Current 60 | unit_of_measurement: A 61 | value_template: > 62 | {{ (states.switch.nedis_smart_plug.attributes.current | float / 1000) | round(2) }} 63 | 64 | nedis_smart_plug_voltage: 65 | friendly_name: Voltage 66 | unit_of_measurement: V 67 | value_template: > 68 | {{ states.switch.nedis_smart_plug.attributes.voltage | float }} -------------------------------------------------------------------------------- /configuration.yaml: -------------------------------------------------------------------------------- 1 | homeassistant: 2 | customize: !include customize.yaml 3 | 4 | packages: !include_dir_named config/integrations -------------------------------------------------------------------------------- /customize.yaml: -------------------------------------------------------------------------------- 1 | sensor.afvalwijzer_gft: 2 | entity_picture: /local/afvalwijzer/gft.png 3 | friendly_name: GFT 4 | sensor.afvalwijzer_plastic: 5 | entity_picture: /local/afvalwijzer/plastic.png 6 | friendly_name: Plastic 7 | sensor.afvalwijzer_papier: 8 | entity_picture: /local/afvalwijzer/papier.png 9 | friendly_name: Papier 10 | sensor.afvalwijzer_restafval: 11 | entity_picture: /local/afvalwijzer/rest.png 12 | friendly_name: Restafval 13 | sensor.pv_power_formatted: 14 | icon: mdi:solar-power 15 | light.tuin: 16 | icon: mdi:outdoor-lamp 17 | friendly_name: Gevel verlichting 18 | sensor.nedis_smart_plug_current: 19 | icon: mdi:current-dc 20 | unit_of_measurement: A 21 | sensor.nedis_smart_plug_current_consumption: 22 | icon: mdi:flash 23 | unit_of_measurement: kW 24 | sensor.nedis_smart_plug_current_consumption_cost: 25 | icon: mdi:currency-eur 26 | unit_of_measurement: € 27 | sensor.nedis_smart_plug_current_daily_usage: 28 | icon: mdi:current-dc 29 | unit_of_measurement: A 30 | sensor.nedis_smart_plug_current_monthly_usage: 31 | icon: mdi:current-dc 32 | unit_of_measurement: A 33 | sensor.nedis_smart_plug_current_consumption_daily_usage: 34 | icon: mdi:flash 35 | unit_of_measurement: kW 36 | sensor.nedis_smart_plug_current_consumption_monthly_usage: 37 | icon: mdi:flash 38 | unit_of_measurement: kW 39 | sensor.nedis_smart_plug_current_consumption_cost_daily_usage: 40 | icon: mdi:currency-eur 41 | unit_of_measurement: € 42 | sensor.nedis_smart_plug_current_consumption_cost_monthly_usage: 43 | icon: mdi:currency-eur 44 | unit_of_measurement: € -------------------------------------------------------------------------------- /dwains-dashboard/configs/cameras.yaml: -------------------------------------------------------------------------------- 1 | # https://dwainscheeren.github.io/dwains-lovelace-dashboard/configuration/cameras.html 2 | 3 | cameras: 4 | entities: 5 | - camera.generic_camera 6 | - camera.octoprint -------------------------------------------------------------------------------- /dwains-dashboard/configs/global.yaml: -------------------------------------------------------------------------------- 1 | # https://dwainscheeren.github.io/dwains-lovelace-dashboard/configuration/global.html 2 | 3 | global: 4 | weather: weather.dark_sky 5 | outside_temperature: sensor.dark_sky_temperature 6 | outside_humidity: sensor.dark_sky_humidity 7 | inside_temperature: sensor.temperature_reader_02_07_temperature 8 | battery_empty_strings: 9 | - 'unavailable' 10 | - 0 11 | # safety_ok_strings: 12 | # - "Ok" 13 | # - "Idle" 14 | # - "off" 15 | # battery_empty_strings: 16 | # - "unavailable" 17 | # show_covers: closed 18 | 19 | # weather: weather.dark_sky # Configure a weather entity see HA docs for more info. 20 | # outside_temperature: sensor.dark_sky_temperature # Configure a sensor here! 21 | # outside_humidity: sensor.dark_sky_humidity # Configure a sensor here! 22 | # alarm: alarm_control_panel.alarm_system #Alarm panel entity. 23 | # inside_temperature: climate.living_room #Can be 'climate.' or an 'sensor.' entity. 24 | 25 | # favorites_homepage: 'true' #Uncomment this line if you want the house information favorites on your homepage. 26 | 27 | # custom_popups: #Create custom popups for a whole domain. See popup addons in the docs 28 | # - domain: cover 29 | # path: 'dwains-dashboard/addons/popups/cover/popup.yaml' -------------------------------------------------------------------------------- /dwains-dashboard/configs/house_information.yaml: -------------------------------------------------------------------------------- 1 | # https://dwainscheeren.github.io/dwains-lovelace-dashboard/configuration/house_information.html 2 | 3 | house_information: 4 | favorites: 5 | - entity: binary_sensor.doorbell_button 6 | icon_on: mdi:bell 7 | icon_off: mdi:bell-outline 8 | # 9 | # addons: 10 | # - name: Calendar #This is an example addon see: https://github.com/dwainscheeren/dwains-dashboard-addons/tree/for-1.0/house_information/calendar 11 | # icon: mdi:calendar 12 | # path: 'dwains-dashboard/addons/house_information/calendar/page.yaml' 13 | # data: 14 | # calendars: 15 | # - calendar.gft 16 | # - calendar.oud_papier 17 | # - calendar.pmd_afval 18 | # - calendar.restafval -------------------------------------------------------------------------------- /dwains-dashboard/configs/icons.yaml: -------------------------------------------------------------------------------- 1 | # https://dwainscheeren.github.io/dwains-lovelace-dashboard/configuration/icons.html 2 | # Only uncomment lines below if you want to override default icons and use own ones!! Including icons: 3 | 4 | icons: 5 | #Menu icons 6 | menu_back: 'mdi:arrow-left' 7 | menu_home: 'mdi:home' 8 | menu_lights: 'mdi:lightbulb-group-outline' 9 | # menu_scenes: 'mdi:help' 10 | menu_cameras: 'mdi:cctv' 11 | menu_more_page: 'mdi:dots-horizontal' 12 | 13 | # #Global icons 14 | # light_on: 'mdi:help' 15 | # light_off: 'fal:smile-wink' 16 | 17 | # room_header_more_entities: 'mdi:help' 18 | # person_header_more_entities: 'mdi:help' 19 | # climate: 'mdi:help' 20 | # climate_heating: 'mdi:help' 21 | # climate_auto: 'mdi:help' 22 | # climate_off: 'mdi:help' 23 | # climate_heat: 'mdi:help' 24 | # climate_cool: 'mdi:help' 25 | # climate_heat_cool: 'mdi:help' 26 | # climate_dry: 'mdi:help' 27 | # climate_fan_only: 'mdi:help' 28 | 29 | # window_open: 'mdi:help' 30 | # window_closed: 'mdi:help' 31 | 32 | # door_open: 'mdi:help' 33 | # door_closed: 'mdi:help' 34 | 35 | # motion_on: 'mdi:help' 36 | # motion_off: 'mdi:help' 37 | 38 | # cover_open: 'mdi:help' 39 | # cover_moving: 'mdi:help' 40 | # cover_closed: 'mdi:help' 41 | 42 | # device_on: 'mdi:help' 43 | # device_off: 'mdi:help' 44 | 45 | # media_player: 'mdi:help' 46 | 47 | # vacuum: 'mdi:help' 48 | 49 | # plant: 'mdi:help' 50 | 51 | # alarm_disarmed: 'mdi:help' 52 | # alarm_pending: 'mdi:help' 53 | # alarm_armed_away: 'mdi:help' 54 | # armed_home: 'mdi:help' 55 | 56 | # #More page icons 57 | # more_page_house_information: 'mdi:help' 58 | # more_page_house_data: 'mdi:help' 59 | # more_page_settings: 'mdi:help' 60 | # more_page_list_chevron: 'mdi:help' 61 | 62 | # lock_locked: 'mdi:help' 63 | # lock_unlocked: 'mdi:help' 64 | 65 | # safety_ok: 'mdi:help' 66 | # safety_alert: 'mdi:help' 67 | 68 | # vibration_on: 'mdi:help' 69 | # vibration_off: 'mdi:help' -------------------------------------------------------------------------------- /dwains-dashboard/configs/more_page.yaml: -------------------------------------------------------------------------------- 1 | # https://dwainscheeren.github.io/dwains-lovelace-dashboard/configuration/more_page.html 2 | 3 | # more_page: 4 | # addons: 5 | # - name: Hello more page 6 | # icon: mdi:chart-bar 7 | # path: 'dwains-dashboard/addons/more_page/hello-more-page/page.yaml' 8 | # data: 9 | # some_data: 'This is some data parsed.' 10 | # some_other_data: 'and some other data.' -------------------------------------------------------------------------------- /dwains-dashboard/configs/persons.yaml: -------------------------------------------------------------------------------- 1 | # https://dwainscheeren.github.io/dwains-lovelace-dashboard/configuration/persons.html 2 | 3 | persons: 4 | - name: Sjors 5 | track: person.sjors 6 | page_entities: 7 | # columns: 2 8 | entities: 9 | - entity: sensor.iphone_van_sjors_floors_ascended 10 | - entity: sensor.iphone_van_sjors_floors_descended 11 | - entity: sensor.iphone_van_sjors_steps 12 | - name: Saskia 13 | track: person.saskia 14 | 15 | # - name: Dwain 16 | # track: person.dwain 17 | # more_entities: 18 | # columns: 1 #optional 19 | # entities: 20 | # - entity: sensor.steps 21 | # - entity: sensor.steps 22 | # page_entities: 23 | # columns: 2 #optional 24 | # entities: 25 | # - entity: sensor.steps 26 | # - entity: sensor.steps 27 | # addons: 28 | # - name: Test addon 29 | # icon: fas:chart-area 30 | # path: 'dwains-dashboard/addons/persons/test/test.yaml' 31 | # data: 32 | # battery_level: sensor.battery_level -------------------------------------------------------------------------------- /dwains-dashboard/configs/rooms.yaml: -------------------------------------------------------------------------------- 1 | # https://dwainscheeren.github.io/dwains-lovelace-dashboard/configuration/rooms.html 2 | 3 | rooms: 4 | - name: Hal 5 | icon: mdi:key-chain-variant 6 | light: light.hal 7 | temperature: sensor.temperature_reader_02_06_temperature 8 | humidity: sensor.temperature_reader_02_06_humidity 9 | motion: group.hallway_motion_sensors 10 | - name: Woonkamer 11 | icon: mdi:sofa-outline 12 | light: light.woonkamer 13 | temperature: sensor.temperature_reader_02_07_temperature 14 | humidity: sensor.temperature_reader_02_07_humidity 15 | media_player: media_player.woonkamer_tv 16 | more_entities: 17 | entities: 18 | - media_player.woonkamer_audio 19 | - name: Eetkamer 20 | icon: mdi:silverware-fork-knife 21 | light: light.eetkamer 22 | temperature: sensor.temperature_reader_02_07_temperature 23 | humidity: sensor.temperature_reader_02_07_humidity 24 | - name: Keuken 25 | icon: mdi:stove 26 | light: light.keuken 27 | temperature: sensor.temperature_reader_02_07_temperature 28 | humidity: sensor.temperature_reader_02_07_humidity 29 | media_player: media_player.google_nest_hub 30 | device: sensor.vaatwasser_program_progress 31 | - name: Bijkeuken 32 | icon: mdi:fridge-variant-outline 33 | temperature: sensor.temperature_reader_02_08_temperature 34 | humidity: sensor.temperature_reader_02_08_humidity 35 | device: group.bijkeuken_devices 36 | - name: Slaapkamer Saar 37 | icon: mdi:unicorn-variant 38 | light: group.saar_slaapkamer_lights 39 | temperature: sensor.temperature_reader_02_temperature 40 | humidity: sensor.temperature_reader_02_humidity 41 | - name: Slaapkamer 42 | icon: mdi:bed-king-outline 43 | light: group.slaapkamer_lights 44 | temperature: sensor.temperature_reader_01_temperature 45 | humidity: sensor.temperature_reader_01_humidity 46 | media_player: media_player.google_home_mini 47 | - name: Kantoor 48 | icon: mdi:briefcase-outline 49 | light: light.kantoor 50 | temperature: sensor.temperature_reader_03_temperature 51 | humidity: sensor.temperature_reader_03_humidity 52 | media_player: media_player.google_home 53 | - name: Tuin 54 | icon: mdi:tree-outline 55 | light: group.tuin_lights 56 | temperature: sensor.dark_sky_temperature 57 | humidity: sensor.dark_sky_humidity 58 | 59 | # rooms: 60 | # - name: Hallway 61 | # icon: mdi:key 62 | # light: light.hallway 63 | # temperature: sensor.hallway_temperature 64 | # climate: climate.hallway_climate 65 | # humidity: sensor.halway_humidity 66 | # motion: binary_sensor.hallway_sensor_motion 67 | # door: binary_sensor.hallway_door_contact 68 | # window: binary_sensor.hallway_window_contact 69 | # safety: sensor.smoke_sensor 70 | # device: switch.television 71 | # vacuum: 72 | # entity: vacuum.rockrobo 73 | # camera: camera.rockrobo_map 74 | # plant: plant.hallway_plant 75 | # media_player: media_player.awesome_hallway_tv 76 | # more_entities: 77 | # entities: 78 | # - entity: sensor.hallway_motion_battery_level 79 | # - entity: sensor.smokedetector_battery 80 | # - name: Garage 81 | # icon: mdi:garage 82 | # light: group.garage_lights 83 | # door: group.garage_doors 84 | # addons: 85 | # - name: Hello room 86 | # icon: mdi:puzzle 87 | # path: 'dwains-dashboard/addons/rooms/hello-room/page.yaml' 88 | # button_path: 'dwains-dashboard/addons/rooms/hello-room/button.yaml' 89 | # data: 90 | # some_data: 'This is some data parsed.' 91 | # some_other_data: 'and some other data.' 92 | # entity: vacuum.roborock 93 | # - name: Bedroom 94 | # icon: fal:bed 95 | # more_entities: 96 | # columns: 2 #optional 97 | # entities: 98 | # - entity: sensor.name1 99 | # - entity: sensor.name2 100 | # page_entities: 101 | # columns: 1 #optional 102 | # entities: 103 | # - entity: sensor.name1 104 | # - entity: sensor.name2 -------------------------------------------------------------------------------- /themes/github_dark_theme/github_dark_theme.yaml: -------------------------------------------------------------------------------- 1 | # Theme based on Github 2 | # Creator: @einschmidt 3 | # 4 | # 5 | Github Dark Theme: 6 | # Header: 7 | app-header-background-color: "#161B22" 8 | app-header-text-color: "#f6f8fa" 9 | # Main Interface Colors 10 | primary-color: "#1F6FEB" #was 79b8ff 11 | dark-primary-color: "#005cc5" 12 | primary-background-color: "#06090F" 13 | secondary-background-color: "#21262D" 14 | divider-color: "#21262D" 15 | accent-color: "#1F6FEB" 16 | # Text 17 | primary-text-color: "#C3CBD4" 18 | secondary-text-color: "#959da5" 19 | text-primary-color: "#f6f8fa" 20 | disabled-text-color: "#d1d5da" 21 | # Sidebar Menu 22 | sidebar-icon-color: "#8b949e" 23 | sidebar-text-color: "#C3CBD4" 24 | sidebar-background-color: "#0D1117" 25 | sidebar-selected-background-color: "#21262D" 26 | sidebar-selected-icon-color: "#F78166" 27 | sidebar-selected-text-color: "#c9d1d9" 28 | # Buttons 29 | paper-item-icon-color: "#8b949e" 30 | paper-item-icon-active-color: "#0366d6" 31 | # States and Badges 32 | state-icon-color: "#8b949e" 33 | state-icon-active-color: "#2188ff" 34 | state-icon-unavailable-color: var(--disabled-text-color) 35 | # Sliders 36 | paper-slider-knob-color: "#2188ff" 37 | paper-slider-knob-start-color: var(--paper-slider-knob-color) 38 | paper-slider-pin-color: var(--paper-slider-knob-color) 39 | paper-slider-active-color: var(--paper-slider-knob-color) 40 | paper-slider-secondary-color: var(--light-primary-color) 41 | # Labels 42 | label-badge-background-color: "#0D1117" 43 | label-badge-text-color: "#C3CBD4" 44 | label-badge-red: "#d73a49" 45 | label-badge-green: "#28a745" 46 | label-badge-blue: "#0366d6" 47 | label-badge-yellow: "#dbab09" 48 | label-badge-gray: "#0D1117" 49 | # Cards 50 | card-background-color: "#21262D" 51 | ha-card-border-radius: "6px" 52 | ha-card-box-shadow: "0px 0px 0px 1px #30363d" 53 | paper-dialog-background-color: var(--card-background-color) 54 | paper-listbox-background-color: var(--card-background-color) 55 | paper-card-background-color: var(--card-background-color) 56 | # Switches 57 | switch-checked-button-color: "#1F6FEB" 58 | switch-checked-track-color: "#1F6FEB" 59 | switch-unchecked-button-color: "#959da5" 60 | switch-unchecked-track-color: "#959da5" 61 | # Toggles 62 | paper-toggle-button-checked-button-color: var(--switch-checked-button-color) 63 | paper-toggle-button-checked-bar-color: var(--switch-checked-track-color) 64 | paper-toggle-button-unchecked-button-color: var(--switch-unchecked-button-color) 65 | paper-toggle-button-unchecked-bar-color: var(--switch-unchecked-track-color) 66 | # Table 67 | table-row-background-color: "#0D1117" 68 | table-row-alternative-background-color: "#161B22" 69 | data-table-background-color: "#0D1117" 70 | mdc-checkbox-unchecked-color: "#8b949e" 71 | # Dropdowns 72 | material-background-color: var(--secondary-background-color) 73 | material-secondary-background-color: var(--primary-background-color) 74 | # mdc-theme-surface: var(--primary-background-color) 75 | # Pre/Code 76 | markdown-code-background-color: "#2F363D" 77 | # Customs 78 | bar-card-color: "#1F6FEB" 79 | bar-card-border-radius: "6px" 80 | --------------------------------------------------------------------------------