Hauptmenü

presence modul

Begonnen von Müller, 01 Februar 2019, 22:16:54

Vorheriges Thema - Nächstes Thema

Müller

Hallo,

ich habe ein Problem mit meinem "presence module".

Meine Fritzbox meldet die Mac Adresse: mac_38_2D_E8_00_AA_D1

In meinem Presence module lautet die DEF:
function {checkFritzMACpresent("Fritzbox","mac_38_2D_E8_00_AA_D1")} 60 60

aber state ist permanent "error"

Ich habe einige Beiträge durchsucht, finde aber nicht meinen Fehler.
Wer kann mir helfen??
FHEM auf Raspberry, 433mHz & Zigbee für Rollläden, Gartenbewässerung, Beleuchtung, Fußbodenheizung

Frank_Huber

"mac_" muss raus, dann sollte es gehen.

Gesendet von meinem Doogee S60 mit Tapatalk


Müller

function {checkFritzMACpresent("Fritzbox","38_2D_E8_00_AA_D1")} 60 60

tut leider auch nicht
FHEM auf Raspberry, 433mHz & Zigbee für Rollläden, Gartenbewässerung, Beleuchtung, Fußbodenheizung

Neuhier

Mit : statt _ versucht?

Müller

auch schon probiert

function {checkFritzMACpresent("Fritzbox","38:2D:E8:00:AA:D1")} 60 60
FHEM auf Raspberry, 433mHz & Zigbee für Rollläden, Gartenbewässerung, Beleuchtung, Fußbodenheizung

Frank_Huber

Zitat von: Müller am 01 Februar 2019, 22:23:48
function {checkFritzMACpresent("Fritzbox","38_2D_E8_00_AA_D1")} 60 60

tut leider auch nicht
Ja, : anstatt _, dann passt der define.

Heisst dein Fritzbox device auch Fritzbox?

Den checkFritzMACpresent Code hast in die 99_myUtils.pm kopiert?

Gesendet von meinem Doogee S60 mit Tapatalk

Müller



Heisst dein Fritzbox device auch Fritzbox?
JA

Den checkFritzMACpresent Code hast in die 99_myUtils.pm kopiert?

NEIN, das wird es wohl sein.
FHEM auf Raspberry, 433mHz & Zigbee für Rollläden, Gartenbewässerung, Beleuchtung, Fußbodenheizung

Frank_Huber

Mit sehr hoher Wahrscheinlichkeit. [emoji6]

Gesendet von meinem Doogee S60 mit Tapatalk


Otto123

Zitat von: Müller am 01 Februar 2019, 22:31:22

Den checkFritzMACpresent Code hast in die 99_myUtils.pm kopiert?

NEIN, das wird es wohl sein.
Hi,

da ich Teile davon verzapft habe: Wie kam es zu dem Ansatz, das define zu machen und die Funktion in die 99_myUtils nicht einzutragen? War das unklar beschrieben?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Müller

hallo, ich habe in "commandref" gesucht und auch in der Wiki tat ich mir (als Anfänger) schwer alle Infos zusammen zutragen.

Das folgende habe ich nun gefunden, aber gleich eine Fehlermeldung kassiert:
Ist wohl nicht mit "$StatusFritz" zufrieden. Was sollte dafür stehen?

Danke

sub checkFritzMACpresent($$) {
  # Benötigt: Name der zu testenden Fritzbox ($Device),   
  #           zu suchende MAC ($MAC),       
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my (Fritzbox, 38_2D_E8_79_07_D1) = @_;
  my $Status = 0;
  38_2D_E8_79_07_D1 =~ tr/:/_/;
  38_2D_E8_79_07_D1 = "mac_".uc(38_2D_E8_00_AA_D1);
  my $StatusFritz = ReadingsVal(Fritzbox, 38_2D_E8_00_AA_D1
, "weg");
  if ($StatusFritz eq "weg") {
    Log 1, ("checkFritzMACpresent (Fritzbox): 38_2D_E8_00_AA_D1
nicht gefunden, abwesend.");
    $Status = 0;
  } elsif ($StatusFritz eq "inactive") {
    Log 1, ("checkFritzMACpresent (Fritzbox): 38_2D_E8_00_AA_D1
ist >inactive<, also abwesend.");
    $Status = 0;
  } else {
    # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät per WLAN angemeldet.
    Log 1, ("checkFritzMACpresent (Fritzbox): 38_2D_E8_00_AA_D1
gefunden, Gerät heißt >$StatusFritz<.");
    $Status = 1;
  }
  return $Status
}
FHEM auf Raspberry, 433mHz & Zigbee für Rollläden, Gartenbewässerung, Beleuchtung, Fußbodenheizung

the ratman

darf ich mich aus dem fenster lehnen?
hab sicher wieder irgendwas überlesen und ihr machts das deshalb so umständlich *g* wenn ja, weiteres einfach ignorieren ...

bspl.-doif für meinen laser-drucker
([fritzbox:mac_30_05_5C_FC_23_22,"absent"] =~ "AugenLaser")
( setreading $SELF ping present )
DOELSEIF
([fritzbox:mac_30_05_5C_FC_23_22,"absent"] !~ "AugenLaser")
( setreading $SELF ping absent )
attr do alwas
attr devStateIcon   cmd_1:control_standby@darkgreen cmd_2:control_standby@red .*:edit_settings@orange  (wenn gleich ne anzeige gewünscht)
→do↑p!dnʇs↓shit←

Otto123

Hallo Müller,

was genau wolltest Du tun und was soll das in Deiner Frage sein?
Beachte bitte die Hinweise hier -> https://forum.fhem.de/index.php/topic,71806.0.html
Vor allem bez. der Code Tags

Der Code im Wiki ist nicht dazu gedacht direkt Mac Adressen dort einzutragen. Die Werte werden übergeben.
Die Anleitung im Wiki ist doch ziemlich eindeutig, was ist Dir daran unklar?

Sowas wie von ratman ist eine alternative Lösung für presence.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Müller

Vielen Dank für eure Antworten. Ich tue mir nur etwas schwer auch alles zu verstehen, da ich bisher noch keine Programmiersprache gelernt habe.

Letztendlich möchte ich über das presence modul bestimmen ob meine handy im wlan gemeldet ist, um damit bspw eine Lampe oder anderes einzuschalten, wenn ich heimkomme.

das doif scheint mir eine recht einfache Lösung zu sein. Jedoch was macht der "Augenlaser" im code?
Ich habe den code mal probiert, bekomme bisher immmer absent beim reading. Muss da mit dem ping noch etwas eingestellt werden?

Den Code hatte ich aus einer Forums Diskussion. Ich probiere mal den Code vom Wiki mal die nächsten Tage aus 
FHEM auf Raspberry, 433mHz & Zigbee für Rollläden, Gartenbewässerung, Beleuchtung, Fußbodenheizung

amenomade

Augenlaser ist wahrscheinlich der Hostname seines Druckers: kommt im Reading mit entspr. mac Adresse, wenn das Gerät angemeldet ist.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

the ratman

#14
steht ja drüber *g* ich zitiere mich mal selber --> "bspl.-doif für meinen laser-drucker"
anstelle "augenlaser" ist halt der name z.b. deines handys, der hinter der mac im fritzbox-modul zu lesen ist einzutragen.
ein eintrag im fritzbox-modul sehe ja so aus z.b.:mac_00_04_20_FC_F2_C8 wzHUB (WLAN, 72 / 39 Mbit/s, -80)wichtig ist eben hier zu erkennen, ob "wzHUB" (einer meiner ir-sender) unter anderem (darum das "=~" d.h.: wenn der begriff im reading vorkommt) da steht. steht er nämlich da, ist das gerät online, steht was anderes bei der mac, ist er eben nicht erreichbar und somit für mich offline.

ich hab angenommen, du willst per fritzbox und mac festlegen, ob ein gerät online ist oder nicht und das presence-modul ist dir dazu zu viel action. mein doif braucht nix weiter als sich selber und natürlich ein fritzbox modul.
das geht in meinen augen, mit einem doif eben am einfachsten.
du hast mit "meiner" lösung aber ein problem: die fritzbox kann schon mal 10 bis 15 minuten brauchen, um  ein offline gegangenes gerät auch als offline anzuzeigen. grade im wlan dauert das gerne "ewig". d.h. die erkennung, ob ein gerät online gekommen ist, geht zwar schnell, das anzeigen des offline gehens kann aber lange dauern.

ausserdem hat meine lösung nix mit dem presence-module ( https://wiki.fhem.de/wiki/PRESENCE ) zu tun, dass es ja dafür auch geben würde. das wäre auch schneller beim offline-erkennen.
→do↑p!dnʇs↓shit←