Ankündigung

Einklappen
Keine Ankündigung bisher.

homebridge-knx 0.3.0 alpha (Apple HomeKit interface)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • McEgg
    antwortet
    Und wie bring ich den dazu? Wie gesagt, ich bilde mir ein, dass das die letzten Tage mal ging und ich eigentlich nur die Probleme mit den Lamellen hatte....

    Einen Kommentar schreiben:


  • vento66
    antwortet
    Das liegt am Handler, der muss das drehen.... Apple positioniert seit je her die Jalousien verkehrt.

    Einen Kommentar schreiben:


  • McEgg
    antwortet
    Hm, jetzt habe ich gerade das nächste Problem mit der Jalousie. Jetzt fährt die Jalousie auf einmal die falsche Position an.

    Aktuelle Konfiguration:
    Code:
                    {
                        "ServiceType": "WindowCovering",
                        "Handler": "WindowCoveringTilt",
                        "ServiceName": "Jalousie Küche",
                        "Characteristics": [
                            {
                                "Type": "TargetPosition",
                                "Set": [
                                    "3/3/90"
                                ],
                                "Listen": [
                                    "3/3/90"
                                ],
                                "DPT": "DPT5"
                            },
                            {
                                "Type": "CurrentPosition",
                                "Listen": [
                                    "3/1/92"
                                ],
                                "DPT": "DPT5"
                            },
                            {
                                "Type": "PositionState"
                            },
                            {
                                "Type": "TargetHorizontalTiltAngle",
                                "Set": [
                                    "3/3/91"
                                ],
                                "Listen": [
                                    "3/3/91"
                                ],
                                "DPT": "DPT5"
                            },
                            {
                                "Type": "CurrentHorizontalTiltAngle",
                                "Listen": [
                                    "3/1/93"
                                ],
                                "DPT": "DPT5"
                            }
                        ],
                        "KNXObjects": [
                            {
                                "Type": "ShutterMove",
                                "Listen": "3/0/92",
                                "DPT": "DPT1"
                            }
                        ],
                        "KNXReadRequests": [
                            "3/1/92",
                            "3/1/93"
                        ],
                        "LocalConstants": {
                            "ninetyDegRotation": "false"
                        }
                    }
    Wenn ich sage, dass auf 80% gefahren werden soll, wird auf 20% gefahren. Sage ich 30%, wird auf 70% gefahren usw.
    Wie kann das denn sein?
    Im Log steht das (nach dem Befehl "fahre 30% an"):
    Code:
    Jan 03 21:58:42 debian homebridge[4325]: INFO: onHKValueChange(TargetPosition, 66, 30)
    
    Jan 03 21:58:42 debian homebridge[4325]: [3.1.2020, 21:58:42] [homebridge-knx.KNX] WindowCoveringTilt->customServiceAPI.getValue(CurrentPosition)
    
    Jan 03 21:58:42 debian homebridge[4325]: [3.1.2020, 21:58:42] [homebridge-knx.KNX] Returning HomeKitValue
    
    Jan 03 21:58:42 debian homebridge[4325]: [3.1.2020, 21:58:42] [homebridge-knx.KNX] Returning HomeKitValue of 66
    
    Jan 03 21:58:42 debian homebridge[4325]: [3.1.2020, 21:58:42] [homebridge-knx.KNX] WindowCoveringTilt->customServiceAPI.setValue(PositionState,0)
    
    Jan 03 21:58:42 debian homebridge[4325]: INFO: onHKValueChange after calc (178.5)
    
    Jan 03 21:58:42 debian homebridge[4325]: [3.1.2020, 21:58:42] [homebridge-knx.KNX] WindowCoveringTilt->customServiceAPI.knxWrite(TargetPosition,178.5,DPT5)
    
    Jan 03 21:58:42 debian homebridge[4325]: INFO: onKNXValueChange(TargetPosition, 30, 178)
    
    Jan 03 21:58:42 debian homebridge[4325]: [3.1.2020, 21:58:42] [homebridge-knx.KNX] WindowCoveringTilt->customServiceAPI.getValue(CurrentPosition)
    
    Jan 03 21:58:42 debian homebridge[4325]: [3.1.2020, 21:58:42] [homebridge-knx.KNX] Returning HomeKitValue
    
    Jan 03 21:58:42 debian homebridge[4325]: [3.1.2020, 21:58:42] [homebridge-knx.KNX] Returning HomeKitValue of 66
    
    Jan 03 21:58:42 debian homebridge[4325]: [3.1.2020, 21:58:42] [homebridge-knx.KNX] WindowCoveringTilt->customServiceAPI.getValue(CurrentPosition)
    
    Jan 03 21:58:42 debian homebridge[4325]: [3.1.2020, 21:58:42] [homebridge-knx.KNX] Returning HomeKitValue
    
    Jan 03 21:58:42 debian homebridge[4325]: [3.1.2020, 21:58:42] [homebridge-knx.KNX] Returning HomeKitValue of 66
    
    Jan 03 21:58:42 debian homebridge[4325]: [3.1.2020, 21:58:42] [homebridge-knx.KNX] WindowCoveringTilt->customServiceAPI.setValue(PositionState,0)
    
    Jan 03 21:58:42 debian homebridge[4325]: [3.1.2020, 21:58:42] [homebridge-knx.KNX] WindowCoveringTilt->customServiceAPI.setValue(TargetPosition,30.196078431372555)
    
    Jan 03 21:58:53 debian homebridge[4325]: INFO: onKNXValueChange(CurrentPosition, 66.27450980392157, 178)
    
    Jan 03 21:58:53 debian homebridge[4325]: [3.1.2020, 21:58:53] [homebridge-knx.KNX] WindowCoveringTilt->customServiceAPI.setValue(CurrentPosition,30.196078431372555)
    
    Jan 03 21:58:53 debian homebridge[4325]: [3.1.2020, 21:58:53] [homebridge-knx.KNX] WindowCoveringTilt->customServiceAPI.setValue(PositionState,2)
    
    Jan 03 21:58:53 debian homebridge[4325]: [3.1.2020, 21:58:53] [homebridge-knx.KNX] WindowCoveringTilt->customServiceAPI.getValue(CurrentPosition)
    
    Jan 03 21:58:53 debian homebridge[4325]: [3.1.2020, 21:58:53] [homebridge-knx.KNX] Returning HomeKitValue
    
    Jan 03 21:58:53 debian homebridge[4325]: [3.1.2020, 21:58:53] [homebridge-knx.KNX] Returning HomeKitValue of 30
    
    Jan 03 21:58:53 debian homebridge[4325]: [3.1.2020, 21:58:53] [homebridge-knx.KNX] WindowCoveringTilt->customServiceAPI.setValue(TargetPosition,30)
    
    Jan 03 21:58:53 debian homebridge[4325]: INFO: onKNXValueChange(CurrentPosition, 30.196078431372555, 178)
    
    Jan 03 21:58:53 debian homebridge[4325]: [3.1.2020, 21:58:53] [homebridge-knx.KNX] WindowCoveringTilt->customServiceAPI.setValue(CurrentPosition,30.196078431372555)
    
    Jan 03 21:58:53 debian homebridge[4325]: [3.1.2020, 21:58:53] [homebridge-knx.KNX] WindowCoveringTilt->customServiceAPI.setValue(PositionState,2)
    
    Jan 03 21:58:53 debian homebridge[4325]: [3.1.2020, 21:58:53] [homebridge-knx.KNX] WindowCoveringTilt->customServiceAPI.getValue(CurrentPosition)
    
    Jan 03 21:58:53 debian homebridge[4325]: [3.1.2020, 21:58:53] [homebridge-knx.KNX] Returning HomeKitValue
    
    Jan 03 21:58:53 debian homebridge[4325]: [3.1.2020, 21:58:53] [homebridge-knx.KNX] Returning HomeKitValue of 30
    
    Jan 03 21:58:53 debian homebridge[4325]: [3.1.2020, 21:58:53] [homebridge-knx.KNX] WindowCoveringTilt->customServiceAPI.setValue(TargetPosition,30)
    Im Gruppenmonitor in der ETS kommen auch 70% an. An welcher Stelle wird der Befehl also verdreht???
    Hab schon die knx_config.json neu eingespielt (ohne Keys), die config.json geändert und die Bridge neu in der App eingefügt. Hilft alles nichts...

    Einen Kommentar schreiben:


  • McEgg
    antwortet
    Ah danke. Das ist wirklich nicht schön gemacht. Funktioniert bei mir auch nicht wirklich gut. Naja, mal schauen.
    Das mit den zwei Objekten ist auch ne Idee. Wäre zumindest ein Workaround. Nicht besonders elegant, aber würde bestimmt gehen.
    Ein neuer Handler hört sich auch gut an. Wenn du Zeit hast und der Aufwand net zu groß ist... ich teste ihn gerne.

    Einen Kommentar schreiben:


  • felixpause
    antwortet
    Zitat von McEgg Beitrag anzeigen
    Naja, da das Ziel ist alles per Sprache zu steuern, ist es natürlich unschön, dass man dann nochmal manuell in der App die Lamellen nachstellen muss.
    Ich habe außerdem gerade mal nachgeschaut. Das Device ist wie oben abgebildet angelegt. Ich habe allerdings nur einen Slider zum Hoch- und Runterfahren. Da ist kein weiterer für die Lamellen. Woran liegt das? Oder bin ich blind?
    Das ist tatsächlich etwas versteckt. Du musst lange auf das Objekt klicken. Danach siehst du den Slider den du vermutlich bereits angesprochen hast. Wenn du nun aber neben den Slider einfach nochmal nach unten scrollst kommst du auf die Detailansicht wo du auch Raum, Favoritenansicht, etc. anpassen kannst. Und dort ist oben dann der Slider für den Lamellenwinkel.

    Ich muss dir recht geben: alles andere als schön. Ich bin auch am überlegen ob ich einen neuen Handler dazu schreiben soll.

    Andere Idee: Lamellen und Behanghöhe als separate Objekte...

    Einen Kommentar schreiben:


  • McEgg
    antwortet
    Naja, da das Ziel ist alles per Sprache zu steuern, ist es natürlich unschön, dass man dann nochmal manuell in der App die Lamellen nachstellen muss.
    Ich habe außerdem gerade mal nachgeschaut. Das Device ist wie oben abgebildet angelegt. Ich habe allerdings nur einen Slider zum Hoch- und Runterfahren. Da ist kein weiterer für die Lamellen. Woran liegt das? Oder bin ich blind?

    Einen Kommentar schreiben:


  • felixpause
    antwortet
    Zitat von McEgg Beitrag anzeigen
    felixpause
    D.h. Jalousien sind quasi nicht per Homebridge zu steuern, da man diese damit nicht zu bekommt? Oder hast du es anders gelöst?
    Du musst die Lamellen manuell auch auf 100% setzen. Den Slider gibt es ja dazu in der Home App. Nur das Siri Kommando dafür kenne ich nicht.

    Das Problem liegt an der Stelle ja eher daran, dass wir mit der absoluten Position im Aktor arbeiten und der Aktor die Lamellenposition nicht verändert. Man müsste also im Handler anpassen, dass wenn die Position auf 100% gesetzt wird, auch die Lamellen auf 100% gesetzt werden. Ich weiß allerdings nichts ob das andere Nebeneffekte hat.

    Einen Kommentar schreiben:


  • felixpause
    antwortet
    Zitat von knxmelon Beitrag anzeigen
    Hallo, da meine MDT Rolladen Aktoren mit dem Gira Handler nicht richtig gelaufen sind, habe ich einen eigenen implementiert. Code und Eintrag für knx_config.json anbei. Habe es noch nicht besonders ausführlich getestet - bei mir läufts jedenfalls.
    Die Datei MDTRollingShutterActuator.js muss im addins Verzeichnis des homebridge-knx modules abgelegt werden. Bei mir: /usr/local/lib/node_modules/homebridge-knx/lib/addins

    Gruß Jan
    Danke, dass du dein addin geteilt hast. Ich hab bei mir das Problem gehabt, dass beim drauftippen zu Schließen immer auf 99% gefahren wurde. Auch wenn es damit theoretisch zu ist wurde es weiterhin als 1% geöffnet angezeigt. Ich hab deshalb im onHKValueChange zwei Zeilen bei mir angepasst (siehe Kommentar dazu im Code).

    Code:
    // felixpause: es wird nirgends durch newValue geteilt
    //if (newValue == 0) newValue = 1; //schmutzig, Division durch 0 vermeiden
    
    switch (field){
    case "TargetPosition":
    
    // felixpause: ich fahre auch bei weniger als 10 Unterschied die neue Position an.
    //Rolladen soll neues Ziel anfahren, aber nur wenn die neue Position sich von der alter um mehr als 10% unterscheidet.
    //if (Math.abs(oldValue - newValue)>10) this.myAPI.knxWrite("TargetPosition", 255-(Math.round(newValue*10)/10/100*255), "DPT5");
    
    this.myAPI.knxWrite("TargetPosition", 255-(newValue/100*255), "DPT5");
    break;
    case "HoldPosition":
    this.myAPI.knxWrite("HoldPosition", 1, "DPT1");
    break;
    } //switch

    Einen Kommentar schreiben:


  • McEgg
    antwortet
    felixpause
    D.h. Jalousien sind quasi nicht per Homebridge zu steuern, da man diese damit nicht zu bekommt? Oder hast du es anders gelöst?

    Einen Kommentar schreiben:


  • felixpause
    antwortet
    pioneersteffen: Den Siri Befehl für die Lamellen habe ich leider auch nicht herausfinden können. Konnte auch bei Google nichts finden. Das scheint noch zu fehlen.
    McEgg: Das Verhalten mit den offenen Lamellen habe ich bei mir auch beobachtet. Die Lamellenposition bleibt unverändert wenn die Höhe verändert wird. Da sie in offener Position bei 0% sind, sind sie auch bei geschlossener Position bei 0%. Eigentlich soweit logisch. Nur sind wir es gewohnt, dass sie normalerweise beim schließen auf 100% wechseln. Bei dem Handler arbeiten wir ja jetzt aber mit der absoluten Position im Aktor während am Taster mit Auf/Ab gearbeitet wird.

    Einen Kommentar schreiben:


  • pioneersteffen
    antwortet
    felixpause:

    Hallo Felix,

    vielen Dank für die Hilfe.

    Habe es gerade implementiert und es scheint im ersten Test zu funktionieren. Wie heißt denn der Siri Befehl um die Lamellen auf einen bestimmten Prozentwert (Winkel) zu verstellen?
    Siri hat meine benutzen Begriffe nicht verstanden. :-)

    Vielen Dank für die Hilfe nochmal!

    Viele Grüße
    Steffen

    Einen Kommentar schreiben:


  • McEgg
    antwortet
    Da hänge ich mich mal kurz mit dran.
    Habe noch nicht ganz verstanden, wie man einen Raffstore steuert. Habe es auch so wie hier gezeigt implementiert. Aber die Lammelen lassen sich nicht steuern.
    Ich kann nur die Höhe des Behangs steuern. Also z.B. Fahren den Raffstore auf 50%. Die Lamellen nehmen nach der Fahrt die Position "komplett geöffnet" ein. Das ist extrem unschön.
    Aktor ist ein ABB. Gibts hierfür ne Lösung?

    Code:
            {
                "DeviceName": "Jalousie Küche",
                "Services": [
                    {
                        "ServiceType": "WindowCovering",
                        "Handler": "WindowCoveringTilt",
                        "ServiceName": "Jalousie Küche",
                        "Characteristics": [
                            {
                                "Type": "TargetPosition",
                                "Set": [
                                    "3/3/90" [COLOR=#FF0000]===> GA: Jalousie Position anfahren[/COLOR]
                                ],
                                "Listen": [
                                    "3/3/90" [COLOR=#FF0000]===> GA: Jalousie Position anfahren[/COLOR]
                                ],
                                "DPT": "DPT5"
                            },
                            {
                                "Type": "CurrentPosition",
                                "Listen": [
                                    "3/1/92" [COLOR=#FF0000]===> GA: Jalousie Position[/COLOR]
                                ],
                                "DPT": "DPT5"
                            },
                            {
                                "Type": "PositionState"
                            },
                            {
                                "Type": "TargetHorizontalTiltAngle",
                                "Set": [
                                    "3/3/91" [COLOR=#FF0000]===> GA: Lamellen Position anfahren[/COLOR]
                                ],
                                "Listen": [
                                    "3/3/91" [COLOR=#FF0000]===> GA: Lamellen Position anfahren[/COLOR]
                                ],
                                "DPT": "DPT5"
                            },
                            {
                                "Type": "CurrentHorizontalTiltAngle",
                                "Listen": [
                                    "3/1/93" [COLOR=#FF0000]===> GA: Lamellen Position[/COLOR]
                                ],
                                "DPT": "DPT5"
                            }
                        ],
                        "KNXObjects": [
                            {
                                "Type": "ShutterMove",
                                "Listen": "3/0/92", [COLOR=#FF0000]===> GA: Jalousie fahren[/COLOR]
                                "DPT": "DPT1"
                            }
                        ],
                        "KNXReadRequests": [
                            "3/1/92", [COLOR=#FF0000]===> GA: Jalousie Position[/COLOR]
                            "3/1/93" [COLOR=#FF0000]===> GA: Lamellen Position[/COLOR]
                        ],
                        "LocalConstants": {
                            "ninetyDegRotation": "false"
                        }
                    }]
            }
    Zuletzt geändert von McEgg; 29.12.2019, 15:09.

    Einen Kommentar schreiben:


  • felixpause
    antwortet
    Zitat von pioneersteffen Beitrag anzeigen
    Hallo Zusammen,

    hat es schon jemand geschafft, einen MDT Jalousienaktor mit Raffstores anzusteuern?

    Wie müsste dafür die KNX Config aussehen?

    Gibt es eine neue Quelle für die HomeKit ServiceType? Die Liste von khaosT (automatisch generierte Liste mit JavaScript-Definitionen aller Services und CHaracteristics) scheint es nicht mehr zu geben?!

    Vielen Dank für die Hilfe!

    Viele Grüße
    Steffen
    Hallo Steffen,

    bei mir laufen die Raffstore am MDT Aktor eigentlich recht gut mit dem "WindowCoveringTilt" Handler.
    TargetPosition und TargetHorizontalTiltAngle hängt jeweils an der absoluten Position. Die müsstest du einmal noch im Aktor aktivieren.

    Code:
    {
    "DeviceName": "Raffstore",
    "Services": [
    {
    "ServiceType": "WindowCovering",
    "Handler": "WindowCoveringTilt",
    "ServiceName": "Raffstore Essen",
    "Characteristics": [
    {
    "Type": "TargetPosition",
    "Set": [
    "2/6/30"
    ],
    "Listen": [
    "2/6/30"
    ],
    "DPT": "DPT5"
    },
    {
    "Type": "CurrentPosition",
    "Listen": [
    "2/1/30"
    ],
    "DPT": "DPT5"
    },
    {
    "Type": "PositionState"
    },
    {
    "Type": "TargetHorizontalTiltAngle",
    "Set": [
    "2/7/30"
    ],
    "Listen": [
    "2/7/30"
    ],
    "DPT": "DPT5"
    },
    {
    "Type": "CurrentHorizontalTiltAngle",
    "Listen": [
    "2/4/30"
    ],
    "DPT": "DPT5"
    }
    ],
    "KNXObjects": [
    {
    "Type": "ShutterMove",
    "Listen": "2/0/30",
    "DPT": "DPT1"
    }
    ],
    "KNXReadRequests": [
    "2/1/30",
    "2/4/30"
    ],
    "LocalConstants": {
    "ninetyDegRotation": "true"
    }
    }
    ]
    }
    Meld dich sonst wenn du da noch Fragen zu hast.

    Update: Die Liste der HomeKit Service Types ist hier auch zu sehen:https://github.com/KhaosT/HAP-NodeJS...lib/Service.ts bzw. https://github.com/KhaosT/HAP-NodeJS...gen/HomeKit.ts
    Zuletzt geändert von felixpause; 29.12.2019, 14:25.

    Einen Kommentar schreiben:


  • pioneersteffen
    antwortet
    Hallo Zusammen,

    hat es schon jemand geschafft, einen MDT Jalousienaktor mit Raffstores anzusteuern?

    Wie müsste dafür die KNX Config aussehen?

    Gibt es eine neue Quelle für die HomeKit ServiceType? Die Liste von khaosT (automatisch generierte Liste mit JavaScript-Definitionen aller Services und CHaracteristics) scheint es nicht mehr zu geben?!

    Vielen Dank für die Hilfe!

    Viele Grüße
    Steffen

    Einen Kommentar schreiben:


  • knxmelon
    antwortet
    Hallo, da meine MDT Rolladen Aktoren mit dem Gira Handler nicht richtig gelaufen sind, habe ich einen eigenen implementiert. Code und Eintrag für knx_config.json anbei. Habe es noch nicht besonders ausführlich getestet - bei mir läufts jedenfalls.
    Die Datei MDTRollingShutterActuator.js muss im addins Verzeichnis des homebridge-knx modules abgelegt werden. Bei mir: /usr/local/lib/node_modules/homebridge-knx/lib/addins

    Gruß Jan
    Angehängte Dateien

    Einen Kommentar schreiben:

Lädt...
X