Antworten
Jan 10, 2017 - 00:34
Nun dazu machst du am besten einen Screenshot von deinem Programm. Ansonsten ist das eine Frage für das homematic-forum.de
Jan 10, 2017 - 04:54
Danke für den Kommentar; inzwischen konnte ich das Problem selber eingrenzen.
Natürlich hat die CCU das Ereignis an mein Programm weitergereicht. Nur leider war dieses fehlerhaft.
Eine Analyse des Ereignis-Objektes hat mir auf die Sprünge geholfen.
Dieses hat den Datentyp "Datenpunkt" und das Programm darf dann halt nur die Methoden benutzen, die für diesen Datentyp gültig sind.
(siehe Objektmodel Handbuch)
Hier ein Code-Schnipsel, welches mir weitergeholfen hat:
Natürlich hat die CCU das Ereignis an mein Programm weitergereicht. Nur leider war dieses fehlerhaft.
Eine Analyse des Ereignis-Objektes hat mir auf die Sprünge geholfen.
Dieses hat den Datentyp "Datenpunkt" und das Programm darf dann halt nur die Methoden benutzen, die für diesen Datentyp gültig sind.
(siehe Objektmodel Handbuch)
Hier ein Code-Schnipsel, welches mir weitergeholfen hat:
var motionEvent = dom.GetObject("$src$");
var debugMessages = dom.GetObject("DebugMessages");
debugMessages.State("Name:"# motionEvent.Name() );
debugMessages.State("TypeName:" # motionEvent.TypeName() );
debugMessages.State("ValueType:"# motionEvent.ValueType());
debugMessages.State("Value:" # motionEvent.Value() );
debugMessages.State("Ausloesender Channel:"# motionEvent.Channel() );
var channel = dom.GetObject(motionEvent.Channel());
var dataPoint = channel.DPByHssDP("BRIGHTNESS");
if (dataPoint){
debugMessages.State("Channel - DP-BrightNess:"# dataPoint.Value() );
} else {
debugMessages.State("Datenpunkt BRIGHTNESS im Channel nicht gefunden!");
}
Zur Erklärung: das Objekt "DebugMessages" ist eine Systemvariable. Die muss man im Setup anlegen und so einstellen, dass Änderungen an dieser Variable protokolliert werden. Damit erzeugt man sich dann ein ein entsprechendes Systemprotokoll:
Neuen Kommentar hinzufügen