Prüfung ob Client mit FHEM verbunden ist (Browser, App, Telnet usw.) möglich?

Begonnen von mumpitzstuff, 12 April 2018, 17:06:12

Vorheriges Thema - Nächstes Thema

mumpitzstuff

Besteht irgendwie die Möglichkeit innerhalb eines Moduls zu überprüfen, ob mindestens ein Client mit FHEM verbunden ist?

Hintergrund:

Es gibt Module, die zyklisch irgendwelche Updates von irgendwoher ziehen, aber eigentlich nichts weiter mit diesen Daten anfangen. Die Daten werden lediglich vorgehalten, falls mal jemand drauf gucken sollte (Beispiel: Fernsehprogramme, Radio Module usw.). Wünschenswert wäre es aus meiner Sicht als Modulowner diesen Zustand zu erkennen und dann die zyklischen Updates abschalten zu können und diese erst wieder zu reaktivieren, wenn sich jemand mit FHEM verbindet. Aus meiner begrenzten Sicht heraus könnten sich somit zumindest einige Module faktisch schlafen legen und damit Ressourcen für andere Module schaffen, die immer aktiv sein müssen. Dem Anwender müsste man natürlich immer die Möglichkeit geben das Verhalten ein und auszuschalten, da es immer sein kann, dass er doch auf Events des Moduls reagieren möchte (Default: on = Verhalten wie jetzt auch).

betateilchen

Zitat von: mumpitzstuff am 12 April 2018, 17:06:12
Besteht irgendwie die Möglichkeit innerhalb eines Moduls zu überprüfen, ob mindestens ein Client mit FHEM verbunden ist?

klar: zumindest wenn es FHEMWEB oder telnet Instanzen mit ganz merkwürdigen Portnummern gibt, kannst Du davon ausgehen, dass irgendwas gerade auf FHEM zugreift.

count TYPE=FHEMWEB

liefert bei mir gerade

Count: 5 devices for devspec TYPE=FHEMWEB


web
web_46.183.103.17_12391
web_46.183.103.17_14468
web_46.183.103.17_21281
web_46.183.103.17_27728


Wobei nur eines davon in der Konfiguration selbst steckt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Clients, die Verbindung ueber FHEM/TcpServerUtils.pm aufbauen, kann man man mit
list TEMPORARY=1:FILTER=STATE=Connected

erkennen.Wenn man sowas einbaut, dann bittte optional, da man dabei Clients, die keine staendige Verbindung zu FHEM haben, nicht erkennt.

mumpitzstuff

Danke. Ich werde mal beides zyklisch tracen und mir das Ergebnis ansehen. Wenns klappt baue ich das mal testweise ein und schicke damit ein Device entweder ganz in den Sleep Modus wenn niemand connected ist oder in einen Halbschlaf mit verringertem Update Zyklus oder sowas. Oder man schaltet Nachts in den Schlafmodus per at, denn was interessiert mich das Fernsehprogramm wenn ich schlafe... Schön wäre eine Art globales Notify wenn keine Clients connected sind bzw. wieder ein Client connected ist, dann könnte man schneller "aufwachen" und hätte keine Verzögerung durchs pollen.

In meinen Augen erschliessen sich damit einige schöne Anwendungsgebiete.