ich habe in iobroker Abfragen von Sensoren und Zuständen über verschiedene Echo Geräte in verschiedenen Räumen realisiert. Z.B. aktueller Stromverbrauch oder aktuelle Stromproduktion usw. Dies möchte ich nun auch in HA realisieren. Ergebnis der Abfragen soll dann auch nur auf den Geräten wiedergegeben werden auf denen die Abfrage erfolgt ist.
Alexa Verbindung ist bereits eingerichtet (über die Lösung von Simon42 mit Cloudflare). Alexa Mediaplayer ist ebenfalls installiert.
Meine Frage ist nun, bevor ich das Rad neu erfinden muss, es gibt doch sicherlich ein blueprint oder etwas ähnliches wo dies bereits realisiert wurde,oder?
Und/Oder hat jemand Vorschläge wie das am einfachsten umzusetzen ist?
Vielleicht noch erwähnenswert, ich bin HA Neuling!
Besten Dank schonmal für eure Vorschläge und Grüsse
Matthias
Für dein Vorhaben musst du zu erst die Entitäten für den Sprachassistenten freigeben. Dazu unter Geräte, Entitäten die gewünschte Entität suchen und anklicken.
Danke für die schnelle Antwort!
D.h. du nutzt die Nabuscasa Cloud, oder?
Wie gesagt, ich habe die Lösung über Cloudflare und AWS implementiert.
Im Nachhinein vielleicht doch nicht die beste Wahl gewesen. Hab auch schon überlegt zu wechseln. Wie dem auch sei, ich habe den Sensor in die configuration.yaml unter „include“ eingetragen, der Sensor wird jedoch nicht in Alexa gefunden. Ich muss mal schauen woran das liegt.
So, neue Erkenntnis:
Die beiden Sensoren werden auch unter Sprachassistenten → verfügbar machen nicht angezeigt. Es handelt sich beim einen um ein Shelly 1PM und beim anderen um einen Tasmota Lesekopf am Stromzähler…
Lediglich die Schalter der Geräte werden dort angeboten.
Wenn du Sensoren in der config.yaml bereitstellst, dann würde ich eher für jeden Schalter/Button/Sensor einen Sensor erstellen. Der sollte dann auch eine unique ID besitzen, so dass du ihn unter Geräte, Entitäten überhaupt bearbeiten kannst.
Beispiel:
template:
#Die aktuellen Verbräuche/Erträge je Phase werden in einem Wert zusammengefasst
- sensor:
- name: "Total Power"
unique_id: total_power
device_class: power
state_class: measurement
unit_of_measurement: "W"
state: >
{{
states('sensor.shellypro3em_08d1f9130908_phase_a_active_power')| float(0) +
states('sensor.shellypro3em_08d1f9130908_phase_b_active_power')| float(0) +
states('sensor.shellypro3em_08d1f9130908_phase_c_active_power')| float(0)
}}
Ich habe doch eine Anleitung geschrieben, wie du das sicherlich einstellen kannst. Hast du das überhaupt versucht umzusetzen?
Nicht unter Sprachassistenten schauen sondern, wie beschrieben unter Geräte und dann oben auf den Reiter Entitäten wechseln. Dort den 1PM suchen, anklicken, oben rechts auf Einstellungen, anschließend Sprachassistenten anklicken und den Sensor „Verfügbar machen“ auswählen.
Alexa erkennt Sensoren von HA, ich nutze das selber für einige Werte wie Solar und Temperaturen. Klappt alles einwandfrei und durch die Routinen in der Alexa App kann ich auch Fragen, wie ist der aktuelle Solarinput oder wie ist die Pooltemperatur usw.
Ja, habe ich versucht, aber angeblich werden die Sensoren (Tasmota und Shelly ) von Alexa nicht unterstützt. Wobei ich diese in Alexa direkt einbinden kann, also werden sie von Alexa schon unterstützt. Ich habe auch andere Shellys, z.B. TRV, die sind verfügbar und werden auch erkannt. Es erschliesst sich mir noch nicht warum die zwei nicht angeboten werden.
Also auch der Sensor vom Template wird als nicht unterstützt von Alexa und Google angezeigt. Ich werde morgen dann mal den Weg über Nabucasa testen ob sich da dann ggf. etwas ändert.
Aber nochmal zur ursprünglichen Frage, es muss doch auch möglich sein eine Abfrage in HA auszuführen und dann das Ergebnis an ein Echo Gerät auszugeben. Z.B. auch wenn ich zwei Werte kombinieren oder mathematisch aufbereiten möchte.
Beispiel:
Abfrage an Alexa → Raumtemperatur Keller → Alexa triggert eine Entität in HA → diese löst eine Automation aus bei der die Sensorwerte Temperatur und Luftfeuchte ausgelesen und an Entsprechendes Echo Gerät ausgegeben wird → z.B „Raumtemperatur entspricht 20° bei einer Luftfeuchte von 60%.“
So ähnlich habe ich es zumindest im iobroker realisiert.
Ja das sollte funktionieren. Musst du mal mit einer Automation testen, die Aktion könnte dann so aussehen. Vorab muss aber ein input.boolean in der config.yaml angelegt werden. In die Automatisierung kannst du dann den input_boolean als trigger nutzen und die Aktion ausführen.
Danke schonmal soweit!
Aber wenn ich das richtig verstehe, wird in dem Fall die Meldung immer im Bad ausgegeben, oder? Wichtig wäre, wenn ich im Keller den echo abfrage, dass dieser dann auch die Antwort ausgibt…
Beim iobroker hatte ich den Alexa Datenpunkt, ich glaube last device oder so ähnlich, abgefragt. Diesen dann über eine Variable abgelegt und als Ausgabe mit den entsprechenden Sensorwerten oder Berechnungen versehen zum Ausgeben wiederverwendet…
Der Weg ist hier genauso wie ich ihn die beschrieben habe, mit dem Unterschied, dass noch ein weiterer Sensor erstellt wurde, indem das angesprochen Alexa-Gerät gespeichert wird. Vom Prinzip aber genauso.
So ich habe das jetzt einmal ausprobiert und funktioniert super. Der Sensor ist auf jeden praktisch! Du musst du dir als erstes einen input_boolean (Schalter/Button) wie hier schon erklärt anlegen. Ich habe es jetzt einfach mit meinem PC Licht ausgelöst und die Ansage erfolgt immer auf dem angesprochenem Echo.
Nachdem du den input_boolean und die Automatisierung erstellt hast, musst du den Schalter für den Sprachassistenten freigeben und mit der Routine in der Alexa App verknüpfen. Das hatte ich hier schon einmal gezeigt.
Sensor in der config.yaml
sensor:
- platform: template
sensors:
last_alexa:
unique_id: letzter Alexa input
value_template: >
{%- for group in states.media_player | groupby('state') -%}
{%- for entity in group.list -%}
{%- if is_state_attr(entity.entity_id, 'last_called', true) %}
{{ entity.entity_id }}
{%- endif -%}
{%- endfor -%}
{%- endfor -%}
Automatisierung
alias: Ansage Außentemp auf angesprochener Alexa ausgeben
description: ""
triggers:
- entity_id:
- light.pc_led_pv_led
to: "off"
trigger: state
actions:
- data:
target:
- "{{ states('sensor.last_alexa') }}"
message: " Die aktuelle Außentemperatur beträgt {{ states('sensor.aussentemperatur_temperatur') }} Grad."
data:
type: tts
action: notify.alexa_media
mode: single
Ja, es gibt den Alexa Custom Skill, mit dem du jede Entität in Home Assistant mit Alexa abfragen kannst.
Als Beispiel mal die Abfrage der Luftfeuchtigkeit in einem bestimmten Raum. Dazu muss man zuerst im Skill einen entsprechenden Intent anlegen, z.B. GetHumidity. Dann schreibst man in die yaml Datei, was Alexa antworten soll.
GetHumidity:
speech:
text: >
{% if LOCATION == 'Bad' %}
{% set hum = 'sensor.sonoff_temperatur_1_humidity' %}
{% set temp = 'sensor.sonoff_temperatur_1_temperature' %}
{% elif LOCATION == 'Schlafzimmer' %}
{% set hum = 'sensor.aqara_temperatur_2_humidity' %}
{% set temp = 'sensor.aqara_temperatur_2_temperature' %}
{% elif LOCATION == 'Garten' %}
{% set hum = 'sensor.aqara_temperatur_1_humidity' %}
{% set temp = 'sensor.aqara_temperatur_1_temperature' %}
{% endif %}
{{ states(hum)|round(0) }} % bei {{ states(temp)|round(1) }} Grad im {{ LOCATION }}
Dann bekommt man mit „Alexa, frage Home Assistant Luftfeuchtigkeit Bad“ z.B. die Ansage „50% bei 20 Grad im Bad“.