Autor Thema: [HMinfoTools.js] neu: die grosse schwester von hm.js  (Gelesen 30355 mal)

Offline RalfRog

  • Full Member
  • ***
  • Beiträge: 128
Antw:[HMinfoTools.js] neu: die grosse schwester von hm.js
« Antwort #60 am: 04 Juni 2021, 15:48:10 »
Da ich in letzter Zeit etwas mehr in Perl gemacht habe (und etwas besser Perl-Code verstanden) und den "SystemCheck" aufhübschen wollte fiel mir auf, dass die Push-Nachtrichten schon seit "Jahren" verstümmelt sein müssen, da nur das "hminfo" Event gesendet wurde.
Ich wollte daher den Code anpassen aber konnte die passenden Readings/Internals nicht finden (um dann eben über "HMinfoTools.js" zu stolpern  ;D).

Zu renovieren wären die drei Internals in 99_myUtils - ERR_names, ERR__protoNames, W__unreachNames:
############
## Perlcode um für SystemCheck die Fehler zu senden #######
sub HM_Error($$)
{
  my ($hminfo, $event) = @_;
  my $text = "";
 
  if ($event =~ /^ERR_[^_].*/) {
    # Event caused by sumERROR
    $text = "$event:".InternalVal($hminfo, "ERR_names", "");
  }
  elsif ($event =~ /^ERR__protocol:.*/) {
    # Protocol error
    $text = "$event:".InternalVal($hminfo, "ERR__protoNames", "");
  }
  elsif ($event =~ /^ERR__unreachable:.*/) {
    # Unreachable
    $text = "$event:".InternalVal($hminfo, "W__unreachNames", "")];
  }
  else {
    $text = "Unknown event: $event";
  }
#  fhem "set teleBot message @#FHEM $text" ;
  fhem "msg push $text" ;
 }

Offline RalfRog

  • Full Member
  • ***
  • Beiträge: 128
Antw:[HMinfoTools.js] neu: die grosse schwester von hm.js
« Antwort #61 am: 05 Juni 2021, 17:47:26 »
Schließen wir diesen OT Exkurs mal ab. Ich werde im ersten Schritt Folgendes ersetzen (und die Pushnachrichten auf unvollständige Ausgaben überwachen).

$text = "$event:".InternalVal($hminfo, "ERR_names", "") durch if's mit
  => ...InternalVal($hminfo, "iERR_Activity_dead", "")
  => ...InternalVal($hminfo, "iERR_battery_low", "")
  => ...InternalVal($hminfo, "iERR_sabotageError_on", "")

$text = "$event:".InternalVal($hminfo, "ERR__protoNames", "") mit
  => ...InternalVal($hminfo, "iERR__protocol", "")
 
$text = "$event:".InternalVal($hminfo, "W__unreachNames", "") mit
  => ...InternalVal($hminfo, "iERR__unreachable",, "")

Gruß Ralf

P.S. ...vielleicht ergibt sich für Martin ja mal die Gelgenheit, die cref anzupassen.  Aber ich merke ja schon als User bei mir ohne Modulpflege wieviel Arbeit in FHEM drinsteckt und die Zeit damit wegläuft...  :-[
« Letzte Änderung: 06 Juni 2021, 20:08:15 von RalfRog »

Offline frank

  • Hero Member
  • *****
  • Beiträge: 10297
Antw:[HMinfoTools.js] neu: die grosse schwester von hm.js
« Antwort #62 am: 07 Juni 2021, 13:51:33 »
hallo ralf,

Zitat
$text = "$event:".InternalVal($hminfo, "W__unreachNames", "") mit
  => ...InternalVal($hminfo, "iERR__unreachable",, "")
  => ...InternalVal($hminfo, "iW__unreachNames", "")

ausserdem gibt es noch critical protocol:
  => ...InternalVal($hminfo, "iCRI__protocol", "")
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 [hm.js]: https://forum.fhem.de/index.php/topic,106959.0.html

Offline RalfRog

  • Full Member
  • ***
  • Beiträge: 128
Antw:[HMinfoTools.js] neu: die grosse schwester von hm.js
« Antwort #63 am: 07 Juni 2021, 23:30:23 »
Hallo Frank
Ja die zugehörigen Readings der Beiden habe ich auch bei mir, da aber=0 gibt es aktuell keine Internals dazu - danke für die Namen ("iW__unreachNames", "iCRI__protocol").
Ich lass mir auch bei den "unbekannten" Fehlern ne Nachricht schicken und hoffe so nach und nach die relevanten Internals (mit den konkreten Devicenamen) zu fangen.
Denke die Häufigsten sind erfasst und ich habe jetzt endlich auch die Devicenamen zu den ERRs.

Da wird mir auch "HMinfoTools.js" sicher bei helfen  ;D

 

decade-submarginal