Blueprint - Einfacher Lichtwecker

Platz und Raum für alles rund um Blueprints.


Antworten
Benutzeravatar
Osorkon
Administrator
Beiträge: 1891
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 60 times
Been thanked: 514 times
Kontaktdaten:

Blueprint - Einfacher Lichtwecker

Beitrag von Osorkon »

Ein einfacher Lichtwecker.
Das Licht wird mit einer konstanten Licht Temperatur von einem definierten Startwert bis zu einem definierten Endwert kontinuierlich hoch gedimmt.
Die Weckzeit wird durch einen Zeit Helfer vorgegeben. Ein Umschalter Helfer ermöglicht es den Wecker zu aktivieren / deaktivieren.
De sweitern kann man die Wochentage auswählen, an welchen der Lichtwecker aktiv sein soll.

Bild

Blueprint Lichtwecker.png
Blueprint Lichtwecker.png (143.71 KiB) 894 mal betrachtet

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Osorkon
Administrator
Beiträge: 1891
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 60 times
Been thanked: 514 times
Kontaktdaten:

Re: Blueprint - Einfacher Lichtwecker

Beitrag von Osorkon »

Eine Version mit Anpassung der Farbtemperatur hat schon mal die ersten Tests bestanden . :D
Auch brauchst man die Verzögerung nicht mehr ausrechnen, sondern gibt nur die Gesamtdauer des Lichtweckers an. :D
Sobald ich dazu komme werde ich diese ebenfalls zur Verfügung stellen.

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Osorkon
Administrator
Beiträge: 1891
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 60 times
Been thanked: 514 times
Kontaktdaten:

Re: Blueprint - Einfacher Lichtwecker

Beitrag von Osorkon »

Hier nun das Upgrade des einfachen Lichtweckers zum Lichtwecker mit Farbtemperatur Anpassung. :D
Sowie der Möglichkeit die Farbtemperatur ganz zu deaktivieren, bei Lampen ohne Farbtemperatur.
Die Gesamtlaufzeit des Lichtweckers wird in Minuten angegeben.

Bild

Lichtwecker mit Farbtemperatur.png
Lichtwecker mit Farbtemperatur.png (142.03 KiB) 847 mal betrachtet

Code: Alles auswählen

blueprint:
  name: Lichtwecker mit Farbtemperatur by SmartHome for Dummies
  description: >
    Lichtwecker - Licht wird über einen definierten Zeitraum vom Start Helligkeitswert bis Ziel Helligkeitswert hoch gedimmt.
    Eine gleichmässige Anpasung der Farbtemperatur erfolgt ebenfalls über die Zeit vom Start Wert zum Ziewert der Farbtemperatur.
    Ist dr Start Wert und der Ziel Wert der Farbtemperatur gleich. Bleibt die Farbtemperatur konstant.
    Für Lichter ohne Farbtemperatur kann diese deaktiviert werden.
    Das Ausschaltten des Lichts deaktiviert den Lichtwecker. 
    Es werden zwei Helfer benöttigt.
    - Ein input_datetime -> Weckzeit
    - Ein input_boolean -> Zum aktivieren/ deaktivieren des Lichttweckers
  domain: automation
  input:
    light:
      name: Licht Entität
      description: Lampe die als Lichtwecker verwendet werden soll
      selector:
        entity:
          domain: light
    start_color_temperature:
      name: Start Farbtemperatur
      default: 450
      selector:
        color_temp:
            min_mireds: 153
            max_mireds: 500
    end_color_temperature:
      name: Ziel Farbtemperatur
      description: Farbtemperatur die nach Ablauf des Lichtweckers erreicht werden soll. Start = Ziel -> Konstante Farbtemperatur über die gesamte Zeit.
      default: 153
      selector:
        color_temp:
            min_mireds: 153
            max_mireds: 500 
    use_temperature:
      name: Farbtemperatur verwenden?
      description: Bei Lichtern ohne Farbtemperatur kann die Verwendung der Farbttemperatur deaktieviiert werden.
      selector:
        boolean: 
      default: false
    start_brightness:
      name: Start Helligkeit
      description: Start Helligkeit für den Lichtwecker
      default: 10
      selector:
        number:
          min: 1
          max: 99
          mode: slider
          step: 1.0
          unit_of_measurement: "%"
    end_brightness:
      name: Ziel Helligkeit
      description: Ziel Helligkeit die nach Ablauf des Lichtweckers erreicht werden soll. Muss größer sein als die Start Helligkeit.
      default: 80
      selector:
        number:
          min: 1
          max: 100
          mode: slider
          step: 1.0
          unit_of_measurement: "%"
    time:
      name: Weckzeit
      description: Uhrzeit Helfer - welche die Startzeit des Lichtweckers vorgibt.
      selector:
        entity:
          domain: input_datetime
    on_off:
      name: Lichtwecker aktiv
      description: Umschalter Helfer - Aktiviert/ deaktiviert den Lichtwecker
      selector:
        entity:
          domain: input_boolean
    duration:
      name: Dauer
      description: Zeit bis die Zielhelligkeit erreicht werden soll
      default: 10
      selector:
        number:
          min: 1
          max: 60
          mode: slider
          step: 1.0
          unit_of_measurement: "min"
    weekday:
      name: Wochentage
      description: Wochentage an deneen der Lichtweecker aktiv sein soll.
      default: [mon, tue, wed, thu, fri, sat, sun]
      selector:
        select:
          options:
          - label: Montag
            value: mon
          - label: Dienstag
            value: tue
          - label: Mittwoch
            value: wed
          - label: Donnerstag
            value: thu
          - label: Freitag
            value: fri
          - label: Samstag
            value: sat
          - label: Sonntag
            value: sun
          custom_value: false
          multiple: true

mode: restart
max_exceeded: silent

trigger:
  - platform: time
    at: !input time
    id: start
  - platform: state
    entity_id: !input light
    id: ende
    from: "on"
    to: "off"
condition:
  - condition: state
    entity_id: !input on_off
    state: "on"
  - condition: time
    weekday: !input weekday
action:
  - variables:
      light_entity: !input light
      end_brightness: !input end_brightness
      start_brightness: !input start_brightness
      current_brightness: "{{ state_attr(light_entity, 'brightness') }}"
      repeat_number: "{{end_brightness - start_brightness}}"
      use_temperature: !input use_temperature
      duration_time: !input duration
      delay_time: "{{ (duration_time*60)/(end_brightness - start_brightness)}}"
      target_brightness: "{{255*end_brightness/100}}"
      start_color_temperature: !input start_color_temperature
      end_color_temperature: !input end_color_temperature
      color_teperature_steps: "{{((start_color_temperature - end_color_temperature) / repeat_number) |float | round(0)}}"
  - choose:
      - conditions:
          - condition: trigger
            id: start
        sequence:
          - if:
              - condition: template
                value_template: |
                  {{ use_temperature == true }}
            then:
              - service: light.turn_on
                data:
                  brightness_pct: !input start_brightness
                  color_temp: !input start_color_temperature
                target:
                  entity_id:
                    - !input light
              - repeat:
                  until:
                    - condition: template
                      value_template: "{{ state_attr(light_entity, 'brightness') >= target_brightness}}"
                  sequence:
                    - delay:
                        hours: 0
                        minutes: 0
                        seconds: "{{delay_time | float | round(3)}}"
                        milliseconds: 0
                    - service: light.turn_on
                      data:
                        brightness_step_pct: 1
                        color_temp: "{{ (state_attr(light_entity, 'color_temp') - color_teperature_steps) }}"
                      target:
                        entity_id: !input light
              - service: light.turn_on
                data:
                  brightness_pct: !input end_brightness
                  color_temp: !input end_color_temperature
                target:
                  entity_id:
                    - !input light
            else:
              - service: light.turn_on
                data:
                  brightness_pct: !input start_brightness
                target:
                  entity_id:
                    - !input light
              - repeat:
                  until:
                    - condition: template
                      value_template: "{{ state_attr(light_entity, 'brightness') >= target_brightness}}"
                  sequence:
                    - delay:
                        hours: 0
                        minutes: 0
                        seconds: "{{delay_time | float | round(3)}}"
                        milliseconds: 0
                    - service: light.turn_on
                      data:
                        brightness_step_pct: 1
                      target:
                        entity_id: !input light
              - service: light.turn_on
                data:
                  brightness_pct: !input end_brightness
                target:
                  entity_id:
                    - !input light

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Sebastian
Beiträge: 35
Registriert: Do 1. Sep 2022, 13:27
1
Has thanked: 8 times
Been thanked: 4 times

Re: Blueprint - Einfacher Lichtwecker

Beitrag von Sebastian »

Moin,

Total genial und klappt mega gut.

Eine Anmerkung: Ziel Heiligkeit --> soll das in s oder so wie bei Start Heiligkeit in % sein?

Und

Noch eine Erweiterung :-)
Momentan löse ich es mit einer 2. Automation und einem Template Sensor zwecks der Zeitzonen.
Ich sag meiner Zylinderfrau, wann sie mich wecken soll und diese Weckzeit, wird dann in den Weckzeit Helfer geschrieben. So müssen nicht beide Wecker immer neu gestellt werde bzw es synchronisiert sich von alleine.

Eventuell kann dies noch mit eingebaut werden, das der Handy Wecker oder Zylinder wie auch immer den Helfer die Zeit vorgibt.

Schöne Grüße
Basti

Benutzeravatar
Osorkon
Administrator
Beiträge: 1891
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 60 times
Been thanked: 514 times
Kontaktdaten:

Re: Blueprint - Einfacher Lichtwecker

Beitrag von Osorkon »

Hall @Sebastian freut mich wenn es funktioniert und auch Verwendung findet. :D

Es sollte % und nicht s heißen. Habe ich bereits geändert.

Sebastian hat geschrieben: Mi 8. Feb 2023, 12:27

Eventuell kann dies noch mit eingebaut werden, das der Handy Wecker oder Zylinder wie auch immer den Helfer die Zeit vorgibt.

Ich habe leider keine Zylinderfrauen im Einsatz.
Kannst Du mir verraten wie die Weckzeit in Home Assistant ankommt? Wie lautet der Sensor und im welchen Format wird die Weckzeit ausgegeben.
Ggf. hilft Deinen Automatisierung welche Du verwendest um die Weckzeit in einen Helfer zu schreiben.

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Sebastian
Beiträge: 35
Registriert: Do 1. Sep 2022, 13:27
1
Has thanked: 8 times
Been thanked: 4 times

Re: Blueprint - Einfacher Lichtwecker

Beitrag von Sebastian »

Guten morgääääähn, :D

Ich habe mir als erstes zu jeder Zylinderfrau, einen Template Sensor gebaut, da der Wert, der ausgegebene wird, eine Stunde zu früh laufen würde. Denke Wegen der Zeitzonen.

Code: Alles auswählen

# Weckerzeit Schlafzimmer

- sensor:
  - name: "Weckzeit Alexa Schlafzimmer"
    unique_id: weckzeit_alexa_schlafzimmer
    state: | 
      {{ (as_timestamp(states("sensor.schlafzimmer_next_alarm")))|  timestamp_custom("%Y-%m-%dT%H:%M") }}

Hier verstehe ich nicht so ganz, ohne das ich die Stunde zurechne kommt danach die Zeit aber korrekt heraus

Alexa_next_alarm.png
Alexa_next_alarm.png (72.19 KiB) 809 mal betrachtet

Den neuen Sensor lasse ich dann jedes mal, wenn der "sensor.schlafzimmer_next_alarm" sich ändert, in den "input_datetime.lichtwecker_zeit_helfer" schreiben. Allerdings mit Node-red. :D

Code: Alles auswählen

[{"id":"176195cfe1093cfe","type":"api-current-state","z":"d332a9cdd607efc9","name":"Schlafzimmer wecker","server":"64eac69f.fe1218","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.weckzeit_alexa_schlafzimmer","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":500,"y":220,"wires":[["b30739d500785feb"]]},{"id":"b30739d500785feb","type":"api-call-service","z":"d332a9cdd607efc9","name":"Lichtwecker Helfer","server":"64eac69f.fe1218","version":5,"debugenabled":false,"domain":"input_datetime","service":"set_datetime","areaId":[],"deviceId":[],"entityId":["input_datetime.lichtwecker_zeit_helfer"],"data":"{ \"datetime\":msg.payload\t}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":790,"y":220,"wires":[[]]},{"id":"272140e53b63bb00","type":"server-state-changed","z":"d332a9cdd607efc9","name":"Schlafzimmer wecker","server":"64eac69f.fe1218","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.schlafzimmer_next_alarm","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":200,"y":220,"wires":[["176195cfe1093cfe"]]},{"id":"2d9c9e79f9f41a50","type":"comment","z":"d332a9cdd607efc9","name":"Alexa next alarm Original Sensor","info":"","x":170,"y":140,"wires":[]},{"id":"8d1b8644dd112ce2","type":"comment","z":"d332a9cdd607efc9","name":"abfrage des Template Sensors","info":"","x":500,"y":140,"wires":[]},{"id":"f6622a8b3d1f6183","type":"comment","z":"d332a9cdd607efc9","name":"Mit set_datime die neuen Angaben in den Helfer schreiben","info":"","x":890,"y":140,"wires":[]},{"id":"64eac69f.fe1218","type":"server","name":"Home Assistant","version":4,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30,"areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m"}]

Sinst auch als Bild.

Node-Red_automation_lichtwecker.png
Node-Red_automation_lichtwecker.png (14.47 KiB) 809 mal betrachtet

Ich habe gerade mal nachgesehen, der Handy Sensor (sensor.>name_vom_gerät_mit_der_HA_app<_next_alarm) , von meine Android S20, gibt genau die selben Daten aus wie der Alexa Sensor. Nur muss man hier darauf achten das man nur die Sensor daten akzeptiert, die die richtigen Attribute haben. Sonst könnte es passieren, das der Sensor auch die Werte eines Kalendereintrages geben würd. Dies habe ich auf einer sehr bekannten Intranetseite mit laufenden Bildern gesehen. :D

Hier einmal der Link dazu.

https://www.youtube.com/watch?v=gtH9HSF-kag&t=796s

Wenn das verlinken nicht erlaubt ist, endschuldige ich mich und bitte darum das dies dann Zensiert wird.

Schöne Grüße
Basti

Benutzeravatar
Osorkon
Administrator
Beiträge: 1891
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 60 times
Been thanked: 514 times
Kontaktdaten:

Re: Blueprint - Einfacher Lichtwecker

Beitrag von Osorkon »

Das sollte machbar sein.

Willst Du im Blueprint nur die Uhrzeit berücksichtigen?
Oder soll auch das Datum mit berücksichtigt werden?

Was ich mir vorstellen könnte. Du wählst als Weckzeit den Sensor sensor.schlafzimmer_next_alarm aus.

Entweder wird eben nur die Uhrzeit berücksichtigt und du setzt den Wecker auf aktiv oder inaktiv manuell, oder über eine Automatisierung.

Oder ich prüfe im Blueprint auch das Datum. Also wenn Datum sensor.schlafzimmer_next_alarm(DD:MM:JJ) = Heute -> Dann Wecker aktiv, sonst nicht.

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Sebastian
Beiträge: 35
Registriert: Do 1. Sep 2022, 13:27
1
Has thanked: 8 times
Been thanked: 4 times

Re: Blueprint - Einfacher Lichtwecker

Beitrag von Sebastian »

Ich bevorzuge es mit Datum.

Da ist dann abgesichert, das wenn z.B ein Wecker für alle Wercktage gestellt wird, dieser nicht am Wochenende dann los geht, da nur die Zeit abgefragt wird.

Somit muss man nicht aktiv daran denken diesen Wecker ein bzw. auszustellen.

Gruß
Basti

Benutzeravatar
Osorkon
Administrator
Beiträge: 1891
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 60 times
Been thanked: 514 times
Kontaktdaten:

Re: Blueprint - Einfacher Lichtwecker

Beitrag von Osorkon »

Hat der Alexa Sensor eine definierte Device Class?
Dann könnte man die Auswahlmöglichkeit im Blueprint auf die Device Class beschränken.
Kannst Du mir mal ein Screenshot aus den Entwicklungswerkzeugen bereit stellen?

Soll der Lichtwecker zu der definierten Zeit des Sensors losgehen oder mit einem einstellbaren offset?

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Sebastian
Beiträge: 35
Registriert: Do 1. Sep 2022, 13:27
1
Has thanked: 8 times
Been thanked: 4 times

Re: Blueprint - Einfacher Lichtwecker

Beitrag von Sebastian »

Nabend,

Hier einmal von den Entwicklerwerzeugen

Alexa Alarm Atribute.png
Alexa Alarm Atribute.png (47.15 KiB) 782 mal betrachtet

Ich stelle hier Zwei Bilder rein, da es noch das Attribut

sorted_active:

gibt. Das ist aber ein über ungelogen mindestens 2 DIN A 4 Seiten.
danach kommt noch

Alexa alarm Atribute 2.png
Alexa alarm Atribute 2.png (10.41 KiB) 782 mal betrachtet

Hoffe das hilft weiter.

Benutzeravatar
Osorkon
Administrator
Beiträge: 1891
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 60 times
Been thanked: 514 times
Kontaktdaten:

Re: Blueprint - Einfacher Lichtwecker

Beitrag von Osorkon »

Hallo @Sebastian habe mir das ganze mal angeschaut.
Leider ist es so, dass ich Deinen Wecker Sensor "sensor.schlafzimmer_next_alarm" nicht direkt im Blueprint verwenden kann.
Der Grund liegt darin, dass es nicht möglich ist im Trigger Teil Variable zu verwenden. Da diese erst nach dem Trigger ermittelt werden. Ein Teufelskreis. :D

Ich habe mal den Blueprint so umgebaut, dass Du direkt den Template Sensor als Weckzeit verwenden kannst. Da der Sensor bereits Datum & Uhrzeit beschreibt, habe ich die Wochentage und den Input boolean ebenfalls aus dem Blueprint entfernt.

Mit diesem Template Sensor, wird zum einem die richtige locale Zeit ermittelt. Und zum anderen, kann man diesen als Zeit Auslöser im Blueprint verwenden (device_class: timestamp)
Also ist ein zusätzlicher Input_datetime Helfer nicht notwendig.

Code: Alles auswählen

- sensor:
  - name: Weckzeit Alexa Schlafzimmer
    state: |
      {{ as_timestamp(states('sensor.schlafzimmer_next_alarm')) | as_datetime | as_local }}
    device_class: timestamp
    unique_id: 45140740-aa66-11ed-b316-09efdc359109

In der gleichen weise können auch Termine im Kalender als Startzeit des Lichtweckers verwendet werden.
Dazu sollte man aber einen eignen Wecker Kalender verwenden.

Der Template Sensor, welcher notwendig ist um den Beginn der Weckzeit aus dem Kalendereinträgen zu ermitteln, würde dann so ausschauen.
Am Bsp. Kalender Wecker

Code: Alles auswählen

- sensor:
  - name: Weckzeit Kalender
    state: |
      {{ as_timestamp(state_attr('calendar.wecker', 'start_time')) | as_datetime | as_local }}
    device_class: timestamp
    unique_id: 445ca880-acb3-11ed-b316-09efdc359109

Lichtwecker mit Farbtemperatur und Sensor als Weckzeit

Bild

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Andreas
Beiträge: 493
Registriert: Di 21. Dez 2021, 22:05
2
Wohnort: Geltow
Has thanked: 116 times
Been thanked: 22 times

Re: Blueprint - Einfacher Lichtwecker

Beitrag von Andreas »

Osorkon hat geschrieben: Di 14. Feb 2023, 22:47

Dazu sollte man aber einen eignen Wecker Kalender verwenden.

Ich habe mich noch nicht viel mit Kalendern beschäftigt. Lediglich die Integration hinzugefügt. Diese hat 4 Entitäten (wohl die 4 Kalender damit gemeint). Wie kann ich mir einen neuen Kalender erstellen?
Gruß, Andreas

Antworten