Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

Begonnen von viegener, 20 Juni 2015, 18:59:41

Vorheriges Thema - Nächstes Thema

wowogiengen

Hallo,
was muss ich tun, wenn mein Telegrambot nur noch Nachrichten sendet, aber eingehende Nachrichten komplett ignoriert? Habe meine Steuerung bereits mehrfach zurückgesetzt, aber irgendwie kommt da nix mehr an

wowogiengen

Zitat von: wowogiengen am 28 März 2024, 18:13:27Hallo,
was muss ich tun, wenn mein Telegrambot nur noch Nachrichten sendet, aber eingehende Nachrichten komplett ignoriert? Habe meine Steuerung bereits mehrfach zurückgesetzt, aber irgendwie kommt da nix mehr an
Wieso muss ich
allowUnknownContacts auf 1 setzen, damit er die Nachrichten annimmt?
Wenn dann jeder Kontakt einmal empfangen worden ist, geht es wieder?
Sehr merkwürdiges Verhalten...

flummy1978

Zitat von: wowogiengen am 28 März 2024, 18:28:17Sehr merkwürdiges Verhalten...
Nein, es ist ein durchaus sinnvolles Verhalten - weil man sonst gerne schnell mal zu gespamt wird  ;)

Du musst die Kontakte als bekannt einstellen, dann funktioniert es auch mit allowUnknownContacts 0  :)

Vg
Andreas

wowogiengen

Zitat von: flummy1978 am 28 März 2024, 20:22:09Nein, es ist ein durchaus sinnvolles Verhalten - weil man sonst gerne schnell mal zu gespamt wird  ;)

Du musst die Kontakte als bekannt einstellen, dann funktioniert es auch mit allowUnknownContacts 0  :)

Vg
Andreas
Wenn ich das aber bereits hatte, da mein Setup so bereits seit Wochen / Monaten gelaufen ist? Gestern nachmittag aus heiterem Himmel etliche Dutzend Neustarts von FHEM bis ich dann von zu Hause aus die Kiste wieder beruhigen konnte - ich weiß bis jetzt nicht, wieso die Neustarts passiert sind.

Wie kann ich denn die Kontakte einstellen, die als bekannt gelten sollen? Weil das Attribut auf 1 stellen, und jedem sagen, er soll mal eine Nachricht schreiben, und dann wieder auf 0 ist auch nicht praktikabel...

flummy1978

Ich kann natürlich nicht hellsehen woher die Fehler / Neustarts rühren.... Laut Doku ist zb auch das Attribut saveStateOnContactChange nicht so unwichtig 😉

Bei mir stehen die Kontakte im Reading
Contacts
1234567869:Andreas: 987654321:Yvonne:

VG
Andreas

wowogiengen

Zitat von: flummy1978 am 31 März 2024, 09:41:58Ich kann natürlich nicht hellsehen woher die Fehler / Neustarts rühren....
Das verlangt auch keiner :-)
ich wüßte es halt nur zu gerne, da ich mein System eher nach dem Motto "Never change a running system" laufen lasse... Und dann stürzt es aus heiterem Himmel ab...


wowogiengen

Zitat von: flummy1978 am 31 März 2024, 09:41:58Laut Doku ist zb auch das Attribut saveStateOnContactChange nicht so unwichtig 😉

Das steht bei mir auf 1, also sollten die Kontakte doch da geblieben sein... In der configDB, nehme ich an?

MadMax-FHEM

Das Aatribut in der Config, die Contacts im Statefile (da ja ein Reading), außer bei Verwendung von ConfigDB landet auch das Statefile in der DB, weiß ich aber nicht (verwende fhem.cfg)...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

fhem_olsi

Hallo werte Experten,

ich würde gern das Telegram-Modul von FHEM unter einem anderen Port als 443 benutzen.

Weiß jemand, ob das möglich ist und wenn ja, wie?

Gruß
Wolfgang

MadMax-FHEM

Zitat von: fhem_olsi am 02 April 2024, 15:04:06Hallo werte Experten,

ich würde gern das Telegram-Modul von FHEM unter einem anderen Port als 443 benutzen.

Weiß jemand, ob das möglich ist und wenn ja, wie?

Gruß
Wolfgang

Du benutzt doch das Telegram-Modul bzw. dein Telegram-Device gar nicht über Port 443 bzw. gar nicht direkt per Netzwerkaufrufe, außer über fhem!?

Selbst wenn, wie willst du Telegram (also den "Endpoint") "überreden" auf einem anderen Port zu lauschen? ;)

Standard-Port für https ist nun mal 443...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

fhem_olsi

ZitatDu benutzt doch das Telegram-Modul ...  gar nicht direkt per Netzwerkaufrufe
Ja, da habe ich mich wohl etwas mißverständlich ausgedrückt.
Ich möchte natürlich einen TelegramBot von FHEM aus benachrichtigen lassen.

Zitataußer über fhem!?
Ja, über FHEM, aber eben nicht über Port 443.

Zitatbzw. dein Telegram-Device gar nicht über Port 443
Doch; Port 443 wird benutzt, das steht fest!

ZitatSelbst wenn, wie willst du Telegram (also den "Endpoint") "überreden" auf einem anderen Port zu lauschen?
Siehe hier:
https://core.telegram.org/bots/webhooks
ZitatThe short version

You'll need a server that:

    Supports IPv4, IPv6 is currently not supported for webhooks.
    Accepts incoming POSTs from subnets 149.154.160.0/20 and 91.108.4.0/22 on port 443, 80, 88, or 8443.
Also, die Ports 80, 88 und 8443 wären auch möglich!

ZitatStandard-Port für https ist nun mal 443...
Richtig, aber andere Ports sind eben auch möglich; s.o.

Außerdem könnte ich bei meinem Router einen alternativen Port (vom FHEM-Telegram-Modul, sofern möglich), der nicht gleich 443 ist, nauch außen (ins Internet) wieder auf den Standard-Port 443 umleiten.
Den Hintergrund für mein Ansinnen zu erläutern, würde hier zu weit führen.

Die einfache Frage ist:
Ist ein anderer Port als 443 für das FHEM-Telegram-Modul möglich oder nicht?

Daran schließt sich im positven Fall Frage 2 an:
Wie?

Gruß
Wolfgang

MadMax-FHEM

Mal anders: was willst du denn erreichen?

Nutzt du das Modul bereits?

Was damit geht (gut polling, daher muss ja gar kein Port offen sein, nur Kommunikation nach außen):

du kannst Nachrichten an deinen Bot senden (und auch Kommandos in fhem damit auslösen, Stichwort: chatBot)

du kannst aus fhem heraus Nachrichten an einen Telegram Account senden (KEIN! Bot)

Was eben nicht mit dem Modul geht: Bot zu Bot Kommunikation.

Aber so ich das verstanden habe wird das von Telegram selbst unterbunden...

Dein Link wäre doch eine andere Art der Implementierung des Moduls?
Also statt Polling Webhook!?

Weil für Polling muss ja kein Server (auf fhem Seite) da sein und auch kein offener Port, es wird ja bei "Telegram" nachgeschaut, ob was da ist (Polling)...

Anders wäre es wohl, wenn das Modul eben NICHT pollen würde, sondern einen Webhook-Empfang (aka Server) zur Verfügung stellen würde, tut es aber mWn nicht.
Das Modul ist "nur" Client und pollt...

Jetzt kommst du: was genau willst du tun?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

fhem_olsi

ZitatJetzt kommst du: was genau willst du tun?
OK Joachim, wenn Du so konkret fragst will, ich auch mein Vorhaben konkretisieren:

Ich möchte, dass meine FHEM-Installation (PC mit Windows 10) bei bestimmten Ereignissen in meinem SmartHome mich via TelegramBot benachrichtigt. Das ist wohl das, was die meisten damit tun. Von außen via Telegram irgendwelche Aktionen in meinem SmartHome auslösen will ich (noch?) nicht.

Die Benachrichtigung an meinen TelegramBot funktioniert auch problemlos, wenn ich den Netzwerk-Verkehr via Port 443 zulasse,
Aber im Normalfall ist dieser Weg blockiert (Fritzbox -> Internet-Zugangs-Sperre); und so soll es auch sein, damit keinerlei Programme auf o.g. PC den https-Weg nach außen finden.

Nun würde ich gern, dass das Telegram-Modul von FHEM einen anderen Port als 443 benutzt, sagen wir 'mal Port 444.
Diesen würde ich dann in meiner Fritzbox per Port-Freigabe und Port-Translation nach außen auf Port 443 umleiten -> TelegramBot.
So meine Vorstellung.

Gruß
Wolfgang

MadMax-FHEM

#2803
Wie surfst du denn im Internet, wenn du den Port 443 NACH AUSSEN "sperrst"?

Dann laufen auch keine anderen Module, die Internet benötigen: z.B. Wetterdienst o.ä.

So ich das weiß, wirst du das Modul anpassen müssen und überall wo eben https:// steht deinen gewünschten Port setzen müssen...
Allerdings kenne ich (in der FB) keinen Mechanismus um eine Portumleitung NACH AUSSEN zu machen?

Zitat von: fhem_olsi am 02 April 2024, 22:24:05Diesen würde ich dann in meiner Fritzbox per Port-Freigabe und Port-Translation nach außen auf Port 443 umleiten -> TelegramBot.
Das hier meint ja: eine Anfrage VON AUSSEN "trifft" die Fritzbox auf z.B. 443 und intern lauscht dein Webserver eben auf 5443 oder was auch immer...

Aber was du hier ja willst (warum verstehe ich nicht) ist doch eine Client-Anfrage des TelegramBot-Devices per https (und Standardport) geht NACH AUSSEN zu Telegram.com (oder wo auch immer)...
Wie geschrieben, außer einer statischen Route wüsste ich jetzt keine Einstellung in der FB (und da habe ich nicht mal statische Routen gefunden) die das möglich machen würde...

Portweiterleitung meint ja, dass die FB einen Port ÖFFNET für Kommunikation VON AUSSEN.
Da kann man dann schon mal mittels nicht Standardports "faken" und den Dienst "verschleiern", würde ich (zur Not) verstehen...

Aber noch mal: das Telegram Modul ist "nur" https-Client! Genauso als wenn du mittels Browser eine Webseite mit https aufrufst.
Da kannst (und willst) du doch auch nicht im Browser https://fhem.de:5443 eingeben und dann deine FB auf https://fhem.de umleiten lassen, oder?
(und noch mal: ich wüsste bei der FB jetzt nicht mal wie das gehen sollte)

Das Modul funktioniert OHNE, dass irgendein Port FREIGEGEBEN oder weitergeleitet werden müsste...

Oder willst du andere Module, die auch https nutzen verbieten ins Internet zu kommen?
Warum nutzt du die dann überhaupt? ;)
Definiere die doch nicht und gut.
Module die Internet brauchen und es nicht kriegen funktionieren doch nicht, da kann man das doch dann gleich lassen?

Alternativ kannst du auch den Modulautor bitten das einzubauen, fraglich, ob so was exotisches (und in meinen Augen unnützes) eingebaut wird...

Darf ich noch nach dem Grund fragen?
Also willst du verhindern, dass IRGENDWER bzw. IRGENDWAS (aus fhem raus) per https "surft"?
Oder nur fhem?
Und wenn: warum, wenn ja die Anfrage trotzdem dann nach außen geht (FB Port-usw. / noch mal: ich wüsste nicht wie das gehen sollte / noch mal Portweiterleitung ist die ANDERE Richtung)...

Und wenn du einzelne Module mit Internet verbieten willst, warum dann nicht piHole o.ä.?
Da kannst du dann ganz genau festlegen WAS "angesurft" werden darf und was nicht...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

wowogiengen

Zitat von: MadMax-FHEM am 02 April 2024, 22:56:17Und wenn du einzelne Module mit Internet verbieten willst, warum dann nicht piHole o.ä.?
Da kannst du dann ganz genau festlegen WAS "angesurft" werden darf und was nicht...

Gruß, Joachim

Sowas müsste doch auch über Firewall-Rules auf dem Raspberry Pi gehen, oder nicht?

Viele Grüße
Wolfgang - der andere, aka wowogiengen