Autor Thema: TrendLineStatus()  (Gelesen 119 mal)

Offline Paul Guijt

  • Full Member
  • ***
  • Beiträge: 106
TrendLineStatus()
« am: 27 Mai 2020, 17:50:56 »
Hallo alle,

Ich habe in meine 99_myUtils.pm eingefügt:

sub TrendLineStatus($)
#
#       Usage: in stateFormat { TrendLineStatus( $name) ; }
#

{
        my $Status              = "OK" ;
        my $Module              = $_[0] ;

        my $ModuleStatus        = ReadingsVal($Module,"status","");
        my $ServiceCode         = ReadingsVal($Module,"boiler_data_ServiceCode","");
        my $ServiceCodeNumber   = ReadingsVal($Module,"boiler_data_ServiceCodeNumber",0);
        my $HeartbeatUptime     = ReadingsAge($Module,"heartbeat_uptime",0);

        my @ErrorCodes          = (     "H--", "H01", "H02", "H03", "H07", "H11", "H12", "H13", "H25", "H27", "H28", "H29" ) ;
        my @ErrorNumbers        = (     207, 210, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 227, 228, 229,
                                        231, 233, 234, 235, 237, 238, 239, 240, 241, 242, 246, 250, 251, 254, 259, 260, 261, 263,
                                        264, 266, 269, 271, 273, 276, 277, 278, 280, 281, 282, 285, 286, 288, 289, 306, 316, 317,
                                        318, 322, 323, 328, 329, 332, 338, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
                                        353, 356, 357, 358, 359, 360, 361, 373, 374, 509, 550, 552, 554, 578, 601, 602, 607, 608, 609, 611 ) ;

        if      ( $ServiceCode          ~~ @ErrorCodes )        { $Status = "Error"   }
        elsif   ( $ServiceCodeNumber    ~~ @ErrorNumbers )      { $Status = "Error"   } ;
        if      ( $HeartbeatUptime      > 90 )                  { $Status = "Offline" } ;

        return $Status ;

}

Natürlich kann man es nach Belieben anpassen. Überprüfe auch die Fehlercodes im Handbuch Ihres Kessels.

Freundliche Grüßen,
Paul
RasPi 2B, CUL 433, Jens' FW, Berker, HomeMatic, KlikaanKlikuit, RFXtrx443, Squeezebox in die Niederlände