Es gibt den Shelly Pro Dual Cover mit LAN :
https://www.shelly.com/de/products/sh…over-shutter-pm
falls du wirklich den Cover Modus benötigst.
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.
Es gibt den Shelly Pro Dual Cover mit LAN :
https://www.shelly.com/de/products/sh…over-shutter-pm
falls du wirklich den Cover Modus benötigst.
Jo, danke. Das klingt alles nützlich.
Danke für die ehrliche Rückmeldung.
Die Vergangenheit zeigte bereits, dass der Versuch, sich mit dem Shelly Meister aller Klassen und Träger den schwarzen Shelly-Inside Gürtels - thgoebel , anzulegen, selten zu einem Punkt-Sieg führte
Was ist eigentlich der Anwendungsfall für "den Öffnungswinkel vom Schwenken erfassen"?
für was aber dann Unifi wenn ich es nicht Vollständig nutze
Mir erschließt sich gerade nicht, was VLAN mit vollständiger Nutzung zu tun hat Selbst mit VLAN nutze ich selber nur einen Teil der ganzen Möglichkeiten von denen.
Ich beziehe mich nur auf die Shelly Anleitung, die ein unnötig aufwändiges Szenario daraus macht, Unifi einzusetzen. Das geht nämlich auch ganz ohne VLAN.
Herzlich Willkommen bei uns
Ist .179.x nicht das Gastnetz bei der Fritzbox ?
So konfiguriert man Unifi funktional: https://support.shelly.cloud/de/support/sol…lly-ger%C3%A4te
Im Grunde reichen die AP und SSID Einstellungen. Das ganze VLAN Zeug ist nicht notwendig. Das macht es nur extra kompliziert.
Ich habe mal im Community Forum gelesen, dass die Daten auch gelöscht werden, wenn man die beim PV Setup zugeordneten Geräte löscht und neu einrichtet - ohne Gewähr.
Der WIFI Zugang funktioniert weiterhin
WiFi und LAN parallel bereitet oft Probleme, deshalb der Tipp von Michael in #7 WIFI auszuschalten, wenn man LAN nutzt.
Edit: apreick war schneller mit dem erneutem Hinweis
Frage mich stets, weshalb bei Problemen nicht einfach mal DHCP genutzt wird? Eine statische IP-Adresse lässt sich immer noch einrichten, wenn alles läuft...
Genau das - ist einfach seltsam.
Sorry, mein Fehler - ich habe da was verwechselt mit einem anderen Shelly
https://shelly-api-docs.shelly.cloud/gen2/Component…es/RGBW#rgbwset
Laut Doku ist rgb ein Array und die Werte für die Farben gehen von 0 bis 255: Red, Green, Blue [r,g,b] - each value represents level between 0..255 Optional.
Hier das korrigierte Skript: Rainbow habe ich erstmal weggelassen, da ich da auf die Schnelle die Umrechnung nicht hinkriege
// Farbwechselskript für Shelly Plus RGBW PM
// RGB-Werte von 0-255, Brightness von 0-100
let colorIndex = 0;
let brightness = 80; // Helligkeit (0-100)
let transitionTime = 2000; // Übergangszeit in ms
let pauseTime = 3000; // Pause zwischen Farbwechseln in ms
// Vordefinierte Farben (RGB 0-255)
let colors = [
{r: 255, g: 0, b: 0}, // Rot
{r: 255, g: 128, b: 0}, // Orange
{r: 255, g: 255, b: 0}, // Gelb
{r: 0, g: 255, b: 0}, // Grün
{r: 0, g: 255, b: 255}, // Cyan
{r: 0, g: 0, b: 255}, // Blau
{r: 128, g: 0, b: 255}, // Lila
{r: 255, g: 0, b: 255}, // Magenta
{r: 255, g: 255, b: 255} // Weiß
];
// Funktion zum Setzen der Farbe
function setColor(color) {
Shelly.call("RGBW.Set", {
id: 0,
rgb: [color.r, color.g, color.b],
brightness: brightness,
transition: transitionTime
});
}
// Funktion für sanften Farbwechsel
function changeColor() {
let currentColor = colors[colorIndex];
setColor(currentColor);
console.log("Wechsle zu Farbe:", colorIndex + 1, "RGB:", currentColor.r, currentColor.g, currentColor.b);
// Nächste Farbe vorbereiten
colorIndex++;
if (colorIndex >= colors.length) {
colorIndex = 0; // Zurück zum Anfang
}
// Timer für nächsten Farbwechsel setzen
Timer.set(pauseTime, false, changeColor);
}
// Script starten
console.log("Farbwechselskript gestartet");
console.log("Helligkeit:", brightness + "%");
console.log("Übergangszeit:", transitionTime + "ms");
console.log("Pause zwischen Farben:", pauseTime + "ms");
// RGBW einschalten und ersten Farbwechsel starten
Shelly.call("RGBW.Set", {
id: 0,
on: true
});
// Ersten Farbwechsel nach kurzer Verzögerung starten
Timer.set(1000, false, changeColor);
// Zusätzliche Funktionen für erweiterte Steuerung
// Helligkeit ändern (0-100)
function setBrightness(newBrightness) {
if (newBrightness >= 0 && newBrightness <= 100) {
brightness = newBrightness;
console.log("Helligkeit geändert auf:", brightness + "%");
}
}
// Geschwindigkeit ändern
function setSpeed(newTransitionTime, newPauseTime) {
transitionTime = newTransitionTime || transitionTime;
pauseTime = newPauseTime || pauseTime;
console.log("Geschwindigkeit geändert - Übergang:", transitionTime + "ms, Pause:", pauseTime + "ms");
}
// Script stoppen
function stopColorCycle() {
Timer.clear();
console.log("Farbwechsel gestoppt");
}
// Einzelne Farbe setzen (RGB 0-255)
function setSingleColor(r, g, b) {
if (r >= 0 && r <= 255 && g >= 0 && g <= 255 && b >= 0 && b <= 255) {
Timer.clear(); // Farbwechsel stoppen
setColor({r: r, g: g, b: b});
console.log("Einzelfarbe gesetzt - RGB:", r, g, b);
} else {
console.log("Error: RGB-Werte müssen zwischen 0 und 255 liegen");
}
}
Alles anzeigen
Mmmh, eigentlich sollte der Farbwechsel direkt starten:
// RGBW einschalten und ersten Farbwechsel starten
Shelly.call("RGBW.Set", {
id: 0,
on: true
});
// Ersten Farbwechsel nach kurzer Verzögerung starten
Timer.set(1000, false, changeColor);
Was passiert, wenn du mit stopColorCycle() den Farbwechsel stoppst und dann mit setSingleColor(100, 0, 0) rot einschaltest ?
Aber probier das mit dem rainbowMode() ruhig mal aus.
Ich habe leider keinen Plus RGBW PM um es selber zu testen.
Nein, das geht leider nicht.
Du musst für jeden Kanal den on-Befehl einzeln senden.
Währe es nicht auch für dich "logischer" wenn Glocke1 und Glocke2 gleich an die jeweiligen Shelly's angehängt sind?
Der Nachteil deiner Lösung wird von Thomas bereits in #10 genannt - Sicherheit: es bimmelt nicht mehr, wenn der Shelly ausfällt.
Nachtrag: Skript ist fehlerhaft - angepasste Version siehe #5
--
Ungefähr so:
// Farbwechselskript für Shelly Plus RGBW PM
// RGB-Werte von 0-100, Brightness von 0-100
let colorIndex = 0;
let brightness = 80; // Helligkeit (0-100)
let transitionTime = 2000; // Übergangszeit in ms
let pauseTime = 3000; // Pause zwischen Farbwechseln in ms
// Vordefinierte Farben (RGB 0-100)
let colors = [
{r: 100, g: 0, b: 0}, // Rot
{r: 100, g: 50, b: 0}, // Orange
{r: 100, g: 100, b: 0}, // Gelb
{r: 0, g: 100, b: 0}, // Grün
{r: 0, g: 100, b: 100}, // Cyan
{r: 0, g: 0, b: 100}, // Blau
{r: 50, g: 0, b: 100}, // Lila
{r: 100, g: 0, b: 100}, // Magenta
{r: 100, g: 100, b: 100} // Weiß
];
// Funktion zum Setzen der Farbe
function setColor(color) {
Shelly.call("RGBW.Set", {
id: 0,
red: color.r,
green: color.g,
blue: color.b,
brightness: brightness,
transition: transitionTime
});
}
// Funktion für sanften Farbwechsel
function changeColor() {
let currentColor = colors[colorIndex];
setColor(currentColor);
console.log("Wechsle zu Farbe:", colorIndex + 1, "RGB:", currentColor.r, currentColor.g, currentColor.b);
// Nächste Farbe vorbereiten
colorIndex++;
if (colorIndex >= colors.length) {
colorIndex = 0; // Zurück zum Anfang
}
// Timer für nächsten Farbwechsel setzen
Timer.set(pauseTime, false, changeColor);
}
// Script starten
console.log("Farbwechselskript gestartet");
console.log("Helligkeit:", brightness + "%");
console.log("Übergangszeit:", transitionTime + "ms");
console.log("Pause zwischen Farben:", pauseTime + "ms");
// RGBW einschalten und ersten Farbwechsel starten
Shelly.call("RGBW.Set", {
id: 0,
on: true
});
// Ersten Farbwechsel nach kurzer Verzögerung starten
Timer.set(1000, false, changeColor);
// Zusätzliche Funktionen für erweiterte Steuerung
// Helligkeit ändern (0-100)
function setBrightness(newBrightness) {
if (newBrightness >= 0 && newBrightness <= 100) {
brightness = newBrightness;
console.log("Helligkeit geändert auf:", brightness + "%");
}
}
// Geschwindigkeit ändern
function setSpeed(newTransitionTime, newPauseTime) {
transitionTime = newTransitionTime || transitionTime;
pauseTime = newPauseTime || pauseTime;
console.log("Geschwindigkeit geändert - Übergang:", transitionTime + "ms, Pause:", pauseTime + "ms");
}
// Script stoppen
function stopColorCycle() {
Timer.clear();
console.log("Farbwechsel gestoppt");
}
// Einzelne Farbe setzen (RGB 0-100)
function setSingleColor(r, g, b) {
if (r >= 0 && r <= 100 && g >= 0 && g <= 100 && b >= 0 && b <= 100) {
Timer.clear(); // Farbwechsel stoppen
setColor({r: r, g: g, b: b});
console.log("Einzelfarbe gesetzt - RGB:", r, g, b);
} else {
console.log("Error: RGB-Werte müssen zwischen 0 und 100 liegen");
}
}
// Regenbogen-Modus (sanfte Farbübergänge)
function rainbowMode() {
Timer.clear();
let hue = 0;
function nextRainbowColor() {
// HSV zu RGB Konvertierung für sanfte Regenbogenfarben
let rgb = hsvToRgb(hue, 100, 100);
setColor({r: rgb.r, g: rgb.g, b: rgb.b});
hue += 10;
if (hue >= 360) hue = 0;
Timer.set(500, false, nextRainbowColor);
}
console.log("Regenbogen-Modus gestartet");
nextRainbowColor();
}
// HSV zu RGB Konvertierung
function hsvToRgb(h, s, v) {
s = s / 100;
v = v / 100;
let c = v * s;
let x = c * (1 - Math.abs((h / 60) % 2 - 1));
let m = v - c;
let r, g, b;
if (h < 60) {
r = c; g = x; b = 0;
} else if (h < 120) {
r = x; g = c; b = 0;
} else if (h < 180) {
r = 0; g = c; b = x;
} else if (h < 240) {
r = 0; g = x; b = c;
} else if (h < 300) {
r = x; g = 0; b = c;
} else {
r = c; g = 0; b = x;
}
return {
r: Math.round((r + m) * 100),
g: Math.round((g + m) * 100),
b: Math.round((b + m) * 100)
};
}
Alles anzeigen
Steuerungsfunktionen:
Dazu musst du das Voltmeter bei "Peripherals" aktivieren - im WebUI http://<shelly-ip>
Der Cover Modus im Shelly passt bei jeder 0 und 100% Fahrt die Zeiten an, d.h. justiert nach, so wie ich das verstanden habe. Das ist ja auch wichtig, weil die Zeit niemals absolut immer gleich bleibt. Für diese Nachjustieren muss er aber wieder die Leistungsmessung nutzen.
Wenn man darauf verzichtet und bereit ist ab und zu manuell die Zeiten anzupassen, wäre so einen Option sicher für einige nützlich.
Endschalter werden auch empfohlen (ich dachte bisher, die sind verpflichtend):
ZitatIt measures power consumption of the connected device. It is recommended to use only motors with electronic or mechanical limit switches. The motor limit switches must be set correctly before connecting the Device to the motor.