Hey Jens,
das Script ist ja nicht ganz uneigennützig entstanden :))
Wenn mal wieder mehr Zeit vorhanden ist, .. schauen wir wie das Script angepasst werden kann.
Gruß coffex
Hey Jens,
das Script ist ja nicht ganz uneigennützig entstanden :))
Wenn mal wieder mehr Zeit vorhanden ist, .. schauen wir wie das Script angepasst werden kann.
Gruß coffex
Kuttenberger, tatsächlich interessiere ich mich auch brennend für dieses Thema.
Ich werde hier jedoch öfters mal reinschauen
Vielleicht könnte dir das "in Nutzung einer App" weiterhelfen.
MACROdroid >> Hiermit lässt sich einiges antriggern und in Interaktion treten.
Persönlich , .. habe ich die Interaktion mit Klingel / Sprechanlage und dem Handy halbwegs verworfen.
**((( Am Ende müsste die App ständig im Hintergrundlaufen unter Berücksichtigung von ( Energiesparmodus, Akkulaufzeit, Verhalten im Flugmodus ect. )
und wie zuverlässig und sicher ist das Ganze.
Für mich sind schnelle Reagtionszeiten und wenig Verzögerung wichtig
!! Ich habe das Optimale für mich auch noch nicht gefunden ( bin noch in der Selbstfindung !!
Bei mir läuft ein bunter Mix aus :
- Hamares in Verbindung mit Ritto Twinbus ( FritzBox und Fritzfon inkl Livebild )
- zusätzlich behelfe ich mir noch mit Monoclecam - ( Alexa Skill tauglich ) um mir den Stream der IPcam auf einer einer AlexaShow10 2gen. anzuzeigen.
- ebenfalls ist bei mir noch ein Webserver aktiv. In einer Website im Intranet ist das Kamerabild eingearbeitet ( alternativ mit Shelly support für Licht und Türöffner ) .. so kann auch mal während des Arbeiten am PC / Tablet mit der Haustür interagieren (ohne Sprechverkehr). So lässt sich das auch auf dem Handy nutzen, .. und mit Shortcut Icons vom Browser geht es recht zügig.
Als grosser Fan von Ubiquiti, arbeitet bei mir an der Tür eine POE IPcam "Camera G3 Flex" in der Decke eingelassen.
Sie unterstützt unterschiedliche rtsp streams als auch jpeg Snpshots ( livebild für die Fritzbox)
Ich schweife ab , ..
Sehr interessant und vielleicht mein nächstes Projekt wäre eine abgewandelte Variante von einem Thread aus diesem Forum
im Bezug auf der Nutzung von Whatsapp und Co.
# Das Szenario wäre :
1. Jemand klingelt an der Haustür
2. und via "Shelly" wird eine Nachricht via Whatsapp und Co angetriggert
2.1. Inhalt der Nachricht :
ein Text : "Die Haustür klingelt"
ein Bild : "JPEG-Snapshot von der IPcam"
ein Link : "um zu eine lokalen Website oder IPcam zugelangen" oder/und alternativ
direkt einen Shelly für den Türöffner zu aktivieren.
App bedingt wäre ebenfalls ein gesonderter Benachrichtigungston möglich.
Die ganze Benachrichtigung lässt sich wohl auch in eine Chat-Gruppe senden ( somit können Familienmitglieder/Personen berücksichtigt werden )
Solange nur lokale ip-Adressen verlinkt werden, funktionieren diese nur im eigenen lokalen Heimnetzwerk ( was für mehr Sicherheit spricht )
Nachteil :
- Wieder eine nervige Chat-Gruppe mehr. ( # stummschalten on/off )
- In jeder Nachricht, wäre theoretisch auch ein Link für den Türöffner verankert.
( Dicke Finger = ungewolltes betätigen des Türöffners ) je nach dem was der Türöffner dort frei gibt, eher uncool.
eine Temporäre Gültigkeit von diesen Links ( für nur paar Sekuden ), zu schwer umzusetzen.
Und dann bin ich schon wieder dort **(((
Man müsste das einfach mal im kleinnnnen Testen und schauen wie sich das Ganze verhält ( Reaktionszeiten und Alltagstauglichkeit ).
Mein Betrag ist kein Lösungsvorschlag, ... sondern nur eine Erweiterung für den Ideen-Pool.
( gut zu wissen, das man hier bzgl. Sprechanlagen und Co. auf Anklang stößt :))
Nach dem das Script erfolgreich läuft, ... die Beschreibung nun stimmig zu der Funktion passt,
... DANK Loetauge nun auch im richtigen Formatfenster angezeigt werden kann.
Hier nun das Script mit Beschreibung.
/**
* (c) by coffex >>> DIEGLU <<< THX
*
* Script fuer Shelly 1 Plus
*
* Funktion //
* Einschaltverzoegerung mit Nachlauffunktion ( z.b. für den Einsatz eines Badezimmerluefters )
*
* Beschreibung //
* Nach dem Einschalten des Schalters ( shelly SW ) wird der Luefter, NACH "Tvor" Minuten an laufen.
* Nach dem Ausschalten des Schalters ( shelly SW ) UNTER den "Tvor" Minuten wird der Lüfter nicht laufen.
*
* Laeuft der Luefter .. bleibt dieser solange an, wie auch der Schalter ( shelly SW ) betaetigt bleibt.
* Nach Ausschalten des Schalters ( shelly SW ) laeuft der Luefter "Tnach" Minuten nach und schaltet dann ab.
*
* Jedes weitere Einschalten des Schalters ( shelly SW ) NOCH INNERHALB der vorherigen Nachlaufzeit bewirkt,
* ein erneutes starten der Nachlaufzeit "Tnach".
*
* Anmerkung //
* Darauf achten ! Switch Mode "Detached" ! sonst klappt es nicht.
* Die Zeiten "Tvor" und "Tnach" werden in Millisekunden angegeben,
* alternativ kann auch eine Multiplikation verwendet werden z.b. fuer 5Min "5*60*1000" entspricht "300000"ms, so wird es uebersichtlicher.
*
*/
// Einstellungen Anfang
let Tvor = 300000;
// Einschaltverzoegerung - wann der Luefter anspringen soll ( zb. "300000"ms=5min oder "5*60*1000" )
let Tnach = 600000;
// Nachlaufzeit - wie lange Luefter nachlaufen soll ( zb. "600000"ms=10min oder "10*60*1000" )
// Einstellungen Ende
// Ab hier keine Aenderungen vornehmen
let vorlaufTimer = null; // Timer fuer Vorlauf
let nachlaufTimer = null; // Timer fuer Nachlauf
let luefterFLAG = false; // true: Luefter soll laufen // false : Luefter soll nicht laufen
Shelly.addStatusHandler(
function (status, user_data) {
if (typeof status.delta !== 'undefined') {
if (status.delta.state === true && luefterFLAG === false) {
// starte vorlauftimer
StartOfVorlaufTimer();
}
if (status.delta.state === false && luefterFLAG === false) {
// vorlauf nicht erfuellt : stoppe vorlauftimer
StopOfVorlaufTimer();
}
if (status.delta.state === false && luefterFLAG === true) {
// vorlauf erfuellt : nachlauf aktivieren
StartOfNachlaufTimer();
}
if (status.delta.state === true && luefterFLAG === true) {
// vorlauf erfuellt : nachlauf aktivieren
StopOfNachlaufTimer();
fanON();
}
};
},
null
);
function fanON() {
Shelly.call( 'switch.set', {id: 0, on: true}, null);
luefterFLAG = true;
}
function fanOFF() {
Shelly.call ('switch.set', {id: 0, on: false}, null);
luefterFLAG = false;
}
function StartOfVorlaufTimer() {
vorlaufTimer = Timer.set(Tvor,false,EndOfVorlaufTimer,null);
}
function StopOfVorlaufTimer() {
Timer.clear(vorlaufTimer);
}
function EndOfVorlaufTimer() {
fanON();
}
function StartOfNachlaufTimer() {
nachlaufTimer = Timer.set(Tnach,false,EndOfNachlaufTimer,null);
}
function StopOfNachlaufTimer() {
Timer.clear(nachlaufTimer);
}
function EndOfNachlaufTimer() {
fanOFF();
}
// Script Ende
Alles anzeigen
Rückmeldung zu dem Script, es funktioniert.
Wie wird denn das Licht eingeschaltet, bzw wie ist das Licht mit dem Shelly verbunden, du schaltest den Lüfter ja nicht zusätzlich ein.
der/die/das Shelly dient ausschließlich als Nachlaufrelais für ein Badezimmerlüfter.
Die Beleuchtung selbst wird nicht von der Shelly geschaltet, sondern klassisch über einen Schalter im Badezimmer. Der Lampendraht allerdings wird zum Schalten des Shellys auf dem (SW Eingang) gelegt.
So war unser Praxisbeispiel
Asche auf mein Haupt .. Entschudligung für meine voreiligen Posts.
Die Funktion des Scripts weicht der vorherigen Beschreibung und Schilderung von Jens ab.
Die Funktion für das erneute Einschalten und Nachlaufverhalten während dieser Zeit wurde vereinfacht.
Korrekt ist diese hier !!
*
* Beschreibung //
* Nach dem Einschalten des Schalters ( shelly SW ) wird der Luefter, NACH "Tvor" Minuten an laufen.
* Nach dem Ausschalten des Schalters ( shelly SW ) UNTER den "Tvor" Minuten wird der Lüfter nicht laufen.
*
* Laeuft der Luefter .. bleibt dieser solange an, wie auch der Schalter ( shelly SW ) betaetigt bleibt.
* Nach Ausschalten des Schalters ( shelly SW ) laeuft der Luefter "Tnach" Minuten nach und schaltet dann ab.
*
* Jedes weitere Einschalten des Schalters ( shelly SW ) NOCH INNERHALB der vorherigen Nachlaufzeit bewirkt,
* ein erneutes starten der Nachlaufzeit "Tnach".
*
*
wenn sich kein Fehler eingeschlichen hat, wären wir somit FERTIG.
/**
* (c) by coffex's >>> DIEGLU <<< THX
*
* Script fuer Shelly 1 Plus
*
* Funktion //
* Einschaltverzoegerung mit Nachlauffunktion ( z.b. für den Einsatz eines Badezimmerluefters )
*
* Beschreibung //
* Nach dem Einschalten des Schalters ( shelly SW ) wird der Luefter, NACH "Tvor" Minuten an laufen.
* Nach dem Ausschalten des Schalters ( shelly SW ) UNTER den "Tvor" Minuten wird der Lüfter nicht laufen.
*
* Laeuft der Luefter .. bleibt dieser solange an, wie auch der Schalter ( shelly SW ) betaetigt bleibt.
* Nach Ausschalten des Schalters ( shelly SW ) laeuft der Luefter "Tnach" Minuten nach und schaltet dann ab.
*
* Jedes weitere Einschalten des Schalters ( shelly SW ) NOCH INNERHALB der vorherigen Nachlaufzeit bewirkt,
* ein erneutes starten der Nachlaufzeit "Tnach".
*
* Anmerkung //
* Darauf achten ! Switch Mode "Detached" ! sonst klappt es nicht.
* Die Zeiten "Tvor" und "Tnach" werden in Millisekunden angegeben,
* alternativ kann auch eine Multiplikation verwendet werden z.b. fuer 5Min "5*60*1000" entspricht "300000"ms, so wird es uebersichtlicher.
*
*/
// Einstellungen Anfang
let Tvor = 300000;
// Einschaltverzoegerung - wann der Luefter anspringen soll ( zb. "300000"ms=5min oder "5*60*1000" )
let Tnach = 600000;
// Nachlaufzeit - wie lange Luefter nachlaufen soll ( zb. "600000"ms=10min oder "10*60*1000" )
// Einstellungen Ende
// Ab hier keine Aenderungen vornehmen
let vorlaufTimer = null; // Timer fuer Vorlauf
let nachlaufTimer = null; // Timer fuer Nachlauf
let luefterFLAG = false; // true: Luefter soll laufen // false : Luefter soll nicht laufen
Shelly.addStatusHandler(
function (status, user_data) {
if (typeof status.delta !== 'undefined') {
if (status.delta.state === true && luefterFLAG === false) {
// starte vorlauftimer
StartOfVorlaufTimer();
}
if (status.delta.state === false && luefterFLAG === false) {
// vorlauf nicht erfuellt : stoppe vorlauftimer
StopOfVorlaufTimer();
}
if (status.delta.state === false && luefterFLAG === true) {
// vorlauf erfuellt : nachlauf aktivieren
StartOfNachlaufTimer();
}
if (status.delta.state === true && luefterFLAG === true) {
// vorlauf erfuellt : nachlauf aktivieren
StopOfNachlaufTimer();
fanON();
}
};
},
null
);
function fanON() {
Shelly.call( 'switch.set', {id: 0, on: true}, null);
luefterFLAG = true;
}
function fanOFF() {
Shelly.call ('switch.set', {id: 0, on: false}, null);
luefterFLAG = false;
}
function StartOfVorlaufTimer() {
vorlaufTimer = Timer.set(Tvor,false,EndOfVorlaufTimer,null);
}
function StopOfVorlaufTimer() {
Timer.clear(vorlaufTimer);
}
function EndOfVorlaufTimer() {
fanON();
}
function StartOfNachlaufTimer() {
nachlaufTimer = Timer.set(Tnach,false,EndOfNachlaufTimer,null);
}
function StopOfNachlaufTimer() {
Timer.clear(nachlaufTimer);
}
function EndOfNachlaufTimer() {
fanOFF();
}
// Script Ende
Alles anzeigen
Loetauge , Danke für den Hinweis "Codetag"
@ jens ...
die Funktion ist etwas anders als von der dir gewünscht.
Der Konflikt entsteht erst beim erneuten Einschalten INNERHALB der vorherigen NACHLAUFZEIT.
Für mich hat meine Variante mehr Sinn ergeben.
Nach dem Einschalten vom Schalter ( shelly sw ) wird der Lüfter nach "Tvor" Minuten an laufen.
Nach dem Ausschalten des Schalters ( shelly sw ) unter den "Tvor" Minuten wird der Lüfter nicht laufen.
Läuft der Lüfter .. bleibt dieser solange an, wie auch der Schalter ( shelly sw ) betätigt bleibt. Nach Ausschalten des Schalters ( shelly sw )
läuft der Lüfter "Tnach" Minuten nach und geht dann aus.
Ein erneutes Einschalten des Schalters ( shelly sw ) unter "Tvor" Minuten, noch INNERHALB der Nachlaufzeit, bewirkt nichts ... der Lüfter läuft seine vorherige Nachlaufzeit ab und schaltet dann aus.
Sollte das erneute Einschalten des Schalters ( shelly sw ) ÜBER "Tvor" Minuten liegen, wird der Lüfter noch INNERHALB der vorigen Nachlaufzeit, erneut für "Tnach" Minuten angetriggert.
Hey Jens, ..
wir sind am Ziel das Script ist fertig und funktioniert.
*( Verwendung auf eigene Gefahr ... ich übernehme keine Haftung ... ect. )*
Ich werde das Script nochmal nett beschreiben, .. aber so kann man es schon mal nutzen.
Voraussetzung :
Shelly 1 Plus ( Firmware version: 0.10.0 )
! Switch Mode "Detached" !
Die "Vorlaufzeit" und "Nachlaufzeit" kann individuell eingestellt werden.
Die Zeiten werden in Millisekunden angegeben, alternativ ist auch eine Multiplikation Kette möglich
( das macht es einfacher, es in Minuten zu sehen ).
Als Tipp, .. nutze zum Testen deutlich kürzere Zeiten :)))
gruß coffex
[script][/script]
[script]/** Script fuer Shelly 1 Plus // Nachlauffunktion [/script]
[script]* [/script]
[script]* by coffex.s didi [/script]
[script]* [/script]
[script]* Wichtig : Detached - Set Shelly device to be in "Detached" switch mode - switch is separated from the relays. [/script]
[script]* Die Zeiten "Tvor" und "Tnach" = "in Millisekunden" ( alternativ auch Multiplikation Kette "5*60*1000" ) [/script]
[script]* [/script]
[script]*/ [/script]
[script]
[/script]
[script]// Einstellung der Zeiten[/script]
[script]
[/script]
[script]let Tvor = 300000; // Vorlaufzeit in - wann der Lüfter anspringen soll ( zb. "300000"ms=5min oder "5*60*1000" ) [/script]
[script]let Tnach = 10*60*1000; // Nachlaufzeit - wie lange Lüfter nachlaufen soll ( zb. "600000"ms=10min oder "10*60*1000" ) [/script]
[script]
[/script]
[script]
[/script]
[script]// Ab hier nichts mehr aendern[/script]
[script]
[/script]
[script]let vorlaufTimer = null; // Timer für Vorlauf [/script]
[script]let nachlaufTimer = null; // Timer für Nachlauf [/script]
[script]
[/script]
[script]let luefterFLAG = false; // true: Lüfter soll laufen // false : Lüfter soll nicht laufen [/script]
[script]
[/script]
[script]Shelly.addStatusHandler( [/script]
[script]function (status, user_data) { [/script]
[script]if (typeof status.delta !== 'undefined') { [/script]
[script]
[/script]
[script]if (status.delta.state === true && luefterFLAG === false) { [/script]
[script]// starte vorlauftimer [/script]
[script]StartOfVorlaufTimer(); [/script]
[script]} [/script]
[script]
[/script]
[script]if (status.delta.state === false && luefterFLAG === false) { [/script]
[script]// Vorlauf nicht erfüllt : stoppe vorlauf timer [/script]
[script]StopOfVorlaufTimer(); [/script]
[script]} [/script]
[script]
[/script]
[script]if (status.delta.state === false && luefterFLAG === true) { [/script]
[script]// vorlauf erfüllt : nachlauf aktivieren [/script]
[script]StartOfNachlaufTimer(); [/script]
[script]} [/script]
[script]
[/script]
[script]if (status.delta.state === true && luefterFLAG === true) { [/script]
[script]// vorlauf erfüllt : nachlauf aktivieren [/script]
[script]StopOfNachlaufTimer(); [/script]
[script]fanON(); [/script]
[script]} [/script]
[script]}; [/script]
[script]}, [/script]
[script]null [/script]
[script]); [/script]
[script]
[/script]
[script]
[/script]
[script]function fanON() { [/script]
[script]Shelly.call( 'switch.set', {id: 0, on: true}, null); [/script]
[script]luefterFLAG = true; [/script]
[script]} [/script]
[script]
[/script]
[script]function fanOFF() { [/script]
[script]Shelly.call ('switch.set', {id: 0, on: false}, null); [/script]
[script]luefterFLAG = false; [/script]
[script]} [/script]
[script]
[/script]
[script]function StartOfVorlaufTimer() { [/script]
[script]vorlaufTimer = Timer.set(Tvor,false,EndOfVorlaufTimer,null); [/script]
[script]} [/script]
[script]
[/script]
[script]function StopOfVorlaufTimer() { [/script]
[script]Timer.clear(vorlaufTimer); [/script]
[script]} [/script]
[script]
[/script]
[script]function EndOfVorlaufTimer() { [/script]
[script]fanON(); [/script]
[script]} [/script]
[script]
[/script]
[script]function StartOfNachlaufTimer() { [/script]
[script]nachlaufTimer = Timer.set(Tnach,false,EndOfNachlaufTimer,null); [/script]
[script]} [/script]
[script]
[/script]
[script]function StopOfNachlaufTimer() { [/script]
[script]Timer.clear(nachlaufTimer); [/script]
[script]} [/script]
[script]
[/script]
[script]function EndOfNachlaufTimer() { [/script]
[script]fanOFF(); [/script]
[script]} [/script]
[script]
[/script]
[script]// end of file[/script]
[script][/script]
Hallo Jens,
ich teile dein Interesse an einer Nachlauffunktion für zb. einem Badezimmerlüfter.
.. // .. mal schauen was man da machen kann.
.. ich habe die Familie eingebunden , .. ich hoffe das Script ist bald verfügbar.
Hallo Jens,
ich teile dein Interesse an einer Nachlauffunktion für zb. einem Badezimmerlüfter.
.. // .. mal schauen was man da machen kann.
Hi Thomas,
ehrlich gesagt verstehe ich noch nicht den Sinn deiner Schaltung.
Dein Ursprung war bestimmt eine Tasterschaltung die einen Stromschossschalter betätigen,
dieser wiederum schaltet dann die Lampe ein.
Und nun möchtest du mit dem Stromschossschalter nicht mehr die Lampe schalten, sondern als SW Eingang der Shelly nutzen, die wiederum soll dann die Lampe schalten ?
[ Grundsätzlich sollte man sich im Klaren sein wie sich der Stromstoßschalter in deiner Schaltung verhält. Beim betätigen der Taster, schaltet der Stomstossschalter ein und somit hast du dauerhaft Spannung auf dem SW Eingang der Shelly. Ein erneutes Tasten kehrt den Zustand dann um ]
Warum lässt du den Stromstoßschalter nicht einfach weg und nutz nur die Shelly ?
greetz coffex
Ich schließe mich der Meinung meines Vorredners an !
Darüber hinaus bekomme ich in meinem Berufsleben auch einige Füchtigkeitsfehler zu sehen.
Gerade beim Streichen der Decke, werden Rücksichtslos die Drähte der Decke gleich mit gestrichen
Wenn man dann die Lampe wieder anschliessen möchte, wird in der hektik auch schon mal der PE ( grün-gelb ) mit dem N ( blau ) verwechselt.
Das merkt man dann erst beim Schalten der Lampe.
#Flüchtigkeitsfehler vermeiden.