FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Dirk23 am 23 Januar 2013, 22:16:55

Titel: WhoIsAtHome Status funktioniert nicht
Beitrag von: Dirk23 am 23 Januar 2013, 22:16:55
Hallo,

mein erster Post im Forum. Ich nutze schon länger FHEM auf einer FB7390 mit aktueller Firmware (84.05.50) und wollte den WohIsAtHome Status Abfragen. Trotz das ich den Namen meines iPhone geändert habe auf iPhoneDirk (ohne "-" oder "_" oder " ") bleibt der Status ewig auf Abwesend. Das "manuelle" ausführen des FBWlanStat gibt keine Ausgabe und die letzte Änderung des "state" ist Tage her!
Meine fhem.cfg sieht so aus:

define Dirk dummy
attr Dirk icon icoHouse.png
attr Dirk room Homestatus
attr Dirk setList Anwesend Abwesend
define WLAN1 notify WLAN1 {FBWlanStat('DirksiPhone', "Dirk")}
define search_for_MyWLANDeviceName1 at +*00:00:30 trigger WLAN1

Die FBWlanStat Routine habe ich Copy&Paste in die 99_Utils.pm reingepackt und diese sieht so aus

sub
FBWlanStat($$)
{
my ($net_device1)=@_[0];
$net_device1 = $net_device1."\n";
my $number=0;
my $status=0;
my $net_device="";
my $attendance="";
while($number <= 150){$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"}}


Ich habe schon einiges gelesen, u.a. das die Prozedur nur funktioniert, wenn fhem als Root ausgeführt wird, aber bei mir läuft es als boxuser99.

Alle bisherigen Anleitungen fhem als Root auszuführen haben nicht geklappt:

chown Root startfhem

oder in der etc/passwd den fhem Eintrag löschen und rebooten.

Hat alles nicht geholfen.

Wenn ich mit nem Terminal zur Fritzbox verbinde kann ich mit den Befehl:

/usr/bin/ctlmgr_ctl r landevice settings/landevice1/name

/usr/bin/ctlmgr_ctl r landevice settings/landevice1/activ

einwandfrei den Namen und Status der Geräte abfragen, wobei "landevice1" tatsächlich mein iPhone ist und als "iPhoneDirk" ausgegeben wird mit active=1 wenn ich im Netz bin.

Hat vielleicht noch jemand eine Idee was ich tun kann? Gerne spiele ich auch das fhem Image neu auf die Fritzbox....


Schon mal danke im voraus

Euer Dirk
Den Beitrag einem Moderator melden
Titel: Aw: WhoIsAtHome Status funktioniert nicht
Beitrag von: Dirk23 am 25 Januar 2013, 20:11:13
So, nun habe ich es tatsächlich hinbekommen. Mein Homestatus funktioniert. Es war denkbar einfach. Ich habe das startfhem Script angepasst. Die Datei ließ sich einfach über die Fritz.Nas Weboberfläche herunterladen und dann Editieren:


#!/bin/sh

home=/var/InternerSpeicher/fhem

cd $home

trap "" SIGHUP
modprobe cdc_acm
modprobe ftdi_sio
sleep 2

ln -sf $home/FHEM/fhemcmd.sh /var/fhemcmd

PATH=$home:$PATH
export PATH

export LD_LIBRARY_PATH=$home/lib
export PERL5LIB=$home/lib/perl5/site_perl/5.12.2/mips-linux:$home/lib/perl5/site_perl/5.12.2:$home/lib/perl5/5.12.2/mips-linux:$home/lib/perl5/5.12.2

# add user fhem with uid of boxusr80/boxusr99 (== ftpuser)
# Comment/delete everything between START and END to run FHEM as root

## START:fhem-user
id fhem > /dev/null 2>&1
if test "$?" -ne "0"; then
  grep -q 1099 /etc/passwd;
  if test $? -eq "0"; then
    echo "fhem:any:1099:0:fhem:/home-not-used:/bin/sh" >>/var/tmp/passwd
  else
    echo "fhem:any:1080:0:fhem:/home-not-used:/bin/sh" >>/var/tmp/passwd
  fi
  chown -R fhem FHEM docs log www
  chown fhem . *
  chown root dfu-programmer    
  chmod u+s dfu-programmer
fi
## END:fhem-user

perl fhem.pl fhem.cfg



Interessant dabei ist der Bereich in der die Dateien mit chown dem User fhem übergeben werden. Diesen habe ich völlig auskommentiert und ein paar Zeilen selbst hinzugefügt, so das meine startfhem jetzt so aussieht:

## START:fhem-user
#id fhem > /dev/null 2>&1
#if test "$?" -ne "0"; then
#  grep -q 1099 /etc/passwd;
#  if test $? -eq "0"; then
#    echo "fhem:any:1099:0:fhem:/home-not-used:/bin/sh" >>/var/tmp/passwd
#  else
#    echo "fhem:any:1080:0:fhem:/home-not-used:/bin/sh" >>/var/tmp/passwd
#  fi
  chown -R fhem FHEM docs log www
  chown root . *
  chown root dfu-programmer    
  chmod u+s dfu-programmer
  chmod root startfhem
#fi
## END:fhem-user
[/i][/b]

Heißt also das die Dateien nicht mehr dem User fhem zugeordnet werden sondern immer root. Nach einem Neustart der Box war mein Homestatus sofort "Anwesend" und nach dem abschalten des WLAN hat er auch auf Abwesend gewechselt.

Ich hoffe, das ich hiermit anderen Usern im Forum helfen konnte.

Euer

Dirk
Titel: Aw: WhoIsAtHome Status funktioniert nicht
Beitrag von: Brice am 30 Januar 2013, 16:22:41
Nach dem Update auf iOS 6.1 funktioniert der WhoIsAtHome Status bei mir nicht mehr. Kann das jemand bestätigen?
Titel: Aw: WhoIsAtHome Status funktioniert nicht
Beitrag von: Brice am 31 Januar 2013, 07:26:13
Das iPhone wurde nach dem Update auf iOS 6.1 mit einer weiteren IP nochmals in der Fritzbox angelegt. Den doppelte Eintrag gelöscht und es funktioniert wieder.