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.
-
-
Hallo AlexNielsen,
du kannst es auch ganz einfach lösen.
1. Erstelle im Shelly einen Auto Timer off mit 30 Minuten. Der sorgt dafür, dass immer nach 30 Minuten abgeschaltet wird.
2. Erstelle im Shelly 4 ähnliche Sensoraktionen, einziger Unterschied ist die aktive Zeit.
Beispiel: 1. Aktive Zeit: 00:00 Uhr bis 00:05 Uhr.
Wenn Temperaturmessung weniger als 2°
Lokale Aktion
Ausgang steuern AnDie anderen Aktionen sind nahezu gleich aufgebaut, hier dann als aktive Zeit 6, 12, und 18 Uhr einstellen (Ende jeweils 5 Minuten später).
-
Hallo Teja Mildner,
im neuen Shelly würde ich einfach eine Aktion erstellen:Wenn Eingang ein
Aktion von einem anderen Gerät hinzufügen
"Lichtshelly" auswählen,
Ausgang steuern,
An, Wert umkehren nach xx Sekunden.Du kannst dann mit den verbliebenen Tastern weiterhin an- und ausschalten.
Wichtig: Der neue Shelly benötigt eine Dauerphase und den Neutralleiter.
-
Mach es doch wie folgt:
Wenn Küchentür Kontakt geschlossen
Dann
Küchentür schließen
Aktive Zeit
Startzeit: 22:00
Endzeitpunkt: 06:00Wichtig ist, dass der Trigger der Bedingung auf Wiederholt steht, dann wird jede Minute geprüft.
Hier ein Beispielscreenshot:
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. Edit: Beitrag geändert, da die erste Version nur mit einer Lampe funktionierte, mit Rollladen mochte sie nicht...
-
Oh, bei meiner ersten Antwort bin ich (warum auch immer) von einer normalen Klingel ausgegangen, das mit der Gegensprechanlage ist mir entgangen...
"Entkoppeln" bezog sich auf den parallelen Anschluss von Klingel/Eingang Shelly. Hier sieht die Welt aber wieder anders aus, weil es keine normale Klingel ist. Ich habe mir mal die Bedienungsanleitung angeschaut. Man könnte evtl das Signal der grünen LED abgreifen und damit die Benachrichtigung erzeugen. Je nach Programmierung der Anlage hat diese LED aber auch andere Funktionen, was dann zu Fehlbenachrichtigungen führen würde. Das Öffnen der Tür könnte durch Anklemmen des Shelly Ausgangs an den entsprechenden Taster erfolgen.
Beides ist aber nicht ganz trivial, erfordert spezielle Kenntnisse und bedeutet einen Eingriff in das Gerät, welches nicht dir gehört. Du solltest dir über die möglichen Folgen, auf die funkenwerner hingewiesen hat, im klaren sein...
-
Letztlich kann jeder es so machen, wie er möchte. Wenn ich bei mir alle Steckdosen mit Shellys versehen würde, dann würde ich arm werden. Ich schalte nur eine Außensteckdose mit einem (innen verbauten) Shelly, alle anderen geschalteten Steckdosen sind PlugS. Damit bin ich mobil und kann sie da einsetzen, wo sie gerade gebraucht werden. Gemessen werden Waschmaschine, Trockner, Gefrierschrank und Heizung mit PM Minis, aber nur zur Überwachung bzw. um benachrichtigt zu werden, wenn das entsprechende Gerät fertig ist. Eine (häufig gebrauchte) Stehlampe hat statt des originalen Schalters den wunderschönen Shelly Button mit eingebautem Shelly 1 Gen1.
-
wobei das shelly dann auch gleichzeitig immer schaltet oder kann das unterbunden werden?
Ja, Eingang auf "Detached" stellen.
Deine beiden Vorhaben sind ohne große Probleme umsetzbar, allerdings musst du die Klingel vom Eingang entkoppeln, sonst ist er für den Shelly dauernd an. Kann dazu später mehr schreiben, die Arbeit ruft... -
Wenn der PM (nur messen) ausfällt, ist dann die Steckdose auch tot?
Normalerweise funktioniert die Steckdose noch, außer der Shunt ist durchgebrannt (sehr unwahrscheinlich).
-
Es gibt spezielle Schaltnetzteile, die man auf der Primärseite dimmen darf. Ob das genannte dazu gehört, weiß ich nicht, müsste ich erst nachschauen. Was ich gesehen hatte, es gibt Varianten mit zusätzlichem DIM - Eingang, dabei bleibt das Netzteil aber auch am Netz...
-
der Shelly schaltet je nach Witterung und Feuchtigkeit im Keller und draußen die Lüftungsanlage
Wie willst du das messen? An einen "großen" Shelly (Plus 1 oder ähnliche) kannst du ein Addon montieren, dort kannst du dann einen kombinierten Temperatur und Feuchtesensor anschließen, dann hast du schon mal Werte aus dem Keller. Für draußen brauchst du dann auch noch irgend etwas, wenn die Lüftung den Taupunkt berücksichtigen soll...
Beim Anschluss solltest du dir Hilfe suchen, da doch offensichtlich bestimmte Kenntnisse fehlen. Der Shelly benötigt auf jeden Fall Phase und Neutralleiter, wahrscheinlich ist der blaue Draht aber an seinem Ursprungsort nicht aufgelegt... -
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...
-
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...