Binde dein Homekit mal in Node-Red ein und Debug das volle Nachrichten Element. Dann schau dir mal an welche Charakteristika da verwendet werden und auf welchen Wer sie stehen.
/**
* Service "Window Covering"
*/
export class WindowCovering extends Service {
public static readonly UUID: string = "0000008C-0000-1000-8000-0026BB765291";
constructor(displayName?: string, subtype?: string) {
super(displayName, WindowCovering.UUID, subtype);
// Required Characteristics
this.addCharacteristic(Characteristic.CurrentPosition);
this.addCharacteristic(Characteristic.PositionState);
this.addCharacteristic(Characteristic.TargetPosition);
// Optional Characteristics
this.addOptionalCharacteristic(Characteristic.CurrentHorizontalTiltAngle);
this.addOptionalCharacteristic(Characteristic.TargetHorizontalTiltAngle);
this.addOptionalCharacteristic(Characteristic.Name);
this.addOptionalCharacteristic(Characteristic.ObstructionDetected);
this.addOptionalCharacteristic(Characteristic.HoldPosition);
this.addOptionalCharacteristic(Characteristic.CurrentVerticalTiltAngle);
this.addOptionalCharacteristic(Characteristic.TargetVerticalTiltAngle);
}
}
Service.WindowCovering = WindowCovering;
Alles anzeigen
Das ist mal meines Wisen nach das HomeKit Model ... hab ich von hier:
https://github.com/homebridge/…ons/ServiceDefinitions.ts
und da stehen die Beschreibungen der erlaubten Werte der C.
https://github.com/homebridge/…racteristicDefinitions.ts
Mit dem Debug kannst du oder wirst du herausfinden, dass die Current, Taget und Position State in der richtigen Reihenfolge kommen müssen, sonst wartet HK auf einen Wert der nicht kommt. Also Current -> Target
(zum Beispiel 100 ->0) und Postition State dazwischen aktualisiert den Wer wo der Rolladen gerade steht.
Der Postionstate kann auch der Target State sein. also so was wie halb offen .. etc.
Vermutlich stimmt da was in der zigbee Umsetzung der Rollos zu Homekit nicht.
Mehr weiss ich leider auch nicht, da ich die Rollos nicht habe. Nur in die Richtung würde ich mal analysieren.