Telegram Nachrichten Ein und ausschalten

Begonnen von Andre80, 09 Januar 2019, 17:06:31

Vorheriges Thema - Nächstes Thema

Andre80

Hallo zusammen,

Meine Sensoren geben ihren State über Telegram weiter. Blöd ist nur, dass dies ständig passiert und ich über Tag über 400 Nachrichten habe. Meine Idee war nun ob es möglich ist  Telegram wie eine Lampe ein und auszuschalten und den Push Dienst nur dann zu aktivieren wenn ich ihn auch brauche (on /OFF) Ich denke ich werde das irgendwann mit einem Schlüsselfinder über Bluetooth realisieren. Wenn dieser nicht in Reichweite ist, schalte Pushdienst an und wenn doch aus. Im ersten Step reicht mir allerdings ein ON OFF. Jemand eine Idee wie das am sinnvollsten funktionieren könnte?

Liebe Grüße

Beta-User

Sorry wenn ich frage, aber warum benötigst du so viele Meldungen, selbst wenn du weg bist?

M.E. ist es besser, nur die wichtigsten direkt zu verschicken (dann aber uU. auch, wenn du zuhause bist) und ansonsten ggf. statusupdates zyklisch zu machen (da kannst du z.B. ein Presence-Device vorher abfragen) oder nur auf Anfrage (von Telegram aus, z.B.).

Aber zuerst würde ich mal überlegen, was du wann in welcher Form (wie oft) wissen willst...

Als Anregung z.B.: https://forum.fhem.de/index.php/topic,36504.msg287778.html#msg287778
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Andre80

Ich verwende billig sensoren die als Readings lediglich den status on übermitteln. Sie sind Teil einer Alarmanlage gewesen. Ich möchte nicht wissen ob ein Fenster offen ist oder zu sondern die dinger als reine Alarmanlage benutzen. Daher reicht es mir bei Abwesendheit Pushnachrichten zu erhalten und wenn ich da bin, steuere ich das entweder über TabletUI in meiner Schaltzentrale oder später einfach über den Bluetooth Schlüsselfinder. Nicht ausgeschlossen, dass ich irgendwann mal auf Homematic umsteige und wissen will ist ein Fenster auf, zu, gekippt, Smart Heizungsthermostate im Einsatz habe und und und ;-) Aber danke für den Link, der ist sehr interessant!

Liebe Grüße

Beta-User

Hmm,

klar, wenn es um Alarmierung geht. Aber warum dann 400 Meldungen?!?

Vielleicht solltest du mal die Events liefern (siehe Wiki: Event-Monitor), und wie du die weiterleitest.

Aber warum nicht z.B. bei dem notify, das den Sendebefehl auslöst, vorher eine Abfrage einbauen? Müßtest halt irgendwo ein Device haben, das das passende Reading für "Sende Nachrichten": "ja/nein" enthält ;) . Das kann man auch über Telegram setzen (da hätte ich aber nur eher komplizierten Code anzubieten, die Beispiele im Wiki sind einfacher):
define Windwaechter notify MeinWetter:wind { if (ReadingsVal('MeinWetter','wind',0) > 25 && ReadingsVal('Alle_Jalousien','state',undef) ne "on") { fhem "set Jalousie_.* on" }}
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

MadMax-FHEM

#4
Ich merke mir in einem Dummy für (fast alle) Telegramme, dass ich die Nachricht geschickt habe:


my $SignalDevice = $Device . "_msgType";
if(ReadingsAge("dmTelegramSends",$SignalDevice,0) > 600)
{
  fhem("setreading dmTelegramSends $SignalDevice sent;");
  fhem("set Telegram message BlaBlaBla für $Device");
}


Das ist nur ein Ausschnitt innerhalb meiner Funktionen wo ich für bestimmte Ereignisse Nachrichten schicke.
Für manche Dinge gibt es auch noch pro Gerät/Device für das ich Nachrichten schicke einen Typ: Batterie, Status, ...
Den hänge ich dann an den Gerätenamen dran (msgType).

Somit kann ich prüfen wann zuletzt bzgl. eines bestimmten Gerätes eine bestimmte Art von Nachricht geschickt wurde.
Für manche Dinge gibt es sogar verschiedene Nachrichten-Stufen (z.B. Batterie: fast leer und dann komplett leer etc. das schreibe ich dann statt nur "sent").

Dann kann ich vor dem Senden einer Nachricht prüfen wann zuletzt dieses Ereignis (msgType) für das entsprechende Gerät ($Device) geschickt wurde und dann entscheiden z.B. nach Zeit ob ich nochmal senden lasse oder eben nicht...


Bei dir hilft aber evtl. bzw. zusätzlich das event-on-change-reading Attribut zu nutzen.
So wird nur notifiziert, wenn sich Werte auch geändert haben...

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)