Eieruhr für HA Tablet

Moin,
ich möchte für die Küche ein HA Dashboard auf einem 7" Tablet einrichten/aufhängen. Soweit kein Problem. Nun suche ich für unsere defekte Eieruhr eine Möglichkeit dieses auf dem Dashboard darzustellen. Schön wäre, wenn man die Minuten (wie auch immer) verstellen könnten. Ein akustische Meldung vom Tablet macht das ganze dann alltagstauglich. Wer weiß eine Lösung.
Danke.

Moin,

Lösung nein :wink:

Aber hier würde ich einmal anfangen zu suchen

VG
Bernd

P.S.: Und bei Google habe ich dazu auch Themen gefunden :wink:

Das ist witzig. Vorgestern ist meine Eieruhr kaputt gegangen und ich habe rudimentär etwas gebastelt

Dazu habe ich einen input_number-Helfer (input_number.kochen), input_boolean-Helfer (input_boolean.kochen_timer), einen timer-Helfer (timer.kochen) und eine Automatisierung (automation.kochen_timer) angelegt.

Hier die Erklärung der einzelnen Elemente. Viele sind wichtig für die Automatisierung am Ende.

Ansage-Automation
dort ist eine Automation hinterlegt. Komme ich später zu. Die kann ich zwischendurch einfach deaktivieren, wenn kein Signal beim Ende erfolgen soll. Ist aber nicht zwingend erforderlich.

Code der Card
type: tile
entity: automation.kochen_timer
tap_action:
  action: toggle
hold_action:
  action: more-info
grid_options:
  columns: full
  rows: 1
name: Ansage-Automation
icon: mdi:microphone-message

Leerlauf
das ist der eigentliche timer

Code der Card
type: tile
entity: timer.kochen
name: " "
vertical: false
show_entity_picture: false
grid_options:
  columns: 9
  rows: 2
card_mod:
  style:
    ha-tile-info$: |
      .secondary {
        font-size: 40px !important;
        line-height: 40px !important;
      }
    .icon-container ha-tile-icon$: |
      .shape { 
        height: 55px !important;
        width: 55px !important;
        border-radius: 32px !important;
      }

STOP Ansage
Da ist der input_boolean hinterlegt

Code der Card
show_name: true
show_icon: true
type: button
tap_action:
  action: toggle
icon_height: 30px
icon: mdi:stop
show_state: false
grid_options:
  columns: 3
  rows: 1
name: Ansage
entity: input_boolean.kochen_timer

5 Min, 7 Min, etc
das sind Button-Cards, die den Timer-Helfer beeinflussen. Die kannst du nach belieben anpassen.

Code der Card
show_name: true
show_icon: false
type: button
tap_action:
  action: perform-action
  perform_action: timer.start
  target:
    entity_id:
      - timer.kochen
  data:
    duration: "00:05:00"
entity: timer.kochen
icon: mdi:timer
show_state: false
name: 5 Min.
icon_height: 30px

Individuell
das ist eine custom:mushroom-number-card. Die musst du über HACS installieren, wenn du die noch nicht nutzt

Code der Card
type: custom:mushroom-number-card
entity: input_number.kochen
secondary_info: none
primary_info: name
fill_container: true
display_mode: buttons
grid_options:
  columns: 12
  rows: 2
name: Individuell
icon: mdi:timer

Play, Pause, Stop
das sind normale Button-Cards

Code der Play-Card
show_name: false
show_icon: true
type: button
tap_action:
  action: perform-action
  perform_action: timer.start
  target:
    entity_id:
      - timer.kochen
  data: {}
entity: timer.kochen
icon_height: 30px
icon: mdi:play
show_state: false
name: Start
grid_options:
  rows: 3
  columns: 6
Code der Pause-Card
show_name: false
show_icon: true
type: button
tap_action:
  action: perform-action
  perform_action: timer.pause
  target:
    entity_id: timer.kochen
entity: timer.kochen
name: Pause
icon_height: 30px
icon: mdi:pause
show_state: false
grid_options:
  columns: 6
  rows: 1
Code der Stop-Card
show_name: true
show_icon: true
type: button
tap_action:
  action: perform-action
  perform_action: timer.cancel
  target:
    entity_id:
      - timer.kochen
entity: timer.kochen
icon_height: 30px
icon: mdi:stop
show_state: false
grid_options:
  columns: 6
  rows: 1
name: Timer

Zum Schluss meine Automatisierung

alias: Kochen-Timer
description: ""
triggers:
  - trigger: state
    entity_id:
      - input_number.kochen
    id: Start
  - trigger: state
    entity_id:
      - timer.kochen
    to: idle
    from: active
    id: Ende
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Start
        sequence:
          - action: timer.start
            metadata: {}
            data:
              duration: "{{ trigger.to_state.state | int(0) * 60 }}"
            target:
              entity_id: timer.kochen
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Ende
        sequence:
          - action: input_boolean.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: input_boolean.kochen_timer
          - action: media_player.volume_set
            metadata: {}
            data:
              volume_level: 0.6
            target:
              entity_id: media_player.kuche_1
          - delay:
              hours: 0
              minutes: 0
              seconds: 1
          - repeat:
              sequence:
                - action: tts.speak
                  metadata: {}
                  data:
                    cache: true
                    message: Timer ist fertig
                    media_player_entity_id: media_player.kuche_1
                  target:
                    entity_id:
                      - tts.google_translate_de_de
                - delay:
                    hours: 0
                    minutes: 0
                    seconds: 5
              until:
                - condition: state
                  entity_id: input_boolean.kochen_timer
                  state: "off"
          - action: media_player.volume_set
            metadata: {}
            data:
              volume_level: 0.2
            target:
              entity_id: media_player.kuche_1
mode: single

Auslöser/Trigger
Als Auslöser habe ich eine Änderung des input_number-Helfer genommen. Wenn du den über die Card auf den Dashboard änderst, wird ausgelöst.
Zusätzlich habe ich einen Auslöser definiert, wenn der Timer auf Leerlauf wechselt. Brauche ich später in den Aktionen. Beide Auslöser haben unterschiedliche TriggerID “Start” und “Ende”

Bedingungen/Condition
keine

Aktionen/Action
Hier frage ich zuerst ab welche TriggerID ausgelöst hat. Wenn der input_number ausgelöst hat, dann starte den Timer und nimm den Wert des input_number. Die Umrechnung in meinem Beispiel erfolgt, da ich nur Minuten nutze, keine Std. etc.

Wenn der Timer endet, schalte ich zuerst den input_boolean auf an, setze dann die Lautstärke meines media_player hoch, warte 1s und starte dann eine Wiederholung (repeat), solange (until) bis der input_boolean manuell ausgeschaltet wurde. Danach setze ich die Lautstärke zurück.

Da das ganze schnell gehen musste, habe ich es so umgesetzt. Das ganze geht sicherlich noch schöner.