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,

bei system warnungen leuchtet die info-led rot und die message der warnung wird auf der overview seite der fritzbox angezeigt. siehe beispiel im 1. screenshot.
zum löschen der warnung klickt man zunächst auf den link der warnung. auf der folgenden einblendung markiert man dann die checkbox und bestätigt mit ok.


da meine fritzbox nur gelegentlich internetzugang über einen smartphone hotspot bekommt, ist es extrem nervig, wenn nach jedem beenden der internetverbindung die info-led rot leuchtet.

ausschalten kann ich die led bereits mit:
get fritzbox luaData xhr 1 delete on id 8_1 deletenotify nop lang de page overview

zum automatisieren bräuchte ich nun noch ein entsprechendes reading.

die dafür notwendigen daten liefert bereits der regelmässige aufruf von
[fritzbox | 7490 | 113.07.60 | Readout_Run_Web_LuaData.4159] - EXPANDED:mesh_role - start getting data
wenn warnungen existieren, gibt es im json der antwort unter "data" den zusätzlichen schlüssel "notify":
  "data": {
    "notify": [
      {
        "message": "",
        "category": "INTERNET",
        "id": "8_1",
        "url": "",
        "event": "NO_CONNECTION"
      }
    ],

zum löschen der message bräuchte ich also mindestens die "id" der message. "category" und "event" sind als zusätzliche, aussagekräftige infos natürlich auch nicht schlecht.

zu bedenken wäre noch, dass auch mehrere warnungen existieren können.



es wäre schön, wenn du zeit und lust finden könntest, dieses reading einzubauen.

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,

anbei mal auf die Schnelle zum Testen.

über das Attribut enableBoxReading das Reading box_notify aktivieren.

Sofern das Datum im JSON vorhanden ist werden die Readings:
box_notifyi_msg
box_notifyi_cat
box_notifyi_id
box_notifyi_url
box_notifyi_event

mit i als laufende Nummer bei mehreren Notifies bereitgestellt.

Sofern das auch bei Dir funktioniert, würde ich noch einen:

set <name> clearReadings <Reading>

Befehl einbauen, da mir kein Automatismus für das Löschen einfällt.

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,

leider schmeisst fhem die datei beim start raus.

2025.02.04 16:21:04.057 1: PERL WARNING: Backslash found where operator expected at ./FHEM/72_FRITZBOX.pm line 10863, near "encode_json \"
2025.02.04 16:21:04.058 1: stacktrace:
2025.02.04 16:21:04.058 1:     main::__ANON__                      called by ./FHEM/72_FRITZBOX.pm (10863)
2025.02.04 16:21:04.058 1:     (eval)                              called by fhem.pl (2771)
2025.02.04 16:21:04.058 1:     (eval)                              called by fhem.pl (2770)
2025.02.04 16:21:04.059 1:     main::CommandReload                 called by fhem.pl (2072)
2025.02.04 16:21:04.059 1:     main::LoadModule                    called by fhem.pl (2137)
2025.02.04 16:21:04.059 1:     main::CommandDefine                 called by fhem.pl (1285)
2025.02.04 16:21:04.059 1:     main::AnalyzeCommand                called by fhem.pl (1136)
2025.02.04 16:21:04.060 1:     main::AnalyzeCommandChain           called by fhem.pl (1424)
2025.02.04 16:21:04.060 1:     main::CommandInclude                called by fhem.pl (633)
2025.02.04 16:21:04.060 1: PERL WARNING: (Do you need to predeclare encode_json?)
2025.02.04 16:21:04.060 1: stacktrace:
2025.02.04 16:21:04.060 1:     main::__ANON__                      called by ./FHEM/72_FRITZBOX.pm (10863)
2025.02.04 16:21:04.061 1:     (eval)                              called by fhem.pl (2771)
2025.02.04 16:21:04.061 1:     (eval)                              called by fhem.pl (2770)
2025.02.04 16:21:04.061 1:     main::CommandReload                 called by fhem.pl (2072)
2025.02.04 16:21:04.061 1:     main::LoadModule                    called by fhem.pl (2137)
2025.02.04 16:21:04.062 1:     main::CommandDefine                 called by fhem.pl (1285)
2025.02.04 16:21:04.062 1:     main::AnalyzeCommand                called by fhem.pl (1136)
2025.02.04 16:21:04.062 1:     main::AnalyzeCommandChain           called by fhem.pl (1424)
2025.02.04 16:21:04.062 1:     main::CommandInclude                called by fhem.pl (633)
2025.02.04 16:21:04.063 1: PERL WARNING: Backslash found where operator expected at ./FHEM/72_FRITZBOX.pm line 10882, near "encode_json \"
2025.02.04 16:21:04.063 1: stacktrace:
2025.02.04 16:21:04.064 1:     main::__ANON__                      called by ./FHEM/72_FRITZBOX.pm (10882)
2025.02.04 16:21:04.064 1:     (eval)                              called by fhem.pl (2771)
2025.02.04 16:21:04.064 1:     (eval)                              called by fhem.pl (2770)
2025.02.04 16:21:04.064 1:     main::CommandReload                 called by fhem.pl (2072)
2025.02.04 16:21:04.065 1:     main::LoadModule                    called by fhem.pl (2137)
2025.02.04 16:21:04.065 1:     main::CommandDefine                 called by fhem.pl (1285)
2025.02.04 16:21:04.065 1:     main::AnalyzeCommand                called by fhem.pl (1136)
2025.02.04 16:21:04.065 1:     main::AnalyzeCommandChain           called by fhem.pl (1424)
2025.02.04 16:21:04.065 1:     main::CommandInclude                called by fhem.pl (633)
2025.02.04 16:21:04.066 1: PERL WARNING: (Do you need to predeclare encode_json?)
2025.02.04 16:21:04.066 1: stacktrace:
2025.02.04 16:21:04.066 1:     main::__ANON__                      called by ./FHEM/72_FRITZBOX.pm (10882)
2025.02.04 16:21:04.066 1:     (eval)                              called by fhem.pl (2771)
2025.02.04 16:21:04.067 1:     (eval)                              called by fhem.pl (2770)
2025.02.04 16:21:04.067 1:     main::CommandReload                 called by fhem.pl (2072)
2025.02.04 16:21:04.067 1:     main::LoadModule                    called by fhem.pl (2137)
2025.02.04 16:21:04.067 1:     main::CommandDefine                 called by fhem.pl (1285)
2025.02.04 16:21:04.067 1:     main::AnalyzeCommand                called by fhem.pl (1136)
2025.02.04 16:21:04.068 1:     main::AnalyzeCommandChain           called by fhem.pl (1424)
2025.02.04 16:21:04.068 1:     main::CommandInclude                called by fhem.pl (633)
2025.02.04 16:21:04.068 1: PERL WARNING: Backslash found where operator expected at ./FHEM/72_FRITZBOX.pm line 10885, near "encode_json \"
2025.02.04 16:21:04.069 1: stacktrace:
2025.02.04 16:21:04.069 1:     main::__ANON__                      called by ./FHEM/72_FRITZBOX.pm (10885)
2025.02.04 16:21:04.069 1:     (eval)                              called by fhem.pl (2771)
2025.02.04 16:21:04.069 1:     (eval)                              called by fhem.pl (2770)
2025.02.04 16:21:04.069 1:     main::CommandReload                 called by fhem.pl (2072)
2025.02.04 16:21:04.070 1:     main::LoadModule                    called by fhem.pl (2137)
2025.02.04 16:21:04.070 1:     main::CommandDefine                 called by fhem.pl (1285)
2025.02.04 16:21:04.070 1:     main::AnalyzeCommand                called by fhem.pl (1136)
2025.02.04 16:21:04.070 1:     main::AnalyzeCommandChain           called by fhem.pl (1424)
2025.02.04 16:21:04.071 1:     main::CommandInclude                called by fhem.pl (633)
2025.02.04 16:21:04.071 1: PERL WARNING: (Do you need to predeclare encode_json?)
2025.02.04 16:21:04.071 1: stacktrace:
2025.02.04 16:21:04.071 1:     main::__ANON__                      called by ./FHEM/72_FRITZBOX.pm (10885)
2025.02.04 16:21:04.071 1:     (eval)                              called by fhem.pl (2771)
2025.02.04 16:21:04.072 1:     (eval)                              called by fhem.pl (2770)
2025.02.04 16:21:04.072 1:     main::CommandReload                 called by fhem.pl (2072)
2025.02.04 16:21:04.072 1:     main::LoadModule                    called by fhem.pl (2137)
2025.02.04 16:21:04.072 1:     main::CommandDefine                 called by fhem.pl (1285)
2025.02.04 16:21:04.073 1:     main::AnalyzeCommand                called by fhem.pl (1136)
2025.02.04 16:21:04.073 1:     main::AnalyzeCommandChain           called by fhem.pl (1424)
2025.02.04 16:21:04.073 1:     main::CommandInclude                called by fhem.pl (633)
2025.02.04 16:21:04.104 1: reload: Error:Modul 72_FRITZBOX deactivated:
 syntax error at ./FHEM/72_FRITZBOX.pm line 10863, near "encode_json \"
syntax error at ./FHEM/72_FRITZBOX.pm line 10882, near "encode_json \"
syntax error at ./FHEM/72_FRITZBOX.pm line 10885, near "encode_json \"
BEGIN not safe after errors--compilation aborted at ./FHEM/72_FRITZBOX.pm line 11953, <$fh> line 5697.

2025.02.04 16:21:04.105 0: syntax error at ./FHEM/72_FRITZBOX.pm line 10863, near "encode_json \"
syntax error at ./FHEM/72_FRITZBOX.pm line 10882, near "encode_json \"
syntax error at ./FHEM/72_FRITZBOX.pm line 10885, near "encode_json \"
BEGIN not safe after errors--compilation aborted at ./FHEM/72_FRITZBOX.pm line 11953, <$fh> line 5697.
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

Hm, bin irritiert.

Ich habe Dir die bei mir fehlerfrei laufende Version nochmal angehangen.

Grüße Jörg

PS: ich habe einen Hinweis zum Klammer gefunden. Anbei eine neue Version.
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,


die code zeilen sehen jedenfalls normal aus:
         $jsonStr = encode_json \%ret;
         $saveStr = encode_base64($jsonStr,"");

       } elsif ($categrory eq "SOCKET") {
     
         @sortRet = sort (keys %ret);
         $retStr  = "";

         foreach my $key (@sortRet) {
           $retStr .= $key . ": " . $ret{$key} . "\n";
         }

         @sortRet = sort (keys %ret1);

         $retStr  .= "\n";
         foreach my $key (@sortRet) {
           $retStr .= $key . ": " . $ret1{$key} . "\n";
         }

         $jsonStr = encode_json \%ret;
         $saveStr = encode_base64($jsonStr,"");

         $jsonStr = encode_json \%ret1;
         $saveStr = encode_base64($jsonStr,"") . "|" . $saveStr;


Zitat von: JoWiemann am 04 Februar 2025, 17:05:37PS: hast Du libjson-perl installiert?
hatte ich gerade schon geschaut:
root@raspberrypi:/home/pi# apt-get install libjson-perl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Statusinformationen werden eingelesen... Fertig
libjson-perl ist schon die neueste Version (4.03000-1).
libjson-perl wurde als manuell installiert festgelegt.
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
irritieren tut mich "als manuell installiert festgelegt".
keine ahnung, was das bedeutet.


2025.02.04 16:21:23.521 0: Server started with 612 defined entities (fhem.pl:29402/2024-12-05 perl:5.032001 os:linux user:fhem pid:15574)


alle 3 fehler kommen jedenfalls von encode_json.
andere stellen gibt es nicht und im normalen modul taucht es auch nicht auf.

gibt es bei mir vielleicht 2 versionen: zb eine im normalen perl und eine über das zusätzliche paket?


gruss frank


edit: ich habe gerade die neue version gesehen und werde probieren.
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

frank

ok jörg,

neue version läuft und box_notify ist im attribut gesetzt.
jetzt muss ich erst einmal auf die rote led warten.  ;)


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

frank

hallo jörg,

irgendwas läuft schief, sobald die notify daten kommen.

der entscheidende hinweis taucht nur im normalen fhem.log auf, nicht im fritzbox-debuglog:
Not an ARRAY reference at ./FHEM/72_FRITZBOX.pm line 4520.
der code dazu, zeile 4520 habe ich gekennzeichnet:
   if ( $enableBoxReading =~ /box_notify/ && ($hash->{fhem}{fwVersion} >= 700) ) {
     if (defined $resultData->{data}->{notify}) {
       if ( ref $resultData->{data}->{notify} eq 'ARRAY' ) {
         my $id = 0;
         $rName = "box_notify";
         foreach ( @{ $resultData->{data}->{notify}} ) {
           FRITZBOX_Readout_Add_Reading $hash, $roReadings, $rName . $id . "msg", $_->[$id]->{message};      #4520
           FRITZBOX_Readout_Add_Reading $hash, $roReadings, $rName . $id . "cat", $_->[$id]->{category};
           FRITZBOX_Readout_Add_Reading $hash, $roReadings, $rName . $id . "id" , $_->[$id]->{id};
           FRITZBOX_Readout_Add_Reading $hash, $roReadings, $rName . $id . "url", $_->[$id]->{url};
           FRITZBOX_Readout_Add_Reading $hash, $roReadings, $rName . $id . "evt", $_->[$id]->{event};
           $id ++;
         }
       }
     }
   }


die daten dazu sehen eigentlich normal aus.
vielleicht möchte mein perl wieder extra klammern?
2025.02.04 19:25:28.124 5:[fritzbox | 7490 | 113.07.60 | Helper_process_JSON.12858] - DEBUG:JSON: $VAR1 = {
          'data' => {
                      'dect' => {
                                  'link' => 'dectSet',
                                  'title' => 'DECT',
                                  'txt' => 'an, 2 Schnurlostelefone angemeldet',
                                  'led' => 'led green'
                                },
                      'vpn' => {
                                 'elements' => [],
                                 'title' => 'Fernzugang'
                               },
                      'notify' => [
                                    {
                                      'url' => '',
                                      'id' => '8_1',
                                      'category' => 'INTERNET',
                                      'message' => '',
                                      'event' => 'NO_CONNECTION'
                                    }
                                  ],


das debuglog sagt dazu:
2025.02.04 19:25:28.464 1:[fritzbox | 7490 | 113.07.60 | Readout_Aborted.6718] - ERROR:Error: Timeout when reading Fritz!Box data. 144 | BlockingStart

das wiederholt sich dann alle 60s mit meinem update interval der fritzbox.
während dieser zeit gibt es dann null events vom fritzbox modul obwohl nach dem debuglog vermutlich alle daten geholt werden.

der spuk hört genau dann auf, wenn ich die rote led wieder gelöscht habe.



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

Mein Fehler.

Das ->[$id] war Unsinn. Sorry.

Anbei eine neue Version.

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

Hi
Das finde ich klasse, denn oft ist die Box ja ein bisschen verborgen untergebracht und man kriegt nicht alles mit. So kann man recht einfach per Notify drauf reagieren.

Eine Auswertung über die Logfiles wäre deutlich aufwendiger (hattest du mir zur Verfügung gestellt :) - daher stände das Grundgerüst) - zumal man sich überlegen müsste was denn alles "rote Ereignisse" sind.

;) Kann grad nicht mittesten da ich "versuche" vom PI auf Proxmox umzuziehen.


Gruß Ralf
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

danke jörg,

der test funktioniert wie angekündigt.

bei erstmaligem eintreffen der notifydaten gab es 3 events:
2025-02-05 14:46:40.710 FRITZBOX fritzbox box_notify0cat: INTERNET
2025-02-05 14:46:40.710 FRITZBOX fritzbox box_notify0id: 8_1
2025-02-05 14:46:40.710 FRITZBOX fritzbox box_notify0evt: NO_CONNECTION


ZitatSofern das auch bei Dir funktioniert, würde ich noch einen:

set <name> clearReadings <Reading>

Befehl einbauen, da mir kein Automatismus für das Löschen einfällt.
jetzt habe ich auch diesen satz verstanden.
denn ohne automatisches löschen gibt es das problem, dass ein wiederholtes identisches ereignis keine events mehr auslöst, falls "event-on-change" gesetzt ist.

problematisch ist auch die indexnummer im readingnamen oder im readingwert.
dadurch kann es zu zusätzlichen, falschen events kommen, falls bei mehreren warnungen durch wegfall einer warnung die verbliebenen neu indexiert werden.


am effektivsten fände ich eine lösung im stil der mac/nbh readings, also ein reading pro warnung:
box_notify_XXX: YYY: ZZZXXX: wert von notify id
YYY: wert von notify category
ZZZ: wert von notify event

mit meinen daten also:
box_notify_8_1: INTERNET: NO_CONNECTION
und vor dem entfernen des readings auch auf inactive setzen.

url und message würde ich ersteinmal weglassen, da sie ziehmlich lang sein könnten und dadurch die ansicht der detailseite eventuell "zerstören" könnten.
die ausführlichen meldungen existieren ja eigentlich auch in den ereignistabellen. eventuell gibt es dort ja auch die selben id nummern.


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,

werde ich dann mal umbauen. Danke für die Anstöße.

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

nachtrag:

es sieht tatsächlich so aus, dass die id eines notify auch in den ereignis logs auftaucht, zumindestens auftauchen "sollte".

im fall von id(notify)=8_1 => id(log)=801 sieht es eher nach "sollte" aus.
eventuell ist das der grund, warum die keys message und url im notify datensatz leerbleiben.


      {
        "helplink": "/help/help.lua?sid=f68d52a0f6a64391&helppage=hilfe_syslog_801.html",
        "time": "14:45:34",
        "group": "net",
        "id": 801,
        "msg": "Die FRITZ!Box ist seit mehr als einer Stunde nicht mehr mit dem Internet verbunden.",
        "date": "05.02.25",
        "nohelp": 0
      },


da wäre also theoretisch noch ein link oder hinweis in irgend einer form möglich.
also mal im auge behalten.


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,

ich kann die ID auch aus der URL holen und dann das box_notify so aufbauen:

box_notify_ID => CATEGORY EVENT ID_URL

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,

richtig cool wäre es, wenn im reading ein link existieren würde, der beim anklicken ein popup öffnet, das die details zeigt und ein button zum löschen der warnung bereitstellt.

hier https://forum.fhem.de/index.php?msg=1322435 habe ich gesehen, dass man im reading auch html code einfügen kann, den der browser dann rendert.

ich habe aber damit noch keine erfahrung. vor allem wie ein notify, auf so ein reading reagiert.
zumindestens wäre dein vorschlag mit der zusätzlichen id ein erster schritt in die richtung.


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

Zitat von: frank am 06 Februar 2025, 14:44:40richtig cool wäre es, wenn im reading ein link existieren würde, der beim anklicken ein popup öffnet, das die details zeigt und ein button zum löschen der warnung bereitstellt.

Hallo Frank,

PopUp bekomme ich noch nicht hin. Im Reading hast aber jetzt ein <delete> mit dem Du löschen kannst. Die Fehlernummer ist jetzt mit der URL hinterlegt.

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,

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

frank

hallo jörg,

die neue automatische erkennung des events "NO_CONNECTION" scheint bei mir gut zu funktionieren, danke.


aktuelle todo list aus meiner sicht:

1. "attr enableBoxReadings box_notify" verschwindet weiterhin bei fhem restart.

2. in zeile 4733 fehlt das "<html>" tag:
#           $content = "- solved - <a href='/fhem?cmd=deletereading%20-q%20" . $name . "%20" . $rName . $uid . ".*" . $FW_CSRF . "' target='_self'>&lt;quittieren&gt;</a></html>";
           $content = "<html>- solved - <a href='/fhem?cmd=deletereading%20-q%20" . $name . "%20" . $rName . $uid . ".*" . $FW_CSRF . "' target='_self'>&lt;quittieren&gt;</a></html>"

3. die cmd-beschreibung zu "ledSetting notifyoff" fehlt noch.

4. die ausführung des cmd "ledSetting notifyoff" wirft grundsätzlich einen fehler im log, obwohl der cmd offensichtlich immer bestens funktioniert (rote led wird ausgeschaltet):
2025.02.17 08:32:03.189 2: [fritzbox | 7490 | 113.07.60 | Set.2181] - SIGNIFICANT:ledsetting notifyoff:8_1 - not appliedliegt das eventuell daran, dass das zyklische pollen der fritzbox daten im hintergrund läuft.
das dauert bei mir in der regel gute 30s (gelegentlich bis zu 40s) mit einem zyklus von 60s.
oder wird nur eine falsche info ausgegeben?

5. es gibt scheinbar auch ein "STATE"-event zum cmd ledSetting?
2025-02-16_12:02:18 fritzbox ledSetting notifyoff:8_1leider kommt das nur selten, eher sporadisch vor. könnte am attr event-on-change=.* liegen.
da es aber in keinem reading auftaucht, kann ich nicht über event-on-update "nachhelfen".

oder sollte das nicht eher im reading retStat_SetGet_nonBlocking auftauchen?
eine regelmässige info im log wäre, gerade zum testen, sehr hilfreich.



Zitat von: JoWiemann am 14 Februar 2025, 08:46:42Und, eine Bitte. Würdest Du bitte einmal in den Entwicklertools nachsehen, welche Aufrufe, neben home/home.js, noch gemacht werden. Danke Dir.
home.js aufrufe habe ich gar nicht gesehen.
da es keine requests gibt, wenn ich in der warnung auf der overview seite auf details klicke, habe ich in allen js-dateien nach den "detail texten" gesucht und bin nur in home.js fündig geworden.

explizite aufrufe, die zu den zyklischen requests bei aktivem alarm angezeigt werden:
sendXhr
http://192.168.1.1/js/http.js:24:41
start
http://192.168.1.1/js/http.js:30:5
getData
http://192.168.1.1/js/refreshTimer.js:28:394
restartRefreshTimer/refreshTimers[timerId].obj<
http://192.168.1.1/js/refreshTimer.js:10:308
(Async: setTimeout handler) restartRefreshTimer
http://192.168.1.1/js/refreshTimer.js:10:279
setRefreshTimers/<
http://192.168.1.1/js/refreshTimer.js:15:49
setRefreshTimers
http://192.168.1.1/js/refreshTimer.js:14:24
lib.init
http://192.168.1.1/home/home.js:93:113
loadJsPage/<
http://192.168.1.1/js/main.js:178:303
(Async: promise callback) loadJsPage
http://192.168.1.1/js/main.js:178:144
loadNewPage
http://192.168.1.1/js/main.js:179:275
lib.changePage
http://192.168.1.1/js/main.js:202:218
lib.init
http://192.168.1.1/js/main.js:218:200
<anonym>
http://192.168.1.1/index.lua:117:6


ich habe meine home.js mal angehängt.
oder habe ich dich falsch verstanden?


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,

anbei die nächste Version zum Testen.

  • war ein grundsätzlicher Fehler mit dem Attribut, der bisher nicht aufgefallen ist. Sollte jetzt korrigiert sein
  • korrigiert
  • kommt noch, wenn alles funktioniert. set <FB-Device> ledSetting <notifyoff:><ID><br>
    Ich habe zusätzlich ein Log eingebaut, dass die Rückgabe wegschreibt. Hier würde mich Deine Rückgabe interessieren.
  • dafür brauche ich die Rückgabe. Ich war vom üblichen apply: ok ausgegangen.
  • dass mit dem "STATE"-event muss ich mir bei Gelegenheit ansehen. Das set war echt auf die Schnelle für den Link im Reading.
  • mit der home.js komme ich so nicht weiter. Ein Testaufbau mit einer FritzOS Version < 8.00 und einer alten FB dauert noch. Ich weiß noch nicht, wann ich für den Aufwand Zeit finde.

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

juemuc

Hallo Jörg,

das Attribut "enableBoxReadings box_notify" wird nun bei einem Neustart nicht mehr gelöscht.

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

moin jörg,

attr enableBoxReadings überlebt jetzt auch bei mir.


Zitat von: JoWiemann am 17 Februar 2025, 15:28:124. dafür brauche ich die Rückgabe. Ich war vom üblichen apply: ok ausgegangen.
da kommt die normale json antwort der overview seite wie bei meshrole.
der cmd war also erfolgreich, wenn der key data/notify entsprechend bereinigt wurde.
als bsp der anfang; sollte ja genügen:
$VAR1 = {
          'time' => [],
          'sid' => '3d5d73884e213dbc',
          'sidNew' => 0,
          'timeTillLogout' => '1200',
          'pid' => 'overview',
          'data' => {
                      'fritzos' => {
                                     'isLabor' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
                                     'energy' => '38',

auch beim senden von ledsetting während kein alarm aktiv ist, kommt der overview json.

sinnvoll wäre ja das aktualisieren entsprechender readings bei erhalt der json antwort.
eventuell kommt es aber zu einem unerwünschten "toggeln" der notify readings, wenn während dem löschen im hintergrund bereits ein zyklisches pollen aktiv ist.


Zitat von: JoWiemann am 17 Februar 2025, 15:28:12mit der home.js komme ich so nicht weiter. Ein Testaufbau mit einer FritzOS Version < 8.00 und einer alten FB dauert noch. Ich weiß noch nicht, wann ich für den Aufwand Zeit finde.
keine hektik, bei mir läuft es bereits wie gewünscht.  8)


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,

ich habe jetzt eine erste größere Beta unter: https://forum.fhem.de/index.php?msg=1334488 bereitgestellt.

Vielen Dank für die Idee und die Unterstützung. Über weitere Tests mit der neuen Beta würde ich mich freuen.

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

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