Kalender-Eintrag "Urlaub" soll Wecker in Amazon Echo deaktivieren

Hallo,

für den ioBroker hatte ich mir mal ein Javaskript gebastelt, das jede Nacht um 00:15 Uhr prüft, ob an dem Tag Urlaub oder ein Feiertag ist, und davon abhängig einen bestimmten, in meinem Echo Show eingerichteten Wecker deaktiviert.

schedule('15 0 * * *', function(){
  var contentIcal0 = getState('ical.0.data.html').val;
  var contentIcal1 = getState('ical.1.data.text').val;

  /*
  log(contentIcal0.search("iCal-Feiertage\">Heute"));
  log(contentIcal0.search("iCal-Feiertage\">Morgen"));
  log(contentIcal1.search(/heute.*urlaub/i)); log(contentIcal1.search(/noch.*urlaub/i));
  */
  
  if((contentIcal0.search("iCal-Feiertage\">Heute") != -1) || (contentIcal1.search(/heute.*urlaub/i) != -1) || (contentIcal1.search(/noch.*urlaub/i) != -1)){
    setState("alexa2.0.Echo-Devices.GSM42706540303LR.Alarm.471a168d-5cc2-415e-a986-a4ba14c7a626.enabled", false); // Wecker ausschalten
    
    if(contentIcal0.search("iCal-Feiertage\">Heute") != -1) setState("hm-rega.0.10618", true);  // Systemvariable "Feiertag heute" auf wahr setzen
    else(setState("hm-rega.0.10618", false)) // Systemvariable "Feiertag heute" auf falsch setzen
    
    if((contentIcal1.search(/heute.*rlaub/i) != -1) || (contentIcal1.search(/noch.*urlaub/i) != -1)) setState("hm-rega.0.10620", true); // Systemvariable "Urlaub heute" auf wahr setzen
    else(setState("hm-rega.0.10620", false)) // Systemvariable "Urlaub heute" auf falsch setzen
  } 
  else{
    setState("alexa2.0.Echo-Devices.GSM42706540303LR.Alarm.471a168d-5cc2-415e-a986-a4ba14c7a626.enabled", true); // Wecker einschalten
    setState("hm-rega.0.10618", false); // Systemvariable "Feiertag heute" auf falsch setzen
    setState("hm-rega.0.10620", false); // Systemvariable "Urlaub heute" auf falsch setzen
  }
    
  if(contentIcal0.search("iCal-Feiertage\">Morgen") != -1) setState("hm-rega.0.10619", true); // Systemvariable "Urlaub morgen" auf wahr setzen
  else(setState("hm-rega.0.10619", false)) // Systemvariable "Urlaub morgen" auf falsch setzen
});

Wie ich einen Kalendertermin im HA als Trigger einrichte, habe ich bereits gefunden, aber scheinbar liefert mir die “Alexa Media Player”-Integration nicht die im ioBroker vorhandene Entität (Objekt)

alexa2.0.Echo-Devices.GSM42706540303LR.Alarm.471a168d-5cc2-415e-a986-a4ba14c7a626.enabled

zur Deaktivierung bzw. Aktivierung des Weckers. Gibt es eine Möglichkeit für den HA, daran zu kommen? Oder hättet ihr eine andere Idee, wie ich das nächste Wecker-Event meines Echo Shows nach dem Auslösen der Automation deaktiviere?

Ach so, nur der Vollständigkeit halber. Ich bekommen den Wecker im HA unter Entitäten zwar angezeigt, kann ihn aber scheinbar nicht ein- oder ausschalten.

Keiner eine Idee, wie ich einen sich jeden Werktag wiederholenden Wecker im Echo Show bei einem Feiertag oder Urlaub deaktiveren kann?

Es geht mir dabei nicht um das Auslesen des Kalenders - das klappt problemlos -, sondern um den Zugriff auf den im Echo hinterlegten Wecker.

Wenn das über den ioBroker möglich ist, müsste das doch eigentlich auch über den HA möglich sein, oder?

Bestimmt, aber wie viele benutzten solch ein Cloudkram wenn man HA hat?
Nicht so viele:


also habe ein bisschen Geduld.

Kannst du nicht einfach ein Helfer von HA an Alexa weiter geben und damit auf Alexa Seite den Wecker an und aus schalten? (habe selber kein Alexa)

Edit:
sorry war glaube ich die falsche Integration und ich habe 0,9% der User unterschlagen.

Moin @SVW99,

ich glaube ich könnte die Lösung oder einen Workaround für dein Problem haben:

action: media_player.play_media
metadata: {}
data:
  media:
    media_content_id: Wie spät ist es
    media_content_type: custom
target:
  entity_id:
    - media_player.Echo_Dot

Dieser Beispielcode lässt den Echo Dot die Uhrzeit sagen ohne, dass man danach fragen muss. Vielleicht könntest du eine Automation basteln welche als Trigger deine besagten Kalenderentitäten nutzt und dann bspw. “Nicht stören” oder “Wecker stummschalten” ausführen lässt.

Ich habe aktuell kein geeignetes Setup um die Idee selber zu testen - würde mich aber für das Ergebnis interessieren.

VG Jax

Danke. Muss ich mal schauen. Die Sache ist nur, dass ich mich mit einem normalen Weckerton wecken lasse und beim Stoppen des Weckers per Touchscreen automatisch die Zeit und das Wetter angesagt werden. Darauf würde ich nur sehr ungerne verzichten. Hier mal ein Screenshot der entsprechenden Einstellungen in der Alexa App.

Es wäre daher schon am einfachsten, wenn ich den Wecker einfach deaktivieren und wieder aktivieren könnte, wie das eben auch über den ioBroker funktioniert. Oder ich muss mal nen Feature Request für die Alexia Media Player Integration stellen.

Kannst du nicht den Vorschlag von @Jax nehmen und sagen “deaktiviere den Wecker”? Ich selber habe keine Alexa.

Ich werde es mal versuchen. Aber wenn ich das so Alexa als Sprachbefehl sage, will sie den Wecker immer löschen. Und das soll sie ja auf keinen Fall.

Es müsste doch auch mit einem entsprechenden Template samt Regular Expressions möglich sein, wenn ich mir den Inhalt der Entität so ansehe.

Immerhin gibt es da ja den status „OFF“.

Verstehe die Aussage nicht. Ich verwalte meine Kalender über mein iPhone oder iPad. Warum sollte ich die also nicht für entsprechende Aktionen nutzen? Oder meintest du mit Cloudkram den Echo Show? Aber auch in dem Kontext verstehe ich die Aussage nicht, denn es ist ein sehr zuverlässiger und auch informativer Wecker für mich. Na ja, egal.

Ja, wie man auch sieht, wenn man weiter liest, da die Alexas/Echos nicht mal von 5% der HA Nutzer genutzt werden, die die Analytics an gemacht haben.

Wie zuverlässig es ist hat nichts mit der Aussage zu Tun.
Bezog sich er da rauf das du 2mal auf dein Hauptpost innerhalb von 1 Tag geantwortet hast, anstatt ihn zu Bearbeiten.
Normal führen die Mods so was dann auch zusammen mit einer kleinen Bemerkung, das man Bearbeiten soll, aber die hatten das wohl da nicht gesehen und hoch puschen muss man es nach einem Tag auch noch nicht.
Ich wollte dich halt nur aufmerksam drauf machen das es nicht so viele nutzen und es daher dauern kann und man auch mal bisschen Geduld haben muss.

LG

Tja, die KI hat mir mittlerweile gesagt, dass es leider keine Möglichkeit gibt, im HA einen Alexa-Wecker zu beeinflussen. Die obige Entität “Next Alarm” hat nur einen reinen Lese-Status und kann nicht verändert werden.

Ich habe nämlich mal getestet, was bei einem auslösenden Alarm passiert. Kurzum, nichts. Aber, wenn ich einen Wecker bestätige, wird er mir zumindest unter prior_value angezeigt.

Man könnte also ggf. zum Erkennen eines ausgelösten Weckers dieses Attribut mit einem Zeit-Aulöser abfragen, um darauf dann mit ensprechenden Timestamp-Abfragen zu reagieren.

Ich nutze das im ioBroker übrigens, um beim Klingeln des Weckers meine Rollos im Schlafzimmer zu öffnen und das Licht hinter dem Bett für eine Minute einzuschalten.

Für mich ist es schon sehr verunderlich, dass es im HA keine Lösung gibt, die der des ioBrokers gleicht. Die API von Amazon gibt es schließlich her. Ich bin leider nicht in der Lage, eine entsprechende Integration zu erstellen. Und im ioBroker-Forum möchte ich aus verständlichewn gründen auch nicht umbedingt darum bitten. Gibt es ggf. für den HA eine Möglichkeit für Feature Requests?

Als Sprachbefehl mal “Wecke mich morgen nicht” oder "Überspringe den 7 Uhr Wecker " testen?

Feature Request sollte auf Github möglich sein.

Hi,

also das Überspringen des nächsten Weckalarm ist eigentich kein Problem. Das funktioniert.

Doch leider fragt mich Alexa dann immer, ob ich nur den nächsten Wecker oder alle Wecker löschen möchte. Sie soll es einfach nur machen, ohne eine Gegenfrage zu stellen, auf die ich dann wieder antworten muss. Wie kann ich denn diese Gegenfragen unterdrücken? So ist das Ganze relativ nutzlos.

Ich habe es auch mit “Cancel alarm” versucht. Doch auch da stellt mir Alexa dieselbe Frage.

Leider ist mir noch eingefallen, dass das mit dem Canceln des nächsten Weckers eh keine gute Lösung ist, weil der Home Assistant ja nicht in der Lage ist, iCloud-Kalendereinträge, die über mehrere Tage gehen, jeden Tag abzufragen. Stattdessen kann man nur auf den Beginn und das Ende eines derartigen Zeitraums triggern. Wenn ich also nur den Wecker für den nächsten Tag ausschalte, dann kann ich das gleiche nicht für den übernächsten Tag machen.

Hach man, das klappte im ioBroker alles so einfach. Und der Home Assistant ist “zu blöd” dafür, weil er nicht an die erforderlichen Alexa-Entitäten ran kommt. Allerdings verstehe ich auch nicht, warum es da keine Lösung innerhalb von Alexa gibt. Bin ich denn der einzige, der einen täglichen Wecker für einen Urlaub oder Feiertag automatisch deaktivieren und danach wieder aktivieren möchte?

Hi @SVW99

bin gerade auch am Lösen des Problems.
Bin auch etwas weiter gekommen und zwar hab ich über den Workday sensor das Ganze gesteuert.
Mit NabuCasa kannst du einen Helfer (Schalter) aktivieren lassen und diesen in der Alexa App zu verfügung stellen. Wenn dieser dann ausgelöst wird, geht der Wecker los.

Das passiert aber immer um 00 Uhr vermutlich. Somit müsste man die Automatisierung alle paar Minuten laufen lassen um den Zustand abzufragen, was dann wieder zur Folge das der Wecker immer auslösen würde.

Hab dann irgendwie die Lust verloren, weil es mir zu umständlich wurde.

Ich hab eine Lösung vielleicht hilft das dem ein oder anderen

description: >-
  Werktags um 7:15 Uhr (kein Urlaub): kurzer Wecker-Sound auf
  Alexa-Schlafzimmer, danach 10s Pause, dann SWR3 als Radiowecker.
triggers:
  - trigger: time
    at: "07:15:00"
conditions:
  - condition: state
    entity_id: binary_sensor.workday_sensor
    state: "on"
  - condition: state
    entity_id: input_boolean.urlaub
    state: "off"
actions:
  - action: media_player.volume_set
    target:
      entity_id: media_player.alexa_schlafzimmer
    data:
      volume_level: 0.5
  - action: notify.alexa_media_alexa_schlafzimmer
    data:
      message: <audio src="soundbank://soundlibrary/alarms/buzzers/buzzers_01"/>
      data:
        type: tts
  - delay:
      hours: 0
      minutes: 0
      seconds: 5
      milliseconds: 0
  - action: media_player.play_media
    target:
      entity_id: media_player.alexa_schlafzimmer
    data:
      media:
        media_content_id: SWR3
        media_content_type: TUNEIN
        metadata: {}
mode: single

tippe oder füge den Code hier ein

In Abhängigkeit von meinem workdaysensor oder ob ich Urlaub im Kalender habe wir um 7:15 ein Kurzer Alarmton gespielt (vorher Lautstärker erhöhen) und nach einer kurzen Pause wird bei mir SWR3 abgespielt