FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: Pflasterbicker am 14 November 2017, 03:27:38

Titel: Telegram und mehrere User
Beitrag von: Pflasterbicker am 14 November 2017, 03:27:38
Hallo

Ich suche schon seit Stunden nach einer Lösung die wahrscheinlich total leicht zu lösen ist, ich komm nur nicht auf den Fehler...

In FHEM hab ich Telegram installiert, es funktioniert auch wunderbar wenn ich mit meinem Handy etwas Abfrage oder hinschicke. Von FHEM aus kann ich nur zu meinem Handy senden wenn das Attribut ,,defaultPeer" mit @meinBenutzername gesetzt ist. Lösche ich dieses Attribut kann ich keine Nachrichten empfangen. Ansich kein Problem, ich möchte aber dass mehrere User Readings abrufen und Befehle senden können. Ist defaultPeer gesetzt kann zwar ich empfangen aber sonst niemand.

In den Contacts sind die User korrekt drin, TelegramBot kann also empfangen und erkennt den zweiten oder dritten User.

Was muss ich machen damit mehrere User mit FHEM kommunizieren können?

Danke für Eure Hilfe !

Michael
Titel: Antw:Telegram und mehrere User
Beitrag von: igami am 14 November 2017, 06:05:22
Du musst die Befehle so verwenden wie in der commandref beschrieben mit @<userID>
Titel: Antw:Telegram und mehrere User
Beitrag von: schnitzelbrain am 14 November 2017, 06:23:05
Beispiel

set telegram_bot message @@user1_benutzername @@user2_benutzername Testnachricht

Der Benutzername ist der bei Telegram eingetragene.


Grüße
Schnitzelbrain
Titel: Antw:Telegram und mehrere User
Beitrag von: Pflasterbicker am 17 November 2017, 09:23:47
Vielen Dank schon mal für Eure Antworten.
Ich check das leider noch immer nicht ganz.
Wenn ich das Attribut "defaultPeer" auf "@MeinTelegramName" setze dann kann ich in Telegramm einen Befehl senden der beantwortet wird.
Als Beispiel kann ich "Temp" senden und bekomme dafür aus einem Notify bestimmte Temperturwerte die ich aus den Reading der Geräte auslese. Das kann aber nur ich empfangen. Wenn User2 Temp sendet bekommt User2 gar keine Antwort denn sie kommt bei User1 an...

Lösche ich das Attribut "defaultPeer" dann überhaupt niemand etwas empfangen, Telegram reagiert überhaupt nicht darauf...

Wisst Ihr was ich meine?

Mit Sicherheit hab ich noch irgendwo einen Fehler drin. In meiner WhatsApp-Instanz funktioniert das ja auch alles, alle Familienmitglieder können dort Befehle an FHEM senden und diese werden beantwortet und ausgeführt. Das muss doch bei Telegram auch funktionieren...

Hier mal das Notify welches ich für Telegram erstellt habe:
Telegram:msgText.* {
    if ($EVTPART1 eq 'Filterpumpe') {
        if ($EVENT =~ 'an') {
            fhem("set Steckdose_Pool_Filterpumpe_Sw on");
        }
        elsif ($EVENT =~ 'aus') {
           fhem("set Steckdose_Pool_Filterpumpe_Sw off");
        }
    }
    elsif ($EVTPART1 eq 'Garage') {
        fhem("set Garagentor on-for-timer 1");
        fhem("set $NAME send Das Garagentor sollte sich nun bewegen");
    }
    elsif( $EVTPART1 eq 'Ruhe' ) {
        fhem("set Ruhemodus_OG aktiv");
      fhem("set $NAME send Der HvO-Alarm im OG ist AUS");
    }
    elsif( $EVTPART1 eq 'Bereit' ) {
        fhem("set Ruhemodus_OG inaktiv");
      fhem("set $NAME send Der HvO-Alarm im OG ist AN");
    }
    elsif ($EVTPART1 eq 'Temp') {
        my $atemp = ReadingsVal("netatmo_M02_00_00_19_0f_0c", "temperature", "");
        fhem("set $NAME send Aussentemperatur: $atemp °C");
        my $watertemp = ReadingsVal("Temp.Poolwasser", "temperature", "");
        fhem("set $NAME send Pool Wassertemperatur: $watertemp °C");
        my $tectemp = ReadingsVal("Temp.Technikraum", "temperature", "");
        my $techum = ReadingsVal("Temp.Technikraum", "humidity", "");
        fhem("set $NAME send Technikraum: $tectemp °C, $techum %");
        my $htemp = ReadingsVal("netatmo_M03_00_00_03_a4_64", "temperature", "");
        my $hhum = ReadingsVal("netatmo_M03_00_00_03_a4_64", "humidity", "");
        fhem("set $NAME send Poolhalle: $htemp °C, $hhum %");
        my $saunatemp = ReadingsVal("netatmo_D70_ee_50_18_fc_9e", "temperature", "");
        my $saunahum = ReadingsVal("netatmo_D70_ee_50_18_fc_9e", "humidity", "");
        fhem("set $NAME send Saunahaus: $saunatemp °C, $saunahum %");
    }
    else {

    }
}


Nochmals danke für Eure Unterstützung
Titel: Antw:Telegram und mehrere User
Beitrag von: Pflasterbicker am 17 November 2017, 09:47:30
Hab jetzt das Notify nochmal abgeändert und das $Name entfernt und durch Telegram ersetzt, selbes, ich bekomme keine Antwort.
Nur als Info, set Telegram message @@User1 @@User2 Testnachricht funktioniert, es kommt bei beiden User etwas an

Telegram:msgText.* {
    if ($EVTPART1 eq 'Filterpumpe') {
        if ($EVENT =~ 'an') {
            fhem("set Steckdose_Pool_Filterpumpe_Sw on");
        }
        elsif ($EVENT =~ 'aus') {
           fhem("set Steckdose_Pool_Filterpumpe_Sw off");
        }
    }
    elsif ($EVTPART1 eq 'Garage') {
        fhem("set Garagentor on-for-timer 1");
        fhem("set Telegram message Das Garagentor sollte sich nun bewegen");
    }
    elsif( $EVTPART1 eq 'Ruhe' ) {
        fhem("set Ruhemodus_OG aktiv");
      fhem("set Telegram message Der HvO-Alarm im OG ist AUS");
    }
    elsif( $EVTPART1 eq 'Bereit' ) {
        fhem("set Ruhemodus_OG inaktiv");
      fhem("set Telegram message Der HvO-Alarm im OG ist AN");
    }
    elsif ($EVTPART1 eq 'Temp') {
        my $atemp = ReadingsVal("netatmo_M02_00_00_19_0f_0c", "temperature", "");
        fhem("set Telegram message Aussentemperatur: $atemp °C");
        my $watertemp = ReadingsVal("Temp.Poolwasser", "temperature", "");
        fhem("set Telegram message Pool Wassertemperatur: $watertemp °C");
        my $tectemp = ReadingsVal("Temp.Technikraum", "temperature", "");
        my $techum = ReadingsVal("Temp.Technikraum", "humidity", "");
        fhem("set Telegram message Technikraum: $tectemp °C, $techum %");
        my $htemp = ReadingsVal("netatmo_M03_00_00_03_a4_64", "temperature", "");
        my $hhum = ReadingsVal("netatmo_M03_00_00_03_a4_64", "humidity", "");
        fhem("set Telegram message Poolhalle: $htemp °C, $hhum %");
        my $saunatemp = ReadingsVal("netatmo_D70_ee_50_18_fc_9e", "temperature", "");
        my $saunahum = ReadingsVal("netatmo_D70_ee_50_18_fc_9e", "humidity", "");
        fhem("set Telegram message Saunahaus: $saunatemp °C, $saunahum %");
    }
    else {

    }
}
Titel: Antw:Telegram und mehrere User
Beitrag von: Esjay am 17 November 2017, 09:48:52
Es wundert mich ein wenig, das Igami nicht auf sein Modul verwiesen hat, aber kennst du das schon? Dort ist es auch so, dass der eine es nicht mal mitbekommt, wenn der andere das Menü anfordert.
https://forum.fhem.de/index.php/topic,77297.0.html

Grüße
Titel: Antw:Telegram und mehrere User
Beitrag von: igami am 17 November 2017, 09:58:40
Ich kann ja nicht überall darauf hinweisen :D
Titel: Antw:Telegram und mehrere User
Beitrag von: schnitzelbrain am 17 November 2017, 11:01:42
Zitat von: Pflasterbicker am 17 November 2017, 09:47:30
Hab jetzt das Notify nochmal abgeändert und das $Name entfernt und durch Telegram ersetzt, selbes, ich bekomme keine Antwort.
Nur als Info, set Telegram message @@User1 @@User2 Testnachricht funktioniert, es kommt bei beiden User etwas an

Telegram:msgText.* {
    if ($EVTPART1 eq 'Filterpumpe') {
        if ($EVENT =~ 'an') {
            fhem("set Steckdose_Pool_Filterpumpe_Sw on");
        }
        elsif ($EVENT =~ 'aus') {
           fhem("set Steckdose_Pool_Filterpumpe_Sw off");
        }
    }
    elsif ($EVTPART1 eq 'Garage') {
        fhem("set Garagentor on-for-timer 1");
        fhem("set Telegram message Das Garagentor sollte sich nun bewegen");
    }
    elsif( $EVTPART1 eq 'Ruhe' ) {
        fhem("set Ruhemodus_OG aktiv");
      fhem("set Telegram message Der HvO-Alarm im OG ist AUS");
    }
    elsif( $EVTPART1 eq 'Bereit' ) {
        fhem("set Ruhemodus_OG inaktiv");
      fhem("set Telegram message Der HvO-Alarm im OG ist AN");
    }
    elsif ($EVTPART1 eq 'Temp') {
        my $atemp = ReadingsVal("netatmo_M02_00_00_19_0f_0c", "temperature", "");
        fhem("set Telegram message Aussentemperatur: $atemp °C");
        my $watertemp = ReadingsVal("Temp.Poolwasser", "temperature", "");
        fhem("set Telegram message Pool Wassertemperatur: $watertemp °C");
        my $tectemp = ReadingsVal("Temp.Technikraum", "temperature", "");
        my $techum = ReadingsVal("Temp.Technikraum", "humidity", "");
        fhem("set Telegram message Technikraum: $tectemp °C, $techum %");
        my $htemp = ReadingsVal("netatmo_M03_00_00_03_a4_64", "temperature", "");
        my $hhum = ReadingsVal("netatmo_M03_00_00_03_a4_64", "humidity", "");
        fhem("set Telegram message Poolhalle: $htemp °C, $hhum %");
        my $saunatemp = ReadingsVal("netatmo_D70_ee_50_18_fc_9e", "temperature", "");
        my $saunahum = ReadingsVal("netatmo_D70_ee_50_18_fc_9e", "humidity", "");
        fhem("set Telegram message Saunahaus: $saunatemp °C, $saunahum %");
    }
    else {

    }
}

Du musst es nicht nur durch telegram ersetzen sondern durch telegram @@user1 @@user2 wenn es beide bekommen sollen.


Oder hast bei deinem code post die user nur weggelassen das es übersichtlicher ist?

Grüße

Schnitzelbrain

Titel: Antw:Telegram und mehrere User
Beitrag von: Pflasterbicker am 17 November 2017, 16:11:00
Zitat von: schnitzelbrain am 17 November 2017, 11:01:42
Du musst es nicht nur durch telegram ersetzen sondern durch telegram @@user1 @@user2 wenn es beide bekommen sollen.


Oder hast bei deinem code post die user nur weggelassen das es übersichtlicher ist?

Grüße

Schnitzelbrain

Es sollen ja nicht beide bekommen sondern nur DERJENIGE der die Anfrage stellt...
Titel: Antw:Telegram und mehrere User
Beitrag von: igami am 17 November 2017, 17:47:17
Dann guck dir doch einfach mal das msgDialog Modul an.