OK. Ich schau mal. Der Lichtsensor ist noch unterwegs. Ich wollte schon mal so testen. Danke aber.
Beiträge von RB0815
-
-
Ich wäre durchaus an einem optimierten Skript interessiert (bin kein Skripter, siehe ChatGPT), wenn auch das von ostfriese sehr gut funktioniert. Aber nur, wenn ich es auch in die wetterbasierte Szene einbinden kann. Das wäre also die erste Bedingung, die es zu klären gilt, bevor auch du dich um mich bemühst. Wobei ich jetzt auch dir schon dankbar bin, dass du dich darum kümmerst.
-
Muss ja auch nicht alles einer allein machen. (Bin immer noch glücklich.) Ich warte ein paar Tage ab, wenn sich dann niemand meldet, mache ich einen neuen Thread auf.
Danke!
-
Und jetzt gleich die Anschlussfrage (bin immer noch glücklich und dankbar!): Ich habe ein Premium-Abo, kann also eine wetterbasierte Szene einstellen. Das klappt, wenn ich sage: "über 24° fahren auf Position 24". Das war die Ausgangsbasis. Doch wie kann ich hier dieses Skript einbinden? Ich finde die Stelle nicht
-
Es funktioniert! ChatGPT hat mir die Logik umgekehrt.
Code
Alles anzeigen// User-Konfiguration let desired_pos = 93; let short_up_pos = 95; // Die Position, auf die die Jalousie kurz hochfahren soll let stop_if_ready = true; // User-Konfiguration Ende function stop_script() { Shelly.call("script.stop", {"id": Shelly.getCurrentScriptId()}); } function get_cur_pos() { let coverStatus = Shelly.getComponentStatus("cover", 0); if (coverStatus.current_pos === desired_pos) { Timer.clear(t1); // Jalousie kurz hochfahren Shelly.call('Cover.GoToPosition', {'id': 0, 'pos': short_up_pos}, function(result, error_code, error_message) { if (error_code === 0) { if (stop_if_ready) { t1 = Timer.set(3000, false, stop_script); } } else { Shelly.call("Log.Error", { message: "Fehler beim Hochfahren: " + error_message }); } } ); } } let t1; // Setze die Jalousie auf die gewünschte Position Shelly.call('Cover.GoToPosition', {'id': 0, 'pos': desired_pos}, function(result, error_code, error_message) { if (error_code === 0) { // Warte kurz und prüfe dann die Position t1 = Timer.set(1000, true, get_cur_pos); } else { Shelly.call("Log.Error", { message: "Fehler beim Einstellen der Position: " + error_message }); } } );
-
Erst einmal ganz herzlichen Dank für deinen Einsatz. Das Skript läuft grundsätzlich. Allerdings ist 100 % offen und 0 geschlossen. Jetzt fährt er auf 93 runter und gleich darauf noch ein wenig runter. Wie sieht also das Skript aus, wenn 100 oben und 0 unten berücksichtigt wird?
-
Code
Alles anzeigen{ "ble": { }, "cloud": { "connected": true }, "cover:0": { "id": 0, "source": "timeout", "state": "stopped", "apower": 0, "voltage": 234.2, "current": 0, "pf": 0, "freq": 50, "aenergy": { "total": 11.232, "by_minute": [0, 0, 0], "minute_ts": 1716278400 }, "temperature": { "tC": 49.9, "tF": 121.9 }, "pos_control": true, "last_direction": "open", "current_pos": 93 }, "input:0": { "id": 0, "state": true }, "input:1": { "id": 1, "state": false }, "mqtt": { "connected": false }, "script:1": { "id": 1, "running": true, "mem_used": 98, "mem_peak": 476, "mem_free": 25004 }, "script:2": { "id": 2, "running": false, "mem_free": 25004 }, "script:3": { "id": 3, "running": true, "mem_used": 98, "mem_peak": 476, "mem_free": 25004 }, "sys": { "mac": "E465B8656D18", "restart_required": false, "time": "10:00", "unixtime": 1716278454, "uptime": 2408, "ram_size": 244956, "ram_free": 127028, "fs_size": 458752, "fs_free": 110592, "cfg_rev": 26, "kvs_rev": 0, "schedule_rev": 1, "webhook_rev": 1, "available_updates": { }, "reset_reason": 3 }, "wifi": { "sta_ip": "[IP]", "status": "got ip", "ssid": "[SSID]", "rssi": -45 }, "ws": { "connected": false } }
-
Dann legt die Jalousie los und mit sehr kurzer Verzögerung kommt Fertig, während das Skript noch läuft.
-
Moment. Wie muss der komplette Code aussehen? Denn jetzt hatte ich manuell auf 91% heruntergefahren. Wenn ich deinen Code nach meinem einfüge, kommt "Fertig" sofort, wird aber nicht ausgeführt:
-
Herzlichen Dank für die Beiträge. Westerwald2000's werde ich testen. Jetzt erst einmal zu Michael. Habe die Jalousie auf 91% (damits schneller geht) heruntergefahren und im Code dann 'pos': 93}:
Die Ausgabe der Console ist: Fertig.
-
Ich steuere meine Jalousien mit einem Shelly 2PM und habe folgendes Problem: Ich möchte die Jalousien auf 24% herunterfahren. Um die Lamellen etwas zu öffnen, soll sie dann wieder kurz hochgefahren werden, um die gewünschte Position der Lamellen zu erreichen. Das Absenken auf 24 % funktioniert bereits mit folgendem Skript:
Shelly.call("Cover.GoToPosition", {'id': 0, 'pos': 24});
Nun versuche ich dies:
Shelly.call("Cover.GoToPosition", {'id': 0, 'pos': 24});
Shelly.call("Cover.GoToPosition", {'id': 0, 'pos': 25});
Nur die erste Zeile wird ausgeführt. Wie muss das Skript aussehen, damit beide Zeilen direkt nacheinander ausgeführt werden?
Noch lieber wäre es mir, ich könnte das kurze Hochfahren zeitgesteuert programmieren, etwa 0,3 Sekunden. Dazu habe ich aber keine Hinweise für ein solches Skript gefunden.
PS. Nicht wundern, ich habe diese Anfrage auch in zwei anderen Stellen eingestellt, leider aber keine sachdienlichen Hinweise bekommen.
-
I have the same problem. Out of two Shelly Plus 2PM I was able to set one to cover, the other one gave me the error Missing required argument 'name'!
However, changing the language to English for a short time helped.
-
smarthome-forum.eu/attachment/30826/
Ich kann eine Szene mit einer Bedingung D/W offen anlegen:
. Bei "Aktion" wird mir aber der TRV nicht angezeigt:
-
Ich verstehe das nicht. ⇾ Hier heißt es, TVR + D/W würden funktionieren. Ich kriegs aber auch nicht hin:
-
-
Als Neuling und Begeisterter habe ich eine Frage zu Shelly 2.5 als Jalousie-Steuerung. Den Kippschalter zur manuellen Ansteuerung konnte ich in "Mini-Schritten" bedienen (wenn ich schnell war) und so beispielsweise die Lamellen so einstellen, dass Licht noch durchkam, aber die direkte Sonnenstrahlung nicht.
Jetzt ist es so, dass die Reaktion ganz leicht verzögert ist und der Steuerimpuls offensichtlich ein klein weniger länger dauert.
1. Muss ich damit leben oder habe ich etwas falsch gemacht?
2. Kann ich in den Einstellungen irgendwie eine Aktion hinzufügen, die solche Kleinstschritte ermöglicht?
Danke für jegliche Antworten.