Ich habe seit gestern zusätzlich zur Waschmaschine auch noch Geschirrspüler, Kochfeld und Backofen in Home Connect installiert. Ging problemlos: Erst mit der doofen App die Geräte registrieren, dann im Bridge Device "scanDevices" - und alle werden erkannt.
Für lesbare Statusmeldungen (und mein Sprachinterface natürlich) gibt es für Waschmaschine und Geschirrspüler Hilfsroutinen.
##############################################################################
#
# Geschirrspüler
#
##############################################################################
sub dishTime($){
my ($opt) = @_;
my $sec = ReadingsNum("SN55ZS49CE","BSH.Common.Option.RemainingProgramTime",0);
my $h = int($sec/3600);
my $m = ceil( ($sec-3600*$h)/60);
my $str;
if( $opt == 1 ){
return sprintf("%02d:%02d",$h,$m);
}else{
if( $h > 1){
$str = sprintf("%d Stunden %d Minuten",$h,$m)
}elsif( $h == 1){
$str = sprintf("eine Stunde %d Minuten",$m)
}else{
$str = sprintf("%d Minuten",$m)
}
if( $opt == 2 ){
return $str;
}else{
return "im ".dishProgram(1).", dieses dauert noch ".$str;
}
}
}
sub dishProgram($){
my ($opt) = @_;
my $ps = ReadingsVal("Spülmaschine","state","");
if( $ps =~ /Idle/){
return "Programm fertig"
}elsif( $ps =~ /Offline/ ){
if( $opt == 1 ){
return "Offline";
}else{
return "";
}
}
my $pp = ReadingsVal("SN55ZS49CE","BSH.Common.Option.ProgramProgress","");
my $pa = ReadingsVal("SN55ZS49CE","BSH.Common.Root.ActiveProgram","");
my %pa2a = ("Dishcare.Dishwasher.Program.Eco50" => "Eco 50",
...
my $pa2 = $pa2a{$pa};
if( $opt == 1 ){
return sprintf("Programm %s (%s)",$pa2,$pp);
}else{
return sprintf("Programm %s, dieses ist zu %s fertig",$pa2,$pp);
}
}
und userReadings
rTime:BSH.Common.Option.RemainingProgramTime.* {washTime(1)}, msgTime:BSH.Common.Option.RemainingProgramTime.* {washTime(2)}, rProgram:BSH.Common.Option.ProgramProgress.* {washProgram(1)},msgProgram:BSH.Common.Option.ProgramProgress.* {washProgram(2)}, msgAll:BSH.Common.Option.RemainingProgramTime.* {washTime(3)}
sowie ein DOIF
([WAV28G43:".*BSH.Common.EnumType.OperationState.Finished.*"])
({fhem193Cmd('set TelegramBot message xxxxx Die Waschmaschine ist fertig!')},
{fhem193Cmd('set TelegramBot message xxxxx Die Waschmaschine ist fertig!')},
{speak('Tab1.EG',"Die Waschmaschine ist fertig")},
setreading WAV28G43 msgAll derzeit nicht)
LG
pah