72_FRITZBOX.pm wird zu 72_FritzSmart.pm

Begonnen von JoWiemann, 02 März 2026, 16:29:49

Vorheriges Thema - Nächstes Thema

JoWiemann

Zitat von: 0bones am 20 März 2026, 19:19:04Was mir beim Lesen der https://wiki.fhem.de/wiki/FRITZBOX aufgefallen ist, ist dass in der Box zur Überschrift "Anwesenheitserkennung über mehrere Fritzboxen oder AVM Repeater und Fritzbox" noch die alte Bezeichnung FRITZBOX enthalten ist (Zeile my @FBS = devspec2array("TYPE=FRITZBOX");), das muss auf FritzSmart geändert werden, dann läuft auch die Anwesenheitserkennung von Handys über mehrere Fritzboxen wieder perfekt (Änderungen in der Datei 99_myUtils.pm).

Hinweis: Das Fhem-Wiki darf und soll von jedem gepflegt werden. Wie das bei einem Wiki so üblich ist. Wir als Maintainer schauen da eher weniger rein, weil für uns die commandRef relevant ist. Von daher habe ich das "das muss auf FritzSmart geändert werden" mal überlesen und es geändert. Ansonsten bitte Account beantragen, geht sehr unbürokratisch, und gefundene Fehler selber anpassen.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

JoWiemann

Zitat von: tomcat.x am 20 März 2026, 19:30:58Hallo Jörg,

bezog sich das nicht auf eine FritzBox mit Mobilempfang? Also bei mir läuft zwar gerade die Ausweichverbindung über Mobilfunk ;-), aber ich dachte Du willst das von einer 6850 oder so. Weil Du das ja ansonsten selbst mit diversen anderen Boxen testen könntest.

Viele Grüße
Thomas

Hallo Thomas,

ich selber habe keine Box mit Mobilfunk. Um hier alle Fehler zu finden brauche ich die original Rückgabe der FB mit Mobilfunk. Die bekommen wir nur, wenn das Attribut gesetzt ist. Ich habe damals die Readings auf Basis einer solchen Information programmiert.

Ich habe schon einiges an Fritz Geräten, aber alles kann ich mir einfach nicht leisten.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

tomcat.x

Hallo Jörg,

ja, ist schon klar. Aber meine ist die 6591, also nicht wirklich eine mit Mobilfunk. Das geht nur per USB-Stick (wäre so also bei vielen anderen möglich). Reicht Dir von der das Ergebnis auch, ist das identisch mit einer mit eingebautem Empfangsteil?

Viele Grüße
Thomas
FHEM: 6.4 auf Raspi 4B, Raspbian (noch Buster), Perl v5.28.1
Sender/Empfänger: 2 x CULv3, Duofern Stick, HM-MOD-RPI-PCB
Gateways: FRITZ!Box 6591 (OS: 8.21), Trädfri, ConBee 2,  piVCCU, OpenMQTTGateway
Sensoren/Aktoren: FRITZ!DECT, FS20, FHT, HMS, HomeMatic, Trädfri, DuoFern, NetAtmo

JoWiemann

Hallo Thomas,

ein FB mit Mobilfunk-Stick sollte ähnliche Informationen erzeugen. Genau weiß ich das allerdings nicht.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

0bones

Zitat von: JoWiemann am 20 März 2026, 19:38:37
Zitat von: 0bones am 20 März 2026, 19:19:04Was mir beim Lesen der https://wiki.fhem.de/wiki/FRITZBOX aufgefallen ist, ist dass in der Box zur Überschrift "Anwesenheitserkennung über mehrere Fritzboxen oder AVM Repeater und Fritzbox" noch die alte Bezeichnung FRITZBOX enthalten ist (Zeile my @FBS = devspec2array("TYPE=FRITZBOX");), das muss auf FritzSmart geändert werden, dann läuft auch die Anwesenheitserkennung von Handys über mehrere Fritzboxen wieder perfekt (Änderungen in der Datei 99_myUtils.pm).

Hinweis: Das Fhem-Wiki darf und soll von jedem gepflegt werden. Wie das bei einem Wiki so üblich ist. Wir als Maintainer schauen da eher weniger rein, weil für uns die commandRef relevant ist. Von daher habe ich das "das muss auf FritzSmart geändert werden" mal überlesen und es geändert. Ansonsten bitte Account beantragen, geht sehr unbürokratisch, und gefundene Fehler selber anpassen.

Grüße Jörg
Danke für die Änderung. Aber das muss bezog sich lediglich auf die Änderung des Codes selber (und nicht auf Dich als Maintainer), da sonst die gewünschte Funktion nicht mehr läuft. Daher war es nicht notwendig von Dir es zu überlesen. Ich kann mir gerne einen Account für das Wiki erstellen lassen damit ich weitere Fehler z. B. im Kommentar beheben kann.
Meine erste Frage war, ob das von mir beschriebene Vorgehen mit der Umbenennung in der fhem.cfg ausreichend ist, oder ob ich etwas übersehen habe. Ich denke mir, dass das ggf. auch dem ein oder anderen User helfen kann, oder?
VG
0bones

JoWiemann

Zitat von: 0bones am 20 März 2026, 20:11:56Meine erste Frage war, ob das von mir beschriebene Vorgehen mit der Umbenennung in der fhem.cfg ausreichend ist, oder ob ich etwas übersehen habe. Ich denke mir, dass das ggf. auch dem ein oder anderen User helfen kann, oder?
VG
0bones

Hallo 0bones,

eigentlich ist das Editieren der fhem.cfg von den Mainteinern nicht gewünscht. Viele Probleme entstehen durch Fehler beim editieren, die uns dann oft Stunden beschäftigen. Sofern Du das sorgfältig gemacht hast, alles Ok.

Nur für Mitleser nochmal der Hinweis:

Die RAW Definition ohne die setlist Einträge kopieren, das alte Device löschen, im RAW Editor die kopierten Zeilen einfügen, in der ersten Zeile FRITZBOX durch FritzSmart ersetzen und auf den Button excecute klicken. Dann nur noch das Passwort neu eingeben und es läuft alles wieder.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

caldir65

Moin,

Zitat von: JoWiemann am 20 März 2026, 20:21:46Die RAW Definition ohne die setlist Einträge kopieren, das alte Device löschen, im RAW Editor die kopierten Zeilen einfügen, in der ersten Zeile FRITZBOX durch FritzSmart ersetzen und auf den Button excecute klicken. Dann nur noch das Passwort neu eingeben und es läuft alles wieder.

Grüße Jörg

wenn ich das jetzt richtig sehe, muß aber ggf. doch eine auf FRITZBOX verweisende Func auf das neue Modul FritzSmart umgeschrieben werden, damit auch das funktioniert, oder?
Ich denke hierbei an eine Anwesenheits-Überprüfung via MAC z.B. ...

Gruß Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 128GB SSD, Lubuntu 24.04.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee III und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

JoWiemann

Zitat von: caldir65 am 20 März 2026, 20:36:43Moin,
wenn ich das jetzt richtig sehe, muß aber ggf. doch eine auf FRITZBOX verweisende Func auf das neue Modul FritzSmart umgeschrieben werden, damit auch das funktioniert, oder?
Ich denke hierbei an eine Anwesenheits-Überprüfung via MAC z.B. ...

Gruß Christoph

Hallo Christoph,

hast Du ein Beispiel. Eigentlich verlangen ja alle fhem.pl Sub den Device-Namen oder den HASH. Der Modulname spielt da keine Rolle.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

caldir65

Hallo Jörg,

# MacAdressPresent nach fhemwiki und Hinweis von Otto #
# wird ausgewertet in Geräten des Moduls PRESENCE   #
# https://wiki.fhem.de/wiki/FRITZBOX#Anwesenheitserkennung_.C3.BCber_mehrere_Fritzboxen_oder_AVM_Repeater_und_Fritzbox
#######################################################
sub checkAllFritzMACpresent($) {
  # Benötigt: nur die zu suchende MAC ($MAC),
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt
  #
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($MAC) = @_;
  # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  # my @FBS = devspec2array("TYPE=FRITZBOX");
  my @FBS = devspec2array("TYPE=FritzSmart");
    foreach( @FBS ) {
        my $StatusFritz = ReadingsVal($_, $MAC, "weg");
        if ($StatusFritz eq "weg") {
            # Dieser Zweig testet ob das Reading vorhanden ist
            } elsif ($StatusFritz eq "inactive") {
            # Dieser Zweig testet ob im Reading inactive steht
            } elsif ($StatusFritz =~ /(.*)s, 0/) {
            # Dieser Zweig testet auf "<geraetename> (WLAN, 0 / 0 Mbit/s, 0)"
        } else { $Status = 1}
    }
  return $Status
}
Mit diesem Code klappt es bei mir - jetzt auch bei FritzSmart ... Wer also die gleiche Codebasis in seiner MyUtils benutzt, müßt nach meinem Verständnis ebenfalls anpassen ...

Gruß Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 128GB SSD, Lubuntu 24.04.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee III und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.