ioBroker / ioBroker.hm-rega

Connects HomeMatic CCU "Logic Layer" ("ReGaHSS") to ioBroker
www.iobroker.org
MIT License
43 stars 15 forks source link

In functions.fn: Prüfen, ob Objekt vom Typ CHANNEL ist #442

Closed skleeschulte closed 8 months ago

skleeschulte commented 11 months ago

Analog zu #441:

Bei mir gibt es folgendes Problem: Die Ausführung des Scripts functions.fn wird bei der Auflistung der Channels einer Funktion abgebrochen, sodass eine unvollständige Antwort (mit fehlerhafter JSON-Syntax) erzeugt wird.

Bei der Fehlersuche bin ich darauf gestoßen, dass dom.GetObject(sChannelId) nicht immer ein Objekt vom Typ CHANNEL zurückgibt, sondern in meinem Fall auch ein Objekt vom Typ SINGLECONDITION. In diesem Fall schlägt die Anweisung dom.GetObject(sChannelId).Interface() fehl und das Script bricht ab. Ich habe das Script darum um eine Überprüfung des Objekt-Typs erweitert.

Darf man davon ausgehen, dass Objekte vom Typ CHANNEL immer die Type-Nummer 33 haben? Andernfalls könnte man die Bedingung auch so formulieren: oChannel.TypeName() != "CHANNEL".