Neues Modul: Signalbot (Integration für den Signal Messenger) via signal-cli

Begonnen von Adimarantis, 31 Januar 2021, 19:16:19

Vorheriges Thema - Nächstes Thema

Adimarantis

Prima, dann nehme ich das Paket noch in die Abhängigkeiten.

Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

BAfH

Hallo,
habe mal etwas weiter getestet.
FHEM im Dock auf Raspberry PI 4

  • das Script signale_install.sh mit abgeschalteter Docker Prüfung im Docker Container als root gestartet
  • Das Script lief fehlerfrei durch, Signal Nachricht konnte gesendet werden
  • In der Docker Console al fhem signal-cli ausgeführt, Nachricht konnte gesendet werden
  • im FHEM reload 50_Signalbot.pm ausgeführt
  • im FHEM define Signal Signalbot ausgeführt, Fehler mit Reboot

FHEM reload 50_Signalbot.pm
2021.02.05 16:06:48.364 1: PERL WARNING: Subroutine Signalbot_Initialize redefined at ./FHEM/50_Signalbot.pm line 29.
2021.02.05 16:06:48.367 1: PERL WARNING: Subroutine Signalbot_Set redefined at ./FHEM/50_Signalbot.pm line 50.
2021.02.05 16:06:48.368 1: PERL WARNING: Subroutine Signalbot_Get redefined at ./FHEM/50_Signalbot.pm line 176.
2021.02.05 16:06:48.369 1: PERL WARNING: Subroutine Signalbot_message_callback redefined at ./FHEM/50_Signalbot.pm line 181.
2021.02.05 16:06:48.370 1: PERL WARNING: Subroutine Signalbot_receipt_callback redefined at ./FHEM/50_Signalbot.pm line 254.
2021.02.05 16:06:48.371 1: PERL WARNING: Subroutine Signalbot_sync_callback redefined at ./FHEM/50_Signalbot.pm line 269.
2021.02.05 16:06:48.371 1: PERL WARNING: Subroutine Signalbot_disconnect redefined at ./FHEM/50_Signalbot.pm line 284.
2021.02.05 16:06:48.373 1: PERL WARNING: Subroutine Signalbot_setup redefined at ./FHEM/50_Signalbot.pm line 328.
2021.02.05 16:06:48.374 1: PERL WARNING: Subroutine Signalbot_Read redefined at ./FHEM/50_Signalbot.pm line 396.
2021.02.05 16:06:48.374 1: PERL WARNING: Subroutine Signalbot_getContactName redefined at ./FHEM/50_Signalbot.pm line 408.
2021.02.05 16:06:48.375 1: PERL WARNING: Subroutine Signalbot_translateContact redefined at ./FHEM/50_Signalbot.pm line 427.
2021.02.05 16:06:48.375 1: PERL WARNING: Subroutine Signalbot_translateGroup redefined at ./FHEM/50_Signalbot.pm line 440.
2021.02.05 16:06:48.375 1: PERL WARNING: Subroutine Signalbot_getNumber redefined at ./FHEM/50_Signalbot.pm line 462.
2021.02.05 16:06:48.376 1: PERL WARNING: Subroutine Signalbot_Refreshgroups redefined at ./FHEM/50_Signalbot.pm line 481.
2021.02.05 16:06:48.376 1: PERL WARNING: Subroutine Signalbot_sendMessage redefined at ./FHEM/50_Signalbot.pm line 499.
2021.02.05 16:06:48.377 1: PERL WARNING: Subroutine Signalbot_sendGroupMessage redefined at ./FHEM/50_Signalbot.pm line 522.
2021.02.05 16:06:48.377 1: PERL WARNING: Subroutine Signalbot_Execute redefined at ./FHEM/50_Signalbot.pm line 550.
2021.02.05 16:06:48.378 1: PERL WARNING: Subroutine Signalbot_Attr redefined at ./FHEM/50_Signalbot.pm line 560.
2021.02.05 16:06:48.379 1: PERL WARNING: Subroutine Signalbot_Notify redefined at ./FHEM/50_Signalbot.pm line 601.
2021.02.05 16:06:48.379 1: PERL WARNING: Subroutine Signalbot_Define redefined at ./FHEM/50_Signalbot.pm line 616.
2021.02.05 16:06:48.380 1: PERL WARNING: Subroutine Signalbot_Init redefined at ./FHEM/50_Signalbot.pm line 636.
2021.02.05 16:06:48.380 1: PERL WARNING: Subroutine Signalbot_Catch redefined at ./FHEM/50_Signalbot.pm line 659.
2021.02.05 16:06:48.380 1: PERL WARNING: Subroutine Signalbot_State redefined at ./FHEM/50_Signalbot.pm line 668.
2021.02.05 16:06:48.381 1: PERL WARNING: Subroutine Signalbot_Undef redefined at ./FHEM/50_Signalbot.pm line 674.
2021.02.05 16:06:48.382 1: PERL WARNING: Subroutine SignalBot_replaceCommands redefined at ./FHEM/50_Signalbot.pm line 687.
2021.02.05 16:06:48.383 1: PERL WARNING: Subroutine SignalBot_IdentifyStream redefined at ./FHEM/50_Signalbot.pm line 761.


org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper exited with unknown return code 1
2021.02.05 16:10:03.971 0: SONOS0: Das Lauschen auf der Schnittstelle wurde beendet. Prozess endet nun auch...
/entry.sh: line 621: kill: (23895) - No such process
Abrupt daemon termination, starting 10s countdown .../entry.sh: line 625: kill: (23895) - No such process
10/entry.sh: line 625: kill: (23895) - No such process
9/entry.sh: line 625: kill: (23895) - No such process
8/entry.sh: line 625: kill: (23895) - No such process
7/entry.sh: line 625: kill: (23895) - No such process
6/entry.sh: line 625: kill: (23895) - No such process
5/entry.sh: line 625: kill: (23895) - No such process
4/entry.sh: line 625: kill: (23895) - No such process
3/entry.sh: line 625: kill: (23895) - No such process
2/entry.sh: line 625: kill: (23895) - No such process
1/entry.sh: line 625: kill: (23895) - No such process
0/entry.sh: line 632: kill: (23895) - No such process
Automatic restart ...
/entry.sh: line 645: kill: (23895) - No such process
Running /pre-start.sh script ...
Starting DBus System Daemon
Starting signal-cli
Wait 5 to give signal-cli time to come up
OpenJDK 32-Bit Server VM warning: You have loaded library /tmp/resource14840447632239917888.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
WARN App - WARNING: Support for new group V2 is disabled, because the required native library dependency is missing: libzkgroup
ERROR App - User +49quelle is not registered.
Preparing configuration ... done
Starting FHEM ...


org.freedesktop.DBus.Error.Spawn.ChildExited dieser Fehler scheint auf den DBUS zu zeigen.

Und warum sagt er, meine Rufnummer wäre nicht registriert?

Hat jemand eine Idee...

by the way, ich erstelle das Dockerfile wie folgt
ARG BASE_IMAGE="fhem/fhem"
ARG BASE_IMAGE_TAG="latest"
FROM ${BASE_IMAGE}:${BASE_IMAGE_TAG}

ARG L_SIGNAL_CLI="0.7.4"

# Install base environment
RUN DEBIAN_FRONTEND=noninteractive apt-get update \
    && DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends \
        cpanminus \
        build-essential \
        wget \
        shared-mime-info \
#        default-jre-headless \
        libunixsocket-java \
        dbus \
        libnet-dbus-perl \
shared-mime-info \
haveged \
# default-jdk \
        net-tools \
nano \
systemd \
        hping3 \
        wakeonlan \
    && wget https://download.bell-sw.com/java/11.0.10+9/bellsoft-jdk11.0.10+9-linux-arm32-vfp-hflt.deb \
    && apt-get install -qqy --no-install-recommends ./bellsoft-jdk11.0.10+9-linux-arm32-vfp-hflt.deb \
    && cpanm \
        Net::DBus \
        Lirc::Client \
        Crypt::Cipher::AES \
    && rm -rf /root/.cpanm \
    && wget https://github.com/AsamK/signal-cli/releases/download/v${L_SIGNAL_CLI}/signal-cli-${L_SIGNAL_CLI}.tar.gz \
    && tar xf signal-cli-${L_SIGNAL_CLI}.tar.gz -C /opt \
#    && mv /opt/fhem/signal-cli-"${L_SIGNAL_CLI}" /opt/fhem/signal-cli \
#    && ln -sf /opt/fhem/signal-cli/bin/signal-cli /usr/local/bin/ \
    && ln -sf /opt/signal-cli-${L_SIGNAL_CLI}/bin/signal-cli /usr/local/bin/ \
    && apt-get purge -qqy \
        build-essential \
        cpanminus \
        subversion \
    && apt-get autoremove -qqy && apt-get clean \
    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

COPY ./src/pre-start.sh /pre-start.sh
#COPY ./src/000_fhem-nopasswd /etc/sudoers.d/
COPY ./src/org.asamk.Signal.service /usr/share/dbus-1/system-services/
COPY ./src/org.asamk.Signal.conf /etc/dbus-1/system.d/
ADD https://raw.githubusercontent.com/Quantum1337/32_SiSi.pm/master/FHEM/32_SiSi.pm /fhem/FHEM/32_SiSi.pm
RUN mkdir /run/dbus
#RUN mkdir /opt/fhem/signal-cli
RUN mkdir /opt/signal-cli

RUN chmod +x /pre-start.sh

VOLUME [ "/opt/signal-cli" ]
Gruß Thorben
mit sonnige Grüße aus Schönow

enno

Moin BAfH,

bis du sicher dass der Dienst läuft? Was sagt dir sudo systemctl status signal.service

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

Adimarantis

Hallo Bafh,

startest du den service? Ich sehe jetzt das signal.service file nirgends. Zeigt der --config Parameter auf das richtige Verzeichnis und ist es les/schreibbar für den User?
Außerdem (aber das ist schon ein Schritt weiter) fehlt dir noch die libzkgroup.so für Raspberry. Die muss irgendwo in den library path z.B. /usr/lib und aus dem zkgroup....jar rausgelöscht sein (was mein Script bei erkannter Raspberry Installation automatisch macht)

Jörg

Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

BAfH

Zitat von: enno am 05 Februar 2021, 16:24:16
Moin BAfH,

bis du sicher dass der Dienst läuft? Was sagt dir sudo systemctl status signal.service

Gruss
  Enno
Zeigt mir folgendes....
root@FHEM:/opt/fhem# sudo systemctl status signal.service
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down


der DBUS wirdmit dem pre-start.sh Script gestartet
#!/bin/bash
export NUMBER="${NUMBER:-"undef"}"
export SLEEPTIME="${SLEEPTIME:-"10s"}"

if [ $NUMBER != "undef" ]; then

   if [ -s /var/run/dbus/pid ]; then
      rm /var/run/dbus/pid
   fi

   echo "Starting DBus System Daemon"
   dbus-daemon --system --address=unix:path=/run/dbus/system_bus_socket

   echo "Starting signal-cli"
   /usr/local/bin/signal-cli -u $NUMBER --config /opt/fhem/signal-cli daemon --system &

   echo "Wait $SLEEPTIME to give signal-cli time to come up"
   sleep $SLEEPTIME
fi


starte ich den Befehl per Hand
root@FHEM:/opt/fhem# sudo systemctl status signal.service
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
root@FHEM:/opt/fhem# dbus-daemon --system --address=unix:path=/run/dbus/system_bus_socket
dbus-daemon[23194]: Failed to start message bus: The pid file "/run/dbus/pid" exists, if the message bus is not running, remove this file

EDIT
Frage ich den Dienst mit sudo service ab
oot@FHEM:/opt/fhem# sudo service dbus status
[ ok ] dbus is running.


Liegt wohl am DBUS. Mit der libzkgroup.so  wollte ich anschließend klären....
Gruß Thorben
mit sonnige Grüße aus Schönow

Adimarantis

Ja, aus dem Docker heraus, kann man das mit dem "service" wohl nicht machen, deshalb der Ansatz signal-cli einfach als Hintergrundprozess im -daemon --system zu starten - was anderes macht systemd am Ende auch nicht

Ich denke dein Augenmerk sollte auf den Parametern "-u" und "--config" liegen - stimmen die so? Und ist das Verzeichnis (und alles darin) aus dem Docker les/schreibbar? ist die richtige Config drin (Verzeichnis data, welches dann ein File mit der Nummer enthält)



Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Adimarantis

So, für alle Dockerfreunde folgende grobe Anleitung

-Verzeichnis fhem und fhem/core erstellen
-Fhem.tgz nach fhem/core auspacken

cd fhem
docker-compose.yml erstellen:
version: '2'

services:
    fhem:
        build: .
        restart: always
        stdin_open: true
        tty: true
        ports:
            - "8083:8083"
            - "7072:7072"
        volumes:
            - ./fhem/core/:/opt/fhem/
        networks:
            - fhem-network
        #devices:
        #    - "/dev/ttyUSB0:/dev/ttyUSB0"
        environment:
            FHEM_UID: 1000
            FHEM_GID: 1000
            TIMEOUT: 10
            RESTART: 1
            TELNETPORT: 7072
            TZ: Europe/Berlin

networks:
    fhem-network:
        driver: bridge


Dockerfile erstellen:
ARG BASE_IMAGE="fhem/fhem"
ARG BASE_IMAGE_TAG="latest"
FROM ${BASE_IMAGE}:${BASE_IMAGE_TAG}

ARG L_SIGNAL_CLI="0.7.4"

# Install base environment

VOLUME [ "/opt/signal-cli" ]


#Docker Check ("exit" in Zeile 28 im script rausnehmen!
copy signal_install.sh in fhem/core
test.pl in fhem/core erstellen
#!/usr/bin/perl -w
use strict;
use warnings;

use Net::DBus;

my @attachment =();
my @recipients=("+491xxxx");
my $bus = Net::DBus->system();

my $service = $bus->get_service("org.asamk.Signal");
my $object = $service->get_object("/org/asamk/Signal");

my $retcode = $object->sendMessage("Testmessage from DBUS-Perl",\@attachment,\@recipients);
print "return timestamp:".$retcode."\n";

sudo docker-compose up -d
sudo docker exec -ti fhem-docker_fhem_1 /bin/bash


Im container: (als root) (# Zeilen weglassen, sind nur meine Notizen)

#make apt-get work at all by fetching the repository and upgrading it
apt-get update
apt-get upgrade
#get an editor
apt-get install vim
#Container check deaktivieren!
./signal_install.sh system
./signal_install.sh install
mkdir /run/dbus
dbus-daemon --system --address=unix:path=/run/dbus/system_bus_socket &
scp -r user@hostname:/var/lib/signal-cli /var/lib
# Oder an dieser Stelle: ./signal_install.sh register
cd /var/lib
chown -R signal-cli: signal-cli
sudo -u signal-cli /opt/signal/bin/signal-cli -u +49xxxxxx --config /var/lib/signal-cli daemon --system &

# Warten bis der Java Prozess läuft - das kann sehr lange dauern!!!
ps -ef | grep java

# Perl script von oben
perl test.pl

# Klappt oft erst beim zweiten mal
perl test.pl


Wie es dann mit FHEM weitergeht habe ich nicht probiert und auch nicht wie man das automatisiert.

Danke an BaFh für die Vorarbeit.

Gruß
Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Jamo

Hallo Jörg,
bei mir kommen das Reading "msgSender" nicht. Hier mal der Log5, nachdem ich ein 'P' an mein fhem Signalbot geschickt habe (und ein pong zurueckschicke), und das list vom Device.
Was mache ich falsch?

2021.02.05 23:28:35 5: Signal: Message from  : P processed
2021.02.05 23:28:35 5: Signal: Read from Dbus done
2021.02.05 23:28:36 3: SignalBefore parse:@+4917212345678 pong:

2021.02.05 23:28:36 5: Signal: sendMessage called for +4917212345678::pong
2021.02.05 23:28:36 5: Signal: Signalbot_receive_callback 1234567890123 +4917212345678
2021.02.05 23:28:36 5: Signal: Read from Dbus done
2021.02.05 23:28:37 5: Signal: Signalbot_receive_callback 1234567890123 +4917212345678
2021.02.05 23:28:37 5: Signal: Read from Dbus done
2021.02.05 23:28:39 5: Signal: Signalbot_receive_callback 1234567890123 +4917212345678
2021.02.05 23:28:39 5: Signal: Read from Dbus done


Internals:
   CFGFN     
   DEF       
   FD         29
   FUUID      abcdef-1234-1234-1234-1234ejgrynv
   NAME       Signal
   NOTIFYDEV  global
   NR         3610
   NTFY_ORDER 50-Signal
   STATE      Connected
   TYPE       Signalbot
   READINGS:
     2021-02-05 11:48:02   contactList     +4917212345678=
     2021-02-05 23:28:35   msgAttachment   
     2021-02-05 23:28:35   msgGroupName   
     2021-02-05 23:28:35   msgSender       
     2021-02-05 23:28:35   msgText         P
     2021-02-05 23:28:35   msgTimestamp    05-02-2021 23:28:34
     2021-02-05 23:28:35   prevMsgAttachment
     2021-02-05 23:28:35   prevMsgGroupName
     2021-02-05 23:28:35   prevMsgSender   
     2021-02-05 23:28:35   prevMsgText     Dies ist ein Test
     2021-02-05 23:28:35   prevMsgTimestamp 05-02-2021 13:03:30
     2021-02-05 23:28:36   sentMsg         pong
     2021-02-05 23:28:39   sentMsgRecipient
     2021-02-05 23:28:39   sentMsgTimestamp 05-02-2021 23:28:36
   helper:
     msignal    4
     rsignal    6
     ssignal    5
     timer      0
     contacts:
       +4917212345678
Attributes:
   allowedPeer +4917212345678
   defaultPeer +4917212345678
   event-on-update-reading msgText
   room       Messages
   verbose    5
   webCmd     reconnect



Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Adimarantis

Hi Jamo,

ich glaube der msgSender kommt sehr wohl, wird aber in den Kontaktnamen übersetzt und ist schlicht und ergreifend leer.
Bist du sicher das der Sender einen Nickname hat?

Ich gebe allerdings zu, dass ein leerer Nickname die Übersetzung etwas "ad absurdum" führt.
Probiere daher mal diese Version, die bei leerem Namen wieder die Nummer nehmen sollte.

Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Adimarantis

Wichtiger Hinweis zum Thema Datenschutz!

In den Logfiles und "list" devices stehen überall eure Telefonnummern drin. Schaut euch dringend vorangegange Posts an und löscht die ggf. raus.

Besonders das "list" ist da noch tückischer, da es eure komplette Kontaktliste und daher die Nummern eurer Freunde und Bekannten beinhalten kann.
Daher ein "list" nur nach gewissenhafter Bearbeitung posten!

Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Jamo

ZitatHi Jamo,

ich glaube der msgSender kommt sehr wohl, wird aber in den Kontaktnamen übersetzt und ist schlicht und ergreifend leer.
Bist du sicher das der Sender einen Nickname hat?

Ich gebe allerdings zu, dass ein leerer Nickname die Übersetzung etwas "ad absurdum" führt.
Probiere daher mal diese Version, die bei leerem Namen wieder die Nummer nehmen sollte.

Jörg
Hallo Jörg,
diese Version, die bei leerem Namen wieder die Nummer nehmen sollte, funktioniert. DANKE!
Willst Du die neue Version in den ersten Post schieben?
Mit dem Nick: Nein, ich habe mein Adressbuch nicht geöffnet, aber in Signal Vornamen und Namen eingetragen. Wo finde ich denn den Nick in iOS, wo kann ich den eintragen?


Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Adimarantis

Danke Jamo, aufgrund deiner Meldung habe ich wieder was gelernt, daher ist es jetzt auch ein größeres Update geworden:

Diese Nicknames sind keine Eigenschaft der Profils sondern jeder Client (in dem Fall signal-cli) hält seine eigenen private Liste. Ich hatte in meinem Profil wohl irgendwie einen Nickname für meine Handynummer und bin einfach davon ausgegangen das dies vom Profil kommt. Falsch gedacht. Das klappt nur bei gelinkten Accounts - da bekommt man die Kontakte die man auch auf dem Handy bereits hat.

Es gibt jetzt ein
set SignalBot setContact <Nummer> <Name>

Damit kann jeder sein internes Kontaktbuch pflegen.
Damit es einen FHEM Neustart überlebt noch ein
set saveContacts

Außerdem ist in dieser Version (erster Post) das Umlauthandling etwas verbessert. Ich hoffe mir sind keine Bugs reingerutscht.

Wie man an die Realnames kommt weiss ich nicht. Das Dbus Interface von signal-cli unterstützt aber einfach viele Funktionen (noch) nicht.

Gruß,
Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

weini

Hi Jörg!

Tolle Sache, der SignalBot. Ich bin seit vielen Jahren TelegramBot-Nutzer, würde aber gern auf Signal umstellen.

Hast du vor, das Favorite-Handling von TelegramBot ebenfalls im SignalBot anzubieten?

Ein weiteres Killerfeature wäre aus meiner Sicht die Verknüpfung mit GoogleAuth, so dass man bei FHEM Befehlen ein TOTP Token mitsendet und das entsprechend geprüft wird. Das kann TelegramBot auch nicht native, es lässt sich aber über ein notify nachrüsten. Besser wäre natürlich eine direkte Integration, bei der man für bestimmte Befehle die zusätzliche Authentifizierung über TOTP verlangt.

Viele Grüße,
weini

enno

Moin Jörg,

habe die neue Version eingebaut. Läuft ohne Fehlermeldung! Danke!

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

Adimarantis

Zitat von: weini am 06 Februar 2021, 12:50:36
Hast du vor, das Favorite-Handling von TelegramBot ebenfalls im SignalBot anzubieten?
Um Befehle automatisiert auszuführen habe ich die Verknüfung mit dem Babble Modul eingebaut. Der kann erstens mal sehr flexibel unterschiedliche Formulierungen erkennen und zweitens muss man dann das Rad nicht zweimal erfinden. Auf den ersten Blick hat der Telegrambot Entwickler da ganz schön Aufwand reingesteckt.
Ich lasse mich gerne davon überzeugen, was der Vorteil gegenüber Babble ist (oder potentiell auch "talk") ist.

Zitat
Ein weiteres Killerfeature wäre aus meiner Sicht die Verknüpfung mit GoogleAuth, so dass man bei FHEM Befehlen ein TOTP Token mitsendet und das entsprechend geprüft wird. Das kann TelegramBot auch nicht native, es lässt sich aber über ein notify nachrüsten. Besser wäre natürlich eine direkte Integration, bei der man für bestimmte Befehle die zusätzliche Authentifizierung über TOTP verlangt.
Kannst du mir dazu mehr Infos geben? Was ist der Anwendungsfall und wie schauen deine notifys aus die sowas simulieren?

Gruß,
Jörg

Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)