snowdd1 / homebridge-knx-de

German Issue/Discussion forum for homebridge-knx
https://github.com/snowdd1/homebridge-knx
20 stars 4 forks source link

Rollläden ohne Stellmotor #30

Closed codanator closed 7 years ago

codanator commented 7 years ago

Hallo,

wie kann ich am besten meine Rollläden in Homekit integrieren? Die sind als DPT1 drin also 0 ist aufmachen 1 ist zumachen. Wenn man unter dem öffnen wieder 0 schickt bleiben sie stehen und umgekehrt.

Habs mal mit einem addin probiert als Basis hab ich das WindowCoveringTilt genommen. Aber ich hab ja nur eine Gruppenadresse und damit lässt sich das ganze nicht abbilden. Wenn ich im config bei der Target oder Currentposition keine Gruppenadresse angebe wird im addin das onKNXValueChange nicht aufgerufen also kann ich auch nicht wirklich faken.

Für einen Ansatz wär ich sehr dankbar da alles perfekt funktionert ausser die Rollläden halt.

snowdd1 commented 7 years ago

Tag,
Du hast Rolläden, daher würde ich die Geschichte mit der Lamellensteuerung (Tilt) erst mal komplett ausblenden.
Dein Aktor unterstützt nur DPT1.008 auf/ab ? Hast Du mal in der ETS nachgesehen, ob du die absolute Positionierung anschalten kannst? Mein Elektriker hat mir gegenüber auch behauptet, dass das nicht ginge - bis ich mir die ETS selbst gekauft habe...

Maine Aktoren machen folgendes:

Wenn ich im config bei der Target oder Currentposition keine Gruppenadresse angebe wird im addin das onKNXValueChange nicht aufgerufen

Das ist richtig, Du hast ja auch keine Nachrichten auf dem Bus. Aus dem Add-in heraus kannst Du mit this.myAPI.setValue() aber einen Wert an HomeKit übergeben!

Die einzige echte Adresse die Du hast ist ja die für Fahrt und Stop. Solltest noch rausfinden ob es nicht doch eine zweite gibt (Unterscheidung Kurzzeitbetrieb/Langzeitbetrieb)

Gruß Raoul

stephandue commented 7 years ago

Ich habe mir dazu das WindowCoveringTilt Add-In umgeschrieben. Bei mir ist 2/0/10 auf / ab und 2/0/11 stop. Das script funktioniert so, dass wenn ich einen bei HomeKit einen Wert unter 20 sende die Jalousien herunterfahren, wenn ich einen Wert über 80 eingebe fahren sie hoch und bei allem dazwischen stoppen sie. Ich habe dazu eine neue neue Datei (WindowCoveringTilt2.js) angelegt:

//START
var HandlerPattern = require('./handlerpattern.js');
var log = require('debug')('WindowCoveringTilt2');

class WindowCoveringTilt2 extends HandlerPattern {

    onKNXValueChange(field, oldValue, knxValue) {
        // value for HomeKit
        var newValue;

        console.log('INFO: onKNXValueChange(' + field + ", "+ oldValue + ", "+ knxValue+ ")");

    } // onBusValueChange

    onHKValueChange(field, oldValue, newValue) {
        // homekit will only send a TargetPosition value, so we do not care about (non-) potential others

        if (field === "TargetPosition") {
            console.log('INFO: onHKValueChange(' + field + ", "+ oldValue + ", "+ newValue + ")");
            // update the PositionState characteristic:     
            // get the last current Position
            //var lastPos = this.myAPI.getValue("CurrentPosition");

            if (newValue < 20) {
                this.myAPI.knxWrite("TargetPosition", 1, "DPT1"); // send the new position to the KNX bus

            } else if (newValue > 80){
                this.myAPI.knxWrite("TargetPosition", 0, "DPT1"); // send the new position to the KNX bus

            }
            else if (newValue == 50){
                this.myAPI.knxWrite("HoldPosition", 1, "DPT1"); // send the new position to the KNX bus

            }

        } 

    } // onHKValueChange
} // class  
module.exports= WindowCoveringTilt2;

//END

Hier dann das entsprechende Device in der knx_config.json:

//START
{
            "DeviceName": "Wohnzimmer Fenster",
            "Services": [{
                    "ServiceType": "WindowCovering",
                    "Handler": "WindowCoveringTilt2",
                    "ServiceName": "Rollo",
                    "Characteristics": [{
                        "Type": "TargetPosition",
                        "Set": ["2/0/10"],
                        "DPT": "DPT1"
                    }, {
                        "Type": "CurrentPosition",
                        "Listen": ["2/0/14"]
                    }, {
                        "Type": "HoldPosition",
                        "Set": ["2/0/11"],
                        "DPT": "DPT1"
                    }, {
                        "Type": "PositionState"
                    }]
                }

            ]
        }
//END

Viele Grüße Stephan

snowdd1 commented 7 years ago

Ich habe mir erlaubt Deinen Text zu formatieren ( siehe #23 ).

Schön, dass du eine Lösung gefunden hast!

sven82rlp commented 3 years ago

Hallo zusammen, ich bei hier im Forum. Hab seit letzter Woche eine Homebridge laufen mit der ich bis jetzt Lichter und Steckdosen der bestehenden KNX Installation schalten kann. Bei den Rollläden komm ich derzeit nicht weiter. Sie lassen sich schalten im HomeKit Auf und Ab jedoch nicht stoppen. Auch das Symbol im HomeKit bleibt beim öffnen ständig auf wird geöffnet stehen. Vielleicht hab jemand eine Idee oder kann mich unterstützen.

Verbaut sind im KNX Merten Komponenten. Beispiele lade ich gerne hoch mit den jeweiligen Adressen.

Bis dahin und schon mal vielen Dank 🙏