FritzBox: WhoIsAtHome: Unterschied zwischen den Versionen

Aus FHEMWiki
(Die Seite wurde neu angelegt: „Stellt fest, ob ein bestimmter WLAN-Nutzer in der FB angemeldet ist. == Anmerkung == '''Da das folgende Beispiel Shell-Befehle direkt durch FHEM aufruft, kann …“)
 
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
Stellt fest, ob ein bestimmter WLAN-Nutzer in der FB angemeldet ist.
Stellt fest, ob ein bestimmter WLAN-Nutzer in der FB angemeldet ist.
== Anmerkung ==
== Anmerkung ==
'''Da das folgende Beispiel Shell-Befehle direkt durch FHEM aufruft, kann dies zum kompletten Stillstand von FHEM für wenige Sekunden führen. Es wird daher empfohlen das FHEM Modul [[PRESENCE" class="mw-redirect]] zu verwenden. Dieses bietet mehrere Möglichkeiten der Anwesenheitserkennung, welche alle von FHEM entkoppelt sind und so einen reibungslosen Ablauf gewährleisten.'''
'''Da das folgende Beispiel Shell-Befehle direkt durch FHEM aufruft, kann dies zum kompletten Stillstand von FHEM für wenige Sekunden führen. Es wird daher empfohlen das FHEM Modul [[PRESENCE]] zu verwenden. Dieses bietet mehrere Möglichkeiten der Anwesenheitserkennung, welche alle von FHEM entkoppelt sind und so einen reibungslosen Ablauf gewährleisten.'''




== fhem.cfg ==
== fhem.cfg ==
<nowiki>define MyAttendance dummy
<pre>
define MyAttendance dummy
attr MyAttendance icon icoHouse.png
attr MyAttendance icon icoHouse.png
attr MyAttendance room WhoIsAtHome
attr MyAttendance room WhoIsAtHome
attr MyAttendance setList Anwesend Abwesend
attr MyAttendance setList Anwesend Abwesend
define WLAN notify WLAN {FBWlanStat('MyWLANDeviceName', "MyAttendance")}  
define WLAN notify WLAN {FBWlanStat('MyWLANDeviceName', "MyAttendance")}  
define search_for_MyWLANDeviceName at +*00:05:00 trigger WLAN</nowiki>
 
define search_for_MyWLANDeviceName at +*00:05:00 trigger WLAN
</pre>
 
== Sub z.B. 99 MyUtils.pm ==
== Sub z.B. 99 MyUtils.pm ==
<nowiki>sub
 
<pre>sub
FBWlanStat($$)
FBWlanStat($$)
{
{
Zeile 27: Zeile 33:
     if ($status == 1) {$attendance="Anwesend";}else{$attendance="Abwesend";}
     if ($status == 1) {$attendance="Anwesend";}else{$attendance="Abwesend";}
     if(Value("@_[1]") ne $attendance){
     if(Value("@_[1]") ne $attendance){
     fhem "set @_[1] $attendance"}}</nowiki>
     fhem "set @_[1] $attendance"}}
</pre>
 
== Test ==
== Test ==
Eingabe im fhem Frontend:
Eingabe im fhem Frontend:
{FBWlanStat("MyWLANDeviceName", "MyAttendance")}
 
<pre>{FBWlanStat("MyWLANDeviceName", "MyAttendance")}</pre>


== Hinweis ==
== Hinweis ==
Benutzername (hier"MyWLANDeviceName") aus dem FB Frontend ermitteln.
Benutzername (hier "MyWLANDeviceName") aus dem FB Frontend ermitteln.
Status wird jetzt auch gesetzt, wenn das Gerät nicht im Netzwerk existiert und man kann nun auch seine Dummys angeben, die man nutzt, falls man mehrere Geräte hat
Status wird jetzt auch gesetzt, wenn das Gerät nicht im Netzwerk existiert und man kann nun auch seine Dummys angeben, die man nutzt, falls man mehrere Geräte hat


== Links ==
== Links ==
[[Kategorie:FritzBox]]
[[Kategorie:Code Snippets]]

Version vom 11. Mai 2013, 11:37 Uhr

Stellt fest, ob ein bestimmter WLAN-Nutzer in der FB angemeldet ist.

Anmerkung

Da das folgende Beispiel Shell-Befehle direkt durch FHEM aufruft, kann dies zum kompletten Stillstand von FHEM für wenige Sekunden führen. Es wird daher empfohlen das FHEM Modul PRESENCE zu verwenden. Dieses bietet mehrere Möglichkeiten der Anwesenheitserkennung, welche alle von FHEM entkoppelt sind und so einen reibungslosen Ablauf gewährleisten.


fhem.cfg

define MyAttendance dummy
attr MyAttendance icon icoHouse.png
attr MyAttendance room WhoIsAtHome
attr MyAttendance setList Anwesend Abwesend

define WLAN notify WLAN {FBWlanStat('MyWLANDeviceName', "MyAttendance")} 

define search_for_MyWLANDeviceName at +*00:05:00 trigger WLAN

Sub z.B. 99 MyUtils.pm

sub
FBWlanStat($$)
{
my ($net_device1)=@_[0];
$net_device1 = $net_device1."\n";
my $number=0;
my $status=0;
my $net_device="";
my $attendance="";
while($number <= 15){$net_device=qx(/usr/bin/ctlmgr_ctl r landevice settings/landevice$number/name);
 	if($net_device eq $net_device1){
 	$status=qx(/usr/bin/ctlmgr_ctl r landevice settings/landevice$number/active);
 	last;}$number++;}
    if ($status == 1) {$attendance="Anwesend";}else{$attendance="Abwesend";}
    if(Value("@_[1]") ne $attendance){
    fhem "set @_[1] $attendance"}}

Test

Eingabe im fhem Frontend:

{FBWlanStat("MyWLANDeviceName", "MyAttendance")}

Hinweis

Benutzername (hier "MyWLANDeviceName") aus dem FB Frontend ermitteln. Status wird jetzt auch gesetzt, wenn das Gerät nicht im Netzwerk existiert und man kann nun auch seine Dummys angeben, die man nutzt, falls man mehrere Geräte hat

Links