Ostfriesen wird ja immer ein simples Gemüt nachgesagt
Beiträge von ostfriese
Liebe Forumsmitglieder,
wir möchten Euch darüber informieren, dass das Forum aufgrund von Wartungsarbeiten vom 27.11.2024 bis zum 29.11.2024 nicht, oder nur eingeschränkt verfügbar sein wird. Während dieser Zeit führen wir nicht nur technische Anpassungen durch, sondern nehmen auch einige umfangreiche visuelle Änderungen vor.
Nach Abschluss der Arbeiten wird aus dem "Smarthome-Forum" das neue "Shelly-Forum". Damit wollen wir Euch ein noch moderneres und übersichtlicheres Erlebnis bieten.
Wir danken Euch schon jetzt für Eure Geduld während dieser Umstellung. Solltet Ihr nach den Wartungsarbeiten Fragen oder Anmerkungen haben, könnt Ihr uns jederzeit unter forum.de@shelly.com kontaktieren.
Vielen Dank für Eure Unterstützung und auf viele weitere spannende Diskussionen in unserem neuen Shelly-Forum!
Euer Shelly DACH Team
wir möchten Euch darüber informieren, dass das Forum aufgrund von Wartungsarbeiten vom 27.11.2024 bis zum 29.11.2024 nicht, oder nur eingeschränkt verfügbar sein wird. Während dieser Zeit führen wir nicht nur technische Anpassungen durch, sondern nehmen auch einige umfangreiche visuelle Änderungen vor.
Nach Abschluss der Arbeiten wird aus dem "Smarthome-Forum" das neue "Shelly-Forum". Damit wollen wir Euch ein noch moderneres und übersichtlicheres Erlebnis bieten.
Wir danken Euch schon jetzt für Eure Geduld während dieser Umstellung. Solltet Ihr nach den Wartungsarbeiten Fragen oder Anmerkungen haben, könnt Ihr uns jederzeit unter forum.de@shelly.com kontaktieren.
Vielen Dank für Eure Unterstützung und auf viele weitere spannende Diskussionen in unserem neuen Shelly-Forum!
Euer Shelly DACH Team
-
-
Prima. Danke dir. Das ist doch mal eine simple Lösung
-
"debounced-shellys" "debounce-delay"
-
thgoebel Thomas, bitte mach dir keinen Stress. Ich hatte in einem anderen Thread von dir gelesen, dass man für den Plus auch eine Vorbeschaltung braucht.
Da fiel mir dann der Impuls-Eingang ein. Und weil nicht alle User Bauteile, wie Dioden und Kondensatoren, in der Schublade haben, dachte ich, es wäre eine einfache Lösung ohne zusätzliche Bauteile. Ich brauche das für mich gar nicht. Aber das Thema läuft hier ja oft, und wenn das so funktioniert, wie ich denke, wäre das doch eine gute Alternative
-
Habe keinen Plus Uni. Gibt es da denn die Möglichkeit z.B. eine Url aufzurufen, wenn die 50 Hz anliegen?
-
Na, der zählt die Impulse der Netzfrequenz:
Wenn das ohne Vorbeschaltung geht, wäre das doch eine Lösung für die ganzen Fragen zu AC Klingelanlagen für das Triggern, ob der Taster gedrückt ist.
-
Was passiert, wenn man den Impuls-Zähler mit einer Wechselspannung (z.B. Klingelanlage12V AC) direkt triggert?
-
Passe bitte in folgendem Skript mal die Zeile let uri = an und poste die Ausgabe.
Ausführung auf einem Gen 2 Shelly mit neuester FW.
Außerdem muss auf diesem Shelly unter:
Settings --> Debug --> Websocket debug enable
enabled sein. Neustart nach enable nicht vergessen.
Code
Alles anzeigenlet uri = "https://api.go-e.co/api?payload=alw=0&token=xxxxxxxxxxxx" Shelly.call("http.get",{url: uri, timeout: 10}, function(result, error_code, error_message,action_type,headers) { if(error_code === 0) { print(JSON.stringify(result)); } print(error_code); print(error_message); print(JSON.stringify(result)); } );
Schaltet das Skript deine WB in den gewünschten Zustand.
-
Das hat mein Interesse geweckt, falls du ein Skript in Betracht ziehst.
-
Ein weiterer Vorteil des Impulseingangs ist die Möglichkeit, die Anzeige direkt in „Liter“ zu konfigurieren.
Oder, gleich in Euro, falls gewünscht.
-
Dein Browser 'malt' das 's' automatisch dazu.
-
Dann muss ein Gen 2 als Übersetzer her. Oder HA o.Ä.
-
Mit einem Raspberry (ein Zero ist auch nicht teurer als ein Shelly), lässt sich das bewerkstelligen.
Google mal: Raspberry LIRC
-
-
Verhindern, dass ein Shelly in der Nacht auf Schaltbefehle reagiert:
Code
Alles anzeigen// GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 // More information: https://www.gnu.org/licenses/gpl-3.0.txt // ABSOLUTELY NO WARRANTY AT ALL!!! // Made by ostfriese. // Config let Config = { nighttime : '23:30', //must be before 00:00 daytime : '07:00', //must be after 00:00 on_url : 'http://127.0.0.1/relay/0?turn=on', off_url : 'http://127.0.0.1/relay/0?turn=off' } // Config end. No changes below this row. function time_to_number(time_str) { return parseInt(time_str.split(":")[0]) * 3600 + parseInt(time_str.split(":")[1]) * 60; } function watch(request,response) { if(lock) { return; } lock = true; if (time_to_number(Shelly.getComponentStatus("sys").time) >= time_to_number(Config.nighttime) || time_to_number(Shelly.getComponentStatus("sys").time) <= time_to_number(Config.daytime)) { response.body = 'Night : No action at request ' + request.query; } else if (request.query === 'on') { response.body = 'Day : Turned on'; Shelly.call("http.get", {url:Config.on_url}); } else if (request.query === 'off') { response.body = 'Day : Turned off'; Shelly.call("http.get", {url:Config.off_url}); } response.code = 200; response.send(); print(response.body); Timer.set(1000, false, function(){lock = false;}); } function start() { HTTPServer.registerEndpoint('switch',watch); print('Your possible urls are:'); print('http://' + Shelly.getComponentStatus("wifi").sta_ip + '/script/' + Shelly.getCurrentScriptId() + '/switch?on'); print('http://' + Shelly.getComponentStatus("wifi").sta_ip + '/script/' + Shelly.getCurrentScriptId() + '/switch?off'); } let lock = false; Timer.set(1000,false,start);
-
Habe das Skript noch einmal überarbeitet und optimiert.
Welche Urls ruft deine Alexa denn zur Torsteuerung aktuell auf?
-
-
Bei uns kann man mit einer Plus Taste den Start um x Stunden verschieben.
-
Hier eine Skript-Lösung (Auf aktuellste Firmware updaten):
In der Config:
lock_start: Begin der Sperre
lock_end:Ende der Sperre
urls: Befehle zum schalten. Die Erste wird später mit 0 bezeichnet, die Zweite mit 1, usw.
Wenn du das Skript startest, wird, z.B., folgendes ausgegeben:
Code22:56:33 Your possible urls are: 22:56:33 http://192.168.178.104/script/9/switch?0 --> http://127.0.0.1/relay/0?turn=off 22:56:33 http://192.168.178.104/script/9/switch?1 --> http://127.0.0.1/relay/0?turn=on
Hier sind die vorderen Urls die Urls für Alexa, die hinter dem Pfeil sind die aus der Config.
Hier sieht man auch die Zuordnung: Die erste Url wird beim Aufruf mit 0 ausgeführt, die zweite mit 1, usw.
Stand: 26.01.24 23:15.
Hier noch die Vorgehensweise auf dem Skript-Shelly (Alles im Browser mit WebUi machen):
1.) Firmware auf aktuellen Stand bringen.
2.) Unter Settings --> Debug Websecket debug aktivieren. Reboot.
3.) Unter Scripts --> Add Script einen Skript Namen vergeben, das komplette Skript mit Copy/Paste einfügen und --> Save.
4.) Die Config auf deine Werte anpassen. --> Save
5.) Das Skript mit Start ausführen und die Ausgabe im unteren Fenster (Console) beachten.
6.) Dafür Sorge tragen, dass Alexa die Befehle aus der Ausgabe in der Console verwendet.
7.) Testen, ob alles, wie gewünscht, funktioniert.
8.) Unter Scripts den Schiebeschalter neben dem Skriptnamen nach rechts, das bewirkt, dass das Skript nach einem Reboot automatisch startet.
JavaScript
Alles anzeigen// GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 // More information: https://www.gnu.org/licenses/gpl-3.0.txt // ABSOLUTELY NO WARRANTY AT ALL!!! // Made by ostfriese. // Config let Config = { lock_start : '00:00', lock_end : '05:00', urls : ['http://127.0.0.1/relay/0?turn=off','http://127.0.0.1/relay/0?turn=on'] } // Config end. No changes below this row. function time_to_number(time_str) { return parseInt(time_str.split(":")[0]) * 3600 + parseInt(time_str.split(":")[1]) * 60; } function watch(request,response) { if(lock) { return; } lock = true; i = parseInt(request.query); try { response.body = 'Asked: http://' + ip + '/script/' + id + '/switch?' + i; t_now = time_to_number(Shelly.getComponentStatus("sys").time); t_night = time_to_number(Config.lock_start); t_day = time_to_number(Config.lock_end); if(t_now > t_night && t_now < t_day || t_night > t_day && (t_now < t_day || t_now > t_night)) { response.body += ' --> Locked. No action'; } else { response.body += ' --> ' + Config.urls[i]; Shelly.call("http.get", {url:Config.urls[i]}); } } catch(e){}; response.code = 200; response.send(); print(response.body); Timer.set(1000, false, function(){lock = false;}); } function start() { HTTPServer.registerEndpoint('switch',watch); print('Your possible urls are:'); for(let i=0; i < Config.urls.length; i++) { print('http://' + ip + '/script/' + id + '/switch?' + i + ' --> ' + Config.urls[i]); } print('\n') } let lock = false; let ip = Shelly.getComponentStatus("wifi").sta_ip; let id = Shelly.getCurrentScriptId(); Timer.set(1000,false,start);
-
Sende mal, bevor du http://192.168.xxx.xxx/settings?motion_enable=true/false sendest
Also zwei Actions. http://192.168.xxx.xxx/status zum wecken und dann http://192.168.xxx.xxx/settings?motion_enable=true/false