signal(bot) mit FHEM Containr

Begonnen von th0nix, 05 Februar 2022, 21:50:13

Vorheriges Thema - Nächstes Thema

th0nix

Da ich mein FHEM in einem Container auf meinem PI laufen lasse funktioniert der signalbot (https://wiki.fhem.de/wiki/Signalbot) leider nicht.
Als Signal interface sieht der Container https://github.com/bbernhard/signal-cli-rest-api von bbernhard gut aus und Funktioniert ohne was zu machen.

Hat jemand hierzu schon mal was gemacht oder muss ich hier von der Integration von Null anfangen? Bzw hat jemand noch einen anderen Ansatz ?

Wenn jemand Interesse am nachstellen hat  ;) - meine docker-compose.yml

# docker-compose.yml
version: '2.3'

services:

  signal-cli-rest-api:
    # doc for register: https://github.com/bbernhard/signal-cli-rest-api/blob/master/doc/EXAMPLES.md
    image: bbernhard/signal-cli-rest-api:latest
    restart: always
    container_name: signal-cli-rest-api
    environment:
      # supported modes: json-rpc, native, normal
      - MODE=json-rpc mode
      - TZ=Europe/Berlin
      #- AUTO_RECEIVE_SCHEDULE=0 22 * * * #enable this parameter on demand (see description below)
    ports:
      #map docker port 8080 to host port 8080
      - "8080:8080"
    volumes:
      #map "signal-cli-config" folder on host system into docker container. the folder contains the password and cryptographic keys when a new number is registered
      - "./signal-cli-config:/home/.local/share/signal-cli"

  fhem:
    image: fhem/fhem:latest
    restart: always
    container_name: fhem
    ports:
      - "8083:8083"
      - "8084:8084"
      # MQTT
      - "1883:1883"
      - "18883:18883"
      # UPNP
      - "4711:4711"
    volumes:
      - "./fhem/:/opt/fhem/"
    devices:
      - "/dev/ttyAMA0:/dev/ttyAMA0"
    environment:
      FHEM_UID: 6061
      FHEM_GID: 6061
      TIMEOUT: 10
      RESTART: 1
      TELNETPORT: 7072
      TZ: Europe/Berlin


Iceman0073

Hallo, hast du hierzu selbst etwas umgesetzt oder wie hast du es implementiert?

Viele Grüße
Michael

crazy_penguin

#2
Hallo zusammen,

das Thema ist zwar etwas älter, aber falls sich jemand etwas bauen will habe ich da was passendes.
Ich spreche den Container per HTTPMOD an. Ich wollte es einfach ohne Perl-Programmierung halten.

Hier meine Definition:

defmod HTMO_Signal_TX_Message HTTPMOD none 0
attr HTMO_Signal_TX_Message userattr SignalRecipient SignalSender
attr HTMO_Signal_TX_Message SignalRecipient +491700000000
attr HTMO_Signal_TX_Message SignalSender +491700000000
attr HTMO_Signal_TX_Message replacement01Mode expression
attr HTMO_Signal_TX_Message replacement01Regex SENDERNR
attr HTMO_Signal_TX_Message replacement01Value AttrVal("HTMO_Signal_TX_Message","SignalSender","")
attr HTMO_Signal_TX_Message replacement02Mode expression
attr HTMO_Signal_TX_Message replacement02Regex EMPFAENGERNR
attr HTMO_Signal_TX_Message replacement02Value AttrVal("HTMO_Signal_TX_Message","SignalRecipient","")
attr HTMO_Signal_TX_Message room _Gewerk->Meldungen,_System->Integration,_System->Signal
attr HTMO_Signal_TX_Message set01Data {"message":"$val","number":"SENDERNR","recipients":["EMPFAENGERNR"]}
attr HTMO_Signal_TX_Message set01Header Content-Type: application/json
attr HTMO_Signal_TX_Message set01Name message
attr HTMO_Signal_TX_Message set01TextArg 1
attr HTMO_Signal_TX_Message set01URL http://172.27.0.6:8080/v2/send
attr HTMO_Signal_TX_Message showBody 1
attr HTMO_Signal_TX_Message showError 1
attr HTMO_Signal_TX_Message timeout 10


Der Empfang geht auch, aber aktuell habe ich dafür keinen Anwendungfall.
Und garantiert geht das eleganter:


defmod HTMO_Signal_RX_Message HTTPMOD http://172.27.0.6:8080/v1/receive/+49170000000030
attr HTMO_Signal_RX_Message reading01Name Text
attr HTMO_Signal_RX_Message reading01Regex "message":"([^"]*)"
attr HTMO_Signal_RX_Message reading02Name Absender
attr HTMO_Signal_RX_Message reading02Regex "sourceNumber":"([^"]+)"
attr HTMO_Signal_RX_Message reading03Name Zeitstempel
attr HTMO_Signal_RX_Message reading03Regex "timestamp":(\d+)
attr HTMO_Signal_RX_Message room _System->Integration,_System->Signal
attr HTMO_Signal_RX_Message timeout 10

Viele Grüße

Jo
FHEM per Docker auf Synology | HM-MOD-RPI-PCB für HM (Docker auf RPi3) | MySensors | Zigbee  (zigbee2mqtt) | Echo Dot | HTTPMOD (FortiGate & Palo Alto)