From 546cedc1907b80c7225dd9dd628a7761f275136b Mon Sep 17 00:00:00 2001 From: Bastian Schnorbus Date: Sat, 18 Nov 2023 14:51:50 +0100 Subject: [PATCH] savegame 2023-11-18 --- alexa.yaml | 68 ++ automations.yaml | 757 ++++++++++++++---- binary_sensors/ping.yaml | 18 + .../homeassistant/motion_light.yaml | 50 ++ .../homeassistant/notify_leaving_zone.yaml | 43 + ...-notification-for-all-battery-sensors.yaml | 74 ++ .../confirmable_notification.yaml | 74 ++ configuration.yaml | 433 ++++++++++ covers/bedroom.yaml | 32 + covers/children.yaml | 15 + covers/shades.yaml | 15 + customize.yaml | 173 ++++ docker-compose.yml | 126 +++ govee_learning.yaml | 5 + groups.yaml | 31 + scenes.yaml | 248 ++++++ scripts.yaml | 148 ++++ show-container-logs.sh | 4 + themes.yaml | 322 ++++++++ 19 files changed, 2500 insertions(+), 136 deletions(-) create mode 100644 alexa.yaml mode change 100755 => 100644 automations.yaml create mode 100644 binary_sensors/ping.yaml create mode 100644 blueprints/automation/homeassistant/motion_light.yaml create mode 100644 blueprints/automation/homeassistant/notify_leaving_zone.yaml create mode 100644 blueprints/automation/sbyx/low-battery-level-detection-notification-for-all-battery-sensors.yaml create mode 100644 blueprints/script/homeassistant/confirmable_notification.yaml create mode 100644 configuration.yaml create mode 100644 covers/bedroom.yaml create mode 100644 covers/children.yaml create mode 100644 covers/shades.yaml create mode 100644 customize.yaml create mode 100644 docker-compose.yml create mode 100644 govee_learning.yaml create mode 100644 groups.yaml create mode 100644 scenes.yaml create mode 100644 scripts.yaml create mode 100644 show-container-logs.sh create mode 100644 themes.yaml diff --git a/alexa.yaml b/alexa.yaml new file mode 100644 index 0000000..5e95809 --- /dev/null +++ b/alexa.yaml @@ -0,0 +1,68 @@ +TempOutsideIntent: + speech: + text: > + {%- set temp = states('sensor.neomulti4in1_temperature') | round -%} + {%- set hum = states('sensor.neomulti4in1_humidity') | round -%} + Aktuell ist es draussen {{ temp }} Grad bei {{ hum }} Prozent Luftfeuchtigkeit +TempRoomInfoIntent: + speech: + text: > + {% for device in states.climate %} + {% set loop_room = device.attributes.friendly_name|lower %} + {% set SLOT_ROOM = ROOM|lower %} + {% if loop_room.endswith(SLOT_ROOM) %} + Im {{ ROOM }} ist es {{device.attributes.current_temperature|replace(".",",") }} Grad {% endif %} + {%- endfor %} +ActivateSceneIntent: + action: + service: scene.turn_on + data_template: + entity_id: scene.{{ Scene | replace(" ", "_") }} + # action: + # service: notify.pushover + # data_template: + # message: Holla, aktiviere "{{ Scene }}" + speech: + type: plain + text: OK, starte {{ Scene }} + +ActivateIntent: + action: + service: light.turn_on + entity_id: light.stehlampe + speech: + type: plain + text: OK +DeactivateIntent: + action: + service: light.turn_off + entity_id: light.stehlampe + speech: + type: plain + text: OK + +CoverPresetIntent: + action: + service: cover.set_cover_position + entity_id: group.all_covers + data_template: + position: "30" +CoverPercentageIntent: + action: + service: cover.set_cover_position + entity_id: group.all_covers + data_template: + position: "{{COVER_PERCENTAGE}}" + speech: + type: plain + text: Okidoki {{COVER_PERCENTAGE}} + +RespondAvailableScenes: + speech: + text: > + Du kannst mich die folgenden Szenen aktivieren lassen: + {% for device in dict(states.scene|groupby('name')) -%} + {% if loop.last and loop.length > 1 %} und {%- elif not loop.first and loop.length > 1 %}, {% endif %} + {{device}} + {%- endfor %} + diff --git a/automations.yaml b/automations.yaml old mode 100755 new mode 100644 index 62df88a..83ca3a9 --- a/automations.yaml +++ b/automations.yaml @@ -1,3 +1,53 @@ +- id: '1653242475391' + alias: 'Kinderzimmer Nacht Rollo Luft ' + description: '' + trigger: + - platform: time + at: '23:54:00' + condition: [] + action: + - service: cover.set_cover_position + data: + position: 16 + target: + entity_id: cover.00115a498e0439 + mode: single +- id: '1653947919724' + alias: 'Kinderzimmer Lüftung Rollo runter Sonnenaufgang ' + description: '' + trigger: + - platform: sun + event: sunrise + offset: -0:50 + condition: [] + action: + - service: cover.set_cover_position + data: + position: 5 + target: + entity_id: cover.00115a498e0439 + enabled: false + - service: cover.close_cover + data: {} + target: + entity_id: cover.00115a498e0439 + mode: single +- id: '1658175530468' + alias: 'Ein: Aida Ei' + description: '' + trigger: + - platform: sun + event: sunset + offset: +0:30 + condition: [] + action: + - service: light.turn_on + data: + color_name: red + brightness_pct: 5 + target: + entity_id: light.aida_ei + mode: single - id: MultisensorBatteryLowNotification alias: MultisensorBatteryLowNotification trigger: @@ -11,18 +61,6 @@ title: '' initial_state: true mode: single -- id: NonPresenceIroningSwitchOff - alias: NonPresenceIroningSwitchOff - trigger: - - entity_id: group.all_mobile_devices - from: home - platform: state - to: not_home - action: - - data: - entity_id: switch.ieq0378957 - service: switch.turn_off - initial_state: true - id: ZwaveTemperatureToHomematicTimed alias: ZwaveTemperatureToHomematicTimed trigger: @@ -48,21 +86,22 @@ value: '{{states.sensor.neomulti4in1_humidity.state}}' initial_state: true - id: standlamp_on - alias: Stehlampe ein + alias: Stehlampe ein Abends + description: '' trigger: - event: sunset offset: -00:20:00 platform: sun action: - - data: + - service: light.turn_on + data: + transition: 10 brightness_pct: 10 - entity_id: light.wzstehlampe - transition: 5 - entity_id: - - light.stehlampe - - light.klampekuehlschrank - - light.zylinder_wohnzimmer - service: light.turn_on + target: + entity_id: + - light.wzstehlampe + - light.klampekuehlschrank + - light.zylinder_wohnzimmer mode: single - id: standlamp_off alias: Stehlampe aus @@ -103,64 +142,70 @@ entity_id: light.bodenlampe type: turn_off - id: HarmonyLivingroomSetInputselectToExternalStateChangeTimed - alias: HarmonyLivingroomSetInputselectToExternalStateChangeTimed + alias: 'TV: HarmonyLivingroomSetInputselectToExternalStateChangeTimed' + description: '' trigger: - platform: time_pattern + - platform: time_pattern minutes: /2 action: - service: input_select.select_option + - service: input_select.select_option data_template: entity_id: input_select.living_room_tv option: '{{ states.remote.harmony_hub_wohnzimmer.attributes.current_activity }}' - id: HarmonyLivingroomSetInputselectToExternalStateChanged - alias: HarmonyLivingroomSetInputselectToExternalStateChanged + alias: 'TV: HarmonyLivingroomSetInputselectToExternalStateChanged' + description: '' trigger: - platform: state + - platform: state entity_id: remote.harmony_hub_wohnzimmer action: - service: input_select.select_option + - service: input_select.select_option data_template: entity_id: input_select.living_room_tv option: '{{ states.remote.harmony_hub_wohnzimmer.attributes.current_activity }}' - id: HarmonyLivingroomSetCurrentActivityToChangedInputselect - alias: HarmonyLivingroomSetCurrentActivityToChangedInputselect + alias: 'TV: HarmonyLivingroomSetCurrentActivityToChangedInputselect' + description: '' trigger: - platform: state + - platform: state entity_id: input_select.living_room_tv action: - service: script.turn_on + - service: script.turn_on entity_id: script.input_select_harmony_living_room - id: HarmonyBedroomSetInputselectToExternalStateChanged - alias: HarmonyBedroomSetInputselectToExternalStateChanged + alias: 'TV: HarmonyBedroomSetInputselectToExternalStateChanged' + description: '' trigger: - platform: state + - platform: state entity_id: remote.harmony_hub_schlafzimmer action: - service: input_select.select_option + - service: input_select.select_option data_template: entity_id: input_select.bed_room_tv option: '{{ states.remote.harmony_hub_schlafzimmer.attributes.current_activity }}' - id: HarmonyBedroomSetInputselectToExternalStateChangeTimed - alias: HarmonyBedroomSetInputselectToExternalStateChangeTimed + alias: 'TV: HarmonyBedroomSetInputselectToExternalStateChangeTimed' + description: '' trigger: - platform: time_pattern + - platform: time_pattern minutes: /2 action: - service: input_select.select_option + - service: input_select.select_option data_template: entity_id: input_select.bed_room_tv option: '{{ states.remote.harmony_hub_schlafzimmer.attributes.current_activity }}' - id: HarmonyBedroomSetCurrentActivityToChangedInputselect - alias: HarmonyBedroomSetCurrentActivityToChangedInputselect + alias: 'TV: HarmonyBedroomSetCurrentActivityToChangedInputselect' + description: '' trigger: - platform: state + - platform: state entity_id: input_select.bed_room_tv action: - service: script.turn_on + - service: script.turn_on entity_id: script.input_select_harmony_bed_room - id: OpenWindowEveningNotification alias: OpenWindowEveningNotification @@ -179,30 +224,18 @@ endif %} {%- for device in dict(states.binary_sensor|groupby(''state''))[''on''] -%} {% if device.name and device.name.startswith(''Fenster'') or device.name.startswith(''Haus'') %} {{ device.name|replace("Fenster ","") }} {%- endif -%} {%- endfor -%}' -- alias: Notify about phone state - id: cac63d2f26884b86ae2ec785e249e8c2 - trigger: - - platform: state - entity_id: sensor.phone - action: - - service: notify.pushover - data: - title: Phone - message: '{% if is_state("sensor.phone", "ringing") %} Eingehender Anruf von - {{ states.sensor.phone.attributes.from_name }} ({{ states.sensor.phone.attributes.from - }}) {% endif %}' - id: kitchen_light_off_at_brightness - alias: Küche aus bei Helligkeit + alias: 'Aus: Lichter aus bei Helligkeit Morgens' trigger: - above: '800' - entity_id: sensor.aeon_labs_zw074_multisensor_gen5_luminance + entity_id: sensor.neomulti4in1_illuminance_lux platform: numeric_state condition: [] action: - - device_id: 528e131b5e274f58bb37a9d102283acb - domain: light - entity_id: light.klampekuehlschrank - type: turn_off + - service: light.turn_off + data: {} + target: + entity_id: light.klampekuehlschrank - id: update_notification alias: Update Available Notifications trigger: @@ -213,42 +246,11 @@ data: title: Home Assistant Update message: Watch out! Update for Home Assistant is available. -- id: '1549313817016' - alias: TVBedroomSwitchOffPresenceBased - trigger: - - at: '9:00:00' - platform: time - condition: - - condition: state - entity_id: group.all_mobile_devices - state: not_home - action: - - data: - entity_id: switch.smartplug2 - service: switch.turn_off -- id: '1549314090330' - alias: TVBedroomSwitchOnTimeBased - trigger: - - at: '20:30:00' - platform: time - condition: - condition: or - conditions: - - condition: state - entity_id: device_tracker.xperia_carmen - state: home - - condition: state - entity_id: device_tracker.mia2basti - state: home - action: - - data: - entity_id: switch.smartplug2 - service: switch.turn_on - id: '1550446484812' - alias: Küche Morgens + alias: 'Morgens: Lichter ein' trigger: - - hours: '5' - minutes: '00' + - hours: '4' + minutes: '45' platform: time_pattern condition: [] action: @@ -259,12 +261,12 @@ - id: '1566136553211' alias: sonos_nachtmodus trigger: - - at: '23:00' + - at: '22:30:00' platform: time condition: [] action: - data: - volume_level: 0.05 + volume_level: 0.01 service: media_player.volume_set target: entity_id: media_player.kuche @@ -313,43 +315,6 @@ - cover.bedroom_cover_r - cover.00115a498e0439 mode: single -- id: '1577661091935' - alias: Weihnachtsbeleuchtung Ein - description: '' - trigger: - - event: sunset - offset: -00:15:00 - platform: sun - condition: [] - action: - - data: - entity_id: switch.smartplug3 - service: switch.turn_on - - type: turn_on - device_id: 1ca29332bdbb4af2afe3246cb0c8cef0 - entity_id: switch.smartplug1 - domain: switch - - type: turn_on - device_id: 8f967677acd571da0cc2f4762e5ea84b - entity_id: switch.smartplug6 - domain: switch - mode: single -- id: '1577661201952' - alias: Weihnachtsbeleuchtung Aus - description: '' - trigger: - - platform: time - at: '23:27' - condition: [] - action: - - data: - entity_id: switch.smartplug3 - service: switch.turn_off - - type: turn_off - device_id: 1ca29332bdbb4af2afe3246cb0c8cef0 - entity_id: switch.smartplug1 - domain: switch - mode: single - id: '1579939003577' alias: Rollos hoch Sonnenaufgang description: '' @@ -373,7 +338,7 @@ service: cover.open_cover mode: single - id: '1582149264429' - alias: Alle Lichter aus bei Verlassen morgens + alias: 'Aus: Lichter beim Verlassen morgens' description: '' trigger: - entity_id: group.all_mobile_devices @@ -396,7 +361,7 @@ type: turn_off mode: single - id: '1590530631139' - alias: DiskstationStartFuerBackup + alias: 'Ein: Diskstation fuer Backup (Mittwochs)' description: Diskstation für Backup starten trigger: - at: '19:55' @@ -451,13 +416,15 @@ für Alexa-Erreichbarkeit trigger: - platform: time_pattern - hours: '*' minutes: /5 - seconds: '0' + hours: '*' condition: - condition: template - value_template: '{{ states(''sensor.fritz_box_6490_cable_lgi_external_ip.state'') + value_template: '{{ states(''sensor.fritz_box_6490_cable_lgi_externe_ip.state'') != states(''bb2k34f24w8jtpg2_homeee_schnorbus_net.state'') }}' + - condition: state + entity_id: input_boolean.dnsreportsent + state: 'off' action: - service: notify.pushover data: @@ -480,7 +447,7 @@ message: blub mode: single - id: '1619867143833' - alias: VDR bei TV-Aktivierung einschalten wenn aus + alias: 'TV: VDR bei TV-Aktivierung einschalten wenn aus' description: '' trigger: - platform: state @@ -494,6 +461,7 @@ - service: switch.turn_on target: entity_id: switch.vdr + data: {} mode: single - id: '1627487138001' alias: NFC Tag BastiSchlafzimmer ist gescannt @@ -561,3 +529,520 @@ - switch.run_script_musikstreamingstarten - switch.run_script_radiostarten mode: single +- id: '1661800146764' + alias: 'Kinderzimmer: Rollo runter bei Kälte oder Helligkeit' + description: '' + trigger: + - platform: state + entity_id: + - sensor.neomulti4in1_temperature + condition: [] + action: + - choose: + - conditions: + - condition: numeric_state + entity_id: sensor.neomulti4in1_temperature + below: '18' + - condition: numeric_state + entity_id: sensor.neomulti4in1_illuminance_lux + above: '50' + sequence: + - service: cover.set_cover_position + data: + position: 2 + target: + entity_id: cover.00115a498e0439 + default: [] + mode: single +- id: '1662547547972' + alias: 'Aus: Aida Ei, Aura Lampe (Zeit/Sonne)' + description: '' + trigger: + - platform: time + at: 07:00:00 + - platform: sun + event: sunrise + offset: '+30' + - platform: time + at: 08:00:00 + condition: [] + action: + - service: light.turn_off + data: {} + target: + entity_id: + - light.aura_table_lamp + - light.aida_ei + mode: single +- id: '1663085252318' + alias: 'Abwesenheit: TVs aus bei verlassen' + description: '' + trigger: + - platform: state + entity_id: + - group.all_mobile_devices + from: home + to: not_home + condition: + - condition: state + entity_id: group.all_mobile_devices + state: not_home + action: + - data: {} + service: switch.turn_off + target: + entity_id: + - switch.neq1809644 + - switch.tp_link_smart_plug_b251 + - switch.0xc4988600000f75a3 + mode: single +- id: '1658352177825' + alias: 'Webhook: Rollo Kinderzimmer schliessen' + description: Webhook für IFTTT um auf Alexa zu reagieren + trigger: + - platform: webhook + webhook_id: webhook-x7sygKA7ptuSGF4mdpZK6xIS + allowed_methods: + - POST + - PUT + local_only: false + condition: [] + action: + - service: notify.pushover + data: + message: Webhook triggered + - service: cover.set_cover_position + data: + position: 10 + target: + entity_id: cover.00115a498e0439 + mode: single +- id: '1659035206672' + alias: Webhook - Lampe Esstisch ein + description: '' + trigger: + - platform: webhook + webhook_id: webhook-lampe-esstisch-ein-BBlMW3-bMn3m6G-OrMWd72np + allowed_methods: + - POST + - PUT + local_only: false + condition: [] + action: + - service: light.turn_on + data: + transition: 3 + brightness_pct: 50 + target: + entity_id: light.peq1195568 + mode: single +- id: '1665484519306' + alias: 'Abwesenheit: Lichter & Geräte aus.' + description: '' + trigger: + - platform: state + entity_id: + - group.all_mobile_devices + from: home + to: not_home + condition: + - condition: state + entity_id: group.all_mobile_devices + state: not_home + action: + - service: light.turn_off + data: {} + target: + entity_id: + - light.aura_table_lamp + - light.schlummerlicht + area_id: kinderzimmer + - service: switch.turn_off + data: {} + target: + entity_id: switch.smartplug1 + area_id: 1d171e588f714f2f8bd7f2abdeb22a85 + mode: single +- id: '1665853168244' + alias: 'Webhook: TV ein' + description: '' + trigger: + - platform: webhook + webhook_id: webhook-UTooHpc61R3Uh6yhlt_UzJWb + allowed_methods: + - POST + - PUT + local_only: false + condition: [] + action: + - service: notify.pushover + data: + message: Webhook triggered + - service: scene.turn_on + target: + entity_id: scene.fernsehschauen + metadata: {} + mode: single +- id: '1666468577446' + alias: 'Abends: Rollos fast runter bei Dunkelheit' + description: '' + trigger: + - platform: time_pattern + minutes: /5 + condition: + - condition: time + after: '16:00:00' + - condition: numeric_state + entity_id: cover.00115a498e0439 + attribute: current_position + above: 70 + - condition: numeric_state + entity_id: sensor.neomulti4in1_illuminance_lux + attribute: illuminance_lux + below: 80 + action: + - service: cover.set_cover_position + data: + position: 20 + target: + entity_id: + - cover.00115a498e0439 + - cover.bedroom_cover_l + - cover.bedroom_cover_r + mode: single +- id: '1666731752157' + alias: 'Morgens: Kinderzimmer Lampe an' + description: Aura Lampe zum Wecken morgens + trigger: + - platform: time + at: 07:09:00 + condition: [] + action: + - service: light.turn_on + data: + effect: Fishtank + transition: 13 + target: + entity_id: light.aura_table_lamp + mode: single +- id: '1669209963082' + alias: 'Abends: Rollo ganz runter um 21:30' + description: '' + trigger: + - platform: time + at: '21:30:00' + condition: + - condition: sun + after: sunset + action: + - service: cover.set_cover_position + data: + position: 15 + mode: single +- id: '1669913615090' + alias: 'Deko: Weihnachtsstern WZ ein' + description: '' + trigger: + - platform: time_pattern + hours: '16' + minutes: '30' + condition: [] + action: + - type: turn_on + device_id: 943c6b2308bc1a2864bab0e091efed3a + entity_id: switch.0xc4988600000fb820 + domain: switch + mode: single +- id: '1669913660233' + alias: 'Deko: WZ Weihnachtsstern aus' + description: '' + trigger: + - platform: time_pattern + hours: '23' + minutes: '21' + seconds: '10' + condition: [] + action: + - delay: + minutes: '{{ range(10, 21) | random }}' + - type: turn_off + device_id: 943c6b2308bc1a2864bab0e091efed3a + entity_id: switch.0xc4988600000fb820 + domain: switch + mode: single +- id: '1669925435788' + alias: 'Deko: Weihnachtsstern Studio ein' + description: '' + trigger: + - platform: time_pattern + hours: '16' + minutes: /6 + condition: + - condition: numeric_state + entity_id: sensor.neomulti4in1_illuminance_lux + attribute: illuminance_lux + below: 200 + action: + - type: turn_on + device_id: f4c163f600b540628bdf34fbdc6fac2e + entity_id: switch.smartplug2 + domain: switch + mode: single +- id: '1669925528967' + alias: 'Deko: Weihnachtsstern Studio aus' + description: '' + trigger: + - platform: time + at: '23:10:00' + condition: [] + action: + - type: turn_off + device_id: f4c163f600b540628bdf34fbdc6fac2e + entity_id: switch.smartplug2 + domain: switch + mode: single +- id: '1673124529316' + alias: Low battery level detection & notification for all battery sensors + description: '' + use_blueprint: + path: sbyx/low-battery-level-detection-notification-for-all-battery-sensors.yaml + input: + day: 6 + actions: + - service: notify.persistent_notification + data: + message: 'Battery low: {{sensors}}' + time: '11:00:00' +- id: '1676665076953' + alias: 'Schlafzimmer: TV an bei Anwesenheit Abends' + description: '' + trigger: + - platform: time + at: '21:20:00' + condition: + - condition: state + entity_id: group.all_mobile_devices + state: home + action: + - service: switch.turn_on + data: {} + target: + entity_id: switch.0xc4988600000f75a3 + mode: single +- id: '1676665159531' + alias: 'Schlafzimmer: TV aus Nachts' + description: '' + trigger: + - platform: time + at: 00:20:00 + condition: [] + action: + - service: switch.turn_off + data: {} + target: + entity_id: switch.0xc4988600000f75a3 + mode: single +- id: '1679422560183' + alias: 'Studio: Abends aus bei Abwesenheit' + description: '' + trigger: + - platform: time_pattern + hours: '19' + minutes: /30 + seconds: '00' + - platform: time_pattern + hours: '20' + minutes: /15 + - platform: time_pattern + hours: '21' + minutes: /15 + condition: + - condition: state + entity_id: binary_sensor.bewegung_studio_occupancy_delayed_off + state: 'off' + for: + hours: 0 + minutes: 10 + seconds: 0 + action: + - service: switch.turn_off + data: {} + target: + entity_id: + - switch.smartplug1 + - switch.tp_link_smart_plug_b251 + - service: light.turn_off + data: + transition: 14 + target: + entity_id: + - light.0x04cd15fffe78a60e + - light.stehlampe_studio + mode: single +- id: '1679573420341' + alias: 'Studio: Licht ein bei Bewegung in Dunkelheit' + description: '' + trigger: + - platform: state + entity_id: + - binary_sensor.bewegung_studio_occupancy_delayed_off + from: 'off' + to: 'on' + condition: + - condition: numeric_state + entity_id: sensor.bewegung_studio_illuminance_lux + attribute: illuminance_lux + below: 50 + action: + - service: light.turn_on + data: + transition: 20 + rgb_color: + - 0 + - 189 + - 22 + brightness_pct: 24 + target: + entity_id: light.0x04cd15fffe78a60e + mode: single +- id: '1679573943226' + alias: 'Studio: Home office enabled' + description: '' + trigger: + - platform: state + entity_id: + - input_boolean.homeoffice + from: 'off' + to: 'on' + for: + hours: 0 + minutes: 0 + seconds: 0 + condition: [] + action: + - service: switch.turn_on + data: {} + target: + entity_id: switch.tp_link_smart_plug_b251 + - if: + - condition: numeric_state + entity_id: sensor.bewegung_studio_illuminance_lux + attribute: illuminance_lux + below: 59.2 + then: + - service: light.turn_on + data: + rgb_color: + - 129 + - 120 + - 247 + target: + entity_id: light.0x04cd15fffe78a60e + - service: light.turn_on + data: + transition: 5 + brightness_pct: 19 + target: + entity_id: light.stehlampe_studio + mode: single +- id: '1681079300007' + alias: 'Morgens: TV ein ' + description: '' + trigger: + - platform: time + at: 06:55:00 + condition: [] + action: + - service: switch.turn_on + data: {} + target: + entity_id: switch.0xc4988600000f75a3 + mode: single +- id: '1682840484924' + alias: 'Alert: Rollos nicht verfügbar' + description: '' + trigger: + - platform: time_pattern + minutes: /2 + condition: + - condition: state + entity_id: input_boolean.alertingrollos + state: 'off' + - condition: or + conditions: + - condition: state + entity_id: cover.00115a498e0439 + state: unavailable + for: + hours: 0 + minutes: 0 + seconds: 15 + - condition: state + entity_id: cover.bedroom_cover_l + state: unavailable + for: + hours: 0 + minutes: 0 + seconds: 15 + - condition: state + entity_id: cover.bedroom_cover_r + state: unavailable + for: + hours: 0 + minutes: 0 + seconds: 15 + - condition: state + entity_id: cover.bedroom_cover_l + state: unknown + for: + hours: 0 + minutes: 0 + seconds: 15 + - condition: state + entity_id: cover.bedroom_cover_r + state: unknown + for: + hours: 0 + minutes: 0 + seconds: 15 + action: + - service: notify.pushover + data: + message: Rollo nicht verfügbar + title: Alert + data: + priority: 1 + - service: input_boolean.turn_on + data: {} + target: + entity_id: input_boolean.alertingrollos + - service: notify.persistent_notification + data: + title: Alert + message: 'Eins der Rollos ist nicht verfügbar ' + mode: single +- id: '1682842740198' + alias: 'Reset: Inputhelper at midnight' + description: '' + trigger: + - platform: time + at: 00:01:00 + condition: [] + action: + - service: input_boolean.turn_off + data: {} + target: + entity_id: + - input_boolean.homeoffice + - input_boolean.alertingrollos + - input_boolean.dnsreportsent + mode: single +- id: '1689434776158' + alias: Bewegungsaktiviertes Licht Keller + description: '' + use_blueprint: + path: homeassistant/motion_light.yaml + input: + motion_entity: binary_sensor.keller_aktivitat_occupancy + light_target: + entity_id: light.kellerlampe diff --git a/binary_sensors/ping.yaml b/binary_sensors/ping.yaml new file mode 100644 index 0000000..a997745 --- /dev/null +++ b/binary_sensors/ping.yaml @@ -0,0 +1,18 @@ +- platform: ping + host: 192.168.178.48 + name: TV Samsung 55 +- platform: ping + host: 192.168.178.31 + name: Thermomix +- platform: ping + host: 192.168.178.120 + name: Shelly25_R +- platform: ping + host: 192.168.178.124 + name: Shelly25_L +- platform: ping + host: 192.168.178.22 + name: HarmonyWz +- platform: ping + host: 192.168.178.23 + name: HarmonySz diff --git a/blueprints/automation/homeassistant/motion_light.yaml b/blueprints/automation/homeassistant/motion_light.yaml new file mode 100644 index 0000000..c11d22d --- /dev/null +++ b/blueprints/automation/homeassistant/motion_light.yaml @@ -0,0 +1,50 @@ +blueprint: + name: Motion-activated Light + description: Turn on a light when motion is detected. + domain: automation + source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/motion_light.yaml + input: + motion_entity: + name: Motion Sensor + selector: + entity: + domain: binary_sensor + device_class: motion + light_target: + name: Light + selector: + target: + entity: + domain: light + no_motion_wait: + name: Wait time + description: Time to leave the light on after last motion is detected. + default: 120 + selector: + number: + min: 0 + max: 3600 + unit_of_measurement: seconds + +# If motion is detected within the delay, +# we restart the script. +mode: restart +max_exceeded: silent + +trigger: + platform: state + entity_id: !input motion_entity + from: "off" + to: "on" + +action: + - service: light.turn_on + target: !input light_target + - wait_for_trigger: + platform: state + entity_id: !input motion_entity + from: "on" + to: "off" + - delay: !input no_motion_wait + - service: light.turn_off + target: !input light_target diff --git a/blueprints/automation/homeassistant/notify_leaving_zone.yaml b/blueprints/automation/homeassistant/notify_leaving_zone.yaml new file mode 100644 index 0000000..d3a70d7 --- /dev/null +++ b/blueprints/automation/homeassistant/notify_leaving_zone.yaml @@ -0,0 +1,43 @@ +blueprint: + name: Zone Notification + description: Send a notification to a device when a person leaves a specific zone. + domain: automation + source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/notify_leaving_zone.yaml + input: + person_entity: + name: Person + selector: + entity: + domain: person + zone_entity: + name: Zone + selector: + entity: + domain: zone + notify_device: + name: Device to notify + description: Device needs to run the official Home Assistant app to receive notifications. + selector: + device: + integration: mobile_app + +trigger: + platform: state + entity_id: !input person_entity + +variables: + zone_entity: !input zone_entity + # This is the state of the person when it's in this zone. + zone_state: "{{ states[zone_entity].name }}" + person_entity: !input person_entity + person_name: "{{ states[person_entity].name }}" + +condition: + condition: template + value_template: "{{ trigger.from_state.state == zone_state and trigger.to_state.state != zone_state }}" + +action: + domain: mobile_app + type: notify + device_id: !input notify_device + message: "{{ person_name }} has left {{ zone_state }}" diff --git a/blueprints/automation/sbyx/low-battery-level-detection-notification-for-all-battery-sensors.yaml b/blueprints/automation/sbyx/low-battery-level-detection-notification-for-all-battery-sensors.yaml new file mode 100644 index 0000000..91e5d60 --- /dev/null +++ b/blueprints/automation/sbyx/low-battery-level-detection-notification-for-all-battery-sensors.yaml @@ -0,0 +1,74 @@ +blueprint: + name: Low battery level detection & notification for all battery sensors + description: Regularly test all sensors with 'battery' device-class for crossing + a certain battery level threshold and if so execute an action. + domain: automation + input: + threshold: + name: Battery warning level threshold + description: Battery sensors below threshold are assumed to be low-battery (as + well as binary battery sensors with value 'on'). + default: 20 + selector: + number: + min: 5.0 + max: 100.0 + unit_of_measurement: '%' + mode: slider + step: 5.0 + time: + name: Time to test on + description: Test is run at configured time + default: '10:00:00' + selector: + time: {} + day: + name: Weekday to test on + description: 'Test is run at configured time either everyday (0) or on a given + weekday (1: Monday ... 7: Sunday)' + default: 0 + selector: + number: + min: 0.0 + max: 7.0 + mode: slider + step: 1.0 + exclude: + name: Excluded Sensors + description: Battery sensors (e.g. smartphone) to exclude from detection. Only + entities are supported, devices must be expanded! + default: + entity_id: [] + selector: + target: + entity: + device_class: battery + actions: + name: Actions + description: Notifications or similar to be run. {{sensors}} is replaced with + the names of sensors being low on battery. + selector: + action: {} + source_url: https://gist.github.com/sbyx/1f6f434f0903b872b84c4302637d0890 +variables: + day: !input day + threshold: !input threshold + exclude: !input exclude + sensors: "{% set result = namespace(sensors=[]) %} {% for state in states.sensor + | selectattr('attributes.device_class', '==', 'battery') %}\n {% if 0 <= state.state + | int(-1) < threshold | int and not state.entity_id in exclude.entity_id %}\n + \ {% set result.sensors = result.sensors + [state.name ~ ' (' ~ state.state + ~ ' %)'] %}\n {% endif %}\n{% endfor %} {% for state in states.binary_sensor + | selectattr('attributes.device_class', '==', 'battery') | selectattr('state', + '==', 'on') %}\n {% if not state.entity_id in exclude.entity_id %}\n {% set + result.sensors = result.sensors + [state.name] %}\n {% endif %}\n{% endfor %} + {{result.sensors|join(', ')}}" +trigger: +- platform: time + at: !input time +condition: +- '{{ sensors != '''' and (day | int == 0 or day | int == now().isoweekday()) }}' +action: +- choose: [] + default: !input actions +mode: single diff --git a/blueprints/script/homeassistant/confirmable_notification.yaml b/blueprints/script/homeassistant/confirmable_notification.yaml new file mode 100644 index 0000000..ae170ea --- /dev/null +++ b/blueprints/script/homeassistant/confirmable_notification.yaml @@ -0,0 +1,74 @@ +blueprint: + name: Confirmable Notification + description: >- + A script that sends an actionable notification with a confirmation before + running the specified action. + domain: script + source_url: https://github.com/home-assistant/core/blob/master/homeassistant/components/script/blueprints/confirmable_notification.yaml + input: + notify_device: + name: Device to notify + description: Device needs to run the official Home Assistant app to receive notifications. + selector: + device: + integration: mobile_app + title: + name: "Title" + description: "The title of the button shown in the notification." + default: "" + selector: + text: + message: + name: "Message" + description: "The message body" + selector: + text: + confirm_text: + name: "Confirmation Text" + description: "Text to show on the confirmation button" + default: "Confirm" + selector: + text: + confirm_action: + name: "Confirmation Action" + description: "Action to run when notification is confirmed" + default: [] + selector: + action: + dismiss_text: + name: "Dismiss Text" + description: "Text to show on the dismiss button" + default: "Dismiss" + selector: + text: + dismiss_action: + name: "Dismiss Action" + description: "Action to run when notification is dismissed" + default: [] + selector: + action: + +mode: restart + +sequence: + - alias: "Send notification" + domain: mobile_app + type: notify + device_id: !input notify_device + title: !input title + message: !input message + data: + actions: + - action: "CONFIRM" + title: !input confirm_text + - action: "DISMISS" + title: !input dismiss_text + - alias: "Awaiting response" + wait_for_trigger: + - platform: event + event_type: mobile_app_notification_action + - choose: + - conditions: "{{ wait.trigger.event.data.action == 'CONFIRM' }}" + sequence: !input confirm_action + - conditions: "{{ wait.trigger.event.data.action == 'DISMISS' }}" + sequence: !input dismiss_action diff --git a/configuration.yaml b/configuration.yaml new file mode 100644 index 0000000..790f898 --- /dev/null +++ b/configuration.yaml @@ -0,0 +1,433 @@ +homeassistant: + # Location required to calculate the time the sun rises and sets. + # Coordinates are also used for location for weather related components. + # Google Maps can be used to determine more precise GPS coordinates. + latitude: !secret home_latitude + longitude: !secret home_longitude + country: DE + # Impacts weather/sunrise data + elevation: !secret home_elevation + + # 'metric' for Metric System, 'imperial' for imperial system + unit_system: metric + + # Pick yours from here: + # http://en.wikipedia.org/wiki/List_of_tz_database_time_zones + time_zone: Europe/Berlin + + # Name of the location where Home Assistant is running + name: Home + + # Customization file + customize: !include customize.yaml + + auth_providers: + # must be included for alexa/reverse proxy access + - type: homeassistant + - type: trusted_networks + trusted_networks: + - 192.168.178.0/24 + - 172.18.0.0/16 + - 172.19.0.0/16 + - fd00::/8 +mobile_app: +#discovery: +schedule: + weekend_schedule: + name: "Wochenende" + saturday: + - from: "04:00:00" + to: "22:00:00" + sunday: + - from: "04:00:00" + to: "22:00:00" +system_health: +person: +# Enables the frontend +frontend: + #themes: !include themes.yaml + themes: !include_dir_merge_named themes + +# Uncomment this if you are using SSL/TLS, running in Docker container, etc. +http: +# ssl_certificate: ssl/fritz.box.crt +# ssl_key: ssl/fritz.box.key + use_x_forwarded_for: true + trusted_proxies: + - 192.168.178.0/24 # Add the IP address of the proxy server +# base_url: example.duckdns.org:8123 + +config: + +# helper enablement +input_datetime: +input_text: +counter: +timer: +#default_config: + +group: !include groups.yaml +automation: !include automations.yaml +script: !include scripts.yaml +scene: !include scenes.yaml + +media_player: +- platform: vdr + host: 192.168.178.200 + timeout: 2 + +homematic: + local_port: 8060 + interfaces: + wireless: + host: !secret ccu_host + username: !secret ccu_user + password: !secret ccu_password + callback_ip: !secret ccu_callback_ip + callback_port: 8060 + ip: + host: !secret ccu_host + port: 2010 + hosts: + ccu2: + host: !secret ccu_host + username: !secret ccu_user + password: !secret ccu_password + +switch: + - platform: command_line + switches: + pihole_switch: + command_on: "curl -s -X GET 'http://192.168.178.202/admin/api.php?enable&auth=1eae9e87f4b4710981639ee591b7d75734811d61697092110cb748c3244e01cc'" + command_off: "curl -s -X GET 'http://192.168.178.202/admin/api.php?disable=3600&auth=1eae9e87f4b4710981639ee591b7d75734811d61697092110cb748c3244e01cc'" + command_state: "curl -s -X GET 'http://192.168.178.202/admin/api.php?status&auth=1eae9e87f4b4710981639ee591b7d75734811d61697092110cb748c3244e01cc'" + value_template: "{{ value_json.status == 'enabled' }}" + - platform: template + switches: + ccu_tsm: + value_template: '{{ is_state("binary_sensor.ccu_thunderstorm_mode","on") }}' + turn_on: + service: homematic.set_variable_value + data: + entity_id: homematic.ccu2 + name: ThunderstormMode + value: true + turn_off: + service: homematic.set_variable_value + data: + entity_id: homematic.ccu2 + name: ThunderstormMode + value: false + run_script_fernsehschauen: + turn_on: + service: script.fernsehschauenstarten + turn_off: + service: script.noop + run_script_streamingstarten: + turn_on: + service: script.streamingstarten + turn_off: + service: script.noop + run_script_musikstreamingstarten: + turn_on: + service: script.musikstreamingstarten + turn_off: + service: script.noop + run_script_radiostarten: + turn_on: + service: script.radiostarten + turn_off: + service: script.noop + - platform: wake_on_lan + mac: !secret mac_vdr + host: !secret host_vdr + name: VDR + - platform: wake_on_lan + mac: !secret mac_ds + host: !secret host_ds + name: Diskstation + + +emulated_hue: + host_ip: !secret ip_ha_raspi + listen_port: 8300 + expose_by_default: true + exposed_domains: + - light + - switch +# +logbook: +# +alexa: +#intent_script: !include_dir_named alexa/ +intent_script: !include alexa.yaml + +# +zone: + name: Home + latitude: !secret home_latitude + longitude: !secret home_longitude + radius: 50 + icon: mdi:account-multiple + +zone 2: + name: !secret work_name + latitude: !secret work_lat + longitude: !secret work_long + radius: 300 + icon: mdi:worker + +map: +sun: +influxdb: + host: !secret influx_host + username: !secret influx_user + password: !secret influx_pwd + max_retries: 3 + database: "home_assistant" + tags: + instance: prod + source: hass + include: + domains: + - sensor + +binary_sensor: !include_dir_merge_list binary_sensors + +template: + - trigger: + - platform: state + entity_id: binary_sensor.bewegung_studio_occupancy + from: "off" + to: "on" + # - platform: time_pattern + # hours: "22" + # minutes: "/5" + # seconds: "*" + binary_sensor: + name: bewegung_studio_occupancy_delayed_off + state: 'on' + auto_off: '00:20:00' +# - trigger: +# - platform: state +# entity_id: binary_sensor.bewegung_studio_occupancy +# state: 'on' +# binary_sensor: +# name: Motion detected with occupancy timeout +# state: 'on' +# auto_off: '00:15:00' + + +input_boolean: + vacation_mode: + name: Vacation + icon: mdi:beach + baby_bed: + name: Baby im Bett + icon: mdi:baby +input_number: + humidity_threshold: + name: Bad Luftfeuchte + initial: 68 + min: 50 + max: 80 + step: 1 + +input_select: + living_room_tv: + name: Wohnzimmer TV + options: + - PowerOff + - Fernsehen + - Radio + - Musik Streaming + - Smart TV wiedergeben + initial: PowerOff + icon: mdi:monitor + bed_room_tv: + name: Schlafzimmer TV + options: + - PowerOff + - Fernsehen + - Fire TV sehen + initial: PowerOff + icon: mdi:monitor + +input_button: +stream: +#camera: +# - platform: generic +# name: Babycam +# stream_source: http://babycam.fritz.box/min.php +# still_image_url: http://babycam.fritz.box/cam_pic.php + +google_assistant: + project_id: homeassistantintegration-c23fa + #report_state: true + exposed_domains: + - switch + - light + - sensor + - climate + +shelly: + +mqtt: + sensor: + - name: shelly_outsid__temp + state_topic: "shellies/shellyht-F939CE/sensor/temperature" + unit_of_measurement: "° C" + - name: shelly_outside_hum + state_topic: "shellies/shellyht-F939CE/sensor/humidity" + unit_of_measurement: "%" + - name: shelly_outside_bat + state_topic: "shellies/shellyht-F939CE/sensor/battery" + unit_of_measurement: "%" + cover: + - name: bedroom_cover_r + command_topic: "shellies/shellyswitch25-76D19E/roller/0/command" + position_topic: "shellies/shellyswitch25-76D19E/roller/0/pos" + set_position_topic: "shellies/shellyswitch25-76D19E/roller/0/command/pos" + payload_available: "true" + payload_not_available: "false" + qos: 1 + retain: false + payload_open: "open" + payload_close: "close" + payload_stop: "stop" + position_open: 100 + position_closed: 0 + optimistic: false + - name: bedroom_cover_l + command_topic: "shellies/shellyswitch25-C4C361/roller/0/command" + position_topic: "shellies/shellyswitch25-C4C361/roller/0/pos" + set_position_topic: "shellies/shellyswitch25-C4C361/roller/0/command/pos" + payload_available: "true" + payload_not_available: "false" + qos: 1 + retain: false + payload_open: "open" + payload_close: "close" + payload_stop: "stop" + position_open: 100 + position_closed: 0 + optimistic: false + + +sensor: + - platform: systemmonitor + resources: + - type: disk_use_percent + arg: /home + - type: memory_free + - type: last_boot + - platform: template + sensors: + # batt_multisensor: + #friendly_name: 'Battery Multisensor' + #value_template: '{{ states.zwave.aeon_labs_zw074_multisensor_gen5.attributes.battery_level }}' + #unit_of_measurement: '%' + ventil_wohnzimmer: + value_template: '{{states.climate.neq1493917.attributes.valve }}' + unit_of_measurement: '%' + ventil_kueche: + value_template: '{{states.climate.neq0879536.attributes.valve }}' + unit_of_measurement: '%' + ventil_schlafzimmer: + value_template: '{{states.climate.neq1412900.attributes.valve }}' + unit_of_measurement: '%' + ventil_bad: + value_template: '{{states.climate.keq1041886.attributes.valve }}' + unit_of_measurement: '%' + ventil_kinderzimmer: + value_template: '{{states.climate.neq1411043.attributes.valve }}' + unit_of_measurement: '%' + ventil_studio: + value_template: '{{states.climate.qeq1461341.attributes.valve }}' + unit_of_measurement: '%' + ventil_gaestezimmer: + value_template: "{{state_attr('climate.000a18a99700a0', 'valve' )}}" + unit_of_measurement: '%' + sun_elevation: + value_template: '{{ states.sun.sun.attributes.elevation }}' + + ccu_service_meldungen: + friendly_name: 'CCU Servicemeldungen' + value_template: '{{ states.homematic.ccu2.state | int }}' + + remote_wohnzimmer_activity: + value_template: '{{ states.remote.harmony_hub_wohnzimmer.attributes.current_activity }}' + friendly_name: 'Wohnzimmer Harmony' + + remote_schlafzimmer_activity: + value_template: '{{ states.remote.harmony_hub_schlafzimmer.attributes.current_activity }}' + friendly_name: 'Schlafzimmer Harmony' + + sunset_time: + friendly_name: 'Sonnenuntergang' + value_template: '{{ ((as_timestamp(states.sun.sun.attributes.next_setting)) | timestamp_local) [11:16] }}' + + sunrise_time: + friendly_name: 'Sonnenaufgang' + value_template: '{{ ((as_timestamp(states.sun.sun.attributes.next_rising)) | timestamp_local) [11:16] }}' + + - platform: vdr + host: 192.168.178.200 + timeout: 2 + +history: + include: + domains: + - sensor + - switch + +recorder: + db_url: !secret mysql_connection + purge_keep_days: 7 + exclude: + domains: + - automation + - updater + - script + - scene + entities: + - sun.sun # Don't record sun data + - sensor.last_boot # Comes from 'systemmonitor' sensor platform + - sensor.date + - sensor.pihole_ads_blocked_today + - sensor.pihole_ads_percentage_blocked_today + - sensor.pihole_dns_queries_cached + - sensor.pihole_dns_queries_forwarded + - sensor.pihole_dns_queries_today + - sensor.pihole_dns_unique_clients + - sensor.pihole_dns_unique_domains + - sensor.pihole_domains_blocked + - media_player.fire_tv_schlafzimmer + - media_player.fire_tv_wohnzimmer + - sensor.aeon_labs_zw074_multisensor_gen5_burglar + - sensor.aeon_labs_zw074_multisensor_gen5_alarm_type + - group.tradfri + - sensor.dark_sky_icon + + +logger: + default: warning + logs: + homeassistant.components: warning + #homeassistant.components.automation: info + homeassistant.components.influxdb: warning + homeassistant.components.homematic: warning + homeassistant.components.http.ban: error + homeassistant.components.alexa: error + homeassistant.components.scripts: error + homeassistant.components.scenes: error + homeassistant.components.webhook: info + homeassistant.components.http: warning + pyhomematic: error + custom_components.vdr.media_player: error + pyvdr.svdrp: error + pyvdr: error + homeassistant.components.wake_on_lan: debug + homeassistant.components.harmony: error + homeassistant.components.device_tracker: error + fritzconnection: info diff --git a/covers/bedroom.yaml b/covers/bedroom.yaml new file mode 100644 index 0000000..e6a636d --- /dev/null +++ b/covers/bedroom.yaml @@ -0,0 +1,32 @@ +- platform: mqtt + name: bedroom_cover_r + command_topic: "shellies/shellyswitch25-76D19E/roller/0/command" + position_topic: "shellies/shellyswitch25-76D19E/roller/0/pos" + set_position_topic: "shellies/shellyswitch25-76D19E/roller/0/command/pos" + payload_available: "true" + payload_not_available: "false" + qos: 1 + retain: false + payload_open: "open" + payload_close: "close" + payload_stop: "stop" + position_open: 100 + position_closed: 0 + optimistic: false +- platform: mqtt + name: bedroom_cover_l + command_topic: "shellies/shellyswitch25-C4C361/roller/0/command" + position_topic: "shellies/shellyswitch25-C4C361/roller/0/pos" + set_position_topic: "shellies/shellyswitch25-C4C361/roller/0/command/pos" + payload_available: "true" + payload_not_available: "false" + qos: 1 + retain: false + payload_open: "open" + payload_close: "close" + payload_stop: "stop" + position_open: 100 + position_closed: 0 + optimistic: false + + diff --git a/covers/children.yaml b/covers/children.yaml new file mode 100644 index 0000000..f55b44e --- /dev/null +++ b/covers/children.yaml @@ -0,0 +1,15 @@ +- platform: mqtt + name: children_cover + command_topic: "shellies/shellyswitch25-C4A2F1/roller/0/command" + position_topic: "shellies/shellyswitch25-C4A2F1/roller/0/pos" + set_position_topic: "shellies/shellyswitch25-C4A2F1/roller/0/command/pos" + payload_available: "true" + payload_not_available: "false" + qos: 1 + retain: false + payload_open: "open" + payload_close: "close" + payload_stop: "stop" + position_open: 100 + position_closed: 0 + optimistic: false \ No newline at end of file diff --git a/covers/shades.yaml b/covers/shades.yaml new file mode 100644 index 0000000..34b6937 --- /dev/null +++ b/covers/shades.yaml @@ -0,0 +1,15 @@ +- platform: mqtt + name: studio_shades + command_topic: "esp32/shades/studio/command" + position_topic: "esp32/shades/studio/pos" + set_position_topic: "esp32/shades/studio/command/pos" + payload_available: "true" + payload_not_available: "false" + qos: 1 + retain: false + payload_open: "open" + payload_close: "close" + payload_stop: "stop" + position_open: 100 + position_closed: 0 + optimistic: false \ No newline at end of file diff --git a/customize.yaml b/customize.yaml new file mode 100644 index 0000000..73d9c0c --- /dev/null +++ b/customize.yaml @@ -0,0 +1,173 @@ +light.stehlampe: + friendly_name: Leuchte + icon: mdi:floor-lamp +switch.wifi_plug: + friendly_name: Wifi-Plug1 + icon: mdi:lightbulb +switch.neq0274722: + friendly_name: Bad-Lüftung + icon: mdi:fan +binary_sensor.tv_samsung_55: + icon: mdi:television +switch.vdr: + friendly_name: Disk Recorder + icon: mdi:video-vintage +climate.keq1041886: + friendly_name: Badezimmer (Ventil) +climate.neq0937650: + friendly_name: Badezimmer +climate.neq1411043: + friendly_name: Kinderzimmer +sensor.neq0937650_humidity: + friendly_name: Bad Luftfeuchte + icon: mdi:water-percent +sensor.neq0937650_temperature: + friendly_name: Bad Temp +climate.neq0879536: + friendly_name: Heizung Küche +group.all_mobile_devices: + friendly_name: Anwesenheit +group.all_switches: + friendly_name: Schalter + hidden: false +group.admin_links: + friendly_name: Admin Links +sensor.ieq0046113_state: + friendly_name: Fenster Wohnzimmer + icon: mdi:lock +binary_sensor.heq0164808_state: + friendly_name: Fenster Schlafzimmer links + icon: mdi:lock +binary_sensor.oeq0421976_state: + friendly_name: Haustür + icon: mdi:door +binary_sensor.neq0627526_state: + friendly_name: Fenster Schlafzimmer rechts + icon: mdi:lock +binary_sensor.neq0629114_state: + friendly_name: Fenster Schlafzimmer links + icon: mdi:lock +binary_sensor.neq0632846_state: + friendly_name: Fenster Kinderzimmer + icon: mdi:lock +binary_sensor.neq0632852_state: + friendly_name: Fenster Büro Dreieck + icon: mdi:lock +binary_sensor.oeq0421981_state: + friendly_name: Fenster Büro Dreieck unten + icon: mdi:lock +binary_sensor.neq0942367_state: + friendly_name: Fenster Küche + icon: mdi:lock +sensor.aeon_labs_zw074_multisensor_gen5_burglar: + friendly_name: Bewegung +sensor.aeon_labs_zw074_multisensor_gen5_alarm_level: + friendly_name: Alarmlevel +sensor.aeon_labs_zw074_multisensor_gen5_luminance: + friendly_name: Helligkeit +sensor.aeon_labs_zw074_multisensor_gen5_relative_humidity: + friendly_name: Luftfeuchtigkeit + icon: mdi:water-percent +sensor.aeon_labs_zw074_multisensor_gen5_temperature: + friendly_name: Temperatur +sensor.heq0083395_valve_state: + friendly_name: Gästezimmer Ventilöffnung + icon: mdi:av-timer +climate.neq1493917: + friendly_name: Wohnzimmer (Ventil) +climate.neq1522978: + friendly_name: Wohnzimmer +sensor.neq1522978_humidity: + friendly_name: Wohnzimmer Luftfeuchte +sensor.neq1522978_temperature: + friendly_name: Wohnzimmer Temperatur +sensor.neq1521469_humidity: + friendly_name: Schlafzimmer Luftfeuchte +sensor.neq1521469_temperature: + friendly_name: Schlafzimmer Temperatur +climate.neq1412900: + friendly_name: Schlafzimmer (Ventil) +climate.neq1521469: + friendly_name: Schlafzimmer +sensor.aeon_labs_zw074_multisensor_gen5_alarm_type: + hidden: true +sensor.aeon_labs_zw074_multisensor_gen5_sourcenodeid: + hidden: true +binary_sensor.aeon_labs_zw074_multisensor_gen5_sensor: + hidden: true +light.tradfri_bulb_e27_w_opal_1000lm: + friendly_name: Licht Keller +light.bodenlampe: + friendly_name: Bodenlampe Flur +light.og: + hidden: true +light.keller: + hidden: true +switch.ccu_tsm: + friendly_name: Hohe Luftfeuchtigkeit +group.pihole: + friendly_name: PiHole +switch.pihole_switch: + friendly_name: Pihole aktiviert +sensor.log_db_file_size: + friendly_name: Home Assistant Log Db + icon: mdi:database +remote.wohnzimmer: + entity_picture: /local/harmony.png +remote.schlafzimmer: + entity_picture: /local/harmony.png +input_select.living_room_tv: + entity_picture: /local/harmony.png +input_select.bed_room_tv: + entity_picture: /local/harmony.png +binary_sensor.thermomix: + entity_picture: /local/thermomix.png +light.peq1195568: + friendly_name: Esstisch + icon: mdi:ceiling-light +binary_sensor.peq0573988_state: + friendly_name: Fenster Studio gross + icon: mdi:lock +sensor.channel: + friendly_name: TV Kanal + icon: mdi:television-box +sensor.is_recording: + friendly_name: Aufnahme + icon: mdi:record-rec +light.stehlampe_schlafzimmer: + icon: mdi:lighthouse +cover.bedroom_cover: + friendly_name: Schlafzimmer rechts +cover.children_cover: + friendly_name: Kinderzimmer +switch.smartplug3: + friendly_name: Weihnachtsstern + icon: mdi:star +light.wzstehlampe: + friendly_name: Stehlampe + icon: mdi:floor-lamp +light.zylinder_wohnzimmer: + friendly_name: Zylinder + icon: mdi:lighthouse +sensor.peq1457677_humidity: + friendly_name: Kinderzimmer Luftfeuchte +sensor.peq1457677_temperature: + friendly_name: Kinderzimmer Temperatur +sensor.peq1457723_temperature: + friendly_name: Küche Temperatur +sensor.peq1457723_humidity: + friendly_name: Küche Luftfeuchtigkeit +cover.00115a498e051f: + friendly_name: HM Kinderzimmer +switch.smartplug5: + friendly_name: Trinkbrunnen +binary_sensor.0000da498c3106_state: + friendly_name: Fenster Gästezimmer +binary_sensor.oeq0427910_state: + friendly_name: Fenster Wohnzimmer +switch.smartplug6: + friendly_name: Weihnachtsbaum +cover.bedroom_cover_l: + friendly_name: Schlafzimmer (links) +cover.bedroom_cover_r: + friendly_name: Schlafzimmer (rechts) diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..7ac4cd1 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,126 @@ +# docker run -d \ +# --name="homeassistant" \ +# --net=host \ +# --restart on-failure \ +# --device=/dev/ttyACM0 \ +# -v /home/basti/Projects/homeassistant_config:/config \ +# -e "TZ=Europe/Berlin" \ +# -p 8123:8123 -p 8060:8060 \ +# homeassistant/home-assistant:0.101.3 + +version: '3.3' +services: + homeassistant: + container_name: homeassistant + image: homeassistant/home-assistant:${VERSION} + volumes: + - /home/basti/Projects/smarthome:/config + - /home/basti/Projects/smarthome/ssl:/config/ssl + - /etc/localtime:/etc/localtime:ro + - /run/dbus:/run/dbus:ro + devices: + - /dev/ttyACM0:/dev/ttyACM0 + - /dev/ttyACM1:/dev/ttyACM1 + restart: unless-stopped + privileged: true + network_mode: host + depends_on: + # - mariadb + - mariadb_1x + - mosquitto + - zigbee2mqtt + + mariadb_1x: + container_name: mariadb_1x + image: mariadb:10.11.2 + restart: always + ports: + - "3306:3306/tcp" + volumes: + - /srv/docker/mariadb_1x/config:/etc/mysql/conf.d + - /srv/docker/mariadb_1x/data:/var/lib/mysql + environment: + TZ: ${TZ} + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} + MYSQL_DATABASE: ${MYSQL_DATABASE} + MYSQL_USER: ${MYSQL_USER} + MYSQL_PASSWORD: ${MYSQL_PASSWORD} + MARIADB_AUTO_UPGRADE: "1" + MARIADB_INITDB_SKIP_TZINFO: "1" + + # adminer: + # image: adminer + # restart: always + # ports: + # - 8080:18080 + + mosquitto: + container_name: mosquitto + image: eclipse-mosquitto:1.6.15 + restart: always + ports: + - 1883:1883 + - 9001:9001 + volumes: + - /etc/localtime:/etc/localtime:ro + - mosquitto_data:/mosquitto/data + - ./mosq_config:/mosquitto/config:ro + - ./mosq_log:/mosquitto/log +# - /srv/docker/mosquitto/config:/mosquitto/config +# - /srv/docker/mosquitto/log:/mosquitto/log + environment: + TZ: ${TZ} + + nodered: + image: nodered/node-red:${NODEREDTAG} + container_name: nodered + restart: unless-stopped + ports: + - 1880:1880 + environment: + TZ: ${TZ} + volumes: + - /etc/localtime:/etc/localtime:ro + - nodered_data:/data + #user: "${LOCAL_USER}:${LOCAL_USER}" + depends_on: + - homeassistant + zwave-js: + image: zwavejs/zwavejs2mqtt:${ZWAVEJSTAG} + container_name: zwave-js + restart: unless-stopped + environment: + TZ: ${TZ} + depends_on: + - mosquitto + ports: + - 8091:8091 + - 3001:3000 + devices: + - /dev/ttyACM0:/dev/ttyACM0 + volumes: + - /home/basti/Projects/smarthome/zwave-js:/usr/src/app/store + + zigbee2mqtt: + container_name: zigbee2mqtt + restart: unless-stopped + image: koenkk/zigbee2mqtt:${ZIGBEE2MQTT_TAG} + depends_on: + - mosquitto + devices: + - /dev/ttyACM1 + volumes: + - ./zbdata:/app/data + - /run/udev:/run/udev:ro + ports: + - 8383:8080 + environment: + - TZ=${TZ} + # # group_add: + # # - dialout + # # user: 1000:1000 +volumes: + nodered_data: {} + mosquitto_data: {} + zwavejs_data: {} + zigbee2mqtt_data: {} diff --git a/govee_learning.yaml b/govee_learning.yaml new file mode 100644 index 0000000..5f03045 --- /dev/null +++ b/govee_learning.yaml @@ -0,0 +1,5 @@ +7E:9C:D3:39:32:37:4F:06: + set_brightness_max: 100 + get_brightness_max: 100 + before_set_brightness_turn_on: false + config_offline_is_off: false diff --git a/groups.yaml b/groups.yaml new file mode 100644 index 0000000..1f10db2 --- /dev/null +++ b/groups.yaml @@ -0,0 +1,31 @@ +all_mobile_devices: +- person.basti +- person.carmen + +all_covers: +- cover.bedroom_cover +- cover.children_cover +- cover.00115a498e051f + +cover_bedroom: +- cover.bedroom_cover_l +- cover.bedroom_cover_r + +cover_1og: +- cover.00115a498e0439 +- cover.bedroom_cover_l +- cover.bedroom_cover_r + +harmonies: + name: Harmony Fernbedienungen + entities: + - input_select.living_room_tv + - input_select.bed_room_tv + +tradfri: + name: Ikea Tradfri + entities: + - light.klampetisch + - light.klampekuehlschrank + - light.bodenlampe + - light.stehlampe diff --git a/scenes.yaml b/scenes.yaml new file mode 100644 index 0000000..5f2cec9 --- /dev/null +++ b/scenes.yaml @@ -0,0 +1,248 @@ +- id: '1647182853105' + name: Fernsehschauen + entities: + switch.run_script_fernsehschauen: + assumed_state: true + friendly_name: run_script_fernsehschauen + state: 'on' +- id: '1647183036577' + name: Streaming + entities: + switch.run_script_streamingstarten: + assumed_state: true + friendly_name: run_script_streamingstarten + state: 'on' +- id: aa0b996e-e33d-42cf-bfc0-57490567cc42 + name: Musikstreaming + entities: + switch.run_script_musikstreamingstarten: + assumed_state: true + friendly_name: run_script_musikstreamingstarten + state: 'on' +- id: 0dcee14d-17ea-4888-beab-73e2f1ba16c9 + name: Radio + entities: + switch.run_script_radiostarten: + assumed_state: true + friendly_name: run_script_radiostarten + state: 'on' +- id: c92e08b7f4ab4dd6bc533ad3e31aa98a + name: Essen + entities: + light.peq1195568: + brightness: 165 + id: PEQ1195568 + interface: wireless + level: 0.65 + working: 'No' + friendly_name: Esstisch + supported_features: 1 + icon: mdi:ceiling-light + state: 'on' +- id: '1582055600925' + name: Schlafenszeit + entities: + light.klampekuehlschrank: + min_color_temp_kelvin: 2202 + max_color_temp_kelvin: 4000 + min_mireds: 250 + max_mireds: 454 + supported_color_modes: + - color_temp + friendly_name: Lampe Kühlschrank + supported_features: 32 + state: 'off' + light.klampetisch: + supported_color_modes: + - brightness + friendly_name: Lampe Tisch + supported_features: 32 + state: 'off' + light.wzstehlampe: + min_color_temp_kelvin: 2202 + max_color_temp_kelvin: 4000 + min_mireds: 250 + max_mireds: 454 + supported_color_modes: + - color_temp + friendly_name: Stehlampe + supported_features: 32 + icon: mdi:floor-lamp + state: 'off' + light.zylinder_wohnzimmer: + supported_color_modes: + - brightness + entity_id: + - light.tradfri_bulb_9 + - light.tradfri_bulb_10 + icon: mdi:lighthouse + friendly_name: Zylinder + supported_features: 32 + state: 'off' + remote.harmony_hub_wohnzimmer: + activity_list: + - Musik Streaming + - Fernsehen + - Smart TV wiedergeben + - Film wiedergeben + - Fire TV sehen + - Radio + current_activity: PowerOff + activity_starting: + devices_list: + - Amazon Fire TV-Stick + - Intel Multimedia-Player + - Yamaha AV-Empfänger + - LG TV + - LG Blu-ray Player + last_activity: Smart TV wiedergeben + friendly_name: Harmony Hub Wohnzimmer + supported_features: 4 + state: 'off' + switch.neq1809644: + id: NEQ1809644 + interface: wireless + rssi_peer: -63 + power: 0 + current: 0 + voltage: 236.5 + working: 'No' + icon: mdi:theater + friendly_name: TV & Receiver Steckdose + state: 'off' + switch.smartplug6: + restored: true + friendly_name: SmartPlug6 + supported_features: 0 + state: unavailable + switch.0xc4988600000fb820: + linkquality: 167 + icon: mdi:star-four-points-outline + friendly_name: WZ Weihnachtsstern + state: 'off' + metadata: + switch.0xc4988600000fb820: + entity_only: true +- id: '1607166966561' + name: Putzen + entities: + light.wzstehlampe: + min_mireds: 250 + max_mireds: 454 + brightness: 254 + color_temp: 364 + friendly_name: Stehlampe + supported_features: 35 + icon: mdi:floor-lamp + state: 'on' + light.kellerlampe: + brightness: 254 + friendly_name: Keller + supported_features: 33 + state: 'on' + light.peq1195568: + brightness: 255 + id: PEQ1195568 + interface: wireless + level: 1 + working: 'No' + friendly_name: Esstisch + supported_features: 1 + icon: mdi:ceiling-light + state: 'on' + light.bodenlampe: + min_mireds: 250 + max_mireds: 454 + brightness: 254 + color_temp: 370 + friendly_name: Bodenlampe Flur + supported_features: 35 + state: 'on' +- id: '1677665006825' + name: 'Rollos: Lüftungsmodus' + entities: + cover.bedroom_cover_l: + current_position: 29 + friendly_name: Schlafzimmer (links) + supported_features: 15 + state: open + cover.bedroom_cover_r: + current_position: 100 + friendly_name: Schlafzimmer (rechts) + supported_features: 15 + state: open + cover.00115a498e0439: + current_position: 100 + id: 00115A498E0439 + interface: ip + rssi_peer: -70 + level: 1 + friendly_name: Kinderzimmer + supported_features: 15 + state: open + metadata: + cover.bedroom_cover_l: + entity_only: true + cover.bedroom_cover_r: + entity_only: true + cover.00115a498e0439: + entity_only: true +- id: '1680541032840' + name: PreBett + entities: + cover.bedroom_cover_l: + current_position: 22 + friendly_name: Schlafzimmer (links) + supported_features: 15 + state: open + cover.bedroom_cover_r: + current_position: 16 + friendly_name: Schlafzimmer (rechts) + supported_features: 15 + state: open + cover.00115a498e0439: + current_position: 22 + id: 00115A498E0439 + interface: ip + rssi_peer: -73 + level: 0.22 + friendly_name: Kinderzimmer + supported_features: 15 + state: open + light.schlummerlicht: + min_color_temp_kelvin: 2202 + max_color_temp_kelvin: 4000 + min_mireds: 250 + max_mireds: 454 + supported_color_modes: + - color_temp + - hs + entity_id: + - light.schlummerlicht1 + - light.schlummerlicht2 + icon: mdi:lightbulb-group + friendly_name: Schlummerlicht + supported_features: 32 + color_mode: hs + brightness: 92 + hs_color: + - 346.64 + - 90.87 + rgb_color: + - 255 + - 23 + - 74 + xy_color: + - 0.652 + - 0.282 + state: 'on' + icon: mdi:weather-night + metadata: + cover.bedroom_cover_l: + entity_only: true + cover.bedroom_cover_r: + entity_only: true + cover.00115a498e0439: + entity_only: true + light.schlummerlicht: + entity_only: true diff --git a/scripts.yaml b/scripts.yaml new file mode 100644 index 0000000..4f26ebb --- /dev/null +++ b/scripts.yaml @@ -0,0 +1,148 @@ +temp_to_display: + sequence: + - service: homematic.set_variable_value + data_template: + entity_id: homematic.ccu2 + name: AussenTemp + value: '{{states.sensor.aeon_labs_zw074_multisensor_gen5_temperature.state}}' +opened_windows: + sequence: + - service: notify.pushover + data_template: + title: Offene Fenster + message: '{%- if dict(states.binary_sensor|groupby(''state''))[''on'']|length + == 0 and dict(states.sensor|groupby(''state''))[''open'']|length==0 -%} Keine + Fenster geöffnet. {%- endif %} {% for device in dict(states.sensor|groupby(''state''))[''open''] + -%} {%- if not loop.first -%}, {% endif %} {{ device.name }} {%- endfor -%} + {%- if dict(states.binary_sensor|groupby(''state''))[''on'']|length > 0 and + dict(states.sensor|groupby(''state''))[''open'']|length>0 -%}, {%- endif %} + {%- for device in dict(states.binary_sensor|groupby(''state''))[''on''] -%} + {% if loop.last and loop.length > 1 %} und {%- elif not loop.first and loop.length + > 1 -%}, {%- endif -%} {% if ''Aeotec ZW074 MultiSensor Gen5 Sensor'' not + in device.name %} {{ device.name }} {%- endif -%} {%- endfor -%} + + ' +input_select_harmony_living_room: + alias: Start activity from input select Livingroom + sequence: + - service: remote.turn_on + data_template: + entity_id: remote.harmony_hub_wohnzimmer + activity: '{% if is_state("input_select.living_room_tv", "PowerOff") %} -1 {% + elif is_state("input_select.living_room_tv", "Fernsehen")%} 51351051 {% elif + is_state("input_select.living_room_tv", "Radio") %} 26940828 {% elif is_state("input_select.living_room_tv", + "Musik Streaming") %} 26940754 {% elif is_state("input_select.living_room_tv", + "Smart TV wiedergeben") %} 42951013 {% endif %}' +input_select_harmony_bed_room: + alias: Start activity from input selec Bedroom + sequence: + - service: remote.turn_on + data_template: + entity_id: remote.harmony_hub_schlafzimmer + activity: '{% if is_state("input_select.bed_room_tv", "PowerOff") %} -1 {% elif + is_state("input_select.bed_room_tv", "Fernsehen") %} 18758733 {% elif is_state("input_select.bed_room_tv", + "Fire TV sehen") %} 45151339 {% endif %}' +delay_5sec: + sequence: + - delay: + seconds: 15 +start_tv: + sequence: + - service: switch.turn_on + data: + entity_id: switch.neq1809644 + - delay: + seconds: 5 + - service: switch.turn_on + data: + entity_id: switch.vdr + - service: remote.turn_on + data: + entity_id: remote.harmony_hub_wohnzimmer + activity: fernsehen +fernsehschauenstarten: + alias: Harmony Wohnzimmer - Starte Fernsehschauen + sequence: + - service: switch.turn_on + data: {} + target: + entity_id: + - switch.vdr + - switch.neq1809644 + - delay: + hours: 0 + minutes: 0 + seconds: 5 + milliseconds: 0 + - service: remote.turn_on + data: + activity: 42950655 + entity_id: remote.harmony_hub_wohnzimmer + mode: single +streamingstarten: + alias: Harmony Wohnzimmer - Streaming starten + sequence: + - service: switch.turn_on + data: {} + target: + entity_id: + - switch.neq1809644 + - delay: + hours: 0 + minutes: 0 + seconds: 5 + milliseconds: 0 + - service: remote.turn_on + data: + activity: 42951013 + entity_id: remote.harmony_hub_wohnzimmer +radiostarten: + alias: Harmony Wohnzimmer - Radio starten + sequence: + - service: switch.turn_on + data: {} + target: + entity_id: + - switch.neq1809644 + - delay: + hours: 0 + minutes: 0 + seconds: 5 + milliseconds: 0 + - service: remote.turn_on + data: + activity: 26940828 + entity_id: remote.harmony_hub_wohnzimmer +musikstreamingstarten: + alias: Harmony Wohnzimmer - Musikstreaming starten + sequence: + - service: switch.turn_on + data: {} + target: + entity_id: + - switch.neq1809644 + - delay: + hours: 0 + minutes: 0 + seconds: 5 + milliseconds: 0 + - service: remote.turn_on + data: + activity: 26940754 + entity_id: remote.harmony_hub_wohnzimmer +noop: + sequence: + - delay: + seconds: 1 +harmonybedroompoweroff: + alias: HarmonyBedroomPowerOff + sequence: + - service: remote.turn_off + entity_id: remote.harmony_hub_schlafzimmer + enabled: false + - service: remote.turn_on + data: + activity: PowerOff + target: + entity_id: remote.harmony_hub_schlafzimmer + mode: single diff --git a/show-container-logs.sh b/show-container-logs.sh new file mode 100644 index 0000000..17d25b4 --- /dev/null +++ b/show-container-logs.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env zsh + +docker logs -f $(docker ps |grep home-assistant|cut -d' ' -f1) + diff --git a/themes.yaml b/themes.yaml new file mode 100644 index 0000000..0f9649d --- /dev/null +++ b/themes.yaml @@ -0,0 +1,322 @@ +Dark - Green: + ### Main Interface Colors ### + primary-color: "#03B14B" + light-primary-color: "#47FC92" + primary-background-color: "#1F1F28" + secondary-background-color: var(--primary-background-color) + divider-color: "#2F2F3D" + ### Text ### + primary-text-color: "#FFFFFF" + secondary-text-color: "#47FC92" + text-primary-color: "#FFFFFF" + disabled-text-color: "#464653" + ### Sidebar Menu ### + sidebar-icon-color: "#B6B6C1" + sidebar-text-color: "#F1F1F1" + sidebar-selected-background-color: var(--primary-background-color) + sidebar-selected-icon-color: "#47FC92" + sidebar-selected-text-color: var(--sidebar-selected-icon-color) + ### States and Badges ### + state-icon-color: "#04E762" + state-icon-active-color: "#FBD150" + state-icon-unavailable-color: var(--disabled-text-color) + ### Sliders ### + paper-slider-knob-color: "#04E762" + paper-slider-knob-start-color: var(--paper-slider-knob-color) + paper-slider-pin-color: var(--paper-slider-knob-color) + paper-slider-active-color: var(--paper-slider-knob-color) + paper-slider-secondary-color: var(--light-primary-color) + ### Labels ### + label-badge-background-color: "#464653" + label-badge-text-color: "#FFFFFF" + label-badge-red: "#343443" + ### Cards ### + paper-card-background-color: "#23232E" + paper-listbox-background-color: var(--primary-background-color) + ### Toggles ### + paper-toggle-button-checked-button-color: "#04E762" + paper-toggle-button-checked-bar-color: "#47FC92" + paper-toggle-button-unchecked-button-color: var(--paper-toggle-button-checked-button-color) + paper-toggle-button-unchecked-bar-color: "#343443" + ### Table row ### + table-row-background-color: var(--primary-background-color) + table-row-alternative-background-color: var(--secondary-background-color) +Light - Green: + ### Main Interface Colors ### + primary-color: "#03B14B" + light-primary-color: "#47FC92" + primary-background-color: "#F6F7F9" + secondary-background-color: var(--primary-background-color) + divider-color: "#B9CDC3" + ### Text ### + primary-text-color: "#788083" + secondary-text-color: "#03B14B" + text-primary-color: "#FFFFFF" + disabled-text-color: "#A8ADAF" + ### Sidebar Menu ### + sidebar-icon-color: "#788083" + sidebar-text-color: var(--sidebar-icon-color) + sidebar-selected-background-color: var(--primary-background-color) + sidebar-selected-icon-color: "#12D289" + sidebar-selected-text-color: var(--sidebar-selected-icon-color) + ### States and Badges ### + state-icon-color: "#12D289" + state-icon-active-color: "#FBCD41" + state-icon-unavailable-color: var(--disabled-text-color) + ### Sliders ### + paper-slider-knob-color: "#12D289" + paper-slider-knob-start-color: var(--paper-slider-knob-color) + paper-slider-pin-color: var(--paper-slider-knob-color) + paper-slider-active-color: var(--paper-slider-knob-color) + paper-slider-secondary-color: var(--light-primary-color) + ### Labels ### + label-badge-background-color: "#F8FAF9" + label-badge-text-color: "#788083" + label-badge-red: "#3FEFAC" + ### Cards ### + paper-card-background-color: "#FFFFFF" + paper-listbox-background-color: var(--primary-background-color) + ### Toggles ### + paper-toggle-button-checked-button-color: "#03B14B" + paper-toggle-button-checked-bar-color: "#12D289" + paper-toggle-button-unchecked-button-color: var(--paper-toggle-button-checked-button-color) + paper-toggle-button-unchecked-bar-color: "#ABB0B2" + ### Table row ### + table-row-background-color: var(--primary-background-color) + table-row-alternative-background-color: var(--secondary-background-color) +Gray & Green: + ### Main Interface Colors ### + primary-color: "#24E081" + light-primary-color: "#6BEAAA" + primary-background-color: "#494B58" + secondary-background-color: var(--primary-background-color) + divider-color: "#595B6B" + ### Text ### + primary-text-color: "#FBFBFB" + secondary-text-color: "#24E081" + text-primary-color: "#FBFBFB" + disabled-text-color: "#7A7D90" + ### Sidebar Menu ### + sidebar-icon-color: "#A2A4B2" + sidebar-text-color: "#FBFBFB" + sidebar-selected-background-color: var(--primary-background-color) + sidebar-selected-icon-color: "#24E081" + sidebar-selected-text-color: var(--sidebar-selected-icon-color) + ### States and Badges ### + state-icon-color: "#24E081" + state-icon-active-color: "#FBCD41" + state-icon-unavailable-color: var(--disabled-text-color) + ### Sliders ### + paper-slider-knob-color: "#24E081" + paper-slider-knob-start-color: var(--paper-slider-knob-color) + paper-slider-pin-color: var(--paper-slider-knob-color) + paper-slider-active-color: var(--paper-slider-knob-color) + paper-slider-secondary-color: var(--light-primary-color) + paper-green-400: "#FBCD41" + ### Labels ### + label-badge-background-color: "#9A9CAB" + label-badge-text-color: "#FBFBFB" + label-badge-red: "#555766" + ### Cards ### + paper-card-background-color: "#555766" + paper-listbox-background-color: var(--primary-background-color) + ### Toggles ### + paper-toggle-button-checked-button-color: "#24E081" + paper-toggle-button-checked-bar-color: "#6BEAAA" + paper-toggle-button-unchecked-button-color: "#A2A4B2" + paper-toggle-button-unchecked-bar-color: "#787B8F" + ### Table row ### + table-row-background-color: var(--primary-background-color) + table-row-alternative-background-color: var(--secondary-background-color) +Navy Blue & Yellow: + ### Main Interface Colors ### + primary-color: "#FEB221" + light-primary-color: "#FECA67" + primary-background-color: "#1F2635" + secondary-background-color: var(--primary-background-color) + divider-color: "#2D374D" + ### Text ### + primary-text-color: "#FBFBFB" + secondary-text-color: "#FEB221" + text-primary-color: "#FBFBFB" + disabled-text-color: "#4A5E84" + ### Sidebar Menu ### + sidebar-icon-color: "#8192B6" + sidebar-text-color: "#FBFBFB" + sidebar-selected-background-color: var(--primary-background-color) + sidebar-selected-icon-color: "#FEB221" + sidebar-selected-text-color: var(--sidebar-selected-icon-color) + ### States and Badges ### + state-icon-color: "#FEAA0A" + state-icon-active-color: "#FEF5D8" + state-icon-unavailable-color: var(--disabled-text-color) + ### Sliders ### + paper-slider-knob-color: "#FEB221" + paper-slider-knob-start-color: var(--paper-slider-knob-color) + paper-slider-pin-color: var(--paper-slider-knob-color) + paper-slider-active-color: var(--paper-slider-knob-color) + paper-slider-secondary-color: var(--light-primary-color) + ### Labels ### + label-badge-background-color: "#3E4C6C" + label-badge-text-color: "#FBFBFB" + label-badge-red: "#252D40" + ### Cards ### + paper-card-background-color: "#252D40" + paper-listbox-background-color: var(--primary-background-color) + ### Toggles ### + paper-toggle-button-checked-button-color: "#FEB221" + paper-toggle-button-checked-bar-color: "#FECA67" + paper-toggle-button-unchecked-button-color: "#6E81AA" + paper-toggle-button-unchecked-bar-color: "#3E4C6C" + ### Table row ### + table-row-background-color: var(--primary-background-color) + table-row-alternative-background-color: var(--secondary-background-color) +Night: + # MyVariables + base-hue: '220' #Controls the base (and accent) color hue (0-360) | 0=Red 60=Yellow 120=Green 180=Cyan 240=Blue 300=Magenta 360=Red + base-sat: '5%' #Controls the saturation of the theme (0%-100%) | 0%=Grey 100%=Full Saturation + # MyVar + huesat: 'var(--base-hue), var(--base-sat),' + # Primary Color + primary-color: 'hsl(var(--huesat) 36%)' #header colors and some text colors + dark-primary-color: 'hsl(var(--huesat) 60%)' + light-primary-color: 'hsl(var(--huesat) 90%)' + accent-color: 'hsl(var(--huesat) 30%)' + # Backgrounds + primary-background-color: 'hsl(var(--huesat) 16%)' + secondary-background-color: 'hsl(var(--huesat) 16%)' # background behind cards + paper-listbox-background-color: 'hsl(var(--huesat) 16%)' + paper-card-background-color: 'hsl(var(--huesat) 12%)' + paper-dialog-background-color: 'var(--paper-card-background-color)' + table-row-background-color: 'hsl(var(--huesat) 12%)' + table-row-alternative-background-color: 'hsl(var(--huesat) 10%)' + # Divider + divider-color: 'hsla(0, 0%, 0%, 0)' + dark-divider-opacity: '0' + light-divider-opacity: '0' + dark-secondary-opacity: '1' + # Text colors + primary-text-color: 'hsl(var(--huesat) 90%)' + text-primary-color: 'hsl(var(--huesat) 80%)' + secondary-text-color: 'hsl(var(--huesat) 80%)' + disabled-text-color: 'hsl(var(--huesat) 70%)' + sidebar-text_-_color: 'hsl(var(--huesat) 90%)' + sidebar-text-color: 'hsl(var(--huesat) 90%)' + paper-card-header-color: 'hsl(var(--huesat) 90%)' + paper-button-ink-color: 'hsl(var(--huesat) 50%)' + # Text Adjustments + paper-font-headline_-_letter-spacing: '-0.5px' + paper-font-headline_-_font-weight: '400' + paper-font-body1_-_font-weight: '300' + # Nav Menu + paper-listbox-color: 'hsl(var(--huesat) 50%)' + paper-grey-50: 'hsl(var(--huesat) 50%)' + paper-grey-200: 'hsl(var(--huesat) 10%)' #active menu item + # Paper card + paper-item-icon-color: 'hsl(var(--huesat) 40%)' + paper-item-icon-active-color: 'var(--paper-item-icon-color)' + paper-item-icon_-_color: 'var(--paper-item-icon-color)' + paper-item-selected_-_background-color: 'hsla(0, 0%, 0%, 0.2)' + paper-item-selected_-_color: 'hsl(var(--huesat) 20%)' #? + paper-tabs-selection-bar-color: 'hsla(0, 0%, 0%, 0.2)' + paper-tab-ink: 'hsl(var(--huesat) 70%)' + paper-input-container-color: 'hsl(var(--huesat) 60%)' + # Labels + label-badge-red: 'var(--paper-card-background-color)' + label-badge-border-color: 'var(--label-badge-red)' + label-badge-background-color: 'var(--paper-card-background-color)' + label-badge-text-color: 'var(--primary-text-color)' + # Shadows + shadow-elevation-2dp_-_box-shadow: '0px 0px 0px 0px hsl(var(--huesat) 10%)' + shadow-elevation-16dp_-_box-shadow: '0px 0px 0px 0px hsl(var(--huesat) 25%)' + # Switches + paper-toggle-button-checked-button-color: 'hsl(var(--base-hue), 90%, 50%)' + paper-toggle-button-checked-bar-color: 'hsl(var(--huesat) 25%)' + paper-toggle-button-unchecked-button-color: 'hsl(var(--huesat) 25%)' + paper-toggle-button-unchecked-bar-color: 'hsl(var(--huesat) 5%)' + # Sliders + paper-slider-knob-color: 'hsl(var(--base-hue), 90%, 50%)' + paper-slider-knob-start-color: 'hsl(var(--base-hue), 80%, 25%)' + paper-slider-pin-color: 'hsl(var(--base-hue), 90%, 50%)' + paper-slider-active-color: 'hsl(var(--base-hue), 90%, 50%)' + paper-slider-container-color: 'hsl(var(--huesat) 28%)' + paper-slider-secondary-color: 'hsl(var(--huesat) 90%)' + paper-slider-disabled-active-color: 'hsl(var(--base-hue), 80%, 25%)' + paper-slider-disabled-secondary-color: 'hsl(var(--base-hue), 80%, 25%)' + paper-dialog-color: 'hsl(var(--base-hue), 20%, 80%)' +darkorange: + primary-color: "#ff9800" + light-primary-color: "#ffc947" + dark-primary-color: "#c66900" + text-primary-color: "#ffffff" + primary-background-color: "#37464f" + sidebar-text_-_background: "#62717b" + paper-card-background-color: "#263137" + paper-card-header-color: "var(--text-primary-color)" + secondary-background-color: "var(--primary-background-color)" + primary-text-color: "var(--text-primary-color)" + secondary-text-color: "var(--primary-color)" + paper-listbox-background-color: "var(--sidebar-text_-_background)" + paper-toggle-button-checked-ink-color: "var(--dark-primary-color)" + paper-toggle-button-checked-button-color: "var(--dark-primary-color)" + paper-toggle-button-checked-bar-color: "var(--dark-primary-color)" + paper-slider-knob-color: "var(--primary-color)" + paper-slider-knob-start-color: "var(--primary-color)" + paper-slider-pin-color: "var(--primary-color)" + paper-slider-active-color: "var(--primary-color)" + paper-slider-secondary-color: "var(--light-primary-color)" + paper-slider-container-color: "var(--sidebar-text_-_background)" + paper-progress-secondary-color: "var(--sidebar-text_-_background)" + paper-item-selected_-_background-color: "var(--primary-color)" + paper-item-icon_-_color: "var(--text-primary-color)" + paper-item-icon-color: "var(--sidebar-text_-_background)" + paper-item-icon-active-color: "var(--primary-color)" + paper-grey-50: "var(--sidebar-text_-_background)" + paper-grey-200: "var(--primary-background-color)" + label-badge-background-color: "var(--sidebar-text_-_background)" + label-badge-text-color: "var(--text-primary-color)" + label-badge-red: "var(--primary-color)" + label-badge-blue: "var(--light-primary-color)" + label-badge-green: "var(--dark-primary-color)" + label-badge-yellow: "var(--text-primary-color)" + label-badge-grey: "var(--paper-grey-500)" + table-row-background-color: "var(--paper-card-background-color)" + table-row-alternative-background-color: "var(--sidebar-text_-_background)" +onedark: + primary-color: "#4180B5" + light-primary-color: "#F0C30F" + dark-primary-color: "#c66900" + text-primary-color: "#D7DADC" + primary-background-color: "#37464f" + sidebar-text_-_background: "#62717b" + paper-card-background-color: "#3F5265" + paper-card-header-color: "var(--text-primary-color)" + secondary-background-color: "var(--primary-background-color)" + primary-text-color: "var(--text-primary-color)" + secondary-text-color: "var(--primary-color)" + paper-listbox-background-color: "var(--sidebar-text_-_background)" + paper-toggle-button-checked-ink-color: "var(--dark-primary-color)" + paper-toggle-button-checked-button-color: "var(--dark-primary-color)" + paper-toggle-button-checked-bar-color: "var(--dark-primary-color)" + paper-slider-knob-color: "var(--primary-color)" + paper-slider-knob-start-color: "var(--primary-color)" + paper-slider-pin-color: "var(--primary-color)" + paper-slider-active-color: "var(--primary-color)" + paper-slider-secondary-color: "var(--light-primary-color)" + paper-slider-container-color: "var(--sidebar-text_-_background)" + paper-progress-secondary-color: "var(--sidebar-text_-_background)" + paper-item-selected_-_background-color: "var(--primary-color)" + paper-item-icon_-_color: "var(--text-primary-color)" + paper-item-icon-color: "var(--sidebar-text_-_background)" + paper-item-icon-active-color: "var(--primary-color)" + paper-grey-50: "var(--sidebar-text_-_background)" + paper-grey-200: "var(--primary-background-color)" + label-badge-background-color: "var(--sidebar-text_-_background)" + label-badge-text-color: "var(--text-primary-color)" + label-badge-red: "var(--primary-color)" + label-badge-blue: "var(--light-primary-color)" + label-badge-green: "var(--dark-primary-color)" + label-badge-yellow: "var(--text-primary-color)" + label-badge-grey: "var(--paper-grey-500)" + table-row-background-color: "var(--paper-card-background-color)" + table-row-alternative-background-color: "var(--sidebar-text_-_background)"