Last State in "MISSING ACK" Routine bearbeiten

Begonnen von ritchie, 11 Januar 2016, 22:11:12

Vorheriges Thema - Nächstes Thema

ritchie

Hallo Zusammen,

ich möchte gerne in meiner generellen "MISSING ACK" ein weiteres Verhalten einbauen.

Bei der  Retro-Anzeige reicht ein normale Statusrequest, um die Anzeige wieder auf den Weg zu bringen.


define evtTransmissionError notify .*:.(MISSING.ACK.*|.*NACK.*) { evtHandlerTransmissionErrors($NAME,$EVENT);; }
attr evtTransmissionError room events



#
# Handler for Transmission errors  (No NACK received)
#
sub evtHandlerTransmissionErrors($$)
{
  my $Component = shift;
  my $State = shift;


   given($Component)
   {
   when("AlarmBetriebsAnzeige")   
     { #
     fhem("set ".$Component." statusRequest");
     }
   }
  DebianMail('XXXXXX@YYYYY.de',"FHEM Fehler Uebertragung von ".$Component,
                "Komponente ".$Component." hat den ".$State." gemeldet");
return;
}
#


Wenn ich das gleiche aber mit einer schaltbaren Unterputzdose mache, endet das in einem "No Funkquota" und das System macht erst mal auf dem Kanal nichts mehr.
Gehe ich aber hin und sende das gleiche Kommando nach ca. einer Minute nochmals von Hand, scheint das Kommando dann erfolgreich verarbeitet zu werden.

Hier meine Frage:
Wir kann ich feststellen, welches State-Kommando (ein oder aus) an den jeweiligen Tag gesendet wurde. Diesen Status möchte ich dann verzögert nochmals an die entsprechende Komponente senden. Eine Eigenschaft, last Kommand konnte ich nicht finden.

Was sagt;
ZitatdeviceMsg       off (to CUL_0)
aus ?


Viele Grüße

R.





IPU662  IPFIRE & Fhem (Homematic + MAX) - Produktiv
Intel iCore 3 / 16GBRAM / 500GB SSD  (1Wire - USB) - Produktiv

Deudi

Ich hatte mal einen Schaltaktor, der rumgezickt hatte. Da habe ich dann anstatt den Befehl direkt zu senden immer einen Wrapper aufgerufen, sprich eine Funktion, die den aktuellen Befehl im Device in ein Reading schreibt (last_cmd) und dann den FHEM Befehl ausführt. Dann kann man immer später den Sollzustand ermitteln und darauf reagieren falls ein Missing-Ack oder IOerr kommt.
Gigabyte Brix, Ubuntu 16.04.3 LTS, Homematic, Z-Wave, EnOcean, Shelly@MQTT, SIGNALduino, JeeLink DAVIS-Sketch