Ein gutes Netzteil mit wenig Standbyverlust (da ständig unter Spannung), z.B. ein Meanwell HLG-40H-24A und die zuvor beschriebenen RGBWs wären auch meine erste Wahl. Billige Netzteile pfeifen auch gerne mal vor sich hin...
Beiträge von horkatz
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.
-
-
Ganz so einfach wird es nicht gehen. Der verbaute Dimmer arbeitet ziemlich sicher mit PWM. Daraus kann man zwar ein analoges Eingangssignal generieren, ohne ein paar zusätzliche Bauteile wird es aber nicht gehen...
-
Im Sommer mache ich das auch mit einem Blu DW über Szenen. Er läuft im Beacon Modus und sendet regelmäßig Helligkeitswerte. Ich habe eine Halterung gebaut und ihn damit innen auf die Fensterbank gestellt, er schaut den lieben langen Tag zum Fenster raus

-
Hallo Michael,
zu deinen Fragen:
Meldung aufs Handy: Ja, das geht, der jeweilige Shelly Mini PM kann das übernehmen. Mache ich bei Waschmaschine und Trockner auch, ist aber etwas tricky wegen der in #16 erwähnten Pausen. Ich nutze jeweils ein Script.
Gegenseitige Verriegelung: Geht nur über die Aktionen (per "Software"), eine zusätzliche Hardwareverriegelung ist prinzipbedingt nicht möglich. (Ein zusätzliches Installationsschütz mit Öffnerkontakt würde den zugehörigen Shelly zum Einschalten bringen...).Was du aber vorher klären (messen) solltest: Im ausgeschalteten Zustand der Geräte darf kein Standbystrom fließen, sonst funktioniert die Erkennung über den Shelly nicht, da sich dort die Empfindlichkeit nicht einstellen lässt.
Viele Grüße
Horst -
Mit Firmware 1.5.0 (zur Zeit ist beta2 ausgerollt) wurde die „Slat Control“ auch für Shelly plus 2PM eingeführt.
Das erklärt einiges. Denn wenn ich in der APP bei meinem Plus 2PM schaue, dann wird der Punkt mit folgender Meldung angezeigt:
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. Installiert ist aber die aktuellste offizielle Version, Beta Firmware lässt sich nur direkt über die IP installieren.
Ich benötige das bei meinem Plus 2PM aber nicht... -
Hatte gerade etwas Zeit und habe ein wenig experimentiert. Weder dein Script, noch ein neu aus der Bibliothek erstelltes laufen. Den Grund weiß ich nicht, dazu reichen meine Script Kenntnisse nicht, ich sehe nur, dass es erhebliche Unterschiede zu meinem alten Script gibt.
Hier mein altes Script mit deiner bluButtonAddress und deinen URLs aus deinem ersten Post, vielleicht hilft dir das ja...Code
Alles anzeigen/** * This script lets you use your Gen2 device as a gateway between Shelly BLU button1 and other Shelly devices (no matter Gen1 or Gen2) * by sending local requests by their local IP APIs. * * What you should change before using it: * > bluButtonAddress -> You should put the mac address of your blu button here. * This script will help you find the mac address: https://github.com/ALLTERCO/shelly-script-examples/blob/main/ble-shelly-scanner.js * * > actions -> You should put the urls here to be executed at the specified event. Urls that shoudl be called on single/short push * of the button, must be placed in the singlePush object. This applies to the double and triple push as well. Example below. * * Limitations: * > At the moment there is a limit of 5 RPC calls at the same time and because of this, the script will execute every 3 urls with a 1 second delay. * Limitations can be check here: https://shelly-api-docs.shelly.cloud/gen2/Scripts/ShellyScriptLanguageFeatures#resource-limits * * > The order of the execution of the urls can't be guaranteed */ /** =============================== CHANGE HERE =============================== */ let CONFIG = { bluButtonAddress: "3c:2e:f5:fb:ad:28", //the mac address of shelly blu button1 that will trigger the actions actions: { //urls to be called on a event //when adding urls you must separate them with commas and put them in quotation marks singlePush: [ //urls that will be executed at singlePush event from the blu button1 "http://192.168.188.148/relay/0?turn=on" ], doublePush: [ //urls that will be executed at doublePush event from the blu button1 "http://192.168.188.148/relay/0?turn=on" ], triplePush: [ //urls that will be executed at triplePush event from the blu button1 "http://192.168.188.148/relay/0?turn=on" ], longPush: [ //urls that will be executed at longPush event from the blu button1 ] } }; /** =============================== STOP CHANGING HERE =============================== */ let urlsPerCall = 3; let urlsQueue = []; let callsCounter = 0; let ALLTERCO_MFD_ID_STR = "0ba9"; let BTHOME_SVC_ID_STR = "fcd2"; let uint8 = 0; let int8 = 1; let uint16 = 2; let int16 = 3; let uint24 = 4; let int24 = 5; let BTH = {}; BTH[0x00] = { n: "pid", t: uint8 }; BTH[0x01] = { n: "Battery", t: uint8, u: "%" }; BTH[0x05] = { n: "Illuminance", t: uint24, f: 0.01 }; BTH[0x1a] = { n: "Door", t: uint8 }; BTH[0x20] = { n: "Moisture", t: uint8 }; BTH[0x2d] = { n: "Window", t: uint8 }; BTH[0x3a] = { n: "Button", t: uint8 }; function getByteSize(type) { if (type === uint8 || type === int8) return 1; if (type === uint16 || type === int16) return 2; if (type === uint24 || type === int24) return 3; //impossible as advertisements are much smaller; return 255; } let BTHomeDecoder = { utoi: function (num, bitsz) { let mask = 1 << (bitsz - 1); return num & mask ? num - (1 << bitsz) : num; }, getUInt8: function (buffer) { return buffer.at(0); }, getInt8: function (buffer) { return this.utoi(this.getUInt8(buffer), 8); }, getUInt16LE: function (buffer) { return 0xffff & ((buffer.at(1) << 8) | buffer.at(0)); }, getInt16LE: function (buffer) { return this.utoi(this.getUInt16LE(buffer), 16); }, getUInt24LE: function (buffer) { return ( 0x00ffffff & ((buffer.at(2) << 16) | (buffer.at(1) << 8) | buffer.at(0)) ); }, getInt24LE: function (buffer) { return this.utoi(this.getUInt24LE(buffer), 24); }, getBufValue: function (type, buffer) { if (buffer.length < getByteSize(type)) return null; let res = null; if (type === uint8) res = this.getUInt8(buffer); if (type === int8) res = this.getInt8(buffer); if (type === uint16) res = this.getUInt16LE(buffer); if (type === int16) res = this.getInt16LE(buffer); if (type === uint24) res = this.getUInt24LE(buffer); if (type === int24) res = this.getInt24LE(buffer); return res; }, unpack: function (buffer) { //beacons might not provide BTH service data if (typeof buffer !== "string" || buffer.length === 0) return null; let result = {}; let _dib = buffer.at(0); result["encryption"] = _dib & 0x1 ? true : false; result["BTHome_version"] = _dib >> 5; if (result["BTHome_version"] !== 2) return null; //can not handle encrypted data if (result["encryption"]) return result; buffer = buffer.slice(1); let _bth; let _value; while (buffer.length > 0) { _bth = BTH[buffer.at(0)]; if (typeof _bth === "undefined") { console.log("BTH: unknown type"); break; } buffer = buffer.slice(1); _value = this.getBufValue(_bth.t, buffer); if (_value === null) break; if (typeof _bth.f !== "undefined") _value = _value * _bth.f; result[_bth.n] = _value; buffer = buffer.slice(getByteSize(_bth.t)); } return result; }, }; function callQueue() { if(callsCounter < 6 - urlsPerCall) { for(let i = 0; i < urlsPerCall && i < urlsQueue.length; i++) { let url = urlsQueue.splice(0, 1)[0]; callsCounter++; Shelly.call("HTTP.GET", { url: url, timeout: 5 }, function(_, error_code, _, data) { if(error_code !== 0) { console.log("Calling", data.url, "failed"); } else { console.log("Calling", data.url, "successed"); } callsCounter--; }, { url: url } ); } } //if there are more urls in the queue if(urlsQueue.length > 0) { Timer.set( 1000, //the delay false, function() { callQueue(); } ); } } let lastPacketId = 0x100; function bleScanCallback(event, result) { //exit if the call is not for a received result if (event !== BLE.Scanner.SCAN_RESULT) { return; } //exit if the data is not coming from a Shelly Blu button1 and if the mac address doesn't match if ( typeof result.local_name === "undefined" || typeof result.addr === "undefined" || result.local_name.indexOf("SBBT") !== 0 || result.addr !== CONFIG.bluButtonAddress ) { return; } let servData = result.service_data; //exit if service data is null/device is encrypted if(servData === null || typeof servData === "undefined" || typeof servData[BTHOME_SVC_ID_STR] === "undefined") { console.log("Can't handle encrypted devices"); return; } let receivedData = BTHomeDecoder.unpack(servData[BTHOME_SVC_ID_STR]); //exit if unpacked data is null or the device is encrypted if(receivedData === null || typeof receivedData === "undefined" || receivedData["encryption"]) { console.log("Can't handle encrypted devices"); return; } //exit if the event is duplicated if (lastPacketId === receivedData.pid) { return; } lastPacketId = receivedData["pid"]; //getting and execuing the action let actionType = ["", "singlePush", "doublePush", "triplePush", "longPush"][receivedData["Button"]]; let actionUrls = CONFIG.actions[actionType]; //exit if the event doesn't exist in the config if(typeof actionType === "undefined") { console.log("Unknown event type in the config"); return; } //save all urls into the queue for the current event for(let i in actionUrls) { urlsQueue.push(actionUrls[i]); } callQueue(); } function bleScan() { //check whether the bluethooth is enabled let bleConfig = Shelly.getComponentConfig("ble"); //exit if the bluetooth is not enabled if(bleConfig.enable === false) { console.log("BLE is not enabled"); return; } //start the scanner let bleScanner = BLE.Scanner.Start({ duration_ms: BLE.Scanner.INFINITE_SCAN, active: true }); //exist if the scanner can not be started if(bleScanner === false) { console.log("Error when starting the BLE scanner"); return; } BLE.Scanner.Subscribe(bleScanCallback); console.log("BLE is successfully started"); } function init() { //exit if there isn't a config if(typeof CONFIG === "undefined") { console.log("Can't read the config"); return; } //exit if there isn't a blu button address if(typeof CONFIG.bluButtonAddress !== "string") { console.log("Error with the Shelly BLU button1's address"); return; } //exit if there isn't action object if(typeof CONFIG.actions === "undefined") { console.log("Can't find the actions object in the config"); return; } //start the ble scan bleScan(); } //init the script init(); -
Ich glaube ich komme an den Shelly 2 nicht vorbei, oder?
Nach meinem Kenntnisstand haben nur die 2PM Gen3 die Neigungswinkelverstellung für Jalousien. Ich selber habe aber auch nur normale Rollladen die größtenteils noch mit dem alten 2.5 laufen, es gibt bei mir nur einen Plus 2 PM, 2PM Gen3 habe ich noch keinen.
Bei Shellyparts gibt es aber aktuell den 4er Pack für 99,99€. -
Beim Kalibrieren misst der Shelly den Strom bis zum Abschalten über die Endschalter des Rollladen. Da du mehrere Rollladen über einen Schalter fährst, sind sicher auch Trennrelais verbaut. Damit funktioniert die Kalibrierung nicht. Evtl mit einem direkt angeschlossenen Rollladen kalibrieren und dann wieder umklemmen. Oder je Rollladen ein Shelly...
Edit: Zu lange getextet...
-
Sowohl Mini PM als auch Plus 1 halten 16A aus. Wenn alles richtig läuft, dann wird ja nicht unter Last geschaltet. Da sollte es keine Probleme geben...
-
Das mit dem Netzfreischaltrelais ist eine gute Idee.
Ist aber leider auch teuer. Wie gut so ein Gerät mit einer Waschmaschine zusammen arbeitet, müsste auch getestet werden, unsere Waschmaschine macht zwischendurch kleine Pausen, wo fast kein Strom fließt...
Die Idee von Schubbiehatte ich nicht auf dem Schirm, erst beide Steckdosen freizugeben und nach Stromfluss in einer Dose die jeweils andere freizuschalten. Der Ansatz ist auf jeden Fall interessant.
Was ich nicht weiß, willst du, nachdem das erste Gerät fertig ist, dass das zweite automatisch läuft? Das wird bei den meisten Maschinen nicht funktionieren, wie bereits mehrfach geschrieben wurde...
-
Selbst wenn die Spannung etwas einbricht, für den Uni dürfte sie immer noch reichen.
-
Das wäre sicherlich schöner, den Plus 1 hat er ja aber schon gekauft. Am einfachsten wäre ein Uni am Torantrieb als Sender (Versorgung durch den Antrieb) und ein Plus Plug S als Empfänger.
Es ist ja aber auch noch nicht geklärt, ob ein 2. Shelly gebraucht wird.
-
Ansonsten evtl. wenn dieser Weg nicht funktioniert:
Shelly Plus 1 an Kontakt von "Tor auf" und dort auf der Weboferfläche programmiert, dass nach x Minuten ausschaltet? Wäre das einfacher möglich?Es soll ja nach wie vor das TV geschaltet werden, nicht das Tor, oder? Gibt es einen weiteren Shelly, oder soll der Plus 1 beide Aufgaben übernehmen (Erkennung Tor offen und Schalten der Spannung für das TV)? Für die Erkennung reicht der Kontakt "Tor auf", wenn nicht auf, dann nach kurzer Zeit ausschalten...
-
und das ganze automatisieren, das wenn ich z.B die Waschmaschine einschalte,
ein Shelly die entsprechende Steckdose einschaltet.
Automatisieren könntest du es nur, wenn du mit Netzfreischaltrelais arbeitest und die Schaltung so modifizierst, dass nur der Kanal einschaltet, der als erstes Strom haben möchte. Wenn du mit einem Shelly arbeiten willst, dann musst du entscheiden, welche Steckdose ans Netz soll, der Shelly schaltet nur. Technisch ist es kein Problem, ein Installationsschütz mit einem Wechsler (16A) und ein Shelly 1 Mini reichen aus. Ich würde es so schalten, dass die Waschmaschine vorrangig Strom hat (über den Öffnerpfad des Installationsschütz'), bei aktiviertem Shelly bekommt dann der Trockner Strom.
-
Ja, in der Skizze wird nur geschaltet. Der Optokoppler ersetzt die Last (LED Stripe) und triggert den Shelly. Dieser schaltet dann den Stripe.
Nachteil: Es kann nicht gedimmt werden, Anmerkungen siehe oben...
-
14 Netzteile sind schon eine Hausnummer.
Ein Einschaltstrombegrenzer würde helfen...
-
Darf ich fragen, woher dein Script stammt? Ich nutze eine Version des Script schon seit längerer Zeit mit einem Plus 1. Wenn ich dein Script mit meinem vergleiche (mit Hilfe von WinMerge), dann gibt es deutliche Unterschiede...
Ok dachte ich mir, meins ist halt schon älter, nehme ich das Script aus der Shelly Bibliothek und vergleiche deins damit. Aber auch dort gibt es Unterschiede... -
da erstmal gesichert sein muss, dass diese auch auf selben LS-Schalter wie die Schaltung liegt.
Es wird vermutlich der gleiche LS sein, wäre es ein anderer, dann könnte es auch eine andere Phase sein, das überlebt der Eingang des Shelly Mini aber nicht, er verabschiedet sich schweigend. Der Shelly an sich funktioniert dann aber noch (ohne SW). Ist mir mal aus Versehen passiert
.
Ich tippe auch auf klebende Relais...Sicherung rein/raus behebt das Problem nicht. Sobald die Sicherung wieder an ist leuchtet das Licht dauerhaft
Einfach dann mal in der APP schauen, ob der Ausgang an oder aus ist, ist er aus, ist es ein Hardwareproblem, siehe oben.
-
Ich habe hier in der Nachbarschaft wenigstens 2 offene Shellys
Dann kannst du halt beim Nachbarn schalten
. Du könntest auch seine Shellys kapern, wenn du böse bist. Viel mehr Schaden kannst du aber nicht anrichten, in sein WLAN kommst du so nicht...Edit: Da war ich zu langsam...
-
Doch, haben sie:
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.