Closed jolichter closed 1 year ago
PS: Um den PositionState des Shelly 2.5 zu übersetzen, habe ich auch folgendes Skript im Conversion-Feld getestet (leider ohne Erfolg):
// To HomeKit
function(value) {
switch (value) {
case 'close':
return 0;
case 'open':
return 1;
case 'stop':
return 2;
default:
// Fehlerbehandlung für unbekannte Zustände
console.error('Unbekannter ioBroker PositionState:', value);
return null;
}
}
// To IOBroker
function(value) {
// Hier ist nichts zu konvertieren, da PositionState von HomeKit zu ioBroker nicht zurück konvertiert werden soll.
}
Meine Vermutung:
Es sieht es so aus, als ob das Hauptproblem darin besteht, dass HomeKit den Status des Rollos nicht korrekt anzeigt, da der Shelly 2.5 nur die Werte Shutter.Position (im Bereich von 0-100) und Shutter.State (close, open, stop [0, 1, 2]) zur Verfügung stellt. Diese Werte entsprechen möglicherweise nicht den Erwartungen von HomeKit.
HomeKit erwartet normalerweise separate Werte für CurrentPosition und TargetPosition, um den aktuellen und den Zielzustand des Rollladens darzustellen. Da der Shelly 2.5 jedoch nur einen Wert für Shutter.Position liefert, der sowohl für CurrentPosition als auch für TargetPosition verwendet wird, scheint HomeKit den Shutter.State zu ignorieren?
Aufgrund dieser Einschränkung zeigt HomeKit möglicherweise keinen korrekten Status für den Rollladen an, da CurrentPosition und TargetPosition immer den gleichen Wert haben und sich nicht ändern.
Um dieses Problem zu lösen, müsste eine Lösung gefunden werden, um HomeKit mit den erwarteten separaten Werten für CurrentPosition und TargetPosition zu versorgen, während der Shelly 2.5 weiterhin nur den Wert für Shutter.Position bereitstellt.
OK, habe das für mich mit einem Datenpunkt und Blockly lösen können. Vielleicht kennt jemand eine bessere Lösung? Hier mein Fix:
Dadurch habe ich immer die Position nach einem Stopp sowie auch dann, wenn der Rollo mit einer neuen TargetPostion gestartet wird. Im Yahka-Adapter CurrentPosition State, den Datenpunkt "Rollo1-Postion-StoppedAt" eintragen.
Das funktioniert bei mir, da sich die aktuelle Position erst nach dem Stopp aktualisiert.
PS: PositionState habe ich deaktiviert.
Hallo, ich verwende einen Shelly 2.5 im Shutter-Modus für ein Fensterrollo. Die Integration mit ioBroker und HomeKit funktioniert bis auf den Status einwandfrei. Soweit ich weiß, muss der PositionState für HomeKit einen Wert zwischen 0 und 2 haben und repräsentiert nicht die tatsächliche Position, sondern den Status:
0 - Rollo fährt herunter 1 - Rollo fährt hoch 2 - Rollo steht still
Da der Shelly 2.5 jedoch Zeichenketten (Strings: "close", "open" und "stop") anstelle von Ganzzahlen (Integers: 0, 1 oder 2) ausgibt, habe ich dies durch eine "Conversion Map" angepasst. Dennoch zeigt HomeKit mir den aktuellen Zustand des Rollos (ob es steht, herunterfährt oder hochfährt) nicht an.
Jemand eine Idee oder Tipp dazu? Oder kann HomeKit das (derzeit) nicht?
ioBroker: V 6.3.5 Node.js: V 18.16.0 Yahka: V 0.17.0 Shelly 2.5 Firmware: 20220809-123456/v1.12-g99f7e0b