diff --git a/configuration.yaml b/configuration.yaml index 1eb81ca..eb45fb5 100755 --- a/configuration.yaml +++ b/configuration.yaml @@ -33,6 +33,10 @@ logger: default: warning logs: custom_components: warning + homeassistant.components.rainbird: critical + homeassistant.components.rainbird.coordinator: critical + pyrainbird: critical + pyrainbird.async_client: critical homeassistant.components.mqtt: error homeassistant.components.netatmo: error homeassistant.components.unifi: error @@ -153,6 +157,7 @@ group: !include_dir_merge_named include/groups/ sensor: !include_dir_merge_list include/sensors/ automation: !include_dir_merge_list include/automations/ binary_sensor: !include_dir_merge_list include/binary_sensors/ +command_line: !include_dir_merge_list include/command_line/ device_tracker: !include include/device_trackers.yaml input_datetime: !include_dir_merge_named include/input/datetime/ input_number: !include_dir_merge_named include/input/number/ diff --git a/dashboards/views/05b_vanding.yaml b/dashboards/views/05b_vanding.yaml index 2bf4280..c892a62 100644 --- a/dashboards/views/05b_vanding.yaml +++ b/dashboards/views/05b_vanding.yaml @@ -142,11 +142,11 @@ sections: y: f.precipitation ?? 0 })); - # ⏸️ Rain Bird RC2 + # ⏸️ Vandingsstatus - type: grid cards: - type: heading - heading: Rain Bird RC2 + heading: Vandingsstatus icon: mdi:sprinkler-fire - type: tile @@ -158,8 +158,8 @@ sections: name: Sæt forsinkelse (dage) - type: tile - entity: calendar.annes_vanding - name: Vandingsplan + entity: binary_sensor.annes_vanding_rainsensor + name: Regnsensor # 📊 Vandingshistorik - type: grid diff --git a/dashboards/views/06c_indkorsel_snapshots.yaml b/dashboards/views/06c_indkorsel_snapshots.yaml index a613db2..37ee2a9 100644 --- a/dashboards/views/06c_indkorsel_snapshots.yaml +++ b/dashboards/views/06c_indkorsel_snapshots.yaml @@ -5,5 +5,5 @@ panel: true cards: - type: iframe - url: /local/snapshots/indkorsel_loader.html?v=20260525094526 + url: /local/snapshots/indkorsel_loader.html?v=20260612061319 aspect_ratio: 100% diff --git a/dashboards/views/10_map.yaml b/dashboards/views/10_map.yaml index acbe05f..78b00b7 100644 --- a/dashboards/views/10_map.yaml +++ b/dashboards/views/10_map.yaml @@ -22,7 +22,7 @@ sections: name: Andreas - entity: device_tracker.daniels_iphone_17pro name: Daniel - - entity: device_tracker.annes_iphone_xs_4 + - entity: device_tracker.annes_iphone_17pro name: Anne - entity: device_tracker.claus_iphone_15pro name: Claus diff --git a/dashboards/views/11_vedligehold.yaml b/dashboards/views/11_vedligehold.yaml index 4f02ed1..685c7bb 100644 --- a/dashboards/views/11_vedligehold.yaml +++ b/dashboards/views/11_vedligehold.yaml @@ -197,33 +197,13 @@ sections: type: heading heading: Synology DSM - - type: conditional - conditions: - - condition: state - entity: input_boolean.vis_alle_vedligehold - state: "on" - card: - type: tile - entity: binary_sensor.dethlefsen_security_status - name: Security status - - type: conditional conditions: - condition: state entity: input_boolean.vis_alle_vedligehold state: "off" - condition: state - entity: binary_sensor.dethlefsen_security_status - state: "on" - card: - type: tile - entity: binary_sensor.dethlefsen_security_status - name: Security status - - - type: conditional - conditions: - - condition: state - entity: input_boolean.vis_alle_vedligehold + entity: update.dethlefsen_dsm_update state: "on" card: type: tile @@ -234,9 +214,6 @@ sections: conditions: - condition: state entity: input_boolean.vis_alle_vedligehold - state: "off" - - condition: state - entity: update.dethlefsen_dsm_update state: "on" card: type: tile diff --git a/dokumenter/udstyr.md b/dokumenter/udstyr.md index 9723793..d6fbea3 100644 --- a/dokumenter/udstyr.md +++ b/dokumenter/udstyr.md @@ -248,7 +248,7 @@ | Person | Enhed | |---|---| | Claus Dethlefsen | iPhone 15 Pro | -| Anne Schusler Dethlefsen | iPhone 14 Pro | +| Anne Schusler Dethlefsen | iPhone 17 Pro | | Andreas Schusler Dethlefsen | — | | Daniel Schusler Dethlefsen | — | diff --git a/include/automations/doerklokke_bag2.yaml b/include/automations/doerklokke_bag2.yaml index 87614c1..689c393 100644 --- a/include/automations/doerklokke_bag2.yaml +++ b/include/automations/doerklokke_bag2.yaml @@ -114,7 +114,7 @@ - service: notify.mobile_app_claus_iphone_15pro data: message: Det ringer på bagdøren - doublepress - - service: notify.mobile_app_annes_iphone_14_pro + - service: notify.mobile_app_annes_iphone_17pro data: message: Det ringer på bagdøren - doublepress @@ -141,7 +141,7 @@ - service: notify.mobile_app_claus_iphone_15pro data: message: Det ringer på bagdøren - triple-press - - service: notify.mobile_app_annes_iphone_14_pro + - service: notify.mobile_app_annes_iphone_17pro data: message: Det ringer på bagdøren - triple-press @@ -168,7 +168,7 @@ - service: notify.mobile_app_claus_iphone_15pro data: message: Det ringer på bagdøren - long-press - - service: notify.mobile_app_annes_iphone_14_pro + - service: notify.mobile_app_annes_iphone_17pro data: message: Det ringer på bagdøren - long-press diff --git a/include/automations/doerklokke_for.yaml b/include/automations/doerklokke_for.yaml index 1af2037..891c4a0 100644 --- a/include/automations/doerklokke_for.yaml +++ b/include/automations/doerklokke_for.yaml @@ -62,7 +62,7 @@ - service: notify.mobile_app_claus_iphone_15pro data: message: Det ringer på fordøren - - service: notify.mobile_app_annes_iphone_14_pro + - service: notify.mobile_app_annes_iphone_17pro data: message: Det ringer på fordøren - sequence: @@ -121,7 +121,7 @@ - service: notify.mobile_app_claus_iphone_15pro data: message: Det ringer på fordøren - doublepress - - service: notify.mobile_app_annes_iphone_14_pro + - service: notify.mobile_app_annes_iphone_17pro data: message: Det ringer på fordøren - doublepress @@ -148,7 +148,7 @@ - service: notify.mobile_app_claus_iphone_15pro data: message: Det ringer på fordøren - triple-press - - service: notify.mobile_app_annes_iphone_14_pro + - service: notify.mobile_app_annes_iphone_17pro data: message: Det ringer på fordøren - triple-press @@ -175,7 +175,7 @@ - service: notify.mobile_app_claus_iphone_15pro data: message: Det ringer på fordøren - long-press - - service: notify.mobile_app_annes_iphone_14_pro + - service: notify.mobile_app_annes_iphone_17pro data: message: Det ringer på fordøren - long-press diff --git a/include/automations/infrastructure_alerts.yaml b/include/automations/infrastructure_alerts.yaml index 8594021..f2c413a 100644 --- a/include/automations/infrastructure_alerts.yaml +++ b/include/automations/infrastructure_alerts.yaml @@ -19,7 +19,7 @@ data: title: "Home Assistant: MQTT broker nede" message: "MQTT-brokeren svarer ikke efter opstart. Tjek Synology-containere." - - service: notify.mobile_app_annes_iphone_14_pro + - service: notify.mobile_app_annes_iphone_17pro data: title: "Home Assistant: MQTT broker nede" message: "MQTT-brokeren svarer ikke efter opstart. Tjek Synology-containere." @@ -45,9 +45,63 @@ data: title: "Home Assistant: MQTT broker nede" message: "MQTT-brokeren har været nede i mindst 2 minutter. Tjek Synology-containere." - - service: notify.mobile_app_annes_iphone_14_pro + - service: notify.mobile_app_annes_iphone_17pro data: title: "Home Assistant: MQTT broker nede" message: "MQTT-brokeren har været nede i mindst 2 minutter. Tjek Synology-containere." + mode: single + +- alias: Infrastruktur - Zigbee USB mangler efter opstart + id: infrastructure_zigbee_usb_missing_after_start + trigger: + - platform: homeassistant + event: start + + action: + - delay: "00:03:00" + - condition: state + entity_id: binary_sensor.zigbee_usb_ttyusb0 + state: "off" + - service: persistent_notification.create + data: + title: "Zigbee USB er nede" + message: >- + Zigbee USB-donglen (ttyUSB0) er ikke tilgaengelig efter Home Assistant-opstart. + Zigbee-enheder kan derfor vaere utilgaengelige. + - service: notify.mobile_app_claus_iphone_15pro + data: + title: "Home Assistant: Zigbee USB nede" + message: "Zigbee USB-donglen (ttyUSB0) mangler efter opstart. Tjek Synology USB-setup." + - service: notify.mobile_app_annes_iphone_17pro + data: + title: "Home Assistant: Zigbee USB nede" + message: "Zigbee USB-donglen (ttyUSB0) mangler efter opstart. Tjek Synology USB-setup." + + mode: single + +- alias: Infrastruktur - Zigbee USB gik ned + id: infrastructure_zigbee_usb_down_runtime + trigger: + - platform: state + entity_id: binary_sensor.zigbee_usb_ttyusb0 + to: "off" + for: "00:02:00" + + action: + - service: persistent_notification.create + data: + title: "Zigbee USB er nede" + message: >- + Zigbee USB-donglen (ttyUSB0) har vaeret utilgaengelig i mindst 2 minutter. + Zigbee-enheder kan derfor vaere utilgaengelige. + - service: notify.mobile_app_claus_iphone_15pro + data: + title: "Home Assistant: Zigbee USB nede" + message: "Zigbee USB-donglen (ttyUSB0) har vaeret nede i mindst 2 minutter. Tjek Synology USB-setup." + - service: notify.mobile_app_annes_iphone_17pro + data: + title: "Home Assistant: Zigbee USB nede" + message: "Zigbee USB-donglen (ttyUSB0) har vaeret nede i mindst 2 minutter. Tjek Synology USB-setup." + mode: single \ No newline at end of file diff --git a/include/automations/julelys.yaml b/include/automations/julelys.yaml index 5084d98..b9478a7 100644 --- a/include/automations/julelys.yaml +++ b/include/automations/julelys.yaml @@ -2,58 +2,58 @@ ## Skal være tændt fra solnedgang og til kl 22 ## og fra 6-solopgang ## derudover: hvis solen er under horisonten, så tænd i 5 minutter ved bevægelse - - alias: 'Julelys tænd morgen' - trigger: - platform: time - at: "06:30:00" - condition: - - condition: state # from sunset until sunrise - entity_id: sun.sun - state: 'below_horizon' - - condition: template # Vintersæson uge 42-8 - value_template: "{{ now().isocalendar()[1] >= 42 or now().isocalendar()[1] <= 8 }}" - action: - - service: light.turn_on - data: - entity_id: light.julelys +# - alias: 'Julelys tænd morgen' +# trigger: +# platform: time +# at: "06:30:00" +# condition: +# - condition: state # from sunset until sunrise +# entity_id: sun.sun +# state: 'below_horizon' +# - condition: template # Vintersæson uge 42-8 +# value_template: "{{ now().isocalendar()[1] >= 42 or now().isocalendar()[1] <= 8 }}" +# action: +# - service: light.turn_on +# data: +# entity_id: light.julelys - - alias: 'Julelys sluk morgen' - trigger: - platform: sun - event: sunrise - condition: - - condition: template # Vintersæson uge 42-8 - value_template: "{{ now().isocalendar()[1] >= 42 or now().isocalendar()[1] <= 8 }}" - action: - - service: light.turn_off - data: - entity_id: light.julelys +# - alias: 'Julelys sluk morgen' +# trigger: +# platform: sun +# event: sunrise +# condition: +# - condition: template # Vintersæson uge 42-8 +# value_template: "{{ now().isocalendar()[1] >= 42 or now().isocalendar()[1] <= 8 }}" +# action: +# - service: light.turn_off +# data: +# entity_id: light.julelys - - alias: 'Julelys tænd aften' - trigger: - platform: sun - event: sunset - condition: - - condition: time - before: '21:30:00' - - condition: template # Vintersæson uge 42-8 - value_template: "{{ now().isocalendar()[1] >= 42 or now().isocalendar()[1] <= 8 }}" - action: - - service: light.turn_on - data: - entity_id: light.julelys +# - alias: 'Julelys tænd aften' +# trigger: +# platform: sun +# event: sunset +# condition: +# - condition: time +# before: '21:30:00' +# - condition: template # Vintersæson uge 42-8 +# value_template: "{{ now().isocalendar()[1] >= 42 or now().isocalendar()[1] <= 8 }}" +# action: +# - service: light.turn_on +# data: +# entity_id: light.julelys - - alias: 'Julelys sluk aften' - trigger: - platform: time - at: "22:00:00" - condition: - - condition: template # Vintersæson uge 42-8 - value_template: "{{ now().isocalendar()[1] >= 42 or now().isocalendar()[1] <= 8 }}" - action: - - service: light.turn_off - data: - entity_id: light.julelys +# - alias: 'Julelys sluk aften' +# trigger: +# platform: time +# at: "22:00:00" +# condition: +# - condition: template # Vintersæson uge 42-8 +# value_template: "{{ now().isocalendar()[1] >= 42 or now().isocalendar()[1] <= 8 }}" +# action: +# - service: light.turn_off +# data: +# entity_id: light.julelys # - alias: 'Julelys tænd ved bevægelse' diff --git a/include/automations/kommerhjem.yaml b/include/automations/kommerhjem.yaml index ff06270..cf31ed7 100644 --- a/include/automations/kommerhjem.yaml +++ b/include/automations/kommerhjem.yaml @@ -1,7 +1,7 @@ - alias: 'Mor kommer hjem' trigger: platform: state - entity_id: device_tracker.annes_iphone_xs_4 + entity_id: device_tracker.annes_iphone_17pro to: 'home' action: @@ -16,7 +16,7 @@ to: 'home' action: - service: notify.mobile_app_annes_iphone_14_pro + service: notify.mobile_app_annes_iphone_17pro data: message: 'Daniel kommer hjem' @@ -38,7 +38,7 @@ to: 'home' action: - service: notify.mobile_app_annes_iphone_14_pro + service: notify.mobile_app_annes_iphone_17pro data: message: 'Andreas kommer hjem' @@ -63,7 +63,7 @@ to: 'Skole' action: - service: notify.mobile_app_annes_iphone_14_pro + service: notify.mobile_app_annes_iphone_17pro data: message: 'Andreas ankommer til skole' @@ -98,7 +98,7 @@ to: 'Østre Alle' action: - service: notify.mobile_app_annes_iphone_14_pro + service: notify.mobile_app_annes_iphone_17pro data: message: 'Daniel ankommer til skole' diff --git a/include/automations/lys_stue.yaml b/include/automations/lys_stue.yaml index a860e34..9558f5d 100644 --- a/include/automations/lys_stue.yaml +++ b/include/automations/lys_stue.yaml @@ -18,6 +18,10 @@ to: "off" id: tv_off + - platform: time + at: "23:30:00" + id: natfallback + variables: lux_limit: "{{ states('input_number.stue_lux_threshold') | int }}" dagperiode: > @@ -136,3 +140,25 @@ - service: light.turn_off target: entity_id: light.livingroom + + # Natfallback kl 23:30: sluk hvis ingen gaester, TV ikke on, og ingen bevaegelse i 5 min + - conditions: + - condition: trigger + id: natfallback + - condition: state + entity_id: input_boolean.gaester + state: "off" + - condition: not + conditions: + - condition: state + entity_id: media_player.samsung_s95ca_55_3 + state: "on" + - condition: state + entity_id: binary_sensor.stue_bevaegelse + state: "off" + for: + minutes: 5 + sequence: + - service: light.turn_off + target: + entity_id: light.livingroom diff --git a/include/automations/vinduer.yaml b/include/automations/vinduer.yaml index 25db638..2fab716 100644 --- a/include/automations/vinduer.yaml +++ b/include/automations/vinduer.yaml @@ -124,7 +124,7 @@ sidste_person: >- {% set people = [ ('person.claus_dethlefsen', 'notify.mobile_app_claus_iphone_15pro'), - ('person.anne_schusler_dethlefsen', 'notify.mobile_app_annes_iphone_14_pro'), + ('person.anne_schusler_dethlefsen', 'notify.mobile_app_annes_iphone_17pro'), ('person.andreas_schusler_dethlefsen', 'notify.mobile_app_andreas_iphone_17pro'), ('person.daniel_schusler_dethlefsen', 'notify.mobile_app_daniels_iphone_17pro') ] %} diff --git a/include/binary_sensors/infrastructure.yaml b/include/binary_sensors/infrastructure.yaml new file mode 100644 index 0000000..c416a04 --- /dev/null +++ b/include/binary_sensors/infrastructure.yaml @@ -0,0 +1,9 @@ +- platform: command_line + name: Zigbee USB dongle tilsluttet + unique_id: zigbee_usb_dongle_connected + device_class: connectivity + command: >- + [ -c /dev/ttyUSB0 ] && echo ON || echo OFF + payload_on: "ON" + payload_off: "OFF" + scan_interval: 60 \ No newline at end of file diff --git a/include/command_line/infrastructure.yaml b/include/command_line/infrastructure.yaml index 3c1fa8d..2fce159 100644 --- a/include/command_line/infrastructure.yaml +++ b/include/command_line/infrastructure.yaml @@ -8,4 +8,14 @@ print('ON' if s.connect_ex(('10.0.0.142', 1883)) == 0 else 'OFF')" payload_on: "ON" payload_off: "OFF" + scan_interval: 60 + +- binary_sensor: + name: Zigbee USB TTYUSB0 + unique_id: zigbee_usb_ttyusb0 + device_class: connectivity + command: >- + [ -c /dev/ttyUSB0 ] && echo ON || echo OFF + payload_on: "ON" + payload_off: "OFF" scan_interval: 60 \ No newline at end of file diff --git a/include/customize/persons.yaml b/include/customize/persons.yaml index 7f5caf3..95f7bbb 100644 --- a/include/customize/persons.yaml +++ b/include/customize/persons.yaml @@ -19,6 +19,6 @@ device_tracker.tile_e5db905d5b0e4597: friendly_name: 'Claus nøgler' icon: mdi:view-grid -device_tracker.annes_iphone_xs: +device_tracker.annes_iphone_17pro: friendly_name: 'Annes telefon' icon: mdi:view-grid diff --git a/include/lights/grupper.yaml b/include/lights/grupper.yaml index 8f7f228..2761cc3 100644 --- a/include/lights/grupper.yaml +++ b/include/lights/grupper.yaml @@ -116,7 +116,7 @@ entities: - light.garage - light.fordoer - - light.julelys + # - light.julelys # Midlertidigt fjernet: inaktive julelys skal ikke tælle med i lys_udenfor # - switch.sonoff_100069a6cc # - switch.sonoff_10006a2cdd @@ -182,7 +182,7 @@ entities: - light.hue_outdoor_spot_1 - light.hue_outdoor_spot_2 - - light.hue_outdoor_spot_3 + # - light.hue_outdoor_spot_3 # Midlertidigt fjernet: Have spot 3 er afmonteret - platform: group name: Alle lys diff --git a/include/scripts/doorbell.yaml b/include/scripts/doorbell.yaml index 4d88fc1..47f38a5 100644 --- a/include/scripts/doorbell.yaml +++ b/include/scripts/doorbell.yaml @@ -70,7 +70,7 @@ doorbell: - service: notify.mobile_app_claus_iphone_15pro data: message: '{{ tekst }}' - - service: notify.mobile_app_annes_iphone_14_pro + - service: notify.mobile_app_annes_iphone_17pro data: message: '{{ tekst }}' - sequence: diff --git a/include/scripts/home_actions.yaml b/include/scripts/home_actions.yaml index 210da78..0b7d6cf 100644 --- a/include/scripts/home_actions.yaml +++ b/include/scripts/home_actions.yaml @@ -153,7 +153,7 @@ mad_announcement: entity_id: person.anne_schusler_dethlefsen state: home sequence: - - service: notify.mobile_app_annes_iphone_14_pro + - service: notify.mobile_app_annes_iphone_17pro data: message: >- {% set meal = states('sensor.dagens_aftensmad') %} @@ -282,7 +282,7 @@ tv_hygge_announcement: entity_id: person.anne_schusler_dethlefsen state: home sequence: - - service: notify.mobile_app_annes_iphone_14_pro + - service: notify.mobile_app_annes_iphone_17pro data: message: Der er TV hygge - choose: diff --git a/include/templates/maintenance.yaml b/include/templates/maintenance.yaml index 8fade99..905abfe 100644 --- a/include/templates/maintenance.yaml +++ b/include/templates/maintenance.yaml @@ -107,8 +107,7 @@ unique_id: maintenance_synology_dsm_needed state: >- {{ - is_state('binary_sensor.dethlefsen_security_status', 'on') - or is_state('update.dethlefsen_dsm_update', 'on') + is_state('update.dethlefsen_dsm_update', 'on') or states('sensor.dethlefsen_drive_1_status') | lower not in ['normal', 'unknown', 'unavailable', 'none'] or states('sensor.dethlefsen_drive_2_status') | lower not in ['normal', 'unknown', 'unavailable', 'none'] or states('sensor.dethlefsen_drive_3_status') | lower not in ['normal', 'unknown', 'unavailable', 'none'] @@ -167,7 +166,6 @@ 1 if is_state('binary_sensor.home_assistant_website_update_available', 'on') else 0, 1 if is_state('update.hacs_update', 'on') else 0, 1 if states('sensor.hacs_opdateringer') | int(0) > 0 else 0, - 1 if is_state('binary_sensor.dethlefsen_security_status', 'on') else 0, 1 if is_state('update.dethlefsen_dsm_update', 'on') else 0, 1 if is_state('binary_sensor.vedligehold_synology_disk_1_status', 'on') else 0, 1 if is_state('binary_sensor.vedligehold_synology_disk_2_status', 'on') else 0, diff --git a/www/mealie.json b/www/mealie.json index 6b98c03..534cf35 100644 --- a/www/mealie.json +++ b/www/mealie.json @@ -1 +1 @@ -{"count": 7, "items": [{"date": "2026-05-29", "recipe": {"name": "Laks med sesam og citron", "slug": "laks-med-sesam-og-citron"}}, {"date": "2026-05-31", "recipe": {"name": "Marry Me Chicken", "slug": "marry-me-chicken"}}, {"date": "2026-05-30", "recipe": {"name": "Hjemmelavet laksesushi", "slug": "hjemmelavet-laksesushi"}}, {"date": "2026-05-28", "recipe": {"name": "One Pot Pasta med chorizo", "slug": "one-pot-pasta-med-chorizo"}}, {"date": "2026-05-27", "recipe": {"name": "Rester fra mandag (Bolognese)", "slug": ""}}, {"date": "2026-05-26", "recipe": {"name": "Rester fra s\u00f8ndag (Kylling i sennepssauce)", "slug": ""}}, {"date": "2026-05-25", "recipe": {"name": "Spaghetti Bolognese - pasta med k\u00f8dsovs", "slug": "spaghetti-bolognese-pasta-med-kodsovs"}}]} \ No newline at end of file +{"count": 7, "items": [{"date": "2026-06-16", "recipe": {"name": "Hotdogs", "slug": "hotdogs"}}, {"date": "2026-06-14", "recipe": {"name": "Koteletter i fad", "slug": "koteletter-i-fad"}}, {"date": "2026-06-13", "recipe": {"name": "Ribeye og kartofler og salat", "slug": ""}}, {"date": "2026-06-12", "recipe": {"name": "Pasta aglio e olio \u2013 pasta med hvidl\u00f8g og olie", "slug": "pasta-aglio-e-olio-pasta-med-hvidlog-og-olie"}}, {"date": "2026-06-17", "recipe": {"name": "Rester fra mandag (One pot pasta)", "slug": ""}}, {"date": "2026-06-16", "recipe": {"name": "Rester fra s\u00f8ndag (Indisk curry)", "slug": ""}}, {"date": "2026-06-15", "recipe": {"name": "One Pot Pasta med K\u00f8dsovs", "slug": "one-pot-pasta-med-kodsovs"}}]} \ No newline at end of file