Auf da Ticket kannst du ewig warten. Benutze das Skript und gut ist. Ist kein Hexenwerk
Beiträge von ostfriese
VPN/Proxy erkannt
Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.
-
-
Habe es selbst fast nicht gefunden, daher hier der Link:
BeitragRE: Raumtermostat mit Shelly verbinden
So, hier die erste Version zum Testen.
In der CONFIG könnt ihr die 500 ms (0,5 Sekunden) nach eurem Bedarf einstellen. Das ist die Zeit, in der beide Relais auf OFF verharren.
Das der Shelly nach Stromausfall wieder den Zustand vor Stromausfall annimmt, kann durch "Restore last known state of output/relay" in den Einstellungen für beide Outputs sichergestellt werden. Daher muss es im Skript nicht noch einmal extra gemacht werden.
Ich betrachte das Problem de TE daher durch das Skript als gelöst.
…ostfriese5. September 2023 um 20:44 -
Wenn's hilft, immer gerne
-
@De kat Alle Varianten funktionieren. Ich wusste nur nicht, ob result einen body hat (nein).
Result ist ein JSON Objekt --> temp = result.tC
Hatte noch einen DSxxx, der ist zwar nicht kompatibel, aber ich bekam wenigstens:
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. -
NEUE VERSION: 25.09.2023 16:00
Hier jetzt das funktionierende Skript. Bitte mindesten FW 1.0.0 verwenden.
Danke an @De kat fur den Hinweis auf Shelly.getComponentStatus.
In der Config:
temp_diff = zugelassene Differez (z.B. deine 2K)
temp_min = minimale Innentemperatur(z.B. deine12°C)
id_inside = Id des Innentemperaturfühlers
id_outside = Id des Außentemperaturfühlers
relay = welches Relais soll schalten 0 oder 1
interval = Messen, Auswerten und Schalten alle x Sekunden
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!!! //Made by Ostfriese //############################## Config ############################ let Config = { temp_diff : 0.5, temp_min : 12, id_inside : 100, id_outside: 101, relay : 0, interval : 10 // 2 seconds is the minimum interval } //############################## Config end ############################ function watch() { try { temp_inside = Shelly.getComponentStatus('Temperature', Config.id_inside).tC; temp_outside = Shelly.getComponentStatus('Temperature', Config.id_outside).tC; print('Temp. inside =',temp_inside); print('Temp. outside =',temp_outside); //inside <= minimum if (temp_inside <= Config.temp_min) { Shelly.call("http.get", {url:'http://127.0.0.1/relay/' + JSON.stringify(Config.relay) + '?turn=off'}); print('Relay(', Config.relay, ') off. Inside temp <= ', Config.temp_min); } else { delta = temp_inside - temp_outside; //delta more than or equal Config.temp_diff if (delta >= Config.temp_diff) { Shelly.call("http.get", {url:'http://127.0.0.1/relay/' + JSON.stringify(Config.relay) + '?turn=on'}); print('Relay(', Config.relay, ') on. Delta >= ', Config.temp_diff); } //delta less than Config.temp_diff else { Shelly.call("http.get", {url:'http://127.0.0.1/relay/' + JSON.stringify(Config.relay) + '?turn=off'}); print('Relay(', Config.relay, ') off. Delta < ', Config.temp_diff); } } print('\n') } catch (err) { Shelly.call("http.get", {url:'http://127.0.0.1/relay/' + JSON.stringify(Config.relay) + '?turn=off'}); print(err); } } function start() { // do a first shot watch(); // set watch timer to configured value Timer.set(Config.interval * 1000,true,watch); } // schedule script start for 1 second Timer.set(1000,false,start);
-
Lass mal bitte folgendes Skript bei dir laufen: (ersetze xxx durch eine deiner Temperaturfühler ID's)
Als eigenständiges Skript, nicht in das o.g. Skript einfügen! Poste dann bitte die Ausgabe.
-
Bin mir ziemlich sicher, dass das so geht. Weis nur nicht, ob result einen body hat.
Aber ohne Fühler läuft das bei mir in's Leere.
-
Sag mal kann es sein das Bilder nicht mehr im Forum angezeigt werden
Ging mir auch so
-
Und, wenn du Code postest, dann bitte in Code-Tag:
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. Edit: hat der freundliche Moderator mal korrigiert.
-
Es wird nirgends eine IP-Adresse benötigt.
EDIT: Welche FW Version hast du?
-
EDIT: Die fertige Lösung ist in Post #18.
-
Schade, Szenen sind für Anfänger meistens leichter zu verstehen.
Schauen wir mal, wie der TE sich noch äußert.
-
Na dann fange ich doch gar nicht erst an, mich damit zu beschäftigen! SCNR
EDIT: Der Thread ist etwas unübersichtlich geworden. Deshalb der Hinweis:
Die fertige Lösung ist in Post #18.@TShallyHHH Willkommen im Forum.
Hast du denn schon Erfahrungen mit Skripts? Oder meinst du Szenen?
Evtl. können ja auch apreick oder horkatz oder andere mit einer Szene weiterhelfen.
Falls du wirklich Skript meinst:
Ich würde es mit einem Timer versuchen, der eine Funktion aufruft, die die Temperaturen in regelmäßigen Abständen abfragt.
Die Bedingungen sind dann ja recht einfach über if Abfragen zu regeln.
-
Versuche mal bitte, die Sprache der App auf Englisch zu stellen, dann sollte das klappen. Danach kannst du dann zurück zu Deutsch.
-
-
-
-
Und ich halte mich 'raus und bleibe bei Skripts.
-
Der war gut
-
Wir schweifen ab
Edit: Dem Forum feht ein offener Live-Chat