Hallo zusammen,
ab und zu bleibt der Alexa-Prozess hängen, was an einem "Das Geräte XYZ reagiert nicht" nach einem Sprachkommando an Alexa zu erkennen ist. In FHEM zeigt das Alexa-Geräte dann das Icon mit dem A an.
Ich habe alle paar Minuten ein Skript am Laufen, das die korrekte Einstellung der Heizungsthermostate prüft und nachregelt. Dort wollte ich einen Check des Status des Alexa-Geräts unterbringen und dieses bei Bedarf neu starten lassen. Leider ist die Status-Abfrage nicht möglich, aber mit ein paar Handgriffen in der Datei "39_alexa.pm" nachgerüstet.
In der Subroutine "alexa_Get" muss in Zeile 688 der alte Code ...
my $list = "customSlotTypes:noArg interactionModel:noArg skillId:noArg proxyKey:noArg";
durch ...
my $list = "customSlotTypes:noArg interactionModel:noArg skillId:noArg proxyKey:noArg status:noArg";
ausgetauscht werden.
Am Ende der If-Abfragen in dieser Subroutine in Zeile 1087 nach diesem Block ...
} elsif( $cmd eq 'proxyToken' ) {
my $token = ReadingsVal($name, 'alexaFHEM.bearerToken', undef);
return alexa_decrypt($token);
}
dann diesen Code anfügen ...
elsif( $cmd eq 'status' ) {
return $hash->{"STATE"};
}
Anschließend mit "shutdown restart" neu starten und schon kann mit "get alexa status" der korrekte Status abgefragt werden (siehe angehängten Screenshot). Mein Skript macht dann bei allem, was nicht "running" enthält ein "set alexa restart" und schon läuft die Sprachsteuerung wieder.
Würde mich freuen, wenn das Eingang in den Modul-Code findet, damit ich die Änderung nach dem nächsten Update nicht wiederherstellen muss.
Viele Grüße
Erik