WLED Druckfortschritt Anzeige

Für einen oder mehrere Drucker als Blueprint

Hierzu mit dem HA Editor eurer Wahl config → blueprints → automation einen eigenen Ordner anlegen.
darin z.B. eine Datei wled_print_progress.yaml und den unteren Inhalt einfügen.

blueprint:
  name: WLED print progress (multi printer, rotating)
  description: 'Shows the progress of up to 4 printers on one WLED segment (Percent
    effect). Active printers are shown one after another, each for the chosen interval,
    each in its own color. Printers that are idle/offline are skipped. When no printer
    is printing, an optional idle preset or idle effect is applied. Leave the entities
    of unused printer slots empty.

    '
  domain: automation
  input:
    segment_light:
      name: WLED segment (light)
      description: Light entity of the segment used for the progress bar (not the
        main segment).
      selector:
        entity:
          domain:
          - light
          integration: wled
          multiple: false
          reorder: false
    intensity_entity:
      name: WLED segment intensity (number)
      description: Intensity entity of the same segment.
      selector:
        entity:
          domain:
          - number
          integration: wled
          multiple: false
          reorder: false
    interval:
      name: Display time per printer (seconds)
      default: 5
      selector:
        number:
          min: 1.0
          max: 120.0
          unit_of_measurement: s
          mode: box
          step: 1.0
    inactive_states:
      name: States that count as "not printing"
      default:
      - idle
      - offline
      - finish
      - unknown
      - unavailable
      selector:
        text:
          multiple: true
          multiline: false
    idle_preset_entity:
      name: Idle - WLED preset selector (optional)
      description: 'Preset select entity of the WLED device. Note: a preset applies
        to the whole device, not just this segment. Takes priority over the idle effect.

        '
      default: ''
      selector:
        entity:
          domain:
          - select
          integration: wled
          multiple: false
          reorder: false
    idle_preset_name:
      name: Idle - preset name
      description: Exact name of the preset to apply when no printer is printing.
      default: ''
      selector:
        text:
          multiline: false
          multiple: false
    idle_effect:
      name: Idle - segment effect (optional)
      description: 'Effect name for the progress segment when no printer is printing,
        e.g. Rainbow. Only used if no idle preset is set. If both are empty, the segment
        is turned off.

        '
      default: ''
      selector:
        text:
          multiline: false
          multiple: false
    p1_status:
      name: Printer 1 - status
      selector:
        entity:
          domain:
          - sensor
          multiple: false
          reorder: false
    p1_progress:
      name: Printer 1 - progress (%)
      selector:
        entity:
          domain:
          - sensor
          multiple: false
          reorder: false
    p1_color:
      name: Printer 1 - color
      default:
      - 0
      - 0
      - 255
      selector:
        color_rgb: {}
    p2_status:
      name: Printer 2 - status (optional)
      default: ''
      selector:
        entity:
          domain:
          - sensor
          multiple: false
          reorder: false
    p2_progress:
      name: Printer 2 - progress (%) (optional)
      default: ''
      selector:
        entity:
          domain:
          - sensor
          multiple: false
          reorder: false
    p2_color:
      name: Printer 2 - color
      default:
      - 0
      - 255
      - 0
      selector:
        color_rgb: {}
    p3_status:
      name: Printer 3 - status (optional)
      default: ''
      selector:
        entity:
          domain:
          - sensor
          multiple: false
          reorder: false
    p3_progress:
      name: Printer 3 - progress (%) (optional)
      default: ''
      selector:
        entity:
          domain:
          - sensor
          multiple: false
          reorder: false
    p3_color:
      name: Printer 3 - color
      default:
      - 255
      - 0
      - 0
      selector:
        color_rgb: {}
    p4_status:
      name: Printer 4 - status (optional)
      default: ''
      selector:
        entity:
          domain:
          - sensor
          multiple: false
          reorder: false
    p4_progress:
      name: Printer 4 - progress (%) (optional)
      default: ''
      selector:
        entity:
          domain:
          - sensor
          multiple: false
          reorder: false
    p4_color:
      name: Printer 4 - color
      default:
      - 255
      - 255
      - 0
      selector:
        color_rgb: {}
mode: restart
max_exceeded: silent
trigger_variables:
  inactive_states: !input inactive_states
  s1: !input p1_status
  s2: !input p2_status
  s3: !input p3_status
  s4: !input p4_status
  status_entities: '{{ [s1, s2, s3, s4] | select | list }}'
variables:
  inactive_states: !input inactive_states
  idle_preset_entity: !input idle_preset_entity
  idle_preset_name: !input idle_preset_name
  idle_effect: !input idle_effect
  s1: !input p1_status
  s2: !input p2_status
  s3: !input p3_status
  s4: !input p4_status
  pr1: !input p1_progress
  pr2: !input p2_progress
  pr3: !input p3_progress
  pr4: !input p4_progress
  c1: !input p1_color
  c2: !input p2_color
  c3: !input p3_color
  c4: !input p4_color
  printers: "{{ [\n  {'status': s1, 'progress': pr1, 'color': c1},\n  {'status': s2,
    'progress': pr2, 'color': c2},\n  {'status': s3, 'progress': pr3, 'color': c3},\n
    \ {'status': s4, 'progress': pr4, 'color': c4}\n] | selectattr('status') | list
    }}"
triggers:
- trigger: template
  value_template: '{{ status_entities | map(''states'') | reject(''in'', inactive_states)
    | list | count> 0 }}'
- trigger: template
  value_template: '{{ status_entities | map(''states'') | reject(''in'', inactive_states)
    | list | count == 0 }}'
- trigger: homeassistant
  event: start
actions:
- repeat:
    while:
    - condition: template
      value_template: '{{ printers | map(attribute=''status'') | map(''states'') |
        reject(''in'', inactive_states) | list | count> 0 }}'
    sequence:
    - repeat:
        for_each: '{{ printers }}'
        sequence:
        - if:
          - condition: template
            value_template: '{{ states(repeat.item.status) not in inactive_states
              }}'
          then:
          - action: number.set_value
            target:
              entity_id: !input intensity_entity
            data:
              value: '{{ [[states(repeat.item.progress) | float(0) | int, 0] | max,
                99] | min }}'
          - action: light.turn_on
            target:
              entity_id: !input segment_light
            data:
              effect: Percent
              rgb_color: '{{ repeat.item.color }}'
          - delay:
              seconds: !input interval
- choose:
  - conditions:
    - condition: template
      value_template: '{{ idle_preset_entity != '''' and idle_preset_name != ''''
        }}'
    sequence:
    - action: select.select_option
      target:
        entity_id: '{{ idle_preset_entity }}'
      data:
        option: '{{ idle_preset_name }}'
  - conditions:
    - condition: template
      value_template: '{{ idle_effect != '''' }}'
    sequence:
    - action: light.turn_on
      target:
        entity_id: !input segment_light
      data:
        effect: '{{ idle_effect }}'
  default:
  - action: light.turn_off
    target:
      entity_id: !input segment_light
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information