Warum wird hier schon wieder in Schubladen denken gedacht echt schlimm manche sollte mal über ihr EGO hinaus blicken,ja sie kann etwas einrichten die Frage die sich mir stellt ist was möchte sie den machen?
Beiträge von Schwarzermann
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.
-
-
Und arum investiert du nicht in ein kleines PV Modul das du eventuell an ein Fensterstellst egal ob im WOMO oder eben in der Halle wo das WOMO steht und lädst so die Batterie immer wieder nach?
Man muss ja ur etwas mehr als den Standbei verbrauch nach Laden das scützt die Baterien ich mache das so bei meinen Oldtimern die haben alle ein 20 W Modul das reicht aus um eben die Batterien zu Stützen.
-
Ne ne der bekommt Stom bzw wird auf seine alte Position gesetzt wo er wieder ne Zuleitung bekommt und da ich eh da noch ne Smarte video Klingel rein soll wird das noch was grösseres an reed kontakte hab ich auch gedacht fest verkabelt der Router ist 12 Meter entfernt im Haus aber selbst hier werde ich wohl mit kabe arbeiten na mal schaun. die Wetterstation oben drauf die man auf dem Bild nicht sieht macht seit 3 jahren zuverlässig ihren Dienst.
-
Hm ich bin da auch noch am rum tüfteln was ich machen soll einmal hab ich ja die Einwurfseite mit Brifkasten und Paketbriefkasten und auf der anderen Seite die klappe zum entnehmen und meinen Auszug
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. Da ist genug Platz drin und der Postbote(in )lieben es da passen bis zu 4 Autoreifen rein nur dpd der die Reifen Liefert wehrt sich dagegen die da rein zutun.
Ich will eben alle klappen überwachen und auslesen und eben gemeldet bekommen wenn etwas reingelegt bzw entnommen wurde.
-
Ich Frage mich eh warum man allgemein bei Shelly keine Federzugklemmen wie bei Phönix verbindern ect verbaut, kein Rumgeschraube und losreisen der Verschraubugen einfach passenden Werkzeug auf die Federklemme Kabelrein fertig.
Es könnte so einfach sein zudem die Einschraubtiefe bei alle Shellys doch sehr gering ist.
-
Da muss ich dir allerding zustimmen Nur wenn man etwas ausprobiert kommt man auch durch den Lern effekt zu Anwendungswissen, siehe zb das ich meine Shellys in Grafana schalte.
Und da war ich Überrascht wie gut mit Chat GPT das ganze dann doch auch programiert wurde und zu einem Brauchbaren Ergebnis geführt hat.
-
Nur mal zur Überlegung ich sitze vor einem Hellem Monitor und brauche am Tag ein Licht um was??
Den Monitor zusehen?
Schreiben tu ich ja auch auf der Tastatur ok meine ist beleuchtet, aber für was ausser von einem Blatt abzulesen brauche ich da noch zusätzlich ein Licht?
Um Strom zuverbrauchen?
Entschuldigt meine Naive Frage aber ich sehe keinen Sinn dabei ausser man Sitzt in einem Fensterlosen Raum.
Bei mir als konstrukteur brauche ich in der Regel kein licht 3 monior grinen mich de Ganzen Tg mit der Elektrosonne an das ich schon braun werde, und Dokumente zum lesen Scanne ich ein und berbeite oder lese sie am PC da ic sie eh meist eiscannen muss, Papier hab ich soweit aus meinem Arbeitsallg verbannt.
Ich Steuer aber auch meine Schreibtischlampe mit enem Shelly warum weil ichs kann aber mit eiem Skript das einen Anderen Shelly wo PC und Monitore dran hängen und dieses Skript bezieht auch meine Wetterstation mit ein wen diese hell meldet bleibt das Licht aus, ansonsten hilft mir meine Grafn Programierung wo ich alle meine Shellys schalten kann über den PC und somit auf alles zugriff habe.
-
ok danke für die info kann man die Firmware selbst auch einsehen um ebe das ganze mal auszuprobieren klar immer mit der gefahr das das ganze sich dann zerlegt.
-
Ich möchte mich da mal enhacken es ist ja auch möglich mehr wie 5 Sensoren anzuschliesen der Shelly erkennt diese auch, nur werden eben nur 5 Stück zur Auswahl frei gegeben gibt es hier eine möglichkeit das ganze zu erweitern?
Das würde eben nur einen Shelly mit einem Addon nötig machen und ich könnte so zb meine 5 Puffer jeweils überwachen.
-
Man kann aber auch in der Fritzbox diverse Geräte mit Internet zugang erlauben oder eben sperren das ist ales einstellbar und denke der geringste Aufwand er Rest ist Erziehung
-
Ich nicht, Sind halt dann für dich ca 600 km ist doch ein klacks per Videoschalte
Aber das könnte man machen ein Videochat treffen zb Teams ect vorteil man kann auch seine Programierungen ect live Zeigen was geht und was nicht wäre für mih nicht das erste solche Treffen.
-
ich bin etwas Südlich von der Linie Ulm München auf nen Plausch oder Kaffe warum nicht
-
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. Bei mir sieht es in Grafana mittlerweile so aus und ich kann alles über den PC Tablet oder Handy sSchalten ich kann die Button Form und Frbe die Raum Frbe alles selbst bestimmen und das Beste live abfrage der Zustäne ob Rollo oder Tore Geschlossen sind bis zu welchem % zahl , und da alles Cloud frei und mit vollem zugriff von Aussenvon überall wo es Internet gibt, das meiste ist mit KI programiert . Wer also interesse hat sich sowas zu bauen der darf genre Anfragen wie ich das gemacht habe Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. hier zb meie Garagen Tore und die Werkstatt dazu ja die Farben sind gewöhungsbedürftig ber das kann ic ja noch ändern.
-
Das ist keine Kunst das schaffs du sogar selbst an den beiden innensechskant wird die Endlage eingestellt einmal für oben einemal für unten Idealerweise fährt man den motor einmal ohne Rollo in die oberste Stllug dann zählt man die Umdrehungen wo er nach unten fährt, dann baut man ihn in der oberen endlage ein und kann den anderen einstellung soweit verstellen das er eben nicht die volle umdrehungszahl macht und man tastet sich ans Ende.
Und ja in der Regel macht das der Monteur.
-
So soll es sein mit Endlagen eisellbar, dann funktioniert auch alles, und die Spielwiese is eröffnet.
-
Ach in deutschland gibt es soviele unsinnige verordnungen aber manche machen schon Sinn und so ein hydraulischer abgleich kann man als Heimwerker auch gut stemmen
-
Ja das ist mit so das entscheidenste das ganze Langsam hoch zufahren, ich Fahre hohen Volumenstrom und konnte so meine Vorlauftemperatur die noch von 2 temperatur Sensoren gesteuret wird Innen und Aussen von 65° auf aktuell bei 10° auf 38 ° drücken es ist muckelig warm in der Bude 22-23° ja das ganze braucht wenn es mal runter gekühlt hat weil mal ich ausversehen die Heizung ausgeschlten habe schon 2-3 Std bis es wieder auf soll Temperatur ist aber wirklich kalt ist es nicht, und die WP läuft mittlerweile stur durch zieht wenige 1100w und macht daraus je nach cop der ja Temperutarabhängig ist 4-5 kw Heizleistung
-
Code
Alles anzeigen/***** Markise – Sonnen/Wetter-Logik (Shelly Plus 2PM, InfluxDB = wunderweather) * Datum: 2025-10-06 *****/ /*** Ersatz für encodeURIComponent (da Shelly JS 1.71 das nicht kennt) ***/ function encodeURIComponent(str) { let map = {' ':'%20','"':'%22','%':'%25','&':'%26','\'':'%27','(':'%28',')':'%29','+':'%2B',',':'%2C','/':'%2F',':':'%3A',';':'%3B','<':'%3C','=':'%3D','>':'%3E','?':'%3F','@':'%40','[':'%5B',']':'%5D'}; let out=""; for (let i=0;i<str.length;i++){let c=str[i]; out+=map[c]?map[c]:c;} return out; } /*** === Konfiguration === ***/ let CFG = { IPCOVER_SELF: "192.168.178.131", IPCOVER_BATH: "192.168.178.195", INFLUX: { url: "http://192.168.178.54:8086/query", db: "wunderweather", // ✅ Korrigiert meas: "weather", fields: { irradiance: "Sonnenstrahlung", temperature: "Temperatur", wind: "Windgeschwindigkeit", humidity: "Luftfeuchtigkeit" } }, POLL_MS: 60000, IRR_ON: 300, IRR_OFF: 200, T_MIN: 20.0, W_MID: 8.0, W_HIGH: 10.0, HUMI_RAIN: 90.0, STAB_SUN_SEC: 120, STAB_TEMP_SEC: 120, STAB_WMID_SEC: 120, STAB_WHIGH_SEC: 120, STAB_RAIN_SEC: 120, STAB_NIGHT_SEC: 120, POS_FULL_OUT: 100, POS_HALF: 50, POS_IN: 0, CMD_COOLDOWN_MS: 30000 }; /*** === Helper === ***/ function nowMs() { return Date.now(); } function log() { let s=""; for(let i=0;i<arguments.length;i++){s+=(i>0?" ":"")+arguments[i];} print("[Markise] "+s); } /*** === Debouncer === ***/ function Debouncer(sec){this.stabMs=sec*1000;this.sinceTrue=null;this.update=function(v){if(v){if(this.sinceTrue===null)this.sinceTrue=nowMs();}else this.sinceTrue=null;};this.stableTrue=function(){return this.sinceTrue!==null&&(nowMs()-this.sinceTrue)>=this.stabMs;};} let DB={sunOn:new Debouncer(CFG.STAB_SUN_SEC),sunOff:new Debouncer(CFG.STAB_SUN_SEC),tOk:new Debouncer(CFG.STAB_TEMP_SEC),wMid:new Debouncer(CFG.STAB_WMID_SEC),wHigh:new Debouncer(CFG.STAB_WHIGH_SEC),rain:new Debouncer(CFG.STAB_RAIN_SEC),night:new Debouncer(CFG.STAB_NIGHT_SEC)}; let state={lastCmdAt:0,lastTargetPos:null,coverPos:null,irr:null,temp:null,wind:null,humi:null,isDay:null}; /*** === Cover === ***/ function refreshSelfCover(){Shelly.call("Cover.GetStatus",{id:0},function(r,e,c){if(c===200&&r){state.coverPos=r.current_pos;}});} function setCoverPos(target){let t=nowMs();if(t-state.lastCmdAt<CFG.CMD_COOLDOWN_MS)return;if(state.lastTargetPos!==null&&Math.abs(state.lastTargetPos-target)<2)return;state.lastCmdAt=t;state.lastTargetPos=target;log("→ Fahre Markise auf",target,"%");Shelly.call("Cover.GoToPosition",{id:0,pos:target});} /*** === HTTP Wrapper === ***/ function httpGet(url,cb){Shelly.call("HTTP.GET",{url:url,timeout:8},function(r,e,m){if(e===0&&r&&r.code===200){cb(r);}else{log("❌ HTTP Fehler",e,m);cb(null);}});} /*** === Bad-Rollo Tag/Nacht === ***/ function fetchBathDayNight(cb){let url="http://"+CFG.IPCOVER_BATH+"/rpc/Cover.GetStatus?id=0";log("HTTP →",url);httpGet(url,function(r){if(!r){log("❌ Keine Antwort vom Bad-Rollo");cb(false);return;}log("← Bad-Rollo:",r.body);try{let j=JSON.parse(r.body);let pos=j.current_pos;let isDay=(pos>=100);DB.night.update(!isDay);state.isDay=isDay;cb(true);}catch(e){log("❌ JSON Fehler Bad-Rollo",e);cb(false);}});} /*** === Influx Abfrage === ***/ function buildInfluxQuery(){let f=CFG.INFLUX.fields,m=CFG.INFLUX.meas;return 'SELECT last("'+f.irradiance+'") AS irr, last("'+f.temperature+'") AS temp, last("'+f.wind+'") AS wind, last("'+f.humidity+'") AS humi FROM "'+m+'" WHERE time > now() - 10m';} function fetchInflux(cb){let query=buildInfluxQuery();let url=CFG.INFLUX.url+"?db="+CFG.INFLUX.db+"&q="+encodeURIComponent(query);log("HTTP →",url);httpGet(url,function(r){if(!r){log("❌ Keine Antwort von Influx");cb(false);return;}log("← Influx:",r.body);try{let d=JSON.parse(r.body);let s=d.results[0].series[0];let cols=s.columns;let vals=s.values[0];let map={};for(let i=0;i<cols.length;i++)map[cols[i]]=vals[i];state.irr=map.irr;state.temp=map.temp;state.wind=map.wind;state.humi=map.humi;log("→ Werte:",state.irr,state.temp,state.wind,state.humi);cb(true);}catch(e){log("❌ JSON Fehler Influx",e);cb(false);}});} /*** === Entscheidungslogik === ***/ function decideAndAct(){let sunOn=(state.irr!==null&&state.irr>=CFG.IRR_ON);let sunOff=(state.irr!==null&&state.irr<=CFG.IRR_OFF);DB.sunOn.update(sunOn);DB.sunOff.update(sunOff);DB.tOk.update(state.temp>=CFG.T_MIN);DB.wHigh.update(state.wind>=CFG.W_HIGH);DB.wMid.update(state.wind>=CFG.W_MID&&state.wind<CFG.W_HIGH);DB.rain.update(state.humi>=CFG.HUMI_RAIN);let night=DB.night.stableTrue();log("Check:",state.isDay,state.irr,state.temp,state.wind,state.humi);if(night){log("→ Nacht ⇒ 0%");setCoverPos(CFG.POS_IN);return;}if(DB.rain.stableTrue()){log("→ Regen ⇒ 0%");setCoverPos(CFG.POS_IN);return;}if(DB.wHigh.stableTrue()){log("→ Wind hoch ⇒ 0%");setCoverPos(CFG.POS_IN);return;}if(DB.wMid.stableTrue()){log("→ Wind mittel ⇒ 50%");setCoverPos(CFG.POS_HALF);return;}if(DB.sunOn.stableTrue()&&DB.tOk.stableTrue()&&state.isDay){log("→ Sonne & Temp OK ⇒ 100%");setCoverPos(CFG.POS_FULL_OUT);return;}if((DB.sunOff.stableTrue()||!DB.tOk.stableTrue())&&state.isDay){log("→ Sonne weg / kalt ⇒ 0%");setCoverPos(CFG.POS_IN);return;}log("→ Keine stabile Änderung – wartet…");} /*** === Loop === ***/ function loop(){refreshSelfCover();fetchBathDayNight(function(){fetchInflux(function(){decideAndAct();});});} log("Script gestartet – Poll =",CFG.POLL_MS,"ms");loop();Timer.set(CFG.POLL_MS,true,loop);Hier mal wieder was neues aus meiner Spielwiese ein markisen Skript für einen shelly 2pm gen 4 er fragt meine influx DB wetterstation ab und vergleicht die Werte ebenfalls holt er sich den Status einen Rollos für die Tag Nacht schaltung für das skript die Werte werden bei mir zuverlässig bgefragt ob das ganze funktioniert sehe ich in ein paar Tagen
-
Genau so mach ich es mit meiner zentralheizung auch de mi einer WP gefüttert wird einmal alle Räume vernüftig einselen und man ht ruhe funktioniert bei mir seit 2 Jahren die heizung mach das was sie soll nämlich warm
-
Code
Alles anzeigen// ########################################################### // Shelly 1PM / 1 Plus (Gen4) – Mastersteuerung // folgt 3 Toren (Shelly 2PM) + mehreren Licht-Shellys (1PM/1) // Nachtmodus wird vom Bad-Rollo (IP 192.168.178.195) bestimmt // ########################################################### // === KONFIGURATION ========================================= // Tore (Shelly 2PM) let garageDoors = [ "192.168.178.109", // Tor 1 – Garage links "192.168.178.110", // Tor 2 – Garage rechts "192.168.178.104" // Tor 3 – Hebebühne ]; // Externe Licht-Shellys let linkedLights = [ { ip: "192.168.178.201", active: true }, // Außenlicht Haus { ip: "192.168.178.202", active: true }, // Außenlicht Haustüre { ip: "192.168.178.xxx", active: false } // Reserviert (Einfahrt) ]; // Referenz-Rollo für Sonnenstand (Bad) let refRollo = "192.168.178.195"; // Abfrageintervalle & Zeiten let interval = 30000; // 30 s – Torabfrage let lightCheckInterval = 20000; // 20 s – Lichtabfrage let holdTimeOpen = 240; // s – Lichtdauer bei 100 % let holdTimeClose = 120; // s – Nachlauf bei Schließen // Zustände let lastOn = false; let holdTimer = null; let delayOffTimer = null; let holdActive = false; let lastPos = { "192.168.178.109": null, "192.168.178.110": null, "192.168.178.104": null }; let lastLightCheck = 0; // === FUNKTIONEN ============================================ function switchLight(on) { Shelly.call("Switch.Set", { id: 0, on: on }); lastOn = on; print("Master-Licht", on ? "EIN" : "AUS"); } function cancelTimers() { if (holdTimer !== null) { Timer.clear(holdTimer); holdTimer = null; } if (delayOffTimer !== null) { Timer.clear(delayOffTimer); delayOffTimer = null; } } // --- Prüft, ob Nacht ist (Rollo geschlossen) function isNight(callback) { let url = "http://" + refRollo + "/rpc/Cover.GetStatus?id=0"; Shelly.call("HTTP.GET", { url: url }, function(res) { if (!res || res.code !== 200) { print("Fehler beim Rollo-Check:", res ? res.code : "n/a"); callback(true); // Fallback: Nacht return; } try { let data = JSON.parse(res.body); let pos = parseFloat(data.current_pos); let night = (pos <= 0.5); // 0 % = geschlossen ⇒ Nacht print("Rollo (Bad):", pos, "% →", night ? "NACHT" : "TAG"); callback(night); } catch (e) { print("Parsing-Fehler beim Rollo-Check:", e); callback(true); } }); } // --- Prüft externe Licht-Shellys function checkExternalLights(callback) { let index = 0; function next() { if (index >= linkedLights.length) { if (callback) callback(); return; } let dev = linkedLights[index++]; if (!dev.active) return next(); let url = "http://" + dev.ip + "/rpc/Switch.GetStatus?id=0"; Shelly.call("HTTP.GET", { url: url }, function(res) { if (res && res.code === 200) { let data = JSON.parse(res.body); if (data.output && !lastOn) { switchLight(true); print("Master EIN (externer Shelly", dev.ip, "ist EIN)"); } } next(); }); } next(); } // --- Prüft Tore nacheinander function checkCoversSequentially(i) { if (i >= garageDoors.length) return; let ip = garageDoors[i]; let url = "http://" + ip + "/rpc/Cover.GetStatus?id=0"; Shelly.call("HTTP.GET", { url: url }, function(res) { if (res && res.code === 200) { try { let data = JSON.parse(res.body); let pos = parseFloat(data.current_pos); print("Tor", ip, "Position:", pos, "%"); if (pos >= 100) { if (!holdActive) { holdActive = true; switchLight(true); cancelTimers(); holdTimer = Timer.set(holdTimeOpen * 1000, false, function() { switchLight(false); print("Licht AUS (240 s abgelaufen)"); }); print("Licht EIN (Tor", ip, "100%)"); } lastPos[ip] = pos; return checkCoversSequentially(i + 1); } if (lastPos[ip] !== null && lastPos[ip] >= 100 && pos < 100) { switchLight(true); holdActive = false; cancelTimers(); print("Licht EIN (Start Schließen Tor", ip, ")"); } if (lastPos[ip] !== null && lastPos[ip] < 20 && pos >= 20) { switchLight(true); print("Licht EIN (Tor", ip, "öffnet über 20 %)"); } let allClosed = true; lastPos[ip] = pos; for (let j = 0; j < garageDoors.length; j++) { if (lastPos[garageDoors[j]] !== null && lastPos[garageDoors[j]] > 20) { allClosed = false; break; } } if (allClosed && !delayOffTimer) { print("Alle Tore geschlossen – starte 120 s Nachlauf"); delayOffTimer = Timer.set(holdTimeClose * 1000, false, function() { switchLight(false); print("Licht AUS (120 s Nachlauf)"); }); } else if (!allClosed && delayOffTimer) { Timer.clear(delayOffTimer); delayOffTimer = null; print("Nachlauf abgebrochen (ein Tor wieder aktiv)"); } } catch (e) { print("Fehler beim Parsen Tor", ip); } } checkCoversSequentially(i + 1); }); } // --- Hauptsteuerung function checkSystem() { isNight(function(nightMode) { if (!nightMode) { if (lastOn) switchLight(false); print("Tag erkannt – Lichtsteuerung gesperrt"); return; } let now = (new Date()).getTime(); if (now - lastLightCheck > lightCheckInterval) { lastLightCheck = now; checkExternalLights(function() { checkCoversSequentially(0); }); } else { checkCoversSequentially(0); } }); } // === TIMER STARTEN ========================================= Timer.set(interval, true, checkSystem); print("Skript gestartet – Nachtmodus über Rollo", refRollo);So mal schaun ob dos so funktioniert ein Skript das 3 Rolltore abfragt ob diese geöffnet oder geschlossen sind, damit soll ein Shelly 1pm plus sein Licht schalten.
Dazu kommt noch eine Tag n
Nacht erkennung über einen Rolladenstatus der hier die Sonnenaufgang Sonnenuntergang Regelung nutzt, hier mit wird aber die Logik gesteuert ob das Licht einschalten darf ( am Tag nicht in der Nacht schon) hinzu kommen noch ein Shelly 1pm plus der als 2 ter Lichtschalter abgefragt wird zb an der Haustüre und ein shelly 1 der für das Einfahrtstor zuständig ist. Tor öffnet Licht ein tor shliest licht läuft timer ab.
Das ganze teste ich gerade ob es funktioniert, bin gespannt ob das so klappt dann kann ich auch meine anderen Lichtschaltungen damit ausrüsten mit der Rolladenstatus Abfrage.
Kleiner Nachtrag ich abs eben getestet und es funktioniert ich bin mehr als Happy.
*****************************ACHTUNG********ACHTUNG********************ACHTUNG**************ACHTUNG************************************************
Ich weise Ausdrücklich darauf hin das programierungen mit Skripten funktionieren können, und nicht müssen, hier ist jeder selbst dafür verantwortlich und muss auch alle Sicherheitsregeln beachten alle meine Angaben sind somit ohne Gewähr und Rechtlichkeit verbunden.