FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: mumpitzstuff am 12 April 2018, 17:06:12

Titel: Prüfung ob Client mit FHEM verbunden ist (Browser, App, Telnet usw.) möglich?
Beitrag 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?

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).
Titel: Antw:Prüfung ob Client mit FHEM verbunden ist (Browser, App, Telnet usw.) möglich?
Beitrag von: betateilchen am 12 April 2018, 17:14:31
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.
Titel: Antw:Prüfung ob Client mit FHEM verbunden ist (Browser, App, Telnet usw.) möglich?
Beitrag von: rudolfkoenig am 12 April 2018, 20:35:02
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.
Titel: Antw:Prüfung ob Client mit FHEM verbunden ist (Browser, App, Telnet usw.) möglich?
Beitrag von: mumpitzstuff am 12 April 2018, 23:33:45
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.