NEWS
Internet Filter in der Fritzbox mit JavaScript setzen
-
@ottokar said in Internet Filter in der Fritzbox mit JavaScript setzen:
Bei mir klappts nun ...
Danke
Cool. Bitte
-
Hey, erstmal danke fürs teilen des genialen Scripts!
Leider will es aber nicht so wie ich möchte.Zu meinem Problem:
Habe meine Devices (94 Stück) und die Profile der FB erstmal mit der "Static-Version" ausgelesen, das hat soweit geklappt.
Dann habe ich über den Datenpunkt einfach mal mein Handy sperren wollen mit dem Befehl Handy;filtprof4950
Im Anschluß wollte ich auf der FB dies dann kontrollieren, da das Handy immer noch im WLAN funktionierte.
Hab dann festgestellt, dass eine Gesund-Steckdose gesperrt wurde und nicht mein Handy. Nach dem Befehl Handy;filtprof1 war die Steckdose wieder als Standart-Profil verfügbar.
Das selbe bei unserer Nintendo-Switch. Statt der Switch wird mein NAS gesperrt.Irgendwie kommt es mir vor, dass die Devices nicht richtig zugeordnet werden/wurden.
Kann es vielleicht daran liegen, da ich zu der FB 7590 noch zusätzlich einen Fritz!Repeater 3000 betreibe im Mesh? Beide laufen auf Fritz!OS 7.20
Im Script hab ich die IP (192.168.178.1) von der FB eingetragen, aber das Handy ist z.B. mit dem Repeater (192.168.178.32) verbunden.Vielleicht kann einer Licht ins Dunkel bringen. Danke schonmal
-
@Freaknet
Hmm, wir hatten das schon mal ... Es lag daran das es Geräte gab mit Sonderzeichen. Seinerzeit waren es _ und -
Kann es sein das du Gerätenamen mit besonderen Zeichen hast?
Derzeit wird abgefragt nach a-zA-Z0-9 äöüÄÖÜ-_Gleiches gilt für die Filternamen. Sind da besondere Zeichen drin?
Das würde mir jetzt als erstes einfallen.
Am Mesh liegts def. nicht. Das nutze ich auch.
Es könnte noch an der 7.20er Version liegen. Da hatten wir schon bei der Listengenerierung Unterschiede zu meiner 7.12 Version ...Im Zweifel muss ich morgen mal die Version um Logging erweitern. Dann sollte man den Fehler recht schnell finden
-
@moelski said in Internet Filter in der Fritzbox mit JavaScript setzen:
@Freaknet
Hmm, wir hatten das schon mal ... Es lag daran das es Geräte gab mit Sonderzeichen. Seinerzeit waren es _ und -
Kann es sein das du Gerätenamen mit besonderen Zeichen hast?
Derzeit wird abgefragt nach a-zA-Z0-9 äöüÄÖÜ-_Also meine Gerätenamen in der FB sind z.B. Nintendo-Switch oder Handy-Kind
Gleiches gilt für die Filternamen. Sind da besondere Zeichen drin?
Hier mal die Log-Datei aus der Static-Version
javascript.0 2020-09-09 21:23:31.539 info (12921) script.js.Meine_Scripte.Internetzugang: Filter named 'Kindersicherung' has ID : filtprof6295 javascript.0 2020-09-09 21:23:31.538 info (12921) script.js.Meine_Scripte.Internetzugang: Filter named 'Gesperrt' has ID : filtprof4950 javascript.0 2020-09-09 21:23:31.538 info (12921) script.js.Meine_Scripte.Internetzugang: Filter named 'Unbeschränkt' has ID : filtprof3 javascript.0 2020-09-09 21:23:31.538 info (12921) script.js.Meine_Scripte.Internetzugang: Filter named 'Gast' has ID : filtprof2 javascript.0 2020-09-09 21:23:31.538 info (12921) script.js.Meine_Scripte.Internetzugang: Filter named 'Standard' has ID : filtprof1 javascript.0 2020-09-09 21:23:37.221 info (12921) script.js.Meine_Scripte.Internetzugang: Device named 'Handy-Kind' has ID : landevice603305 javascript.0 2020-09-09 21:23:37.224 info (12921) script.js.Meine_Scripte.Internetzugang: Device named 'Philips-hue-Basis' has ID : landevice1784 javascript.0 2020-09-09 21:23:37.224 info (12921) script.js.Meine_Scripte.Internetzugang: Device named 'PC-F4-06-8D-F2-79-C7' has ID : landevice1558558 javascript.0 2020-09-09 21:23:37.223 info (12921) script.js.Meine_Scripte.Internetzugang: Device named 'PC-192-168-178-45' has ID : landevice1782 javascript.0 2020-09-09 21:23:37.223 info (12921) script.js.Meine_Scripte.Internetzugang: Device named 'PC-192-168-178-109' has ID : user8411 javascript.0 2020-09-09 21:23:37.223 info (12921) script.js.Meine_Scripte.Internetzugang: Device named 'Nintendo-Switch' has ID : landevice1611013 javascript.0 2020-09-09 21:23:37.226 info (12921) script.js.Meine_Scripte.Internetzugang: Device named 'Trockner-Steckdose' has ID : landevice273 javascript.0 2020-09-09 21:23:37.226 info (12921) script.js.Meine_Scripte.Internetzugang: Device named 'Handy-Frau' has ID : user8400 javascript.0 2020-09-09 21:23:37.226 info (12921) script.js.Meine_Scripte.Internetzugang: Device named 'Tablet-Kind' has ID : user8394
Am Mesh liegts def. nicht. Das nutze ich auch.
Das ist schonmal gut zu wissen.
Es könnte noch an der 7.20er Version liegen. Da hatten wir schon bei der Listengenerierung Unterschiede zu meiner 7.12 Version ...
Wäre nicht so schön
-
@Freaknet
Die Namen sehen erstmal ok aus.
Aber es liegt def. an 2 Listen die abgeglichen werden und wo Einträge verschoben sind weil etwas fehlt.
Anyway ... Ich bohre morgen ,mal das Logging so auf das ich dass dann debuggen kann.
Melde mich ... -
@moelski said in Internet Filter in der Fritzbox mit JavaScript setzen:
@Freaknet
Die Namen sehen erstmal ok aus.
Aber es liegt def. an 2 Listen die abgeglichen werden und wo Einträge verschoben sind weil etwas fehlt.
Anyway ... Ich bohre morgen ,mal das Logging so auf das ich dass dann debuggen kann.
Melde mich ...Vielen lieben Dank!
Kein Stress wegen mir! -
@Freaknet
Ne kein Stress. Das wird auch nix wildes sein.
Grundsätzlich gehts ja. Aber wäre ja schon schön wen solche Bugs raus kommen -
@moelski said in Internet Filter in der Fritzbox mit JavaScript setzen:
@Freaknet
Grundsätzlich gehts ja. Aber wäre ja schon schön wen solche Bugs raus kommenRichtig! Geräte werden ja auch gesperrt, nur leider die falschen
Vielleicht noch als Info... die JsonList wird in der Vis korrekt angezeigt wie es eigentlich sein sollte. Nur in der FB kommt das falsche an.
-
@Freaknet
Grundsätzlich gehts ja. Aber wäre ja schon schön wen solche Bugs raus kommenJa das war bei mir mit den Filterlisten auch so..
War auch immer mal ein anderes Gerät gesperrt.Oli
-
Ich poste heute noch Version 1.07.
Damit können wir das problem dann analysieren -
Super, bin gespannt!
Werde dann Feedback geben -
So hier mal wieder ein kleines Update um auch den Mysterien der 7.20 Box auf die Schliche zu kommen
- 12.09.20 V1.07 Erweritertes Logging aktivierbar für Fehlersuche
Script ist wie immer in Beitrag 7 aktualisiert.
Debugging Log bekommen
Zunächst mal muss das aktuelle Script natürlich wieder im ioB eingebaut und konfiguriert werden.
Dann gibt es eine neue Option:// erweitertes Logging aktivieren für Fehlersuche const FbDebugging = false;
Diese setzt ihr bitte auf true . Danach das Script laufen lassen. Im Logging werden nun eine ganze Menge an extra Ausgaben generiert.
Ich sags gleich ... die seht ihr NICHT im normalen ioB Logging - bzw. nicht alles davon weil das schneidet die Zeilen ab.Ihr müsst also per SSH auf euren ioBroker in folgendes Verzeichnis:
/opt/iobroker/log
Dort kopiert ihr euch dann bitte die letzte .log Datei:
In meinem Fall also gerade die iobroker.2020-09-12.log.Und die bräuchte ich dann mal. Wer will kann darin natürlich alles ausfiltern was nicht von javascript kommt.
Jetzt sollte das FbDebugging wieder auf false gestellt werden!
Es generiert nämlich auf Dauer viel zu viel Logging -
Hey,
hab das Script jetzt mal laufen lassen.
Soll ich Dir die Log hier zur Verfügung stellen oder per PN schicken?Gruß
FreaknetEdit:
Ich habe etwas herausgefunden was vielleicht weiterhilft.
Hab im Internet etwas gestöbert und habe anhand einer erstellten Sicherungsdatei der Firtzbox herausgefunden, dass die landevice alle um eine Position verschoben sind.
Hier ein Beispiel aus der Datei der Fritzbox im Vergleich zur Liste aus dem Script.Das steht in der FB drin... man beachte die Zeile "uniqid" das stellt die landevice dar.
ip = 192.168.178.37; manual_ip = no; uniqid = 14744; name = "Licht-Gartenteich"; ip = 192.168.178.101; manual_ip = yes; uniqid = 1257798; neighbour_name = "lxc-influxDB"; ip = 192.168.178.60; manual_ip = no; uniqid = 308836; name = "Multimedia-Steckdose";
Und hier, was das Script dazu ausgibt
'Licht-Gartenteich' has ID : landevice970061 'lxc-influxDB' has ID : landevice14744 'Multimedia-Steckdose' has ID : landevice1257798 'md2b5b6c' has ID : landevice308836
Vielleicht hilft das ja!? Warum aber das Script das ganze um +1 versetzt kann ich nicht sagen
-
@Freaknet
Verschoben bedeutet zu 99% das der Regex Filter nicht sauber ist.Schick mir bitte dein Log File per Mail:
dominik ättt logview dot info -
@Freaknet
Ein erster ganz kurzer Blick und ich denke es ist der Punkt im Rechner Namen ....
Teste aber gleich noch -
Klingt ja schon recht vielversprechend
Bin gespannt auf Dein Ergebnis!
Danke! -
@Freaknet
So ich denke auch dieses Problem konnte gelöst werden.
Es war wie schon vermutet ein Fehler im Regex. Der PUNKT fehlte noch ...Deswegen ein Update in Post 7:
- 12.09.20 V1.08 Regex um . erweitert
Bitte mal testen und reporten
-
@moelski ich habe zwar gar keine Ahnung worum es hier geht, aber bei Punkt in regex schrillen bei mir die Alarmglocken!
Bei einem "normalen" Regex steht der Punkt für jedes beliebige Zeichen, außer er wird mit einem Backslash escaped\.
Sollte das in js anders sein, habe ich nichts gesagt
-
var rx = new RegExp( /class=\"name"\stitle=\"([a-zA-Z0-9 äöüÄÖÜ\-\_.]*)\"\sdatalabel/g );
Da alles in [] steht geht es um eine Aufzählung von möglichen Zeichen. Das sollte so passen und hat bei mir auch funktioniert.
Was du meinst ist so etwas wie .* oder .+ . Aber das ist hier nicht der Fall@Homoran said in Internet Filter in der Fritzbox mit JavaScript setzen:
bei Punkt in regex schrillen bei mir die Alarmglocken!
regex sind ein Wundermittel ... eine Universalwaffe ...
-
@moelski sagte in Internet Filter in der Fritzbox mit JavaScript setzen:
regex sind ein Wundermittel ... eine Universalwaffe ...
jepp, aber vorsichtig mit scharfen Waffen!
@moelski sagte in Internet Filter in der Fritzbox mit JavaScript setzen:
Was du meinst ist so etwas wie .* oder .+
Nein!
Das wären beliebig viele beliebige Zeichen (außer Zeilenumbruch)@moelski sagte in Internet Filter in der Fritzbox mit JavaScript setzen:
Da alles in [] steht geht es um eine Aufzählung von möglichen Zeichen
Wenn ich das richtig sehe hast du aber den Hyphen und den Underscore escaped.