Beiträge von Kandel

    Ich muss euch noch etwas fragen. Wir haben mehrere Alexa's im Haus.

    Nur bei einer (meinem Sohn seiner) meldet die Alexa jeden Schaltbefehl der i4 DC (Beispiel: "Lichtschalter Hans hatte einen Besucher").

    Wir kann ich das denn ausschalten?

    Okay, für das Bad scheint mir das eine gute Lösung zu sein.

    Im Schrankraum habe ich eben das Problem dass es von Berker keinen 3er oder 4er Taster gibt, und wenn ich einen Shelly 4er Taster nutze, bekomme ich den nicht in den Berker Rahmen.

    Vielleicht habt ihr noch eine Idee für zwei Spezialfälle, bei mir im Haus:

    1. Bad:

    Ich habe im Bad 3 Lichter und einen Rollladen, Ursprünglich war die Idee, da ich ja nur Doppeltaster verbauen will, welche in die Doppelrahmen passen, dass ich die 3 Lichter zusammen schalte, mit einem Taster. Dann eben alle aus, oder alle an.

    Könnte ich die Lichter auch - wie die Rollläden schalten durch verschiedenes Drücken? Also 1 x Drücken = Deckenlicht an / 2 x Drücken = Duschkabinenbeleuchtung an / Langes Drücken = Spiegellicht an?

    Passt das mit dem Toggle Modus zusammen?

    2. Schrankraum:

    Hier habe ich ein Deckenlicht und 2 Rollläden aber auch nur einen Doppeltaster. Hier war bisher die einen Taster für Licht und den zweiten für beide Rollläden synchron. Hättet ihr eine alternative Idee für die beiden Rollläden auf einem Taster?

    Hallo, ich habe es mal über die App probiert.

    Soweit so gut - nur gibt mir der 2PM nicht die Möglichkeit den Rollladen zu stoppen.

    Nur

    1, Rollladen öffnen

    2. Rollladen schließen

    3. Bewegen Sie die Rollläden in eine bestimmte Position

    Was mache ich falsch?

    Hallo dewaldo,

    danke für die Rückmeldung.

    Ich habe nun tatsächlich die 2PM als Rolllädenschalter eingerichtet:


    IMG_4129[1].jpg

    Allerdings fahren die Rollläden falsch. Pfeil hoch - Rollladen fährt herunter und umgekehrt.

    Vor jedem Rollladen sitzt ein 2PM-

    Ich habe in der Wand jeweils einen Berker Doppeltaster verbaut:


    IMG_4130[1].jpg

    Hinter dem Doppeltaster hängt jeweils ein i4 DC - je Taste des Berker bedient einen Schalteingang des i4 - (i4 0 & 1 / 2 & 3 sind unbenutzt am i4).

    Ein Taster bedient nun im Toggle Modus einen Shelly 1 Plus, welcher das Licht im Raum aus und einschaltet. Der zweite Taster soll nun den Rollladen bedienen.

    Als Idee: 1x Drücken = Rollladen runter / 2 x Drücken = Rollladen hoch / lange Drücken = STOP

    Es könnte aber auch anders mit einem Taster geregelt werden.

    Die IP's habe ich in der FritzBox fest hinterlegt - also diesem Gerät (pro Shelly) immer die gleiche IP zuweisen. Diese IP's kenne ich auch.

    Habe auch die beiden beigefügte Scripte probiert:


    Auf dem 2 PN:

    function sendStatus(status) {
    if(status.component==="cover:0"
    && status.delta!==undefined
    && status.delta.state!==undefined) {
    print(status.delta.state);
    Shelly.call("http.get", {url:"http://xxx.xxx.xxx.xx/script/1/Cover_0?" + status.delta.state});
    }
    }

    Shelly.addStatusHandler(sendStatus);


    Auf dem i4 DC:

    let Destination = "XXX.XXX.XXX.XXX", // IP address of the cover controller
    ButtonId = 0,
    longPushURL = "http://" + Destination + "/rpc/cover.close?id=0",
    shortPushURL = [ // Datenfeld aus zwei URL, Zugriff per Index 0 oder 1
    "http://" + Destination + "/rpc/cover.open?id=0",
    "http://" + Destination + "/rpc/cover.stop?id=0"
    ],
    Sel = 0; // selected shortPushURL Index

    function receiveStatusCover_0(request) {
    if(request.method==="GET" && request.query!==undefined) {
    print(request.query);
    Sel = request.query==="stopped" || request.query==="closed" ? 0 : 1; // für short push vorselektieren
    }
    }

    HTTPServer.registerEndpoint("Cover_0", receiveStatusCover_0);

    function handleButton(event) {
    // print(JSON.stringify(event)); // zwecks Analyse aller eintreffenden Events
    if( // das passende Event filtern, vorfiltern per component "input:<ButtonId>"
    event.component==="input:" + ButtonId
    // && // passende Filter hinzufügen
    ) {
    print(JSON.stringify(event)) // zwecks Analyse der hier zu verarbeitenden Events wie push und long push
    // Sobald klar ist, welche Infos zur Weiterverarbeitung zu nutzen sind, die folgenden Anweisungen passend ergänzen und Kommentarsymbole (//) entfernen!
    let Url;
    // if(<long push selektieren>) Url = longPushURL;
    // else Url = shortPushURL[Sel];
    // Shelly.call("http.get", {url:Url}); // für das Verarbeiten des Tastendrucks
    }
    }

    Shelly.addEventHandler(handleButton);


    Aber auch das funktioniert so nicht.

    Hallo,

    habe jetzt das folgende Script auf den i4DC bei Schalter eingespielt. (Es gibt ja Schalter, 2)Schalter, 3)Schalter, und 4)Schalter im i4 DC):

    /**
    * @copyright shelly-tools contributors
    * @license GNU Affero General Public License (https://www.gnu.org/licenses/agpl-3.0.de.html)
    * @authors https://github.com/shelly-tools/s…hs/contributors
    *
    * This script can emulate a cycle switch for a remote Shelly 2.5 in roller shutter mode
    * with a Shelly Plus device.
    * Once the button is pushed it checks the former direction and sends a open, stop or close
    * command to the remote Shelly 2.5.
    */

    // CONFIG START
    // this is the remote shelly which we want to control.
    // Input is the number of the switch

    let CONFIG = {
    ip: '192.XXX.XXX.XXX',
    input: 0,
    btnevent: 'single_push'
    };
    // CONFIG END

    // no need to change anything below this line..

    // add an evenHandler for button type input and single push events
    Shelly.addEventHandler(
    function (event, user_data) {
    //print(JSON.stringify(event));
    if (typeof event.info.event !== 'undefined') {
    if (event.info.id === CONFIG.input && event.info.event === CONFIG.btnevent) {
    getCurrentState(CONFIG.ip);
    } else {
    return true;
    }
    } else {
    return true;
    }
    },
    );

    // query a remote shelly and determine if next step is open, stop or close
    function getCurrentState(ip) {
    Shelly.call(
    "http.get", {
    url: 'http://' + ip + '/roller/0'
    },
    function (res, error_code, error_message, ud) {
    if (res.code === 200) {
    let st = JSON.parse(res.body);
    if (st.state === 'stop' && st.last_direction === 'close') {
    controlShutter(CONFIG.ip, 'open');
    print("open shutter");
    } else if (st.state === 'stop' && st.last_direction === 'open') {
    controlShutter(CONFIG.ip, 'close');
    print("close shutter");
    } else {
    controlShutter(CONFIG.ip, 'stop');
    print("stop shutter");
    }
    }
    },
    null
    );
    };

    // send shutter command
    function controlShutter(ip, command) {
    Shelly.call(
    "http.get", {
    url: 'http://' + ip + '/roller/0?go=' + command
    },
    function (response, error_code, error_message, ud) {

    },
    null
    );
    };


    Die IP, welche ich im Script angebe muss aber ja wohl diejenige vom 2PM sein, welcher den Rolladen schaltet, oder? Muss ich den Schalter des i4DC zusätzzlich noch per Aktion mit dem 2PM Verbinden?

    Irgendwas läuft noch nicht.

    Okay, jetzt habe ich aber doch noch ein Problem.

    Einige i4DC sehe ich in der Shelly App als "offline" obwohl diese die WLAN Verbindung haben. Dann kann ich sie nicht bedienen. Woran liegt das?

    Und bezüglich dem Script für die Rollläden - das würde ich aber auch auf die i4 DC - des jeweiligen Schalters aufspielen.oder?

    Hallo,

    nach einigen Tagen mal wieder ein Update.

    Die Berker S1 Doppeltaster lassen sich für die Lichtsteuerung in Kombination mit den i4 DC und den Shelly 1 Plus wunderbar einsetzen.

    Nun möchte ich die erste Rollladensteuerung verbauen, Dazu zwei Fragen:

    1. Habt ihr einen Schaltplan wir ich die 2 PM an die Rollläden anschließe, wenn ich keinen Schalter dazu baue - also nur per i4 DC steuere?

    2. Wie bekomme ich das Script denn als Funktion in meine Shelly App integriert?