irgendwann zu hoch treiben
Genau so ist das, ein Kompromiss ist schon nötig. Fällt ggf. nicht mehr ins Gewicht, wenn der RGBW selbst als Plus-Gerät verfügbar werden sollte.
Viel Erfolg
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.
irgendwann zu hoch treiben
Genau so ist das, ein Kompromiss ist schon nötig. Fällt ggf. nicht mehr ins Gewicht, wenn der RGBW selbst als Plus-Gerät verfügbar werden sollte.
Viel Erfolg
Wenn ich den Code richtig interpretiere, wird Chn0 ausgelesen und dann Chn1-3 synchronisiert.
Genau so ist das vorgesehen.
Da der Script auf einer Dauerschleife läuft, empfehle ich diesen gelegentlich auszuschalten und keinen automatischen Start im Gen.2-Gerät zu aktivieren.
Um den Script zu starten, bietet sich an, im RGBW2 dem 1.Kanal beim Einschalten den ScriptStart-Befehl zu verpassen (bei Output switched On URL):
Und natürlich kann der Script auch gestopt werden, praktischerweise beim 2.K
anal oder allen 3 anderen Kanälen im Ausschaltbefehl (Output switched Off URL):
Die IP ist an das Gen.2-Gerät und die Ziffer der Script-ID ist anzupassen, ist es der erste Script, wird die id=1 sein.
Und ich schalte und dimme mit lokaler Webseite am PC oder Smartphone
Evtl. andere Lösungsmöglichkeiten?
Schaltest du irgendwoy mit einem Gen.2 Gerät? Wenn nicht, habe ich irgendwo eine lokale Webseite mit Script, die du nur irgendwo geöffnet haben musst, die Anpassung der Kanäle ist dann automatisch.
Kann ich aber heute nicht mehr suchen, der Feierabenddruck auf die Augen steigt...
Der Script für Gen.2-Gerät ist theoretisch an die RGBW2-Fähigkeiten angepasst, ungetestet aber sollte so funken:
/**
* Gleichsetzung der Kanäle im RGBW2 WeissModus, Script in einem Gen.2-Gerät unterbringen
*/
// IP des Shelly RGBW2
let ip = "192.168.178.100";
function getCurrentState(ip) {
Shelly.call("HTTP.GET", {url: 'http://' + ip + '/white/0'}, function(result) {
let data = JSON.parse(result.body);
let command = "brightness=" + data.brightness + "&transition=" + data.transition;
KanalAnpassung1(ip, command);
KanalAnpassung2(ip, command);
KanalAnpassung3(ip, command);
});
};
function KanalAnpassung1(ip, command){Shelly.call("http.get", {url: 'http://' + ip + '/white/1?' + command});};
function KanalAnpassung2(ip, command){Shelly.call("http.get", {url: 'http://' + ip + '/white/2?' + command});};
function KanalAnpassung3(ip, command){Shelly.call("http.get", {url: 'http://' + ip + '/white/3?' + command});};
Timer.set(1000, true, function(){getCurrentState(ip);});
Alles anzeigen
Nun Script ausgiebig getestet und meiner Sammlung hinzugefügt https://github.com/ThellyHRO/loca…in/Kamprium.jpg
Hast du eine RGBW? Und Zeit und Lust?
Ja habe ich da, die Dinge in der zweiten Frage sind schon schwieriger
Eigentlich ist an dem Script die IP +berall gleich, es müsste nur der Master-Kanal im Script bestimmt werden und am Ende die anderen Kanäle. Also paar Nullen gegen 1, 2, 3 ersetzen.
Theoretisch wars das schon. Heute wird das nix mit Testen
vorhandenem Gen 2 Shelly
Ja das müsste im RGBW2 auch verwendbar sein: RE: Script im i4 für Gen1.Geräte bekomme ich nicht hin
muss ich bei Gelegenheit mal anpassen und testen
Ja das geht mit dem Befehlen wie hier RE: Steuerung ohne Abo
beschrieben wurde, aber verutlich mit höherer Ziffer für den Timer
Nun eine feste IP ist schon Voraussetzung, halte ich für selbstverständlich.
Welche Firmware ist denn aktuell auf dem TRV?
Am sichersten soltte die Verbindung mit 2.1.8 funktionieren, die aktuelle 2.2.1 habe ich noch nicht getestet, nachdem ich von der 2.2.0 auch wieder zurück auf 2.1.8 gewechselt habe.
Infos gab es ja in den letzten TRV-Beiträgen genug.
Nun mit Plusgraden getestet und den Script überarbeitet, viel Erfolg
Der Kaffee ist gleich fertig und da hab ich mal fix die Variablen dazwischengefügt. Testen kann ich es nicht, habe diese Temperaturen hier nicht und auch keinen Dimmer.
let Dimmer = 0;
let Status = {
Temperatur: {Temp:null},
};
Shelly.addEventHandler(
function (event) {
let i = event.info;
if (i.id===100) Status.Temperatur.Temp = Math.round(i.tC)
if(Status.Temperatur.Temp >= 5) {Dimmer = 0;
} else if(Status.Temperatur.Temp < 5 && Status.Temperatur.Temp >= 1) {Dimmer = 20;
} else if(Status.Temperatur.Temp < 1 && Status.Temperatur.Temp >= -3) {Dimmer = 40;
} else if(Status.Temperatur.Temp < -3 && Status.Temperatur.Temp >= -7) {Dimmer = 60;
} else if(Status.Temperatur.Temp < -7 && Status.Temperatur.Temp >= -10) {Dimmer = 80;
} else if(Status.Temperatur.Temp < -10) {Dimmer = 100;
}
console.log(i.tC + "°C, gerundete Temp.: " + Status.Temperatur.Temp + "°C = Dimmstufe: " + Dimmer + "%");
if (i.event==="temperature_measurement") {Shelly.call("HTTP.GET", {"url": "http://-Dimmer-IP-/light/0?brightness=" + Dimmer});}
}
);
Alles anzeigen
Theoretisch muss es aber so funktionieren mit besten Grüßen zurück
(wenn ich das HRO richtig interpretiere)
Ja, nächste Woche ist das wieder Rostock, noch bin ich im Urlaub und baue in Mutters Haus gerade ein wenig und überlege mir heute Abend, wenn ich dazu komme, den Rest, der nur in einem Script stehen muss.
ob es da noch Lösungen gib
Theoretisch schon auch per Script möglich, die Abfragen mit festen Werten habe ich jetzt allerdings in dieser Scriptvorlage noch nicht drin:
let Status = {
Temperatur: {Temp:null},
};
Shelly.addEventHandler(
function (event) {
let i = event.info;
if (i.id===100) Status.Temperatur.Temp = Math.round(i.tC)
if (i.event==="temperature_measurement") {Shelly.call("HTTP.GET", {"url": "http://-Dimmer-IP-/light/0?brightness=" + Status.Temperatur.Temp});}
}
);
hier derzeit Temperatur = Dimmerstatus
Das Feld ist aufklappbar um On oder Off einzustellen.
Ist das so richtig mit dem Skript?
Na fast, aber wenn im Kommentar steht, Zeile löschen, dann meine ich auch die gesamte Zeile, also muss dies so aussehen:
let Status = {
Temperatur: {Temp:null},
};
Shelly.addEventHandler(
function (event) {
let i = event.info;
if (i.id===100) Status.Temperatur.Temp = i.tC
if (i.event==="temperature_measurement") {Shelly.call("HTTP.GET", {"url": "http://192.168.178.36/ext_t?temp=" + Status.Temperatur.Temp});} //IP des TRV anpassen
}
);
noch langsamer erklären
Das ist schwierig, ich lese meist langsamer, bis ich es verstanden habe
Also im Plus1 gehst du auf Scripte und erstellst einen Script mit dem ggf. von mir verwendeten Namen:
kopierst den Scriptcode mit dem Symbol oben rechts
und änderst an dem Text nur dass, was ich hinter den Kommentaren geschrieben habe, Kommentare fangen übrigens mit // an.
Die Action-Befehle kopier ich auch mal bildlich und hoffe, du findest die Einstellungen dafür
Hallo und fast gleiche Kombination habe ich eben installiert.
Um die Temperatur sicher zu übertragen, habe ich ein Script im Plus1 eingefügt,
anzupassen ist in der folgenden Vorlage die IP des TRV, die 100 falls der Sensor an anderem Anschluss ist und
ggf. die Zeilen löschen, die nicht gebraucht werden:
let Status = {
Temperatur: {Temp:null},
Luftfeuchte: {Luft:null}, // Zeile entfernen, wenn keine Luftfeuchte gesendet werden muss
};
Shelly.addEventHandler(
function (event) {
let i = event.info; // folgend die 100 ändern, falls an anderem Anschluss gemessen wird
if (i.id===100) Status.Temperatur.Temp = i.tC
if (i.id===100) Status.Luftfeuchte.Luft = Math.round(i.rh) // Zeile entfernen, wenn keine Luftfeuchte gesendet werden muss
if (i.event==="temperature_measurement") {Shelly.call("HTTP.GET", {"url": "http://192.168.178.156/ext_t?temp=" + Status.Temperatur.Temp});} //IP des TRV anpassen
if (i.event==="humidity_measurement") {print("Luftfeuchte: " + Status.Luftfeuchte.Luft + " \%");} // Zeile entfernen, wenn keine Luftfeuchte gesendet werden muss
}
);
Alles anzeigen
Zusätzlich habe ich noch Befehle eingefügt, da beim Fenster schließen oft die Wunsch-Temperatur nicht wieder auf den Zeitplan zurückgestellt wurde:
Bei Action Fenster offen:
und Action Fenster geschlossen:
IP des TRV anpassen und Profilnummer ggf. auch
Brückentag und da lässt ein Shelly auch nicht in Ruhe, ja für Shutter-Funktionen gibt es seit heute den neuen Wave-Shutter.
https://www.shelly.com/de/products/sh…no-wave-shutter
Beim Motion wird das Update auf 2.1.9. auch angezeigt, dass erspare ich mir dann lieber
Wurden beim Motion auch schon Probleme festgestellt?
Ja, hatte den Motion und Motion2 auch das 2.2.0 verpasst, nun wieder zurück auf 2.1.8, denn sie schalteten die Action nicht mehr zuverlässig, weder Licht An noch Aus
Eben hatte ich mal wieder etwas Zeit und nun gibt es eine Webseite zum Erzeugen eines Protokolls für Rauchmelderprüfer:
Wenn zum Prüfzeitpunkt niemand da ist, dieses Protokoll vorher erstellen und dann an der Haustür für den Prüfer deponieren.
Für jeden Rauchmelder eigene Seite erstellen und darin die Variablen anpassen:
var ip = "192.168.178.151";
var ort = "Schlafzimmer";
Nach Webseitenstart den betreffenden Rauchmelder mit 3 Tastendrücken aufwecken, es werden die Daten eingelesen, dann Drucken.
Kompletter HTML-Code hier:
https://github.com/ThellyHRO/local-Website/blob/main/151.htm