PRESENCE-RemoteFritzbox

Begonnen von erwin, 27 Dezember 2013, 21:39:11

Vorheriges Thema - Nächstes Thema

DerKiLLa

Also ich hatte es übernommen und es funktioniert ohne Änderungen problemlos:

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 ($Device, $MAC) = @_;
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  my $StatusFritz = ReadingsVal($Device, $MAC, "weg");
  if ($StatusFritz eq "weg") {
    Log 1, ("checkFritzMACpresent ($Device): $MAC nicht gefunden, abwesend.");
    $Status = 0;
  } elsif ($StatusFritz eq "inactive") {
    Log 1, ("checkFritzMACpresent ($Device): $MAC 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 ($Device): $MAC gefunden, Gerät heißt >$StatusFritz<.");
    $Status = 1;
  }
  return $Status
}


Und als definse:
define FritzBox FRITZBOX 192.168.0.1
attr FritzBox devStateIcon .*on.*off:WLAN_on_gWLAN_off .*on.*on.*:WLAN_on_gWLAN_on WLAN..off.*:WLAN_off
attr FritzBox icon it_router

define SmartphoneNico PRESENCE function {checkFritzMACpresent("FritzBox","XX:EE:XX:20:XX:DE")} 60 60
attr SmartphoneNico devStateIcon present:status_available absent:status_away_2 error:10px-kreis-rot
attr SmartphoneNico icon it_smartphone

Motivierte linke Hände

Vielleicht ein bisschen ressourcenschonender, weil man sich die regelmäßige Abfrage spart, könnte ein Notify sein:

Fritzbox:mac_AA_BB_CC_DD_EE_FF:.* {
  if (ReadingsVal("Fritzbox", "mac_70_3E_AC_35_27_22", "inactive") eq "inactive") {
    fhem("set anwesend.Fritzbox.iPhone6 absent");
  } else {
    fhem("set anwesend.Fritzbox.iPhone6 present");
  }
}
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

C0mmanda

Zitat von: Motivierte linke Hände am 31 März 2016, 13:42:51
Vielleicht ein bisschen ressourcenschonender, weil man sich die regelmäßige Abfrage spart, könnte ein Notify sein:

Fritzbox:mac_AA_BB_CC_DD_EE_FF:.* {
  if (ReadingsVal("Fritzbox", "mac_70_3E_AC_35_27_22", "inactive") eq "inactive") {
    fhem("set anwesend.Fritzbox.iPhone6 absent");
  } else {
    fhem("set anwesend.Fritzbox.iPhone6 present");
  }
}


Danke für den Tip! Klappt prima.

grtz

DerKiLLa

Damit spare ich mir im Prinzip die Funktion checkFritzMACpresent($$) oder?

define von Firtzbox bleibt gleich, aber wie ändere ich das define von SmartphoneNico in dem Fall ab?

Motivierte linke Hände

Die Frage ist, was genau Du machen möchtest. Um

fhem("set anwesend.Fritzbox.iPhone6 absent");

bzw. in Deinem Fall

fhem("set SmartphoneNico absent");

nutzen zu können, reicht grundsätzlich ein

define SmartphoneNico dummy

Deine Attribute könntest Du weiterverwenden, wobei allerdings der state "error" nie kommen wird mit dem notify. D.h. es würde auch reichen ein:

attr SmartphoneNico devStateIcon present:status_available absent:status_away_2
attr SmartphoneNico icon it_smartphone

FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

Zuendapp

Hallo,

ich bekomme im Log immer folgende Fehlermeldung.
Im Einsatz ist die Variante 2 mit einem RaspberryPi und einer FB7490 (FW 6.51).

Hier der Fehler:

2016.05.04 00:11:35 1: PERL WARNING: Argument "(1-5)" isn't numeric in numeric gt (>) at fhem.pl line 815.
2016.05.04 00:11:38 2: PRESENCE (myEiFonStatus) - error while processing check: unexpected function output (expected 0 or 1): parsing of FB-Website failed


Danke und Gruß
Zuendapp

Motivierte linke Hände

#291
Hi - Vielleicht versuchst Du es lieber mit einer der - auch in diesem Thread beschriebenen - Alternativen. Das RemoteFritzbox-Modul wird nämlich nicht weiterentwickelt, wie Erwin u.a. in https://forum.fhem.de/index.php/topic,17957.msg375688.html#msg375688 schrieb.
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

CoolTux

Aua Aua, Bitte bitte Richtig stellen. Das PRESENCE Modul wird sehr wohl weiter entwickelt. Das Modul hat mit der Fritzbox und deren Telnet speerung so gut wie gar nichts zu tun
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Motivierte linke Hände

Sorry, hab's editiert.  :)
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

CoolTux

Danke Dir. Nicht das die Leute noch in Panik ausbrechen und den Weltuntergang befürchten  ;D
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Zuendapp

Hat jemand trotzdem nen Tipp für mich?

Danke und Gruß

CoolTux

Zitat von: Zuendapp am 06 Mai 2016, 17:30:14
Hat jemand trotzdem nen Tipp für mich?

Danke und Gruß

Nicht ohne mehr Info/Code
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Zuendapp

Hi,

so sieht meine credentials.cfg aus:
# PRESENCE credentials (only required for function RemoteFritzBoxWeb)
$credentials{RemoteFritzBox}{ipadress} = '192.168.178.1';        # FB LAN Adress
$credentials{RemoteFritzBox}{username} = 'admin';
$credentials{RemoteFritzBox}{password} = '123456';
$credentials{RemoteFritzBox}{model}    = 'FBLAN';                       # optional FB-model: FB, FBLAN, 1750E


Das Modul 99_RFritzBox.pm hat alle Rechte für den User FHEM erhalten.
Aktuelles Image auf der FB ist 06.51

Und hier der Fehler, außer du sagst ich muss das Logging noch feiner stellen:

2016.05.06 17:57:09 1: PERL WARNING: Subroutine RFritzBox_Initialize redefined at ./FHEM/99_RFritzBox.pm line 101.
2016.05.06 17:57:09 1: PERL WARNING: Subroutine RemoteFritzBox redefined at ./FHEM/99_RFritzBox.pm line 106.
2016.05.06 17:57:09 1: PERL WARNING: Subroutine RemoteFritzBoxWeb redefined at ./FHEM/99_RFritzBox.pm line 184.
2016.05.06 17:57:09 1: PERL WARNING: Subroutine FB_checkPw1 redefined at ./FHEM/99_RFritzBox.pm line 316.
2016.05.06 17:57:09 1: PERL WARNING: Subroutine BlockingInformFHEM redefined at ./FHEM/99_RFritzBox.pm line 361.
2016.05.06 17:58:31 2: PRESENCE (myEiFonStatus) - error while processing check: unexpected function output (expected 0 or 1): parsing of FB-Website failed


Viele Grüße
Zündapp

CoolTux

Gib mal noch Deine 99er. Aber ich würde mal sagen, dadurch das sich der Aufbau des Frontends geändert hat kann er nicht mehr korrekt parsen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Zuendapp

Hi,

anbei meine 99er.

VG
Zündapp