So etwas geht im Allgemeinen nur über "Bastelstunde". Du könntest die Tasten der Fernbedienung nach außen verdrahten und mit einem Shelly Uni steuern (wenn es nur 2 Tasten sind, wenn es eine separate Stopptaste gibt, dann wird es komplizierter).
Es gibt auch kleine 433 Mhz Funkmodule, die man mit einem ESP8266 oder ESP32 steuern kann. Wenn die Fernbedienung keine besonderen Eigenschaften hat (Rolling Code oder ähnliches), dann kannst du die nötigen Befehle "klonen" und über den ESP+Funkmodul senden. Dieser wiederum könnte auf HTTP-Requests von einem Shelly reagieren, oder er wird gleich in ein übergeordnetes System eingebunden.
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.
-
-
ich bin komplett neu in der Shelly Welt und wollte mit einem Shelly 1 Gen3 meine Zirkulationspumpe steuern.
...das die Zirkulation nur 10 Minuten läuft.
Wenn aber die Heizung das Warmwasser macht, dann hätte ich gerne über den Switch Eingang die Zirkulation so lange an gelassen wie die Warmwasserbereitung dauert.
Hallo Mt-Harry,
beim Anschluss des Zirkulationsshelly musst du darauf achten, dass er am gleichen Stromkreis angeschlossen wird, wie die Heizung, (am besten bei der Heizung abgreifen, hinter dem Notschalter). Der Ausgang der Heizung für die Zirkulationspumpe wird dann statt an der Pumpe am Eingang SW des Shelly angeschlossen. Wenn sich das für dich kompliziert anhört, dann lass' es von einem Fachmann machen.Wie schon geschrieben wurde, ein Script wird nicht benötigt.
Der sendende Shelly kann z.B. ein 1 Mini sein, er sendet dann den HTTP Request, wenn sein Ausgang geschaltet ist (dort muss nichts angeschlossen sein). Der Vorteil ist, du kannst ihn dann auf verschiedene Art und Weise einschalten, App, Alexa oder über seinen Eingang. Er gibt dann das Signal mit der gewünschten Laufzeit an den Empfänger weiter.Noch ein Wort am Rande: Ich steuere meine Zirkulationspumpe schon seit Jahren mit Shellys. Bei mir ist sie ganz von der Heizung entkoppelt. Es gibt einen Zeitplan für Montag morgen, zur morgendlichen Duschzeit, Laufzeit 15 Minuten. Das dient dazu, dass die Leitungen einmal die Woche etwas länger "gespült" werden, um stehendes Wasser zu vermeiden. An jedem anderen Tag und zu jeder anderen Zeit wird die Pumpe nur nach Bedarf eingeschaltet, Laufzeit dann nur 5 Minuten. Seit ich das so mache, ist mein Energieverbrauch für die Warmwasserbereitung deutlich zurückgegangen. Das liegt unter anderem daran, dass ich einen großen Brauchwasserspeicher mit zusätzlicher Solarthermie habe. Wenn die Zirkulationspumpe läuft, dann wird das (geschichtete) Wasser im Speicher in Unruhe versetzt und gemischt. Das führte dazu, dass die Heizung öfter nachheizen musste. Aus diesem Grund habe ich die Laufzeiten mit der oben beschriebenen Methode deutlich reduziert...
-
-
-
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€.