Presence einfach

Begonnen von housekeeper, 05 Juni 2013, 13:37:23

Vorheriges Thema - Nächstes Thema

housekeeper

Falls man, wie ich, nur wenige Ziele überwachen möchte, ist das PRESENCE Modul ein wenig zu mächtig.

Ich habe es für mich so gelöst ( Fritz!Box )

define ForumFhemDe dummy

define PingForumFhemDe at +*01:00:00 { my $present = `ping -c 1 forum.fhem.de | grep packets | cut -d " " -f 7-9`; if ( $present == "0% packet loss" ) { fhem "set ForumFhemDe present"; } else { fhem "set ForumFhemDe absent"; } }

Ein event wird auch dazu erzeugt

2013-06-05 13:32:01 dummy ForumFhemDe present


justme1968

falls dein zu überwachendes ziel nicht erreichbar ist blockiert dein ping fehm aber jedes mal für 10 sekunden komplett. das ist bei einem aufruf ein mal die stunde vielleicht nicht ganz so kritisch für alles andere aber nicht wirklich geeignet.

mir ist auch nicht ganz klar was du damit gewinnen willst. die mächtigkeit verbirgt sich völlig unauffällig hinter define ForumFhemDe PRESENCE lan-ping forum.fhem.de 3600 und stört nicht weiter. dein code ist komplexer und spart durch den aufruf von drei statt einem bzw. gar keinem externen programm noch nicht mal ressourcen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

housekeeper

Zitat von: justme1968:falls dein zu überwachendes ziel nicht erreichbar ist blockiert dein ping fehm aber jedes mal für 10 sekunden komplett.
Dann nimmt man eben ping -c 1 -W 2 forum.fhem.de

Zitat von: justme1968:...mir ist auch nicht ganz klar was du damit gewinnen willst. die mächtigkeit verbirgt sich völlig unauffällig ... und stört nicht weiter.
Na ja, ist eigentlich ganz einfach, ich will wissen ob eine Ressource online ist. Die Mächtigkeit von 73_PRESENCE.pm verbirgt sich hinter schlappen 45.2K Dateigröße, die von Perl verbraten werden, wenn auch nur ein Gerät definiert wird. Das möchte ich meiner armen Fritz!Box ersparen.

Zitat von: justme1968:...dein code ist komplexer und spart durch den aufruf von drei statt einem bzw. gar keinem externen programm noch nicht mal ressourcen.
Was an der einen Zeile "komplex" ist erschließt sich vermutlich nur ganz gewieften Programmierern, immerhin sind die aufgerufenen Progrämmchen in der Firmware eingebunden und kosten keine zusätzlichen Ressourcen, was man von 73_PRESENCE.pm nicht behaupten kann.



justme1968

wenn es dir um den flash speicher geht um das zusätzliche modul zu speichern hast du sicher recht.

auch wenn ich keine fritzbox habe behaupte ich aber mal das es normalerweise nicht die resource ist die am knappsten ist. das dürften eher cpu und hauptspeicher sein. und der verlgeich ist deutlich aufwändger als die grösse des quelltextes zu vergleichen.

deine drei progrämchen fressen dann diverse forks und execs, shells , pieps die selbst wenn es am ende nur ein bussybox binary ist alles andere als resourcenschonend sind.

aber wenn es für dich die bessere lösung ist dann ist es doch schön.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Markus Bloch

Und falls es dir um den Ping-count geht, so ist dieser ebenfalls einstellbar via Attribut
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Markus Bloch

Solltest du einmal Module verwenden, bei denen das Timing entscheidend ist, so wird deine Spar-Lösung aufgrund des blockierenden Aufrufs dieses Modul sowie FHEM generell  aus den Tritt bringen.

wenn du deiner Fritzbox 45,2K nicht zumuten willst, muss die ja schon verdammt alt sein. In so einem Fall würde ich dir eher zu einen aktuellen Modell raten welches diese 45,2K locker verträgt.
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

housekeeper

Zitat von: Markus Bloch schrieb am Mi, 05 Juni 2013 17:23Solltest du einmal Module verwenden, bei denen das Timing entscheidend ist, so wird deine Spar-Lösung aufgrund des blockierenden Aufrufs dieses Modul sowie FHEM generell  aus den Tritt bringen.

wenn du deiner Fritzbox 45,2K nicht zumuten willst, muss die ja schon verdammt alt sein. In so einem Fall würde ich dir eher zu einen aktuellen Modell raten welches diese 45,2K locker verträgt.

Was meine Fritz!Box aus dem Tritt bringt, sind Module mit "Eierlegende Wollmilchsau" Qualitäten. Weniger ist oft mehr. Im Übrigen einfach mal nach "Perl Performance" googeln, das hilft.

Markus Bloch

Wie ich sehe verwendest du HMLAN und diverse HomeMatic Komponenten. Gerade für HMLAN ist dein schlanker Einzeiler problematisch, da es das Timing behindert, welches zu vermehrten HMLAN Disconnects und MISSING ACKS bei den Funkkomponenten führt.

Bitte bedenke auch, das viele FHEM
User keine Perl-Programmierer sind und froh sind, dass es ein einfaches Modul mit vielen Möglichkeiten gibt.
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)