wunsch nach reading, das die warnungen der fritzbox zeigt (rote info led)

Begonnen von frank, 04 Februar 2025, 11:49:04

Vorheriges Thema - Nächstes Thema

frank

hallo jörg,

die anzeige des readings mit dem <delete> button ist perfekt.  8)
das deletereading funktioniert auch.

allerdings müsste anstatt delereading der cmd aus meinem ersten post ausgeführt werden (die id natürlich je nach warnung anpassen):
get fritzbox luaData xhr 1 delete on id 8_1 deletenotify nop lang de page overviewdas deletereading muss ja automatisch im modul passieren, wenn die fritzbox die warnung zurücknimmt, also keine notifydaten mehr zur entsprechenden warnung sendet.


wenn die ursache einer warnungen wegfällt, beendet die fritzbox das senden der notifydaten von selbst.
daher muss immer eine automatische erkennung im modul aktiv sein, damit die notifyreadings synchron mit den gesendeten notifydaten der fritzbox sind.
im prinzip genau so wie mit den mac-listen.

das manuelle löschen/quittieren einer warnung ist nur eine zusätzliche möglichkeit zum beenden der warnungsanzeige.
wurde eine warnung manuell quittiert, kümmert sich die fritzbox nun um dieses spezielle problem erst dann wieder, wenn die ursache gefixt wurde und die funktion einmal erfolgreich durchgeführt werden konnte.


gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

JoWiemann

Hallo Frank,

dann schau Dir mal diese Version an. Hier gibt es zwei Links, einmal um die Info-Led zurück zu setzen und um das Reading selber zu löschen. Es gibt parallel ein zweites reading in dem ich einen Button hinterlegt habe, mit dem dann in Zukunft eine nähere Info ausgeben werden kann.

Ich habe für das Zurücksetzen der LED das set <name> ledSetting auf die Schnelle um die Parameter <notifyoff id> erweitert. Da muss ich noch fein tunen.

"wenn die ursache einer warnungen wegfällt, beendet die fritzbox das senden der notifydaten von selbst." Da würde ich dann das Reading mit dem Hinweis "erledigt" makieren wollen, da Dir ja sonst die Info fehlt.

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

frank

moin jörg,


Zitat von: JoWiemann am 07 Februar 2025, 12:41:00Hier gibt es zwei Links, einmal um die Info-Led zurück zu setzen und um das Reading selber zu löschen.
beide links funktionieren.
"led löschen" wirft ein fehler, wenn das notify in der fritzbox nicht mehr vorhanden ist.
[fritzbox | 7490 | 113.07.60 | Set.2165] - SIGNIFICANT:ledsetting notifyoff 8_1 - not applied

Zitat von: JoWiemann am 07 Februar 2025, 12:41:00Es gibt parallel ein zweites reading in dem ich einen Button hinterlegt habe, mit dem dann in Zukunft eine nähere Info ausgeben werden kann.
der button sieht bei mir gut aus, siehe sreenshot.
da er schön auffällig ist, kann man sofort erkennen, wenn die fritzbox probleme hat.  ;)

das reading erzeugt jede minute ein log eintrag, solange die warnung in der fritzbox aktiv ist. das sollte unterdrückt werden:
2025.02.08 14:39:37.765 3: [fritzbox | 7490 | 113.07.60 | Readout_Run_Web_LuaData.4607] - BASIC:hmtl_links:
 <html>INTERNET NO_CONNECTION <a href='/fhem?cmd=deletereading%20-q%20fritzbox%20box_notify_8_1.*&fwcsrf=csrf_559199566838920' target='_self'>&lt;reading löschen&gt;</a> <a href='/fhem?cmd=set%20fritzbox%20ledSetting%20notifyoff%208_1&fwcsrf=csrf_559199566838920' target='_self'>&lt;LED ausschalten&gt;</a></html>
 <html><div id='button'><button id='dis' onclick='JS:FW_okDialog("wenn ich weiß, wo ich eine Info herbekomme")'>Information anzeigen</button></div></html>


die fritzbox baut das popup mit den details (zweiter screenshot aus meinem ersten post) in der javascript datei "home/home.js" zusammen.
dort finde ich texte für 7 events:
const notifyTexts = (() => {
    const getDiagnosisText = el => html2.printf("Starten Sie unter %1%Linkanfang%Diagnose > Funktion%/1%Linkende% die Diagnose der FRITZ!Box.", createLink(el.url, "funcCheck"));
    const getLogText = el => html2.printf("Weitere Details finden Sie unter %1%Linkanfang%System > Ereignisse > Telefonie%/1%Linkende%.", createLink(el.url, "log"));
    return {
        getDiagnosis: getDiagnosisText,
        forCategory: {
            JASON: el => {
                const result = {};
                result.header = "Dringende Benachrichtigung zu Ihrer FRITZ!Box: " + el.message;
                if (el.url) {
                    result.content = html2.p({}, el.message, " ", createMoreLinkForNotify(el.url));
                }
                return result;
            },
        },
        forEvent: {
            NO_CONNECTION: (el, data) => {
                const mainConnectionIsMobile = data.internet?.connections?.find(c => c.type === "mobile" && (c.role === "main" || c.role === "single"));
                let texts;
                if (mainConnectionIsMobile) {
                    texts = ["Stellen Sie sicher, dass die SIM-Karte korrekt freigeschaltet ist.", "Stellen Sie sicher, dass die Konfiguration für den Internetzugang zur verwendeten SIM-Karte passt.", getDiagnosisText(el)];
                } else {
                    texts = ["Stellen Sie sicher, dass das Kabel für den Internetzugang richtig steckt.", getDiagnosisText(el)];
                }
                return {
                    header: "Internetverbindung seit mehr als einer Stunde unterbrochen",
                    content: html2.fragment(html2.p({}, "Die FRITZ!Box ist seit mehr als einer Stunde nicht mehr mit dem Internet verbunden."), html2.ul({}, texts.map(text => html2.li({}, text))))
                };
            },
            BOTNET_DETECTED: el => {
                const result = {};
                const txtParts = el.message.split(";");
                if (txtParts) {
                    if (txtParts[3]) {
                        result.header = jsl.sprintf("Zugriff auf Botnet '%1%botnet%' über Domain '%2%domain%' von Gerät '%3%dev%' erkannt!", txtParts[0], txtParts[1], txtParts[3]);
                    } else {
                        result.header = jsl.sprintf("Zugriff auf Botnet '%1%botnet%' über Domain '%2%domain%' von der Box selbst erkannt!", txtParts[0], txtParts[1]);
                    }
                } else {
                    result.header = el.message;
                }
                if (el.url) {
                    result.content = html2.p({}, result.header, " ", createMoreLinkForNotify(el.url, "log"));
                }
                return result;
            },
            NOT_REGISTERED: el => {
                return {
                    header: "Telefonie seit mehr als einer Stunde nicht oder nur eingeschränkt nutzbar",
                    content: html2.fragment(html2.p({}, "Eine Rufnummer ist seit mehr als einer Stunde nicht verfügbar."), html2.ul({}, html2.li({}, "Prüfen Sie die Einstellungen Ihrer eigenen Rufnummern."), html2.li({}, getDiagnosisText(el))))
                };
            },
            ERROR_500_503: el => {
                return {
                    header: "Letzter ausgehender Anruf aufgrund eines Fehlers im Telefonnetz gescheitert",
                    content: html2.fragment(html2.p({}, "Die Ursache für das Problem kann vorübergehend sein oder länger andauern. Wenden Sie sich bitte an Ihren Telefonanbieter, sofern das Problem über einen längeren Zeitraum und zu verschiedenen Rufnummern auftritt."), html2.ul({}, html2.li({}, getLogText(el))))
                };
            },
            INTERNATIONAL_CALLS_DETECTED: el => {
                return {
                    header: "Untypisch hohe Nutzung von Auslands- bzw. Sonderrufnummern",
                    content: html2.fragment(html2.p({}, "Innerhalb kürzerer Zeit wurden mehrfach Auslands- bzw. Sonderrufnummern angewählt. Dies kann erhöhte Kosten nach sich ziehen."), html2.ul({}, html2.li({}, "Prüfen Sie in Ihrer Anrufliste, ob es sich um berechtigte Anwahlversuche handelte."), html2.li({}, "Klicken Sie auf die Meldung in der Ereignisliste, um weitere Hinweise zum Vorgehen bei Vorliegen einer mißbräuchlichen Nutzung zu erhalten."), html2.li({}, getLogText(el))))
                };
            },
            USB_FULL: el => {
                return {
                    header: "Kein Empfang von Sprachnachrichten und Faxen möglich",
                    content: html2.fragment(html2.p({}, "Der USB-Speicher an der FRITZ!Box ist voll. Die FRITZ!Box kann daher keine Sprachnachrichten und Faxe mehr annehmen."), html2.p({}, "Geben Sie Speicherplatz auf dem Speicher frei, um Anrufbeantworter und Faxempfang wieder nutzen zu können."), el.url ? createMoreLinkForNotify(el.url, "funcCheck") : null)
                };
            },
            BATTERY_LOW: el => {
                return {
                    header: "Batteriewarnung für Smart-Home-Gerät",
                    content: html2.ul({}, html2.li({}, html2.printf("Prüfen Sie unter %1%Linkanfang%Smart Home%/1%Linkende% den Batteriestand Ihrer Smart-Home-Geräte.", createLink(el.url, "sh_dev"))), html2.li({}, "Ersetzen Sie verbrauchte Batterien an den betreffenden Geräten."), )
                };
            },
        }
    };
})();

da du scheinbar ein dect thermostat hast, bekommst du eventuell bei leerer batterie ein notify.
das wäre dann wohl eine gute möglichkeit für dich zum testen. 


Zitat von: JoWiemann am 07 Februar 2025, 12:41:00"wenn die ursache einer warnungen wegfällt, beendet die fritzbox das senden der notifydaten von selbst." Da würde ich dann das Reading mit dem Hinweis "erledigt" makieren wollen, da Dir ja sonst die Info fehlt.
automatisches löschen habe ich noch nicht bemerkt.
wäre es nicht besser, hier auch "inactive" zu setzen, damit es im modul überall gleich funktioniert? ist mir im prinzip aber egal.



gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

JoWiemann

Hallo Frank,

das mit dem Raumthermostat probiere ich mal aus. Bei den Log Einträgen ist noch einiges an "testmüll" dabei. Wenn alles fertig, dann gehe ich da nochmal durch.

Inaktiv kommt dann auch noch.

Der Hinweis auf das Auslesen der Info ist super. Werde ich dann mal einbauen.

Grüße Jörg

PS: Mal sehen, ob das ganze dann noch weitere Benutzer des Moduls interessiert.
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

juemuc

Hallo Jörg,

das Ganze klingt zumindest sehr interessant. Zum Glück hatte ich bisher nur sehr sehr selten diese Situation mit der Info-LED.

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

frank

Zitat von: juemuc am 09 Februar 2025, 13:57:57das Ganze klingt zumindest sehr interessant. Zum Glück hatte ich bisher nur sehr sehr selten diese Situation mit der Info-LED.
zum simulieren braucht man nur das kabel der DSL leitung an der fritzbox entfernen.
nach ca 1 std sollte die led rot leuchten und das beschriebene reading wird erstellt.  ;)
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

RalfRog

Zitat von: frank am 09 Februar 2025, 19:37:40zum simulieren braucht man nur das kabel der DSL leitung an der fritzbox entfernen.
nach ca 1 std sollte die led rot leuchten und das beschriebene reading wird erstellt.
Ich find die Funktion auch interessant, da man nicht auf die ggfs. versteckte Anzeige achtet.

Aber @frank hast du vielleicht eine weniger radikale Idee für einen Test---  ::)
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

frank

hallo ralf,

Zitat von: RalfRog am 09 Februar 2025, 23:20:04Aber @frank hast du vielleicht eine weniger radikale Idee für einen Test---  ::)
ich suche ja selber noch nach einer "einfachen" möglichkeit.

von den 7 events aus post #17, die meine 7490 (fw7.60) in home.js beschreibt, habe ich bisher nur 2 persönlich erlebt (NO_CONNECTION und NOT_REGISTERED). beide aber im zusammenhang mit fehlender internetverbindung.
NO_CONNECTION
BOTNET_DETECTED
NOT_REGISTERED
ERROR_500_503
INTERNATIONAL_CALLS_DETECTED
USB_FULL
BATTERY_LOW


gestern habe ich mal versucht usb_full zu provozieren, was mir bisher allerdings noch nicht richtig gelungen ist.
            USB_FULL: el => {
                return {
                    header: "Kein Empfang von Sprachnachrichten und Faxen möglich",
                    content: html2.fragment(html2.p({}, "Der USB-Speicher an der FRITZ!Box ist voll. Die FRITZ!Box kann daher keine Sprachnachrichten und Faxe mehr annehmen."), html2.p({}, "Geben Sie Speicherplatz auf dem Speicher frei, um Anrufbeantworter und Faxempfang wieder nutzen zu können."), el.url ? createMoreLinkForNotify(el.url, "funcCheck") : null)
                };
            },

der usb stick ist so voll, dass keine weiteren aufnahmen mehr auf den AB passen.
am fritzfon wird das auch angezeigt, aber die fritzbox leuchtet leider nicht rot.
allerdings kann ich es nur mit "memos" probieren, also nachrichten, die man direckt auf den AB spricht, indem man **605 anruft.
eventuell verhält sich die fritzbox "richtig", wenn sie anrufe von externen rufnummern aufzeichen soll. dazu fehlt mir allerdings eine entsprechende rufnummer.



welche events sind auf deiner 7590 in home.js zu sehen?


gruss frank.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

RalfRog

Zitat von: frank am 12 Februar 2025, 12:33:38welche events sind auf deiner 7590 in home.js zu sehen?

Kann ich gern machen. Allerdings bei welchem Aufruf (in der Oberfäche?, LUA Abfrage?) kommt die home.js?

Über get <name<> luafunction home/home.js -was das auch immer macht- habe ich auch die gleichen 7 gefunden (auf der 7590):
NO_CONNECTION
INTERNATIONAL_CALLS_DETECTED   
NOT_REGISTERED                 
ERROR_500_503                 
BOTNET_DETECTED               
USB_FULL                       
BATTERY_LOW
                   
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

frank

Über get <name<> luafunction home/home.js -was das auch immer macht- habe ich auch die gleichen 7 gefunden (auf der 7590)Das ist ja praktisch.  8)

Ich habe die overview-seite mit den Entwicklertools/Debugger durchsucht.

Wenn du eine botnet Adresse kennst, könnte das auch ein schneller Test sein.  ;)
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

JoWiemann

Hallo,

durch die aktuelle Störung bei NetCologne konnte meine SIP Nummer nicht bei SIPGate registriert werden und war somit länger als eine Stunde offline. Das führte dann zu einer Warnmeldung von der FritzBox 7590 FritzOS 8.02 und einem entsprechenden Hinweis im WebFrontEnd. Leider wurde die Warmeldung nicht im data.lua Aufruf als notify Datensatz im Ergebnis JSON zurück gegeben. Sehen konnte ich es im get javaScript mit dem Parameter boxnotifications. Allerdings war url leer. Die ID wurde mit 32_1 ausgegeben, was nun überhaupt nicht mit den Fehlermeldung IDs im Ereignislog korrespondiert.
Eine Referenz von ID 32_1 zu irgendeinem data.lua oder javaScript habe ich nicht gefunden.

Mühsam, mühsam

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

RalfRog

Zitat von: JoWiemann am 12 Februar 2025, 16:28:08durch die aktuelle Störung bei NetCologne
Jo.
Bin wg. kommendem Glasfaserausbau zu Vodafone, da läufts. Meine Tochter in Stommlen mit ner 7430 (OS 7.53 oder so) ist auch weg.
Wenn ich da Remote wieder dran komme könnte ich gezielt was ausprobieren abfragen.

Gruß Ralf


Die DSL Anbindung stand ja sowieso, Telefonie ging wohl die ganze Zeit und wie ich gerade an der FB (OS 7.31) gesehen habe ist aus Sicht der Box das Internet nicht weg gewesen (Störung war wohl weiter oben in der Hierarchie).
  • Also keine rote LED    ???

Internet, IPv4   verbunden seit 08.02.2025, 03:59 Uhr,
Internet, IPv6   verbunden seit 08.02.2025, 03:59 Uhr,
   
 
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

JoWiemann

Hallo,

ich habe nun für FritzOS >= 8.00 eine Lösung gefunden, um Informationen anzuzeigen. Bei älteren OS Versionen habe ich noch keine Ahnung, wie ich das mit einer meiner alten Boxen testen kann.

Anbei also eine neue Version. Im Reading box_notify_<id> gibt es jetzt einen quittieren Link. Über diesen Link werden die Readings box_notify_<id> und box_notify_<id>_info gelöscht und es wird die LED zurück gesetzt.

Hat sich das Notify erledigt, werden die Readings im Text um 'solved' ergänzt. Das Quittieren löscht dann nur noch die Readings.

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

frank

hallo jörg,

bei mir gibt es probleme mit der neuen version:
1. beim readingnamen "box_notify_<id>" fehlt grundsätzlich die id.
2. der inhalt "toggelt" dann mit jedem fritzbox update, solange die rote led brennt.

eventlog ab dem ersten alarm:
2025-02-13_18:25:07 fritzbox box_notify_: <html>INTERNET NO_CONNECTION <a href='/fhem?cmd=deletereading%20-q%20fritzbox%20box_notify_8_1.*; set%20fritzbox%20ledSetting%20notifyoff:8_1&fwcsrf=csrf_210652084325289' target='_self'>&lt;quittieren&gt;</a></html>
2025-02-13_18:25:07 fritzbox box_notify_8_1_info: <html><div id='button'><button id='dis' onclick='JS:FW_okDialog("keine weitere Information vorhanden")'>Information anzeigen</button></div></html>
...
2025-02-13_18:26:06 fritzbox box_notify_: - solved - <a href='/fhem?cmd=deletereading%20-q%20fritzbox%20box_notify_8_1.*&fwcsrf=csrf_210652084325289' target='_self'>&lt;quittieren&gt;</a></html>
...
2025-02-13_18:27:07 fritzbox box_notify_: <html>INTERNET NO_CONNECTION <a href='/fhem?cmd=deletereading%20-q%20fritzbox%20box_notify_8_1.*; set%20fritzbox%20ledSetting%20notifyoff:8_1&fwcsrf=csrf_210652084325289' target='_self'>&lt;quittieren&gt;</a></html>

zusätzlich gibt es schon länger ein seltsames problem mit dem attr enableBoxReadings.
jedes mal, wenn ich eine neue modulversion von dir installiere, ist dann nach fhem restart das attribut verschwunden. bei mir ist nur box_notify enthalten.


gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

JoWiemann

Hallo Frank,

ups, da hatte ich bei enableBoxReadings und beim Zusammensetzen des Reading Namens etwas übersehen. Sorry.

Anbei eine neue Beta.

Und, eine Bitte. Würdest Du bitte einmal in den Entwicklertools nachsehen, welche Aufrufe, neben home/home.js, noch gemacht werden. Danke Dir.
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