TrendLineStatus()

Begonnen von Paul Guijt, 27 Mai 2020, 17:50:56

Vorheriges Thema - Nächstes Thema

Paul Guijt

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, Z-Wave, TradFri in die Niederlände