Ich möchte folgendes umsetzten. Da ich Notifications bereits aus HA zu Telegram sende, möchte ich bei wichtigen Nachrichten wie z.B. „Stromausfall zu Hause“ nicht nur eine Nachricht in Telegram erhalten, sondern einen Sprachanruf zu Telegram absetzen. Wichtig wäre mir dabei, dass es unter Telegram Klingelt und ich somit sofort aufmerksam werde. Bei Notifications ist das immer so eine Sache, man Achtet halt nicht immer sofort darauf beziehungsweise überhört schon mal den Ton! Hat jemand eine Idee oder sogar schon eine Lösung?
Hi, Schade keiner eine Idee?
Vielleicht hilft dir das weiter: Telegram Phone Calls from HomeAssistant (with Voice Messages) - CallMeBot API
Ansonsten schwint das mit der telegram Integration nicht möglich zu sein.
Oh Danke für den Link, dass hört sich schon mal gut an. Werde ich Morgen gleich mal ausprobieren, vielen Dank.
Hab das jetzt mal nach der Anleitung versucht, aber funktioniert leider nicht.
Folgende Schritte habe ich durchgeführt:
-Bei dem authorize CallMeBot angemeldet
-unter Telegram diesen Bestätigt
- Dann in die Config.yaml wie auf der Internetseite unter Punkt 1 den Code eingefügt, erster Abschnitt ist für meine Nachrichten, zweiter für den Call wie auf der Internetseite
notify:
- platform: telegram
name: xxxxxxxxx
chat_id: xxxxxxxx
- platform: telegram
name: xxxxxxx
chat_id: xxxxxxx
# Ab hier Eintrag für einen Call zu Telegram
- name: Telegram_Call
platform: rest
resource: https://api.callmebot.com/start.php
data:
source: HA
user: xxxxxxxxxx
lang: en-GB-Standard-B #specify the languange and voice to use. See above the different options.
rpt: 2 #how many times you want the message to be repeated by the bot.
Jetzt unter einer Automation in HA eine Benachrichtigung als Aktion eingestellt mit
Benachrichtigung: Send a notification with telegram_call
Mit dem yaml Code
action: notify.telegram_call
metadata: {}
data:
message: "This+is+Home+Assistant+calling+you+a+to+inform+you+about+something+urgent
Beim abspeichern kommt aber leider die Meldung
Ich weiß leider nicht was mit dieser Meldung gemeint ist
Kann es sein das er das Ganze als Data interpretiert, anstatt als Sprachanruf?
Hallo, schade, dass es nicht funktioniert. Ist in der Automation der Code richtig formatiert? Ist Message:
richtig eingerückt (1x Tab)?
Der Name der Notification entspricht nicht der verwendeten, da case-sensitive beachtet werden muss. Am besten bei der Kleinschreibung bleiben.
O.k. habe die notification in der yaml jetzt klein geschrieben, nun kommt aber bei der yaml Überprüfung im Entwicklerboard folgende Meldung
Moin, wie sieht denn deine Zeile 34 in der config.yaml aus (Screenshot)? Irgendetwas mit notify funktioniert da nicht. Irgendwie sehe ich hier keine Methode zum Abruf der Daten über GET oder POST ( das kommt auf die verwendete API an). Kannst es ja mal so testen.
notify:
- platform: telegram
name: user1
chat_id: 123456789
- platform: telegram
name: user2
chat_id: 987654321
- platform: rest
name: telegram_call
resource: https://api.callmebot.com/start.php
method: GET
params:
user: "xxxxxxxx"
text: "{{ message }}"
lang: "en-GB-Standard-B"
rpt: "2"
headers:
Content-Type: application/x-www-form-urlencoded
So habe jetzt das Problem etwas weiter eingrenzen können. Zunächst einmal kann man einen Fehler auf der Telegram Seite ausschließen. Mit dem Testcall aus dem Browser heraus über
Telegram Authentication funktioniert der Anruf nach Telegram. Über HA leider nicht.
Derzeit werden keine Probleme bei der yaml Prüfung oder dem versenden einer Sprachnachricht aus einer Automation heraus mehr in HA angezeigt.
Aber es kommt halt kein Sprachanruf an. Hier nochmal der Auszug aus der Config.yaml und der notification beim Automatisieren
1;Anbei der ganze Eintrag zu Telegram in der Config.yaml
# Telegram Bot
telegram_bot:
- platform: polling
api_key: xxxxxxxxxxxxx
allowed_chat_ids:
- xxxxxxxxxx
- -xxxxxxxx
# Ab hier Nachrichtenversand an mich und der Gruppe
notify:
- platform: telegram
name: xxxxxxxx
chat_id: xxxxxxxxxx
- platform: telegram
name: xxxxxxxxxx
chat_id: xxxxxxxxx
# Ab hier Eintrag für einen Call zu Telegram
- name: telegram_call
platform: rest
resource: https://api.callmebot.com/start.php
data:
source: HA
user: xxxxxxxxx #enter your telegram username
lang: en-GB-Standard-B #specify the languange and voice to use. See above the different options.
rpt: 2 #how many times you want the message to be repeated by the bot.
Die Zeile 34 ist der Eintrag - name: telegram_call das meckert er aber nachdem ich alles klein geschrieben habe nicht mehr an.
2; Wenn ich unter einer Automation
Benachrichtigung: Send a notification with telegram_call einfüge und mit Aktion ausführen teste wird Aktion erfolgreich durchgeführt angezeigt. Aber es kommt kein Call an
Hier Eingetragen habe ich folgendes Eingetragen, da der Eintrag aus dem Link von Telegram nicht angenommen werden kann.
action: notify.telegram_call
data:
message: Hallo dies ist ein Test.
Hat jemand noch eine Idee woran es liegen kann?
Habe deinen vorschlag für die Yaml so mal eingetragen wird auch gespeichert.
- platform: rest
name: telegram_call
resource: https://api.callmebot.com/start.php
method: GET
params:
data:
user: xxxxx
text: {{ Hallo }}
lang: en-GB-Standard-B
rpt: 2
headers:
Content-Type: application/x-www-form-urlencoded #how many times you want the message to be repeated by the bot.
Aber leider kommt bei der yaml Prüfung folgender Fehler
Habe mal Text mit massage ersetzt gleiches Problem. Was kann da Falsch sein?
Du versucht eine Variable mit dem Name Hallo zu verwenden.
Schau dir mal die Beispiele zur Verwendung von Strings in YAML in folgender URL an.
Also über diesen Weg (config.yaml) einen Call von HA aus nach Telegram abzusetzen gebe ich auf. Eventuell ist es gar nicht möglich dies zu realisieren, sagt zumindest die KI, dass ein Call hierrüber nicht möglich ist. Ich habe jetzt mal einen Test gemacht indem ich eine Überschriftskarte unter dem Dashbord hergenommen habe, unter dieser eine Interaktion erstellt, mit der http-Zeile, sodass ein Call durch dieser an Telegramm abgesetzt wurde, funktioniert also.
Code:
tap_action:
action: url
url_path: >- http://api.callmebot.com/start.php?source=auth&user=@xxxxxxx&text=This+is+a+test+from+CallMeBot&lang=en-US-Standard-B
heading: telegram test
Danach habe ich mit Hilfe der KI nochmals versucht in der config.yaml mit der oben beschrieben Lösung doch noch eine Automation zu erstellen
Eintrag in der Config.yaml konnte erfolgreich abgespeichert werden:
rest_command:
send_callmebot_message:
url: "http://api.callmebot.com/start.php?source=auth&user=@xxxxxx&text=Hallo+wir+haben+einen+Stromausfall+CallMeBot&lang=en-US-Standard-B"
method: GET
Code bei der Erstellung der Automation:
automation:
- alias: 'CallMeBot bei Schalteränderung'
trigger:
- platform: state
entity_id: switch.virtueller_schalter_call
to: 'on' # oder 'off', je nachdem, wann du den Befehl senden möchtest
action:
- service: rest_command.call_me_bot
Bringt dann aber Fehler
Hat noch jemand eine Idee was da falsch ist, bzw. glaube ich, dass ein Call über eine Automation nicht möglich ist, oder?
Zweite Frage, wenn dies nicht möglich ist würde ich gerne den Umweg über die oben beschriebene Möglichkeit über das Dashboard realisieren. Gibt es eine Möglichkeit den hinterlegten Pfad bei der Interaktion einer Dashboardkarte über einen Helfer, etc. zu triggern?
Du definierst ein Rest-Command mit dem Name „send_callmebot_message“, rufst aber in der Automation das Rest-Command " call_me_bot" auf.
Wie Hecki bereits schrieb, hast du in der Automation einen anderen Namen als in der configuraiton.yaml angegeben
Das stimmt nicht Da das ja einfach nur ein REST-API Call ist, den man dort definiert, muss das eigentlich möglich sein.