Deswegen habe ich ja auch gemeint: theoretisch.
Shelly ist auf neuestem Stand.
- Über das Handy bleibt es mit: --> WebSocket ist closed to 192.168...... Error code 1006. <-- stehen. Kann aber nicht sagen wann. Manchmal dauert es länger, manchmal sogar schon nach kurzer Zeit
- Uber WIN 10 sehe ich weiterhin die Daten aller 10 Sekunden
Und hier das kleine Script, es ist noch nicht ganz fertig. Auch bin ich Laie im Programmieren von JS. Deswegen sind Befehle auch noch nicht zusammen gefasst.
Grundfunktion: Ein Wert soll aller 10 Sekunden von einer IP Adresse abgefragt werden und bei einem Wert höher "120" für eine Zeit "9 x 10 sek" soll der Shelly eingeschaltet bleiben bzw neu eingeschaltet werden. Danach soll der Shelly wieder ausgeschaltet werden.
let CONFIG = {
BKW_time: 10 * 1000, //Abfrage an Solarrechner aller 10 Sekunden
BKW_URL: "http://192.168.178.7/043AA9D12002F8_2.txt",
EinSchwelle: 120, // Wann Dose einschalten soll
AusSchwelle: 20, // Wann Dose ausschalten soll.
LG_02: 80, // Watt Ladegerät 35V 2A 36V 5A
LG_36V_02A: 80, // Watt
LG_36V_05A: 200, // Watt
LG_36V_08A: 320, // Watt
LG_36V_12A: 480, // Watt
};
let BKW_Timer = 0,
let Schleife = 0, // nur zur Kontrolle, ob BKW-Timer irgend wann hängen bleibt
let min_ein = 0,
let min_aus = 0,
let value1=0,
//print("start");
function timer_start(){
Shelly.call(
"HTTP.GET", {url: CONFIG.BKW_URL},
function(result) {
let value = JSON.parse(result.body)*-1; // damit Wert positiv wird
if(BKW_Timer>0) value=value+100; // Wert wird um Watt Ladegerät erhöht
// Dose ein
if(value > CONFIG.EinSchwelle) Shelly.call("Switch.Set", {id:0, on:true});
if(value > CONFIG.EinSchwelle) BKW_Timer=9; // wieviel Einheiten Dose an !
if(value > CONFIG.EinSchwelle) min_ein++; // wieviel Einheiten Dose an !;
// Dose aus - wenn Timer bei 0
if(value < CONFIG.AusSchwelle) BKW_Timer--;
if(BKW_Timer < 0) Shelly.call("Switch.Set", {id:0, on:false});
if(BKW_Timer < 0) min_aus++;
if(BKW_Timer < -360) {
BKW_Timer=0; // Zählt die Pausenzeit. Kontrolle um Einschaltzeit zu verlängern oder verkürzen
Schleife ++; // BKW_Timer Durchlauf Anzahl
if(Schleife > 360) Schleife = 0;
}
// Ausgabe Kontrolle
print(value,"W; (",BKW_Timer,"x10sek) (",min_ein,"ein); (",min_aus,"aus);",Schleife,"x10min)"); // zur Kontrolle
}
);
}
Timer.set( CONFIG.BKW_time, true, timer_start);
Alles anzeigen
Und da es hier um den Websocket geht:
- gibt es eine Anleitung was man bei "Ausgehendes Websocket" im Shelly Menü einstellen kann und die Bedeutung von den Einstellungen?
- Brauch ich überhaupt ein Websocket?
- Der Wert innerhalb der IP Adresse sollte sich nach ca 10 Sek. ändern. Aber nicht immer. gibt es da eine andere Möglichkeit vlt. an den Wert zu bekommen. ZBsp nur wenn er sich ändert?
Für weitere Hilfe wäre ich sehr dankbar