blueprint:
  name: Baby Buddy
  author: noblewolf
  description: "Meldingen en bediening van Baby Buddy. Werkt met Baby Buddy https://github.com/jcgoette/baby_buddy_homeassistant \n\nDit blueprint vereist Helpers (Je kunt elke naam gebruiken of onderstaande gebruiken.)
  \n- Inputknop https://www.home-assistant.io/integrations/button/
  \n- - BB Luier Helper
  \n- - BB Voeding Helper
  \n- - BB Kolf Helper
  \n- - BB Slaap Helper
  \n- - BB Buiklig Helper
  \n- Teller https://www.home-assistant.io/integrations/counter/
  \n- - BB Luierteller
  \n- - BB Voedingteller
  \n- - BB Kolfteller
  \n- Inputtekst https://www.home-assistant.io/integrations/input_text/
  \n- - BB Notities
  \n- Inputnummer https://www.home-assistant.io/integrations/input_number/
  \n- - BB Hoeveelheid
  "
  domain: automation
  input:
    bb_child:
      name: Baby Buddy Kind
      description: Kies één kind per automatisering.
      selector:
        entity:
          domain: sensor
          device_class: babybuddy_child
    bb_child_last_timer:
      name: Baby Buddy Laatste Timer Kind
      description: Timer gecreëerd door Baby Buddy integratie. Kies dezelfde timer als de naam van het kind.
      selector:
        entity:
          domain: sensor
          device_class: timestamp
    notification_group:
      name: Melding of Meldingengroep
      description: Apparaat of notificatiegroep om te melden wanneer de timer start. Bijvoorbeeld notify.josh_s_phone of notify.all_phones.
    diaper_button:
      name: Luierknop
      description: Helper (type knop) om een luierwisseling te loggen.
      selector:
        entity:
          domain: input_button
    feeding_button:
      name: Voedingsknop
      description: Helper (type knop) om een voedingssessie te loggen.
      selector:
        entity:
          domain: input_button
    pumping_button:
      name: Kolfknop
      description: Helper (type knop) om een kolfsessie te loggen.
      selector:
        entity:
          domain: input_button
    tummy_time_button:
      name: Buikligknop
      description: Helper (type knop) om buikligtijd te loggen.
      selector:
        entity:
          domain: input_button
    sleep_button:
      name: Slaapknop
      description: Helper (type knop) om een slaapsessie te loggen.
      selector:
        entity:
          domain: input_button
    bb_timer:
      name: Baby Buddy Timer
      description: De timer gecreëerd door Baby Buddy. Bijvoorbeeld switch.jan_janssen_timer.
      selector:
        entity:
          domain: switch
    diaper_counter:
      name: Luierteller
      description: Helper die je hebt gemaakt om luierwisselingen te tellen. Resetteert om middernacht.
      selector:
        entity:
          domain: counter
    feeding_counter:
      name: Voedingteller
      description: Helper die je hebt gemaakt om voedingssessies te tellen. Resetteert om middernacht.
      selector:
        entity:
          domain: counter
    pumping_counter:
      name: Kolfteller
      description: Helper die je hebt gemaakt om kolfsessies te tellen. Resetteert om middernacht.
      selector:
        entity:
          domain: counter
    bb_notes:
      name: Notities
      description: Gedeeld notitieveld voor luierwisselingen en voedingnotities.
      selector:
        entity:
          domain: input_text
    bb_amount:
      name: Hoeveelheid
      description: Gedeeld veld voor hoeveelheid bij voeding en kolven.
      selector:
        entity:
          domain: input_number
    bb_ui_url:
      name: Link naar Baby Buddy-tabblad
      description: Link naar een dashboardpagina met jouw Baby Buddy-besturing. Bijvoorbeeld /lovelace/baby-buddy.
trigger:
  - platform: state
    entity_id: !input diaper_button
    id: luier-wissel
  - platform: state
    entity_id: !input feeding_button
    id: voeding-log
  - platform: state
    entity_id: !input pumping_button
    id: kolf-log
  - platform: state
    entity_id: !input tummy_time_button
    id: buiklig-eind
  - platform: state
    entity_id: !input sleep_button
    id: slaap-eind-log
  - platform: time
    at: "00:00:00"
    id: middernacht
  - platform: state
    entity_id: !input bb_timer
    to: "on"
    id: timer-aan
  - platform: state
    entity_id: !input bb_timer
    to: "off"
    id: timer-uit
variables:
  _bb_amount: !input bb_amount
  _bb_notes: !input bb_notes
  _bb_child_last_timer: !input bb_child_last_timer
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id: luier-wissel
        sequence:
          - service: babybuddy.add_diaper_change
            data:
              type: "{{ states('select.baby_buddy_diaper_type') }}"
              color: "{{ states('select.baby_buddy_diaper_color') }}"
              amount: "{{ states(_bb_amount) }}"  # Voeg het aantal luiers toe
              notes: "{{ states(_bb_notes) }}"
            target:
              entity_id: !input bb_child
          - service: input_text.set_value
            data:
              value: ""
            target:
              entity_id: !input bb_notes
          - service: input_number.set_value  # Reset bb_amount naar 0 na gebruik
            data:
              value: 0
            target:
              entity_id: !input bb_amount
          - service: counter.increment
            data: {}
            target:
              entity_id: !input diaper_counter
      - conditions:
          - condition: trigger
            id: voeding-log
        sequence:
          - choose:
              - conditions:
                  - condition: template
                    value_template: "{{ state_attr(_bb_child_last_timer, 'active') }}"
                sequence:
                  - service: babybuddy.add_feeding
                    data:
                      timer: true
                      type: "{{ states('select.baby_buddy_feeding_type') }}"
                      method: "{{ states('select.baby_buddy_feeding_method') }}"
                      amount: "{{ states(_bb_amount) }}"
                      notes: "{{ states(_bb_notes) }}"
                    target:
                      entity_id: !input bb_timer
            default:
              - service: babybuddy.add_feeding
                data:
                  type: "{{ states('select.baby_buddy_feeding_type') }}"
                  method: "{{ states('select.baby_buddy_feeding_method') }}"
                  amount: "{{ states(_bb_amount) }}"
                  notes: "{{ states(_bb_notes) }}"
                target:
                  entity_id: !input bb_timer
          - service: input_text.set_value
            data:
              value: ""
            target:
              entity_id: !input bb_notes
          - service: input_number.set_value
            data:
              value: 0
            target:
              entity_id: !input bb_amount
          - service: counter.increment
            data: {}
            target:
              entity_id: !input feeding_counter
      - conditions:
          - condition: trigger
            id: kolf-log
        sequence:
          - service: babybuddy.add_pumping
            data:
              amount: '{{ states(_bb_amount) }}'
              notes: '{{ states(_bb_notes) }}'
            target:
              entity_id: !input bb_child
          - service: counter.increment
            data: {}
            target:
              entity_id: !input pumping_counter
          - service: input_text.set_value
            data:
              value: ""
            target:
              entity_id: !input bb_notes
          - service: input_number.set_value
            data:
              value: 0
            target:
              entity_id: !input bb_amount
      - conditions:
          - condition: trigger
            id: buiklig-eind
        sequence:
          - service: babybuddy.add_tummy_time
            data:
              timer: true
            target:
              entity_id: !input bb_timer
      - conditions:
          - condition: trigger
            id: slaap-eind-log
        sequence:
          - service: babybuddy.add_sleep
            data:
              timer: true
            target:
              entity_id: !input bb_timer
      - conditions:
          - condition: trigger
            id: middernacht
        sequence:
          - service: counter.reset
            data: {}
            target:
              entity_id:
                - !input diaper_counter
                - !input feeding_counter
                - !input pumping_counter
      - conditions:
          - condition: trigger
            id: timer-aan
        sequence:
          - service: !input notification_group
            data:
              title: ⏳️ Baby Buddy Timer Running
              message: Tap to open Baby Buddy to log timer.
              data:
                group: baby-buddy-timer
                clickAction: !input bb_ui_url
                url: !input bb_ui_url
                persistent: true
                tag: baby-buddy-timer
      - conditions:
          - condition: trigger
            id: timer-uit
        sequence:
          - service: !input notification_group
            data:
              message: clear_notification
              data:
                tag: baby-buddy-timer
mode: parallel
max: 10