Beiträge von tomsta13
-
-
ok - versucht aber:
zum 1. Absatz: Ja der pm1 mini schaltet die LED‘s im Bad (Per Taster, Motion 2 oder app) und auf dem läuft auch das skript
2. Absatz: Ja der motion hat die Action: http://192.168.0.247/script/1/on?60
3. Absatz: Retrigger = true im skript
Die Taster des i4 lass ich mal noch aus dem Spiel
Raum betreten - nach 60 sec wird es dunkel…??
-
eiche: Also ich versuche mal Stück für Stück zu verstehen und zu reporten…muss ab und zu auch mal arbeiten gehen
Motion 2:
Standard URL motion detected: http://192.168.0.247/relay/0?turn=on
Standard URL end of motion detected: http://192.168.0.247/relay/0?turn=off
motion Blind Time: 1 (60 sec)
Verhalten:
Raum wird betreten —> Motion schaltet den 1pm mini. Nach 60 sec schaltet er wieder aus. Findet während den 60 sec (Blind Time) eine Bewegung statt, brennt das Licht solange weiter bis 60 sec keine Bewegung messbar war.
——-
Deine Skript URL motion detected: http://192.168.0.247/script/1/on?60 (end of motion bleibt wie oben beschrieben)
Raum wird betreten —> Motion schaltet den 1pm mini. Nach 60 sec schaltet er wieder aus, EGAL ob Bewegung gemessen wird oder nicht. Der Timer vom Motion wird bei Bewegung zwar immer auf die 60 sec (blind time) resettet, aus geht das Licht aber trotzdem immer nach dem Zeitwert am Ende der URL. Findet dann keine Bewegung statt für die Dauer der blind time, schaltet der motion dann das Licht wieder ein für die 60 sec.
——-
Ideal wäre ja wenn das Licht erst dannn ausgehen würde, wenn 60 sec keine Bewegung stattfand.
Daher meine Frage: verhält sich die URL/Skript wie gewünscht (konzipiert) oder weicht hier was von der Idee ab?
lg
-
-
Euch beiden nochmals vielen Dank!
Es ist definitiv eine gut verwendbare Methode. Praktisch schaut es jetzt so aus bei mir:
Variante A: Badlicht (mini pm) wird zuvor geschaltet, dann Raum betreten —> Licht bleibt an (für Duschen zB), motion hat keinen Einfluss, Licht geht erst wieder aus wenn mit i4 oder app geschaltet wird 👍
——-
Variante B: Raum wird betreten, motion 2 schaltet Badlicht ein —> geht dann nach Ablauf Timer (URL in motion) aus, egal ob Bewegung erkannt wird und egal ob der Taster am i4 gedrückt wird oder nicht. Das drücken des Tasters des i4 schaltet nie das Licht ein…?!
Ist nur als Berichterstattung gedacht - ich habe eure Geduld genug strapaziert und kann mit der Lösung gut leben - danke! lg
-
-
Also deine Anfängerfehler würde ich gerne machen…
Leider stoppt das skript im pm mini immer noch sobald ich den Taster am i4 drücke:
Skript von #37 in pm mini kopiert und gestartet
Protokoll:
The action URL of your motion is: http://<IP address of your switching Shelly>/script/1/on?<duration in seconds>
14:37:23When switching via remote command, e.g. Shelly i4, the URL for the remote action is:
14:37:23http://<IP address of your switching Shelly>/rpc/script.eval?id=1&code="remoteButton()"
14:37:23——————-
URL im i4 für 1xTastendruck: http://192.168.0.247/rpc/script.eval?id=1&code="toggleSwitch()"
—> deaktiviert sofort das skript im pm mini…
——————-
motion 2 (da passt alles): http://192.168.0.247/script/1/on?60
-
-
Also ich habe in Ruhe alles nochmals von Beginn an durchgeführt:
Folgendes Ergebnis:
Zu Beginn: Es funktioniert!
Betreten des Bads —> motion 2 löst aus —> Licht geht ein (pm mini) —> nach 180sec geht das Licht wieder aus
wenn im motion 2 die „End of Motion“ Aktion aktiviert ist, geht das Licht nach 60sec ohne Bewegung aus (Blindzeit = 60sec)
Wird jetzt der i4 Taster gedrückt, bleibt das Licht an und geht nicht mehr aus (End of Motion deaktiviert)
Danach drücke ich den i4 Taster lange (http://192.168.0.247/rpc/switch.set?id=0&on=false) und das Licht geht wie gewünscht aus.
ABER: Das Skript1 läuft dann nicht mehr…
—————
Wenn ich dann das skript1 am mini wieder starte und den Raum betrete - erkennt der motion2 die Bewegung, das Licht geht aber nicht an…?? Nach einer Minute (Blindzeit vermutlich) geht dann alles wieder wie gewünscht (Licht für 180sec laut skript und unendlich bei Tastendruck i4)
—————
Wenn jetzt das skript durchlaufen würde dann wäre es eine super Lösung!
lg
-
Vielen Danke für deine Mühe und Geduld! Ich teste mal auch weiter und halte dich am Laufenden…Habe auch gerade Shelly‘s für unseren WoWa bestellt - würde mich interessieren wofür du sie überall einsetzt beim WoMo - aber passt hier nicht her…falls dazu einen Beitrag hast - lass es mich bitte wissen…lg aus Tirol
-
der i4 reagiert mit der neuen url nicht mehr:
http://192.168.0.247/rpc/script.eval?id=1&code="toggleSwitch()"
workaround vorübergehend: http://192.168.0.247/rpc/switch.toggle?id=0 —> geht
-
-
-
habe ganz oben im skript die „null“ durch die ip des lichts=shelly 1pm mini ersetzt - ohne Erfolg…
hier die bilder dazu
motion und i4 folgen gleich…
-
script in #12 kopiert und das alte ersetzt im 1pm mini - wieder keine ip-Ausgabe…?
i4 Action neu: http://192.168.0.247/rpc/script.eval?id=1&code="ToggleSwitch()"
Code
Alles anzeigenlet on = null; // output status let th = null; // timer handle let src = null; // source of switching function send_response(response, body) { response.code = 200; response.body = body; response.send(); } HTTPServer.registerEndpoint('on', function (request, response) { send_response(response, "OK"); if (on!==true) { src = 'motion'; Shelly.call("Switch.set", {'id': 0, 'on': true}); if (request.query.length > 0) { let dur = JSON.parse(request.query); // print(dur); if(!isNaN(dur) && dur>0) { th = Timer.set(Math.floor(1000*dur), false, function () { Shelly.call("Switch.set", {id: 0, on: false}); } ); } } } } ); Shelly.addEventHandler(function(e) { on = e.info.state; if (e.component==="input:0" || src!=='motion') { Timer.clear(th); } }); // Für einen entfernten toggle Aufruf, bspw. von einem i4. function toggleSwitch() { Shelly.call("Switch.Toggle", {id:0}, function (result, errcode
-
1. skript im browser neu eingefügt und gestartet
2. es abeitet durch - es kommt keine Fehlermeldung
3. hier gibts ein Problem: statt der ip steht „null“
—> wo genau muss ich die korrekte ip einfügen?
Action am Motion: http://192.168.0.247/script/1/on?70
Action am i4: http://192.168.0.247/rpc/switch.toggle?id=0
-
-
Also nochmals DANKE für deine Mühen…!
bekomm es noch nicht zum laufen (gut möglich dass es ein Anwenderfehler ist und dein script passt…)
im anhang die aktuellen bilder und das was ich für das protokoll halte
lg
Code
Alles anzeigen{ "web_id": "240213111718-ce341dc8-HEAD", "deviceInfo": { "name": null, "id": "shelly1pmminig3-5432044f9474", "mac": "5432044F9474", "slot": 1, "key": "eyJhbGciOiJFUzM4NCIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3MDE0OTg3ODAsIm1hYyI6IjU0MzIwNDRGOTQ3NCIsIm0iOiJTM1NXLTAwMVA4RVUiLCJiIjoiMjM0Ny1Ccm9hZHdlbGwiLCJmcCI6IjA3NjNkZGEyIn0.n359OqnK2ETgzmrWchsx0v6R_cN_YqqTiReU3WI9SMQMfgpbc3VK-C8PExIeT4ceLZPiw6rGSw50QvrUnhT_U2U8-jGsvYuy2zfw_tSjc64RI7X2yz9pJxHcwr0Otdb2", "batch": "2347-Broadwell", "fw_sbits": "04", "model": "S3SW-001P8EU", "gen": 3, "fw_id": "20240223-141910/1.2.2-g7c39781", "ver": "1.2.2", "app": "Mini1PMG3", "auth_en": false, "auth_domain": null }, "status": { "sys": { "mac": "5432044F9474", "restart_required": false, "time": "15:44", "unixtime": 1710254644, "uptime": 878, "ram_size": 259252, "ram_free": 144800, "fs_size": 1048576, "fs_free": 712704, "cfg_rev": 47, "kvs_rev": 0, "schedule_rev": 0, "webhook_rev": 3, "available_updates": {}, "reset_reason": 3 }, "jobs": [], "timezones": [], "geolocation": {}, "hooks": [], "ble": {}, "cloud": { "connected": true }, "input:0": { "id": 0, "state": false }, "mqtt": { "connected": false }, "script:1": { "id": 1, "running": true, "mem_used": 840, "mem_peak": 2072, "mem_free": 24360 }, "switch:0": { "id": 0, "source": "loopback", "output": false, "apower": 0, "voltage": 232.3, "freq": 49.9, "current": 0, "aenergy": { "total": 3909.738, "by_minute": [ 0, 0, 0 ], "minute_ts": 1710254640 }, "ret_aenergy": { "total": 0, "by_minute": [ 0, 0, 0 ], "minute_ts": 1710254640 }, "temperature": { "tC": 67.2, "tF": 153 } }, "wifi": { "sta_ip": "192.168.0.247", "status": "got ip", "ssid": "STAR", "rssi": -67 }, "ws": { "connected": false }, "schedule": {}, "webhook": {}, "kvs": {}, "debug": {}, "http": {}, "firmware": {}, "virtual": {}, "tls": {}, "rev": 0 }, "config": { "sys": { "device": { "name": null, "mac": "5432044F9474", "fw_id": "20240223-141910/1.2.2-g7c39781", "discoverable": true, "eco_mode": false }, "location": { "tz": "Europe/Vienna", "lat": 47.269, "lon": 11.3915 }, "debug": { "level": 2, "file_level": null, "mqtt": { "enable": true }, "websocket": { "enable": true }, "udp": { "addr": null } }, "ui_data": {}, "rpc_udp": { "dst_addr": null, "listen_port": null }, "sntp": { "server": "time.google.com" }, "cfg_rev": 47 }, "cloud": { "enable": true, "server": "shelly-90-eu.shelly.cloud:6022/jrpc" }, "ble": { "enable": false, "rpc": { "enable": true }, "observer": { "enable": false } }, "mqtt": { "enable": false, "server": null, "client_id": "shelly1pmminig3-5432044f9474", "user": null, "ssl_ca": null, "topic_prefix": "shelly1pmminig3-5432044f9474", "rpc_ntf": true, "status_ntf": false, "use_client_cert": false, "enable_rpc": true, "enable_control": true }, "ws": { "enable": false, "server": null, "ssl_ca": "ca.pem" }, "http": {}, "firmware": {}, "debug": {}, "virtual": {}, "schedule": {}, "webhook": {}, "kvs": {}, "wifi": { "ap": { "ssid": "Shelly1PMMiniG3-5432044F9474", "is_open": true, "enable": false, "range_extender": { "enable": false } }, "sta": { "ssid": "STAR", "is_open": false, "enable": true, "ipv4mode": "dhcp", "ip": null, "netmask": null, "gw": null, "nameserver": null }, "sta1": { "ssid": null, "is_open": true, "enable": false, "ipv4mode": "dhcp", "ip": null, "netmask": null, "gw": null, "nameserver": null }, "roam": { "rssi_thr": -80, "interval": 60 } }, "tls": {}, "addonmanager": {}, "bthome": {}, "input:0": { "id": 0, "name": null, "type": "switch", "enable": true, "invert": false, "factory_reset": true }, "script:1": { "id": 1, "name": "Bad i4 Dauer ein", "enable": true }, "switch:0": { "id": 0, "name": null, "in_mode": "follow", "initial_state": "off", "auto_on": false, "auto_on_delay": 60, "auto_off": false, "auto_off_delay": 60, "power_limit": 2240, "voltage_limit": 280, "autorecover_voltage_errors": false, "current_limit": 8 } }, "schedule": { "jobs": [], "rev": 0 }, "hook": { "hooks": [], "rev": 3 } }
-
habe mich später eingeklinkt…
Ich habe NUR deinen Code kopiert und eingefügt - keine Veränderung/Anpassung vorgenommen (leider Null Erfahrung mit den scripts…)
Auch wenn ich per app den shelly 1pm mini schalte und dann durch den Sensor gehe - schaltet er nach 60 sec (=Blindzeit) wieder ab…
ich kopiere mal den „Code“ rein, ist aber DEIN Original (vermutlich gehört was angepasst…)
sorry und Danke!
Code
Alles anzeigenlet on = null; // output status let th = null; // timer handle function send_response(response, body) { response.code = 200; response.body = body; response.send(); } HTTPServer.registerEndpoint('on', function (request, response) { send_response(response, "OK"); if (on!==true) { Shelly.call("Switch.set", {'id': 0, 'on': true}); if (request.query.length > 0) { let dur = JSON.parse(request.query); // print(dur); if(!isNaN(dur) && dur>0) { th = Timer.set(Math.floor(1000*dur), false, function () { Shelly.call("Switch.set", {id: 0, on: false}); } ); } } } } ); Shelly.addEventHandler(function(e) { on = e.info.state; if (e.component==="input:0") { Timer.clear(th); } }); //Do some user friendly printout let url = 'http://' + Shelly.getComponentConfig("wifi").sta.ip + '/script/' + Shelly.getCurrentScriptId() + '/on?<duration in seconds>'; print('Your url is:', url);
-
Hi! Danke für die Hilfe!
Also das Skript war tatsächlich nicht gestartet…funktionieren tut das Ganze jedoch immer noch nicht…
Danke für den Tipp, habe das Skript gleich umbenannt.
Ja - 1. Abbildung war die alte URL
Ja - 2. Abbildung ist die aktuelle URL
Schreibst du, du durchsuchst den Skriptinhalt nicht, da dort kein Fehler sein kann wenn er kopiert ist oder kann das Problem schon auch dort liegen?
Sorry wegen der Amateurfragen…lg
Aktueller Status:
Motion 2 löst aus - Licht geht an
Nach 60 sec geht das Licht dann aus (ohne Bewegung), eine Bewegung verlängert den Timer immer um 60 sec
Tastendruck auf shellyi4 —> Befehl an 1pm mini —> Licht ein (http://192.168.0.247/rpc/switch.set?id=0&on=true)
falls keine Bewegung (motion2 setzt keine action) —> Licht bleibt an; falls Bewegung —> Licht geht 60 sec nach letzter Bewegung aus