Netzwerkgeräte: Verfügbarkeit prüfen und Fritz Box 7390

1,888 views
Skip to first unread message

Klaus Rubik

unread,
Oct 7, 2012, 10:47:31 AM10/7/12
to fhem-...@googlegroups.com
Hallo,

hat schon mal jemand das Code Snipped 


Netzwerkgeräte: Verfügbarkeit prüfen


(wie im Wiki Artikel http://www.fhemwiki.de/wiki/Netzwerkgeräte:_Verfügbarkeit_prüfen beschrieben)

mit FHEM auf einer FB 7390 zu laufen gebracht? Bei mir kommt als Rückmeldung immer nur abwesend.

Danke

Hermann

unread,
Oct 7, 2012, 10:59:16 AM10/7/12
to fhem-...@googlegroups.com
Bei mir leider auch. :-(
Hermann
Message has been deleted

Rantanplan

unread,
Oct 7, 2012, 12:43:15 PM10/7/12
to fhem-...@googlegroups.com

Klaus Rubik

unread,
Oct 7, 2012, 12:55:38 PM10/7/12
to fhem-...@googlegroups.com
Danke für den Hinweis, hat aber leider auch nicht funktioniert. Auch finde ich die Variante mit dem PING eleganter, da hier die Erkennung erheblich genauer ist. Das im genannten Thread angegebene Verfahren benötigt doch bis zu 10 Minuten, bis die FB merkt, dass ein Device offline ist.

Rantanplan

unread,
Oct 8, 2012, 9:13:14 AM10/8/12
to fhem-...@googlegroups.com
das Intervall kannst du mit "define search_for_MyWLANDeviceName at +*00:05:00 trigger WLAN" einstellen.
Bist du nach genauer Anleitung aus http://www.fhemwiki.de/wiki/FritzBox:_WhoIsAtHome vorgegangen?
Bei der 7390 ist einiges anders, so denke ich, dass die befehle nicht korrekt ausgeführt werden...
ich schaus mir gerade an. Kennt jemand den korrekten Befehl um die LAN/WLAN Teilnehmerlist via telnet zu bekommen -etwas in der art "ctlmgr_ctl r landevice settings/landevice$number/name"?
Message has been deleted
Message has been deleted

Rantanplan

unread,
Oct 8, 2012, 11:55:48 AM10/8/12
to fhem-...@googlegroups.com
...geht nicht; kein Wechsel.

JoWiemann

unread,
Oct 8, 2012, 1:46:24 PM10/8/12
to fhem-...@googlegroups.com
Hallo,
 
ist der Pfad zum Script richtig hinterlegt und würde das Script ausführbar gemacht, bzw das Script mit telnet einmal auf der Kommandozeile getest. Läuft jedenfalls auf meiner 7170 einwandfrei.
 
Grüße Jörg

Am Sonntag, 7. Oktober 2012 16:47:31 UTC+2 schrieb Klaus Rubik:

UliM

unread,
Oct 8, 2012, 2:51:43 PM10/8/12
to fhem-...@googlegroups.com
Hiho,
Situation auf meiner 7390:
- scipt lanping.sh per vi erzeugt
- ausführbar gemacht
- test im telnet mit sh lanping.sh 192.168.2.114 liefert: 192.168.2.114 Ok
- Routine in 99_myUtils eingebaut, dummy definiert
- zugehöriger dummy-device wird immer abwesend (bei mir off) gesetzt
- Logmeldung eingebaut. Dadurch wird sichtbar, dass der script-Aufruf kein Ergebnis zurückliefert (nach dem returned: müsste das Ergebnis Ok stehen)
2012.10.08 20:41:14 1: FhemLanStat(192.168.2.114,LAN_macMini) returned:
2012.10.08 20:41:14 2: dummy set LAN_macMini off

d.h. das Ergebnis des script-Aufrufs wird nicht zurückgegeben.

ls -l zeigt
-rwxr-xr-x    1 root     root           176 Oct  8 20:30 lanping.sh
Probehalber owner geändert (chown boxusr80 lanping.sh)
-rwxr-xr-x    1 boxusr80 root           176 Oct  8 20:30 lanping.sh
Ergebnis bleibt leider dasselbe.

Es klemmt also entweder am script-Aufruf oder an der Übergabe des return-Werts.

Auch verbose 5 liefert mir keine weiteren Erkenntnisse:
2012.10.08 20:49:31 4: HTTP FHEMWEB:192.168.2.101:49964 GET /fhem?room=LAN&cmd=%7B+FhemLanStat%28%22192.168.2.114%22%2C+%22LAN_macMini%22%29+%7D
2012.10.08 20:49:31 5: Cmd: >{ FhemLanStat("192.168.2.114", "LAN_macMini") }<
2012.10.08 20:49:31 1: FhemLanStat(192.168.2.114,LAN_macMini) returned:
2012.10.08 20:49:31 5: Cmd: >set LAN_macMini off<
2012.10.08 20:49:31 2: dummy set LAN_macMini off

Ideen?

Gruß, Uli

Code:
sub
FhemLanStat($@)
{
  my $laenge = 0;
  my $i = 0;
  my $net_device="";
  my $dm_device ="";
  my $attendance="off";
  my $ret = ""; 

  $laenge = @_;
  if (($laenge % 2) ne 0){
    $ret = "Anzahl Parameter nicht korrekt.";
    return $ret;
  }
  for ($i=0;$i < $laenge;$i+=2){

    $net_device = $_[$i];
    $dm_device  = $_[($i+1)];
    # Vollstaendigen Pfad zum Script angeben
    $ret = qx(/var/InternerSpeicher/fhem/lanping.sh $net_device);
    Log 1, "FhemLanStat($net_device,$dm_device) returned: $ret";
    if(right(trim($ret), 2) eq "Ok"){
      $attendance="on";
    } else {
      $attendance="off";
    }
    fhem "set $dm_device $attendance";
  }
}



UliM

unread,
Oct 8, 2012, 3:49:19 PM10/8/12
to fhem-...@googlegroups.com

Aufruf mit
    $ret = qx(sh /var/InternerSpeicher/fhem/lanping.sh 192.168.2.114);
liefert
2012.10.08 21:40:49 1: FhemLanStat(192.168.2.114,LAN_macMini) returned: 192.168.2.114 Fehler
Immerhin kommt ne Antwort - nur die falsche :(

Derselbe Aufruf im FB-Telnet liefert Ok.

Hmmm...

UliM

unread,
Oct 9, 2012, 4:00:04 AM10/9/12
to fhem-...@googlegroups.com
Moin,
Sieht so aus dass das ping, das aus dem script aufgerufen wird, nicht erfolgreich verläuft, wenn das script aus fhem heraus aufgerufen wird.
Drum vermute ich ein Berechtigungsproblem, weiss aber nicht, wie ich's weiter eingrenzen / genauer betrachten kann.

ls -l ping liefert
lrwxrwxrwx    1 root     root             7 Jun  6 14:35 ping -> busybox
daran liegt's also wohl nicht

sudo gibt's auf der FB nicht.

Liegt's vll an den Berechtigungen auf dem Ordner /bin selbst?
drwxr-x---    2 root     root          1612 Jun  6 14:35 bin
Meine Linux-Kenntnisse reiche nicht, um das beurteilen zu können...

Sonst noch jemand ne Idee?

Gruß, Uli

Rudolf Koenig

unread,
Oct 9, 2012, 7:53:55 AM10/9/12
to fhem-...@googlegroups.com
> Sieht so aus dass das ping, das aus dem script aufgerufen wird, nicht
> erfolgreich verlaeuft, wenn das script aus fhem heraus aufgerufen wird.

Theorie:

Wenn fhem unter dem user fhem (alias boxusr80) auf dem FB7390 laeuft, und ping
kein root S-bit hat, dann duerfte pingen nicht funktionieren, da man dazu ein
ICMP raw socket aufmachen muss, und das darf nur root.

Ab der naechsten Version wollte ich fhem@fb7390 wieder als root starten,
solange koennte man im Startskript den Abschnitt auskommentieren.

UliM

unread,
Oct 9, 2012, 9:05:21 AM10/9/12
to fhem-...@googlegroups.com
Hi,
ok, danke!
Habe fhem jetzt als root laufen (gemäß http://www.fhemwiki.de/wiki/FritzBox_Parameter_in_fhem_anzeigen#Wichtig )
Damit funktioniert auch das ping :)

In lanping.sh habe ich noch den ping-timeout auf 1 sec. gesetzt, da der default 10sec beträgt und der Prüfluaf mit einigen abwesenden Geräten dann sehr lange dauert.

#!/bin/bash
if [ -n "$1" ]; then
 /bin/ping -q -W2 -c1 $1 &> /dev/null
else
 echo "Nutzung:  $0 <host>"
exit 1
fi
if [ "$?" -gt 0 ]; then
 echo $1 Fehler
else
 echo $1 Ok
fi
exit 0


Der Aufruf aus dem notify lautet
qx(sh /var/InternerSpeicher/fhem/lanping.sh $net_device);

Gruß, Uli

Klaus Rubik

unread,
Oct 9, 2012, 9:51:43 AM10/9/12
to fhem-...@googlegroups.com
also irgendwas mache ich wohl noch falsch, ich habe die 2 Zeilen im startfhem auskommentiert und auch dei FB durchgestartet, aber der Aufruf von langging.sh liefert immer noch Fehler zurück.

Hab ich die falsche Datei editiert?

UliM

unread,
Oct 9, 2012, 9:56:48 AM10/9/12
to fhem-...@googlegroups.com


Am Dienstag, 9. Oktober 2012 15:51:43 UTC+2 schrieb Klaus Rubik:
2 Zeilen im startfhem auskommentiert

Laut o.g. wiki-Eintrag müssen 9 Zeilen aus der Datei startfhem auskommentiert werden, dann FB neu starten
In lanping.sh muss ggf nur der timeout-Parameter dazu
im notify den qx-Aufruf anpassen

=8-)
 

Klaus Rubik

unread,
Oct 9, 2012, 10:06:31 AM10/9/12
to fhem-...@googlegroups.com
Danke für den Hinweis, es war aber wieder ein klarer Fehler 40 (das Problem saß vor dem Bildschirm :-)). Ich hatte vor lauter Fehler suchen und neu kopieren der Routine in die MyUtils übersehen den Pfad zu lanping.sh anzupassen.

Sorry und danke an alle für die Unterstützung.

Viele Grüße

klaus

UliM

unread,
Oct 11, 2012, 2:58:46 PM10/11/12
to fhem-...@googlegroups.com

Andreas Seeber

unread,
Nov 6, 2012, 1:29:59 PM11/6/12
to fhem-...@googlegroups.com

Hallo Uli,

kanst Du mir etwas auf die Sprünge helfen. :-)

Ich versuche schon eine Weile den LanStat abzurufen, was mir auch gelingt,
jedoch mit einer Fehlermeldung im Fhem log

/var/InternerSpeicher/fhem/FhemUtils/lanping.sh: line 1: #!/bin/bash: not found
2012.11.06 19:17:27 2: dummy set Andreas Anwesend
/var/InternerSpeicher/fhem/FhemUtils/lanping.sh: line 1: #!/bin/bash: not found
2012.11.06 19:17:28 2: dummy set Kathrin Anwesend

Der Aufruf von "echo shell" endet mit /bin/sh
und bringt nach Änderung in lanping.sh den gleichen Fehler #!/bin/sh: not found.

Gruß Andreas

Ulrich Maass

unread,
Nov 6, 2012, 6:19:39 PM11/6/12
to fhem-...@googlegroups.com
Hi,
welche Hardware - FB7390?
fhem läuft als root?
Hast Du lanping.sh mit vi angelegt oder mit einem windows-editor? 
Gruß, Uli

PS: schickes Bild :)

Andreas Seeber

unread,
Nov 6, 2012, 6:26:20 PM11/6/12
to fhem-...@googlegroups.com
Moin Uli,

Fritz Box 7390,
lanping mit Windows Editor angelegt.
fhem läuft als root.

Gruß Andreas

Andreas Seeber

unread,
Nov 6, 2012, 6:47:20 PM11/6/12
to fhem-...@googlegroups.com
Hallo Uli,

hat sich erledigt, es lag am Windows Editor.
Nochmal mit vi erstellt und es läuft.

Danke für den Tip

Gruß Andreas

Am Mittwoch, 7. November 2012 00:19:41 UTC+1 schrieb UliM:

UliM

unread,
Nov 7, 2012, 4:22:44 PM11/7/12
to fhem-...@googlegroups.com


Am Mittwoch, 7. November 2012 00:47:20 UTC+1 schrieb Andreas Seeber:
Nochmal mit vi erstellt und es läuft.

Hab das Wiki entsprechend erweitert.
=8-)

Shoddy

unread,
Nov 20, 2012, 2:47:13 PM11/20/12
to fhem-...@googlegroups.com
Es haut nicht hin (auf meiner FB 7390)... Vielleicht habt ihr ja ne Idee...

Habe alles genau so gemacht, wie es im Wiki steht, lanping.sh über vi angelegt und mittels chmod +x lanping.sh auführbar bemacht (in /var/InternerSpeicher/fhem/) (mit 2-sek-intervall), die routinen in meine 99_myUtils.pm reingebastelt mit der pfadangabe /var/InternerSpeicher/fhem/lanping.sh.

In meiner fhem.cfg steht Folgendes:

define Handy dummy
attr Handy icon icoHouse.png
attr Handy room WerIstZuHause
attr Handy setList Anwesend Abwesend

define WerDa notify WerDa {FhemLanStat("192.168.13.25", "Handy")}
define SucheLan at +*00:05:00 trigger WerDa

Habe das .image von fhem.de installiert, sollte also auch root sein (zumindest ist die startfhem von vornherein entsprechend ausformuliert). wenn ich mittels putty die lanping.sh mit sh lanping.sh 192.168.13.25 ausführe, bekomme ich ein Ok.

Habe auch schon spaßeshalber die FritzBox-Routine aus dem Wiki eingebaut, die aber auch nicht funktioniert. Dann bin cih davon ausgegangen, dass das mit dem root anscheinend doch nicht so ganz geklappt hat. Habe dann einfach mal zusätzlich noch die lanping.sh in die startfhem eingefügt, was so aussieht:

(...)
chown -R boxusr80 FHEM docs fhem.pl log fhem.cfg www lanping.sh
(...)

Wobei cih aber keine Ahnung habe, ob das so korrekt ist. Denn wenn ich das mache, startet fhem nicht mehr. Von daher denke ich mal, dass das der falsche Weg ist ;-)

Hat jemand eine Idee? Bitte?

Shoddy

unread,
Nov 20, 2012, 2:48:39 PM11/20/12
to fhem-...@googlegroups.com
Achja, mein Problem: Mein Handy ist dauerabwesend, bei der FritzBox-Geschichte werden mir keine Werte angezeigt (wobei das jetzt eher nebensächlich ist, Handy ist mir wichtig).

Ralf

unread,
Nov 20, 2012, 5:03:00 PM11/20/12
to fhem-...@googlegroups.com
Hallo Shoddy, 

Am Dienstag, 20. November 2012 20:48:39 UTC+1 schrieb Shoddy
Habe das .image von fhem.de installiert, sollte also auch root sein (zumindest ist die startfhem von vornherein entsprechend ausformuliert). wenn ich mittels putty die lanping.sh mit sh lanping.sh 192.168.13.25 ausführe, bekomme ich ein Ok.

Hat jemand eine Idee? Bitte?

Ich hab' das testweise mal aus dem Wiki übernommen und konnte deinen Fehler reproduzieren. 

Weiter oben hat UliM den entscheidenden Hinweis gegeben: 
Der Aufruf aus dem notify lautet
qx(sh /var/InternerSpeicher/fhem/lanping.sh $net_device); 

Bitte prüfe, ob das "sh" auch bei dir vorhanden ist. 
Ohne bekomme ich im Log: lanping.sh: applet not found

Falls es das war, aktualisiere bitte die Anleitung im Wiki ;-)

horchundkuck

unread,
Nov 20, 2012, 5:22:52 PM11/20/12
to fhem-...@googlegroups.com
Seit dem 7. Nov. ist die wiki-Anleitung bereits aktualisiert und funktioniert. Habe ich auch " nach gemacht", auf FB 7390.
http://www.fhemwiki.de/wiki/Netzwerkgeräte:_Verfügbarkeit_prüfen#Nutzung_auf_einer_Fritzbox_7390

UliM

unread,
Nov 21, 2012, 3:03:46 AM11/21/12
to fhem-...@googlegroups.com


Am Dienstag, 20. November 2012 20:47:14 UTC+1 schrieb Shoddy:
Habe das .image von fhem.de installiert, sollte also auch root sein
Hi,
hast Du Schritt 1b aus dem Wiki-Beitrag durchgeführt? Incl Neustart der FB (nicht nur ENustart fhem)?
Poste doch hier mal Dein startfhem und lanping.sh

Soll ich im Wiki mal die 7390-Version des lanping.sh platzieren?

Gruß, Uli

Shoddy

unread,
Nov 21, 2012, 3:40:22 AM11/21/12
to fhem-...@googlegroups.com
Guten Morgen,

@ Ralf: jap, ist auch vorhanden...

Meine lanping.sh:


#!/bin/bash
if [ -n "$1" ]; then
/bin/ping -q -W2 -c1 $1 &> /dev/null
else
echo "Nutzung:  $0 <host>"
exit 1
fi
if [ "$?" -gt 0 ]; then
echo $1 Fehler
else
echo $1 Ok
fi
exit 0

Und meine startfhem:

#!/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

# let FHEM run as user boxusr80
# add user fhem with uid of boxusr80
id fhem > /dev/null 2>&1
if [ "$?" -ne "0" ]; then
  echo "user fhem does not exist. Adding it."
  echo "fhem:any:1080:0:fhem:/home-not-used:/bin/sh" >>/var/tmp/passwd
  # set files ownership

  chown -R boxusr80 FHEM docs fhem.pl log fhem.cfg www
  chown root dfu-programmer    
  chmod u+s dfu-programmer
fi

perl fhem.pl fhem.cfg

Schritt 1b) habe ich auch inklusive Neustart der FB durchgeführt. Also den Code-Teil mit den Berechtigungen gegen den aus dem FritzBox-Werte-Wiki ausgetauscht. Hat leider auch nicht viel gebracht, nachdem ich dann noch ein bisschen herumgebastelt habe (lanping.sh dort manuell hinzugefügt wg. Berechtigung), wollte fhem gar nicht mehr starten. Evtl., weil er dann einen Zeilenumbruch eingebaut hat? Bin da nicht so firm drin... Habe dann wieder die Original-startfhem eingebaut, damit es läuft.

7390-Version der lanping.sh wäre einen Versuch wert, vielleicht haut es ja dann hin.

Danke schonmal!

UliM

unread,
Nov 21, 2012, 10:14:36 AM11/21/12
to fhem-...@googlegroups.com
Schritt 1b) habe ich auch inklusive Neustart der FB durchgeführt.

Sieht nicht so aus. Gemäß Schritt 1b müssten die oben markierten Zeilen auskommentiert sein.  V.a. die zweite ist wohl die, die die ownership in allen fhem-Ordnern auf boxusr80 setzt -> nix gut.
Bin leider ziemlich Linux-blind - das fällt mir aber auf, wenn ich Deine startfhem mit meiner vergleiche.
Magst Du das mal mittels vi auskommentieren, FB neu starten und erneut testen?

Gruß, Uli

Shoddy

unread,
Nov 21, 2012, 11:35:02 AM11/21/12
to fhem-...@googlegroups.com
Klingt nach nem Plan.. Kümmere ich mich mal am Freitag drum, bin bis dahin erstmal beruflich unterwegs..

Aber es kribbelt in den Fingern ;-)

Grüße!

Shoddy

unread,
Nov 23, 2012, 10:33:24 AM11/23/12
to fhem-...@googlegroups.com
So, ANWESEND!

läuft alles.. gab sogar mehrere fehler... zum einen (wenn du (uli) linux-blind bist, bin ich... keine ahnung, der schwarze linux-ritter aus "ritter der kokosnuss") hab ich die anweisung "auskommentieren" falsch verstanden... also google gefragt, ein paar rauten gesetzt und zack, die fritzboxgeschichte lief schonmal... dann bemerkt, dass ich in der pfadangabe zur lanping.sh das fhem-verzeichnis vergessen habe (dabei habe ich oben auch noch großkotzig den richtigen pfad hingeschrieben)... ganz klasse ;-) aber jetzt läufts!

also vielen dank für die hilfe!!

Shoddy

unread,
Nov 25, 2012, 9:52:22 AM11/25/12
to fhem-...@googlegroups.com
Soo, ich nochmal...

Kämpfe nun schon seit ein paar Tagen erfolglos mit meinem Zuhause-Status, bzw. mit den Aktionen, die damit verknüpft werden sollen... Als Beispiel:

Wenn ich mich im WLAN anmelde, also wenn mein Handy nach Hause kommt, soll im Flur das Licht angehen. Funktioniert auch. Leider jedoch, da WerDa ja den Status des Handy-Dummies alle 30 Sekunden (wollte nicht 5 Min im Dunkeln warten ;-) ). Also komme ich nach Hause, Licht geht an, ich schalte es aus, wenn ich den Flur verlasse und kurz darauf ist es wieder an. Sieht in der Konfig (unwichtige Zeilen gelöscht) so aus:


define Handy dummy
attr Handy icon icoHouse.png
attr Handy room WerIstZuHause
attr Handy setList Anwesend Abwesend

define WerDa notify WerDa {FhemLanStat("192.168.13.25", "Handy")}

define LanStat at +*00:00:30 trigger WerDa

define ComingHome notify Handy { if (Value ("Handy") eq "Anwesend" && Value("Dunkelheit") eq "Dunkel") {fhem ("set li_F on") }}


"Dunkelheit" ist bei mir ein Dummy, der bei Sonnenuntergang auf "Dunkel" gesetzt wird. Habs mit isday() probiert, war zu doof und habs deswegen wahrscheinlich unnötig kompliziert gemacht...

Bin auch schon auf das attr event-on-change-reading gestoßen, habs aber nirgendwo so eingebaut bekommen, dass es funktioniert. Ideal wäre ja, dass sich der Status des Handy-Dummies nur ändert, wenn er sich WIRKLICH ändert und nicht alle 30 Sekunden von "Anwesend" auf "Anwesend" gesetzt wird, was ja im Endeffekt wieder das Licht im Flur anschaltet. Also bei Dunkelheit ;-)

Habe auch schon ne Menge Themen hier bei Groups gelesen, aber bin auf nichts passendes gestoßen. Womit und wie kann ich diese event-geschichte benutzen? Hilfe! ;-)

Dachte ich poste das erstmal hier, bevor ich ne ein neues Thema starte... Werde ja bestimmt nciht der einzige sein, der auf diese Idee gekommen ist... Aber vielleicht der Einzige, der es nicht gebacken bekommt?


Grüße!

ilmtuelp0815

unread,
Nov 25, 2012, 10:32:45 AM11/25/12
to fhem-...@googlegroups.com
Hi Shoddy!

Die Erkennung des Handys im WLAN ist ja schon sehr schön, betrifft aber leider das ganze Empfangsgebiet des WLAN. Du könntest dir mMn maximal mit notify "Wege freischießen" indem du weitere Lampen auf deinem "standardisierten/vordefinierten" Weg ein und die Lampen hinter dir jeweils nach Zeitablauf ausschaltest. Leider kann man ja das WLAN nicht nach dem Aufenthalt in den entsprechenden Räumen differenzieren. Damit könnte man dann komfortabel steuern. Zu der Lokalisierung der Personen in den entsprechenden fehlen leider bisher noch die praktikablen Vorschläge. 

Am Sonntag, 25. November 2012 15:52:22 UTC+1 schrieb Shoddy:

Shoddy

unread,
Nov 25, 2012, 10:57:17 AM11/25/12
to fhem-...@googlegroups.com
Naja, eventuell hab ich mich ein bisschen unverständlich ausgedrückt... Ich möchte ja nicht, dass überall da, wo ich mich aufhalte, das Licht angeht... Sowas könnte man ja mit Bewegungsmeldern (PIRI etc.) realisieren... Es geht mir darum, dass ich, wenn ich Abends/Nachts nach Hause komme, nicht in meinem dunklen Flur herumtapsen muss bzw. dass ich fauler Mensch einen Lichtschalter oder mein Handy zum Anschalten des Lichts bemühen muss... Deswegen soll, wenn sich mein Handy nach Sonnenuntergang in mein WLAN einbucht (also wenn ich sozusagen vor meiner Haustür stehe), das Licht im Flur angehen. Im Umkehrschluss sollen diverse Aktoren ausgehen, wenn ich das Haus verlasse und mein Handy dementsprechend auch das WLAN verlässt... Lösen liese sich das ja relativ simpel mit dem Code, den ich oben bereits gepostet habe. Da jedoch die Abfrage des WLAN-Statusses mit der WerDa-Notify den Dummy "Handy" alle 30 Sekunden auf Ab- bzw. Anwesend setzt (je nachdem, wo ich gerade bin) wird dementsprechnd auch immer das notify ausgelöst, was auslösen soll.. Für den Fall, dass ich zuhause bin läuft es mit dem o.g. code dann so:

at LanStat triggert WerDa
notify WerDa meldet "Anwesend"
Dummy Handy geht auf "Anwesend"
notify ComingHome machts Licht im Flur an
Shoddy ist aus dem Flur raus und macht das Licht selbst aus...

30 sekunden später:
at LanStat triggert WerDa
notify WerDa meldet "Anwesend"
Dummy Handy geht auf "Anwesend"
notify ComingHome machts Licht im Flur an
Shoddy merkt, dass das Licht im Flur wieder an ist, dreht bald durch und machts wieder aus...

usw. ;-)

Ich hoffe, mein Problem wird jetzt etwas deutlicher...

Kurz gesagt wäre die schlankeste Lösung, dass der Dummy Handy seinen Status auch nur ändert, wenn der Status sich auch geändert hat... Also nur von Abwesend zu Anwesend zu Abwesend zu Anwesend.... Und nicht von Anwesend zu Anwesend zu Anwesend zu Anwesend zu Abwesend zu Abwesend zu Abwesend.....


Grüße...

UliM

unread,
Nov 25, 2012, 11:05:43 AM11/25/12
to fhem-...@googlegroups.com

define ComingHome notify Handy { if (Value ("Handy") eq "Anwesend" && Value("Dunkelheit") eq "Dunkel") {fhem ("set li_F on") }}



Versuch doch mal mit OldValue()
zB
define ComingHome notify Handy { if (Value ("Handy") eq "Anwesend" && OldValue ("Handy") eq "Abwesend" && Value("Dunkelheit") eq "Dunkel") {fhem ("set li_F on") }}

Damit sollte der Schaltvorgang nur einmal ausgelöst werden.

=8-)

Shoddy

unread,
Nov 25, 2012, 11:14:41 AM11/25/12
to fhem-...@googlegroups.com
Und schon wieder Held des Tages! :D

An OldValue hab ich gar nicht gedacht... Hatte schon überlegt, dass irgendwie mit ReadingsVal zu lösen und dann mit previousstate, aber das ist beim Dummy etwas schwierig, da bei ihm ja keine Readings vorhanden sind... Glaub ich... Perfekt, ich danke Dir!


Grüße!

McCoder

unread,
Nov 27, 2012, 8:07:29 AM11/27/12
to fhem-...@googlegroups.com
Hallo,

ihr schreibt, bei euch geht es.
Das Codeschnipsel funktioniert auch, ist aber NICHT einsetzbar.

Sobald mein iPhone auf StandBy geht, wird es abgemeldet und nicht mehr gefunden. Somit hilft es mir nicht beim Schalten, da meine längere Anwesenheit oder das "nach Hause" kommen nicht bemerkt wird.

Ich surfe nicht im Internet, wenn ich mich dem zu Hause nähere. Wie habt ihr dieses gelöst?

Gruss Andreas

Am Sonntag, 7. Oktober 2012 16:47:31 UTC+2 schrieb Klaus Rubik:
Hallo,

hat schon mal jemand das Code Snipped 


Netzwerkgeräte: Verfügbarkeit prüfen



mit FHEM auf einer FB 7390 zu laufen gebracht? Bei mir kommt als Rückmeldung immer nur abwesend.

Danke

Shoddy

unread,
Nov 27, 2012, 8:46:03 AM11/27/12
to fhem-...@googlegroups.com
Funktioniert schon, Problem ist nur wahrscheinlich, dass dein iphone, wenn es in den standby-Modus geht, das WLAN deaktiviert und sich somit vom Netzwerk verabschiedet.. Bei Android kann ich einstellen, dass das WLAN niemals deaktiviert wird.. Somit bleibt mein Handy auch im standby im WLAN angemeldet.. Vielleicht kannst du das ja auch irgendwo einstellen?

Grüße..

McCoder

unread,
Nov 28, 2012, 5:10:37 AM11/28/12
to fhem-...@googlegroups.com
Hallo Shoddy,

Stimmt mein iPhone deaktiviert das WLAN, wenn es in den StandBy geht.

Jetzt habe ich einiges gelesen und ausprobiert:
Schaltet man WLAN Sync in Itunes für das Handy an, bleibt die WLAN-Verbindung bestehen (sehe ich in der FritzBox) aber das Gerät atwortet nicht bei Ping.

Jetzt das neue Problem lanping.sh hilft nicht weiter. Bei Gerät in Stand by und WLAN Sync an, ist das Gerät zwar angemeldet, meldet sich aber nicht auf Ping.

Ich muss also um an den AktivStatus zu kommen die angemeldeten Geräte der Fritzbox abfragen. (Gibt es hierzu schon etwas?)

Gruss Andreas

McCoder

unread,
Nov 28, 2012, 5:21:08 AM11/28/12
to fhem-...@googlegroups.com
Hallo,

hab selber etwas im Bereich Code Snippets gefunden. Ich passe dieses mal an.

Gruss Andreas


Mitch

unread,
Nov 28, 2012, 6:30:26 AM11/28/12
to fhem-...@googlegroups.com
Hi Andreas,

nachdem ich mit iPhone und iPad genau das gleiche Problem habe, wäre ich sehr an Deiner Lösung interessiert.

Danke!

McCoder

unread,
Nov 28, 2012, 6:34:54 AM11/28/12
to fhem-...@googlegroups.com
Hallo Mitch,

kann aber 2 Tage dauern. Ich bekomme mit der Lösung aus: http://www.fhemwiki.de/wiki/FritzBox:_WhoIsAtHome schon mit, dass das Gerät da ist (Vorraussetzung Gerät ist mit WLAN SYNC in Itunes konfiguriert), aber das Abmelden klappt noch nicht so. Das Gerät ist weg, aber der Status bleibt. 

Sobald ich eine Lösung habe, werde ich diese hier posten.

Gruss Andreas

det.

unread,
Nov 28, 2012, 8:33:21 AM11/28/12
to fhem-...@googlegroups.com
Hallo Ihr,
Ich hatte das IPhone Problem auch und mir wurde hier im Forum vor einiger Zeit geholfen. Das Ding bucht sich nicht mehr aus, wenn Ihr Syncronisation über WLAN aktiviert. Das geht mMn nur zu aktivieren, wenn Ihr das IPhone über Kabel an den PC mit ITunes verbindet - einmalig, danach geht's über WLAN und es bucht sich erst wieder aus, wenn Ihr entsprechend aus dem häuslichen WLAN Bereich raus geht. Die Akkulaufzeit hat sich dadurch bei den 2 IPhone 4 und 4S nicht merklich verkürzt.
Die Erkennung man kommt eben erst nach Hause und in vorauseilendem Gehorsam hat das FHem schon gemerkt geht so natürlich mit Sicherheit nicht. So viel Überwachung hat auch einen ganz niedrigen WAF - die Anwesenheitserkennung ist in der Beziehung sowieso schon grenzwertig.
lg det.

Mitch

unread,
Nov 28, 2012, 8:52:12 AM11/28/12
to fhem-...@googlegroups.com
Und genau das geht bei mir leider nicht :-(

Habe auf zwei iPhones und auf einem iPad WLANSync an und trotzdem buchen sich die Dinger aus.

Michael

unread,
Nov 28, 2012, 12:09:41 PM11/28/12
to fhem-...@googlegroups.com
Moin

Ich hänge mich hier mal an.
Sorry hat mit IPhone nichts zu tun aber mit Netwerkgerät.

Aber es klappt nicht.

Im Logfile bekomme ich nur diese Meldung :

2012.11.28 16:58:46 2: dummy set Drucker Offline
2012.11.28 16:58:46 1: FhemLanStat(,Drucker) returned:

Alles so gemacht wie beschieben.

Wo ist bei mir der Klemmer?

Gruß
Michael

Ulrich Maass

unread,
Nov 28, 2012, 12:35:50 PM11/28/12
to fhem-...@googlegroups.com
Welche Hardware?
Genau mit diesem Prob hat der Fred angefangen, hast Du schon von Anfang durchgelesen?
--
To unsubscribe from this group, send email to
fhem-users+...@googlegroups.com

McCoder

unread,
Nov 29, 2012, 4:11:46 AM11/29/12
to fhem-...@googlegroups.com
Hi,

es läuft jetzt bei mir mit Android und iPhone.
Vorrraussetzung beim iPhone/iPad WLAN Sync über iTunes (Mac) einschalten.

Dann habe ich in meine 99_myUtils folgendes eingefügt:
(Sollten wir auch in das Wiki übernehmen, da die dort beschriebenen CodeSnippets unvollständig sind.)
Meine Änderungen zum Wiki:
Ich lese mit qx(/usr/bin/ctlmgr_ctl r landevice settings/landevice/count); die Anzahl der zu prüfenden Geräte aus. (Vorher war dieses eine Konstante, die man evtl. im Betrieb bei neuen Geräten immer mal wieder anpassen musste.
und ich prüfe den Status mit: qx(/usr/bin/ctlmgr_ctl r landevice settings/landevice$number/speed , da hier ein Gerät schneller abgemeldet wird, wenn es den WlanBereich verlässt. (lanping geht nicht, da die Geräte zwar auf der Fritzbox angemeldet sind, aber im StandBy nicht auf ping reagieren.)

Prüfen auf active (wie in den alten Beispielen) war lange noch weiter aktiv, obwohl auf der WebOberfläche (der Fritzbox) das Gerät schon lange abgemeldet war.


sub right{
    my ($string,$nr) = @_;
    return substr $string, -$nr, $nr;
}

sub left{
    my ($string,$nr) = @_;
    return substr $string, 0, $nr;
}

# Perl trim function to remove whitespace from the start and end of the string
sub trim($)
   my $string = shift;
   $string =~ s/^\s+//;
   $string =~ s/\s+$//;
   return $string;

# Left trim function to remove leading whitespace
sub ltrim($)
{
   my $string = shift;
   $string =~ s/^\s+//;
   return $string;
}

# Right trim function to remove trailing whitespace
sub rtrim($)
{
   my $string = shift;
   $string =~ s/\s+$//;
   return $string;
}

sub 
FBWLanStat($@) 
  my $laenge = 0;
  my $i = 0;
  my $net_device1="";
  my $dm_device =""; 
  my $attendance="Abwesend";
  my $ret = "";  

  $laenge = @_;
  if (($laenge % 2) ne 0){
    $ret = "Anzahl Parameter nicht korrekt.";
return $ret;
  }

  for ($i=0;$i < $laenge;$i+=2){

    $net_device1 = $_[$i];
    $dm_device  = $_[($i+1)]; 



 my $myLength=length($net_device1);
 my $number=0;
 my $status=0;
 my $net_device="";
 my $net_device2="";
 my $attendance="";
 my $anzahl=0;
 $anzahl=qx(/usr/bin/ctlmgr_ctl r landevice settings/landevice/count);
 while($number <= $anzahl){
   $net_device=qx(/usr/bin/ctlmgr_ctl r landevice settings/landevice$number/name);
   $net_device2=substr($net_device, 0, $myLength);
   if($net_device2 eq $net_device1){
    $status=
          qx(/usr/bin/ctlmgr_ctl r landevice settings/landevice$number/speed);
     if ($status > 0) {last;}
   }
   $number++;
 }
 if ($status > 0) {$attendance="Anwesend";}else{$attendance="Abwesend";}
 if(Value("$dm_device") ne $attendance){fhem "set $dm_device $attendance"}
}

1;


Anwendung:
#fhem.cfg
define iPad dummy
attr iPad icon icoHouse.png
attr iPad room WerIstZuHause
attr iPad setList Anwesend Abwesend

define AndroidTablet dummy
attr AndroidTablet icon icoHouse.png
attr AndroidTablet room WerIstZuHause
attr AndroidTablet setList Anwesend Abwesend

define WerDa notify WerDa {FBWLanStat( "iPadAndreas", "iPad","android","AndroidTablet")}
define SucheLan at +*00:00:10 trigger WerDa

# setzen kommt nach Hause
define AndreasComingHome dummy
attr AndreasComingHome room WerIstZuHause
define ComingHomeAndreas notify puck { if (Value ("iPad") eq "Anwesend" && OldValue ("iPad") eq "Abwesend" && Value("s_Daemmerung") eq "on") {fhem ("set AndreasComingHome on") }}

# Aktion: (zB schalten einer Deckenlampe in der Diele)
define ComingHomeASetL notify AndreasComingHome:on {fhem ("set EG.L.d.Decke on-for-timer 180;;set AndreasComingHome off") }

Gruss Andreas

Ulrich Maass

unread,
Nov 29, 2012, 9:56:22 AM11/29/12
to fhem-...@googlegroups.com
Hi Andreas,
cool!
Aktualisierst Du das Wiki?
Gruß Uli

McCoder

unread,
Nov 30, 2012, 4:30:50 AM11/30/12
to fhem-...@googlegroups.com
Hallo Uli,

evtl. aktualisiere ich später mal das Wiki.

Die Anwesenheitserkennung funktioniert, aber ich weiß noch nicht warum fhem so schleppend läuft (fhem 5.3).

Im Moment bin ich mit fhem ziemlich unzufrieden. 

Habe 3 Notified mit Anwesenheit gebastelt gebastelt und jetzt läuft mein fhem ganz ganz langsam.
Habe die Notified wieder raus genommen, aber das Problem bleibt. (Liegt also nicht an der neuen Funkion, ist mir aber erst jetzt aufgefallen.)
 
Schaue ich mir mit tail -f das log an, wird zwar fast alles angezeigt aber das Drücken des Klingeltasters verzögert sich um bis zu 1-2 Minuten, bis es verarbeitet wird.

Meine MisterHouse Installation auf der Dockstar signalisiert dieses sofort.
(Beide Anwendungen laufen mit perl.)

Ich weiß noch nicht was ich mache. Im Moment ist meine Begeisterung für fhem etwas gedämpft, zumal der Rest der Familienmitglieder (berechtigt) wenig Verständnis hat, wenn man 1 Minute warten muss, bis man das Signal bekommt, dass jemand vor der Tür steht.

Gruss Andreas

Mitch

unread,
Nov 30, 2012, 5:24:10 AM11/30/12
to fhem-...@googlegroups.com
Hi Andreas,

danke für den Code, schau ich mir am WE in Ruhe an.

Interessant ist Dein Geschwindikeitsproblem, welches ich auch habe.

Ganz bescheiden ist das mit den Lichtschaltern. Man drückt und 30 sec. bis 2 Min. später geht das Licht an oder aus.
Meine Frau ist davon gar nicht begeistert.

Reinerlein

unread,
Nov 30, 2012, 5:30:06 AM11/30/12
to fhem-...@googlegroups.com
Hi,

ist vielleicht das Logging etwas hoch eingestellt?

Ich hatte das Problem während verschiedener Testphasen, wenn ich das Logging auf 5 oder so gesetzt hatte.
Mein Pi hat ja keinen "Plattencache", sodass auf jeden Schreibvorgang gewartet wird. Bei der Menge an Logs die weggespeichert werden müssen dauert das manchmal unerwartet lange (vorallem, wenn man eine alte, sehr langsame SD-Karte im Einsatz hat)...

Meine Änderungen waren dann eine neue SD-Karte und das Logging wieder auf 1 runter.

Grüße Reinerlein

Mitch

unread,
Nov 30, 2012, 5:42:08 AM11/30/12
to fhem-...@googlegroups.com
Logging müsste ich mir mal ansehen.
Kann man das global einstellen?

Wobei ich nicht glaube, das es am wegspeichern liegen kann.
FHEM läuft auf einem Nettop mit Ubuntu 4GB RAM und einer SSD.
Ausser FHEM läuft nichts auf dem Rechner.

Reinerlein

unread,
Nov 30, 2012, 6:11:58 AM11/30/12
to fhem-...@googlegroups.com
Hallo Mitch,

ja, bei den Ressourcen hört sich das nicht nach einem Wegschreib-Zeitproblem an...

Das Logging ist ein globales Attribut:
attr global verbose 1
schaltet den Logging-Level auf 1 (also fast nichts :-) Im Normalfall nur Config-Imports und die "ich bin aktiv in der Version sowieso"-Meldung...

Grüße Reinerlein

Ralf

unread,
Nov 30, 2012, 9:16:53 AM11/30/12
to fhem-...@googlegroups.com
Danke Andreas - jetzt wird der Status wirklich fast unmittelbar geändert! 

UliM

unread,
Nov 30, 2012, 1:58:27 PM11/30/12
to fhem-...@googlegroups.com
Hi,
solche Verzögerungen habe ich teilweise leider auch.
HomeStatus per Wandschalter setzen -> Licht geht nach 10s an, obwohl das der fast erste Befehl im script ist. Laut Log wird wofort geschaltet.
Habe noch keine Ursache ausmachen können.
Werd auch mal verbose 1 versuchen, kann mir aber echt nicht vorstellen, dass es das sein soll....
=8-)

Markus

unread,
Dec 25, 2012, 9:52:04 AM12/25/12
to fhem-...@googlegroups.com
Ich habe auch immer diese verzögerungen!
Ich weis jetzt nicht ob es nachvolziehbar ist aber ich habe einige aktoren die alle 3-4 Minuten ions Logfile Schreiben
und so eine Riesen Datei erzeugen.
Jetzt hab ich das FHEM.log auf täglich und die erwänten Aktoren auf Monatlich gestelt und sihe da FHEM ist auf einmal richtig Schnell geworden :-)

vieleicht kann das ja noch jemand ausprobieren und bestätigen.

Frohe Weihnachten Markus
Reply all
Reply to author
Forward
0 new messages