Signal Beispiel-Chatbot aufsetzen

Hallo zusammen,

ich habe es endlich geschafft meine Ersatz-Handynummer mit Signal in HA zu koppeln. Ich kann mir manuell Nachrichten schreiben.

Um nun weitere Funktionen zu nutzen und die Funktionsweise zu verstehen, wollte ich die Beispiel-Chatbots nachbauen. Ich verstehe leider nicht, wie ich das Beispiel hier in signal-cli-rest-api/doc/HOMEASSISTANT.md at master · bbernhard/signal-cli-rest-api · GitHub nachbauen muss. Kann mir hier jemand weiterhelfen?

Den Code für die RESTful ressoruce habe ich in meine rest.yaml eingetragen:

- resource: "http://192.168.10.10:8080/v1/receive/+491701234567"
  headers:
    Content-Type: application/json
  sensor:
    - name: "Signal message received"
      value_template: "{{ value_json[0].envelope.dataMessage.message }}" #this will fetch the message
      json_attributes_path: $[0].envelope
      json_attributes:
       - source #using attributes you can get additional information, in this case the phone number.

Als Zustand wird mir dieser in den Entwicklungswerkzeugen angezeigt.
Herausforderung 1)
Wenn ich der Nummer eine Nachricht schicke, ändert sich der Zustand aber nicht. Der Count bleibt bei current: 0

Hat jemand eine Idee, woran das liegen kann?
Alle Updates vom 3.3.25 sind installiert.

Herausforderung 2)
Beim zweiten Teil, der Automation, habe ich leider keine Idee, wie ich das umsetzen soll.
Ich habe den Code zunächst in die configuration.yaml eingetragen. Damit funktionierte die Automation aber nicht und ich wurde aufgefordert sie in die automation.yaml zu migrieren, damit die per GUI editiert werden kann.
Automationen kann ich demnach wohl nur per GUI einrichten, dafür müsste ich aber erstmal wissen, welche Werte in welche Felder kommen.

Kann mir auch hier jemand weiterhelfen?

...
trigger:
  - platform: state
    entity_id:
      - sensor.signal_message_received
    to: time
condition:
  - condition: state
    entity_id: sensor.signal_message_received
    attribute: source
    state: "<yournumber>"
action:
  - service: notify.signal
    data:
      message: "{{ now() }}"

Was funktioniert: Wenn ich in den Entwicklerwerkzeugen > Aktionen die Aktion “notify.signal” auswähle, kann mich mir aus dem HA auf meinen Kontakt und in meine eingerichtete Verteilergruppe schicken.

Der Grundstein ist also da, jetzt würde ich nur gerne in Interaktion mit dem HA treten können und z.B. den Status abfragen.

Danke und Grüße
Markus

Hallo zusammen, ich habs mit einem kleinen Flowchart gelöst :slight_smile: Fast schon peinlich, aber manchmal steht man sich selbst im Weg.

Beim Einrichten ist zu beachten, dass
< number> die neu registrierte Nummer ist.
Beim Chatbot ist < yournumber> die Nummer des Accounts, der die Nachricht an den Chatbot schickt, also in der Regeld die des privaten Handys.

Vielleicht hilft mein Fehler jemandem weiter. Würd mich freuen.

Hallo,

Ich würde auch gerne den Signal Messenger nutzen, aber leider hänge ich da auch.

Folgende Konfiguration: (nachdem ich den QR-Code mit meinem Handy gekoppelt habe

rest,yaml:
- resource: "http://127.0.0.1:8080/v1/receive/+43677xxx" # nummer vom gekoppelten Handy
  headers:
    Content-Type: application/json
  sensor:
    - name: "Signal message received"
      value_template: "{{ value_json[0].envelope.dataMessage.message }}" #this will fetch the message
      json_attributes_path: $[0].envelope
      json_attributes:
       - source #using attributes you can get additional information, in this case the phone number.

Unter Entwicklerwerkzeige->Zustände ist sensor.signal_message_received sichtbarund kann auch gesetzt werden.

Ich würde nun gerne eine Nachricht an ein anderes Handy schicken, aber ich weiss nicht, wie ich das zu Testzwecken einfach machen kann.

Lt. Anweisung von Notifications - Home Assistant habe ich das in Entwicklerwerkzeige->Aktionen versucht, aber ich weiss nicht, was ich da als Ziel angeben soll,

action: notify.send_message
data:
  target: +43650xxxx # Adresse des Handys, das die Nachricht erhalten soll
  message: You have an update!
  title: Status changed

Das liefert einen Fehler, das Ziel ist falsch. Ich bin sicher, es ist ein extrem dummer Fehler, bitte helft mir da weiter.

LG,
Christof