Whatsapp und HA - Senden und Empfangen von Nachrichten

Hallo zusammen,
da ich etwas länger gebraucht habe, bis es bei mir endgültig lief, habe ich für mich mal ne kurze Anleitung geschrieben, damit ich es in einem halben Jahr nicht wieder vergessen habe. Da ich die Funktionalität ganz nett finde, habe ich gedacht, dass es hier dem ein oder anderen auch helfen könnte.
Es geht darum Whatsapp-Nachrichten aus HA unter eigenem Namen (kein Bot) zu schreiben und eingegangene Nachrichten auszuwerten/anzuzeigen.
Hier kommt wahrscheinlich gleich die Anmerkung der Sicherheit des Containers: Hier vertraue ich aber mal den Sternen von Github und der Tatsache, dass es lokal läuft.

Hier mal meine Anleitung mit 2-3 Screenshots. Vielleicht hilft es ja jemandem:

WAHA als Container installieren – freie Variante

docker run -it -p 3000:3000/tcp devlikeapro/whatsapp-http-api
Standard ist Port 3000, bei mir aber 3001

Über Browser auf http://192.168.xxx.xxx:3001
IP entspricht Docker-Host

Webhook-Automatisierung in HA erstellen
Bild1

Und erzeugte webhook-id kopieren
Bild10

Start- Session unter http://192.168.xxx.xxx:3001
Bild2

{
  "name": "default",
  "config": {
    "webhooks": [
      {
        "url": "http://192.168.xxx.xxx:8123/api/webhook/**kopierte Webhook-ID**",
        "events": [
          "message"
        ]
      }
    ]
  }
}

xxx.xxx = HA-IP

Mit Whatsapp-Account verknüpfen:
Bild3

Den erzeugten und angezeigten QR-Code in Whatsapp einscannen

Android:
Drei Punkte oben rechts  verknüpfte Geräte  Gerät hinzufügen

  1. Alles Weitere in HA
    5.1 Nachrichten lesen
    In der Webhook-Automatisierung den Payload auswerten und in input_text schreiben:

Bild5

5.2 Nachricht schreiben
Configuration.yaml erweitern:

rest_command:
  whatsappsend:
    url: http://192.168.xxx.xxx:3001/api/sendText
    method: POST
    headers:
      accept: "application/json"
    payload: "{ \"chatId\": \"{{ nummer }}\", \"text\": \"{{ nachricht }}\", \"session\": \"{{ sitzung }}\" }"
    content_type: 'application/json'

Neustart von HA
Skript erstellen und nutzen:

Bild6

Bild7

5.3 Messagebuttler
Usecase: Kalender mit „Whatsapp“

5.4 ChatGPT antwortet automatisch
Usecase: OpenAI mit „Whatsapp“

Bild9

6 „Gefällt mir“

ok, versuche es mal nachzubauen.

wie installiere ich denn WAHA?
gibt es nicht als Gerät, Integration add-on oder im HACAS?

Hi,
nee, das leider (noch) nicht.
Wie und auf welcher Hardware läuft bei dir HA?
Ich habe HA auf einem Mini-PC unter Proxmox laufen. Dann wäre es gar kein Problem zu erklären.
Hier
Ein paar “IT”/Docker-Kenntnisse braucht man schon, die sich aber über Youtube und googlen recht schnell erlernen lassen.

Hier können viele Wege nach Rom führen.
Wenn man Raspberry übrig hat z.B. so:

Oder wenn man etwas mutiger ist, direkt auf seiner hassio installation:

Oder halt als separate virtuelle Maschine über proxmox:

Einfach mutig sein und es versuchen… innerhalb eines abends kann das hinhauen…

Viel Erfolg

aktuell auf einem lenovo thin client als generic Installation.
Tendenz geht aber in Richtung VM in unraid und dort lauft auch schon eine HomeAssistan Testumgebung in einer VM. Insofern würde ich mit einer Docker-Installation auf unraid mal anfangen.
Habe schon mal geschaut, ob es da einen ready-to-use Docker gibt, aber nichts gefunden. Eine Installation sollte aber vermutlich ähnlich ablaufen wie unter proxmox
Allerdings habe ich bisher immer nur das verwendet, was man im custumer store fertig findet…

Auch wenn ich mich mit unraid noch nicht so beschäftigt habe, aber ich denke, dass es da sicher Wege gibt:

Viel Erfolg und Spaß…

Hallo
ich habe das jetzt versucht nachzubauen, der waha server läuft im docker auf unraid, Whatsapp ist per qrcode verbunden, aber die Automatisierung bekomme ich nicht genau so erstellt. Wenn ich alles eingegeben habe und dann speicher ändert es sich von selbst wie folgt:

data_template:
  entity_id: input_text.whatsapp_text
  value: "{{ trigger.json.payload.body }}"
action: input_text.set_value

Warum?
Mfg

:crayon:by HarryP: Codezeilen formatiert

Hi @Baum

Ich habe alles installiert unter unraid bekommen und kann eine Nachricht aus der Swagger UI von WAHA senden. Bis hier schon einmal Danke!

Nun scheitere ich aber aktuell an der Integration in HA.

Das rest_command in der configuration.yaml ist schon vorhanden:

rest_command:
  whatsappsend:
    url: http://192.168.178.200:3000/api/sendText
    method: POST
    headers:
      accept: "application/json"
    payload: "{ \"chatId\": \"{{ nummer }}\", \"text\": \"{{ nachricht }}\", \"session\": \"{{ sitzung }}\" }"
    content_type: 'application/json'

Kannst du mir hier nochmals eine detailierte Info geben, wie es nun weitergeht?

Wie erstelle ich das von dir erwähnte Skript? In der UI? Wenn ja wo? Oder per Dateiedit?

Wie rufe ich das Skript dann in HA in einer Automatisierung auf?
Per UI oder per YAML?

Danke!

hallo, würdest Du mir verraten, wie Du bis hierher gekommen bist, bitte?
ich habe das über die CommunityApplications installiert aber wenn ich die IP Adresse aufrufe, wird ein user/password verlangt und admin und waha funktioniert beides nicht.
irgendwo fehlt mir noch etwas …

Das PW erfährst du aus dem Logfile von dem Container.
Die Konfig ist wirklich ein wenig “friemelig”. Damit habe ich heute auch ca. 3 Stunden gekämpft. Und es läuft im Endeffekt immer noch nicht.

1 „Gefällt mir“

Ich habe dein Vorhaben schon des öfteren gelesen in verschiedenen freds, aber ich verstehe nicht warum es unbedingt wa sein muss. Nutze doch SMS oder rcd wie das jetzt heißt. Mit der Companien app bist du ja über die Datenverbindung verbunden und kannst Infos bekommen. Wenn dir die Datenverbindung fehlt, ist oft noch Mobilfunk verfügbar und es würden dann weiterhin Informationen eingehen. Oder habe ich da arguments bisher noch nicht bedacht ?

Mfg

ok das hat funktioniert und ich bin auf die GUI von WAHA gekommen.
Aber das PW ist bei jeder session ein anderes.
kann man das nicht einmal definieren und gut ist?

Servus und willkommen hier im Forum.
sprechen wir von unraid?
Wenn ja, wie hast Du es dort installiert?

es geht um den Empfang einer Nachricht und ich kann dem Absender schlecht vorschreiben, lieber einen anderen Messanger/SMS zu verwenden…

…dem ist sicher so und ich versuche mich auch gerade daran, leider sind Deine scrennshots so klein, daß man da nicht viel erkennt und nur raten muss (was sehr mühsam ist) :slight_smile:

@Cpt.Hardy: Wenn es hilft, könnte ich mich auch noch einmal dran versuchen. So wild ist das alles nicht… Hatte eh vor, die Anleitung mit der neuen Version noch einmal für mich zu aktualisieren, damit ich es nicht vergesse… :wink:

1 „Gefällt mir“

@Baum
ja, das würde sehr helfen, besten Dank im voraus.
Kleine Bitte: die screenshots dann etwas grösser abspeichern oder so
das ein Klick darauf das Bild dann anzeigt.
Merci vielmals.

EDIT: Hier ein kurzes Tutorial, wie man WAHA auf unraid installiert:

  1. man braucht Community Applications aus dem App Store

  2. unter APPS links in der Spalte ganz unten auf “Repositories” klicken

  3. im Suchfeld oben WAHA eingeben es wird nichts gefunden

  4. neben dem Suchfeld gibt es jetzt den button “DockerHub” dadrauf klicken

  5. es werden viele gefunden, man nimmt den ersten von devlikeapro

  6. auf installieren klicken

  7. es wird eine Testinstallation gemacht

  8. auf JA klicken und am Ende auf FERTIG

  9. der Container wurde nicht gestartet, man geht auf bearbeiten

  10. wenn der Port von 3000 ok ist, kann man das so lassen

  11. oben rechts in der Ecke auf “Erweiterte Ansicht klicken”

  12. WebUI = http://ip-deines-unraid:3000/dashboard/

  13. ggf .Symbol-URL
    https://res.cloudinary.com/postman/image/upload/t_team_logo/v1717146508/team/60697e9b295176aaae7d186ce0108fb4175d204fccd7d9b0fa69fb6b4a268bbd.png

wenn man jetzt den container startet und dann auf WebUI klickt, sieht man ein Anmeldefenster.
user ist immer “admin”, das PW ändert sich ständig, man bekommt es heraus, indem man vorher im Container Protokoll danach sucht (ganz oben in Log)

soweit bin ich gekommen. Es wird sicher einen Weg geben, ein permanentes Passwort zu hinterlegen oder diese Abfrage ganz auszuschalten

Moin!

Nur kurz:

Unter Step 2 findest du den Hinweis zum Passwort…

Grüße

Sorry, hatte erst jetzt die Zeit zum antworten:
Ich habe es über das setzen das Variable WAHA_DASHBOARD_PASSWORD gelöst.
Und ja - die Passwortabfrage ist wirklich nervig und mein PW-Manager erkennt diese auch nicht gut (Bitwarden - selbst gehostet).
Grüße!

ja, das hatte ich zuvor schon gelesen. Leider bin ich nicht so der Typ, der sich mit kryptischen Eingaben auskennt. Fängt schon damit an, das man eine *.env Datei erstellen soll.
Also das ganze läuft in einem docker und da wüsste ich nichtmal, wie ich auf das Dateisystem komme.
Habe mir als Tool für unraid schon Krusader installiert, bringt mich aber auch nicht weiter …

wie denn ganz genau bitte?

Wobei es mir im Moment nicht so wichtig ist mit dem Passwort, ich komme ja irgendwie auch so auf das Dashboard, aber was mache ich dort denn dann wie?

Moin!

Weit bist du nicht mehr entfernt. Nun einfach eine neue Sitzung starten. Einfach nur einen Namen geben (z.B. “default”). Und dann einen “Webhook” als Option anhaken. Als Adresse gehst du in dein HA - Neue Automation erstellen –> Auslöser hinzufügen –> Webhook oben eingeben und als Auslöser auswählen. Dort wird dann ein Token erzeugt (startet mit “-” und dann Buchstaben. Nun als Url in Waha unter webhook deine HA Adresse inkl. Webhook rein “http://xxx.xxx.xxx.xxx:8123/api/webhook/-ghasdvhdv”.
Dann einfach die Session starten. Ein wenig warten. Irgendwann kannst du den lila Kamerabutton. Dann sollte ein QR-Code erscheinen. Nun dein Whatsapp öffnen, oben rechts die drei Punkte antippen und “verknüpfte Geräte” auswählen. “Gerät hinzufügen” - QR-Code scannen. fertig.

Nach einer Weile sollte die Session in “run” gehen. Wenn das läuft, hast du es eigentlich geschafft. Dann nur noch aus meiner Anleitung den Teil der Automation anschauen, oder hier noch einmal schreiben :wink:

Viel Erfolg

kurzer Reminder, ich wäre in den Startlöchern und dieses WAHA hab ich auf unraid auch schon in einem docker laufen, soweit bin ich gekommen …