Hallo Fauwee,
vielen Dank für den Hinweis.
Hab eine Retoure gerade erstellt.
Danke Patrick
Hallo Fauwee,
vielen Dank für den Hinweis.
Hab eine Retoure gerade erstellt.
Danke Patrick
Hallo @De kat,
vielen Dank für den Link.
Da brauch ich mal 'ne ruhige Minute für.
Vielleicht kannst Du meinen Code mal bei Dir testen ?
Danke
Patrick
Ergänzung (11:00): Debug deaktiviert, Script auf dem 2ten Plug verwendet, größere Last.
Jetzt geht es auf beiden mit geringer Verzögerung, welche dem Timer geschuldet sein dürfte.
Ich versteh es nicht mehr (kopfschütteln).
Hauptsache es funzt
// 25.11.2023
//
// This script is monitoring the consumption of this plug and switching an 2nd plug on/off
//
// Configuration script:
let CONFIG = {
Local: {
minUsage: 0.1, //consumption 0.1W
active: 'on',
stop: 'off',
delayTms: 500 //millisecond (=0.5 Minuten)
},
Remote: {
ip: '192.168.178.100',
relay: '0',
remote_status: 'off'
}
};
function fkt_switch_remote(command) {
if (command != CONFIG.Remote.remote_status) {
CONFIG.Remote.remote_status = command;
Shelly.call(
"http.get",
{ url: 'http://' + CONFIG.Remote.ip + '/relay/' + CONFIG.Remote.relay + '?turn=' + command },
function (response, error_code, error_message, ud) {
//print(JSON.stringify(response));
},
null
);
}
//print("Switch comand: ", command);
}
function fkt_get_power() {
alertTimer = Timer.set(CONFIG.Local.delayTms,
true,
function () {
Shelly.call(
"switch.getStatus",
{ id: 0 },
function (res, error_code, error_msg, ud) {
if (res.apower > CONFIG.Local.minUsage) {
fkt_switch_remote(CONFIG.Local.active);
}
else {
fkt_switch_remote(CONFIG.Local.stop);
}
},
null
);
},
null
);
}
fkt_get_power();
Alles anzeigen
Bild_blaue_LED_C50.jpgIch mein nicht den LED-Farbring, sondern eine Status-LED.
Hallo zusammen,
die Status-LED einer meiner Shelly Plug Plus S leuchtet blau.
Ich weiß nicht warum.
Ich hab die Einstellungen mit einem anderem Shelly Plug Plus S verglichen.
Abgesehen von der IP, MAC, der Empfangsstärke und dem Namen, habe ich keinen Unterschied festgestellt.
FW: 20231106-160251/1.0.8-gdba0ee3
Wenn ich das Ergebnis von
http://ip/rpc/Shelly.GetConfig und
http://ip/rpc/Shelly.GetStatus
beider Shelly's vergleiche finde ich keinen Unterschied.
Hat jmd eine Idee ?
Danke.
Patrick
Hallo zusammen,
ich möchte einen 2ten Shelly schalten, wenn am 1sten apower > 0 ist.
Das funktioniert, jedoch dauert es, bis apower > 0 erkannt wird.
Ich hab hierfür 2x Testprogramme erstellt:
- per Shelly.call
- per Shelly.getComponentStatus
Wobei bei beiden die Reaktionszeit zwischen 3-4 Sekunden ist.
Kann das beschleunigt werden ?
Danke.
Patrick
let CONFIG = {
minUsage: 0, //consumption 0W
active: 'on',
stop: 'off',
delayTms: 1000 //millisecond (=1 Minuten)
};
function fkt_get_power() {
alertTimer = Timer.set(CONFIG.delayTms,
true,
function () {
Shelly.call(
"switch.getStatus",
{ id: 0 },
function (res, error_code, error_msg, ud) {
if (res.apower > CONFIG.minUsage) {
print(res.apower);
}
},
null
);
},
null
);
}
fkt_get_power();
Alles anzeigen
Hallo zusammen,
seh ich das richtig ?
Die vermeintlich neue Version ist eine ältere ?
Patrick
Hätte ich auch gern gewußt.
Ich hatte schon befürchtet meine Schaltung drumherum hat 'ne Macke.
Und hab alles ausgebaut, getestet, bis ich erkannt habe das das Verhalten daher rührt, dass die Einstellungen futsch waren.
Aber schön, dass ich auch mal jmd. helfen konnte.
Patrick
War bei mir ebenfalls vor kurzem, kann aber ein ganz anderer Grund sein.
Bei mir war der UNI über AP erreichbar.
Schau mal, ob Du sein Shelly-AP-WLAN AccessPoint siehst.
Ich mußte meine Einstellungen wieder vornehmen.
Zum Glück hatte ich diese mal in einer Text-Datei gespeichert.
Patrick
Hallo Sven,
die Bilder kannst Du dem Teil_1 bzw. Teil_2 vom Shelly zuordnen.
Das Bild wird dem Schaltungsteil zugeordnet.
Was Du damit gedanklich verbindest ist Dir überlassen.
Das Bild wechselt nicht, wenn der Zustand sich ändert.
Der Strich zeigt den Eingang an.
Die Bilder sind wie Programm-ICON auf Deinem PC-Desktop.
Bzgl. Spannungsanzeige, ggf. im Forum suchen, oder einen eigenen Beitrag erstellen, wenn Du hierzu nichts findest.
Die Bilder sind im Anhang (Hinweis: Die sind in weiß, damit diese in der App angezeigt werden)
Gruß
Patrick
Hallo Sven,
Du kannst dir die 2x Eingänge in der App anzeigen lassen, siehe den Link auf meinen Beitrag/Screenshots (grün bzw. rot).
Screenshot von der App Bild in meinem Beitrag
Link zu meinem Beitrag
Wenn Du möchtest, kannst Du die Bilder für die App haben.
Gruß
Patrick
Ich hab folgenden Stecker verwendet
JST XH Micro Mini 1.25mm Stecker 8 Pin
Hallo zusammen,
hab es nun geändert, damit die Zeiteinstellung am Bewegungsmelder die Dauer steuert.
P1PM:
SwitchHT_ON:
SwitchHT_OFF:
I3:
Button switched ON url:
Button switched OFF url:
Gruß
Patrick
Hallo,
bei meinem letzten Thema erwähnte Seven of Nine die Verwendung von einem HTTPServer.
Um nicht das andere, abgeschlossenen Thema aufzublähen, habe ich dies Thema neu gestartet.
Hat mir jmd. Script Beispiele bei der mittelt HTTPServer URL actions erkannt werden ?
Vielen Dank schon mal.
Patrick
Hallo @Muetze,
danke funzt
Für die, welche wissen wollen wie die Webhooks/URL action aussehen:
P1PM:
SwitchHT_ON:
http://127.0.0.1/relay/0?turn=on&timer=10
active_between": "00:00","23:59"
I3:
Button switched ON url
http://192.168.178.XXX/relay/0?turn=on
http://192.168.178.XXX/rpc/Webhook.Update?id=1&name="SwitchHT_ON"&enable=false
Button switched OFF url
http://192.168.178.XXX/relay/0?turn=off
http://192.168.178.XXX/rpc/Webhook.Update?id=1&name="SwitchHT_ON"&enable=true
Danke.
Patrick
Hallo Seven of Nine
ich dachte mal wieder ich halt meine Frage einfach und allgemein, weitgefehlt
Ich verwende ein Shelly P1PM,
einen Bewegungsmelder der am Input des P1PM angeschlossen ist und
einen Shelly i3 für eine Schaltererkennung und Steuerung des Outputs des P1PM über URL action.
Wenn nun der Output durch den Input für die Zeit X aktiviert wird,
ich per URL action des i3 den Output dauerhaft aktivieren möchte, wird diese Statusänderung mittels http-Erkennung nicht erkannt und der Timer nicht gelöscht,
da keine Änderung vorliegt, somit deaktiviert der Timer nach der Zeit X den Output wieder.
Was mir fehlt, ist die Erkennung der URL action damit ich den Timer löschen kann.
Unten mein Teststand mit Testausgaben.
Ich kann erkennen, wenn sich etwas per http ändert z.B. Switch ON/OFF
Debug-Ausgabe:
status
fkt_stopOffTimer
addStatusHandler_http Output: true
addStatusHandler:source http
Wen aber der Output bereits ON ist passiert hier nichts, was klar ist.
Was ich mir als Workaround nun überlegt habe, zusätzlich dem URL action einen hohen Timer-Wert mitzusenden,
das löst den StatusHandler auch aus, zwar nicht wie zuvor
Debug-Ausgabe:
status
addStatusHandler:source undefined
Grundsätzlich finde ich Undefined keine gute Programmierung.
Kann ich den Timer-Wert als Änderung erkennen und diesen Löschen ?
Oder den URL action im Script über ??? erkennen, anstatt über statusHandler.
Vermutlich über den von Dir angegebenen HTTP Server,
aber dazu muss ich erst mal nach Beispielen suchen um zu erkennen was ggf. möglich sein könnte.
Allgemein fehlen mir mögliche Werte in der shelly-api-docs, was ich schade finde.
Ich lerne an den Beispielen und weniger an den abstrakten Erklärungen der shelly-api-docs
Patrick
Shelly.addStatusHandler(
function (status) {
//check if the event source is a switch
//and if the id of the input is 0
print("status");
if (status.name === "switch" && status.id === 0) {
if (status.delta.source === "http") {
fkt_stopOffTimer();
print("addStatusHandler_http Output: ", status.delta.output);
}
print("addStatusHandler:source ", status.delta.source);
}
}
);
Alles anzeigen
Problem ist nun.
Wenn Switch:0 ist ON und ich sende per URL action ein ON,
dann gibt es kein delta bzw. kein event.
Somit kann ich nicht erkennen, wenn der URL action ON gesendet wird.
Hinweis: Der Switch über Taster auf ON gesetzt startet einen Timer für's Ausschalten, und der URL action soll diesen Timer u.a. löschen
Ist das korrekt ?
Shelly.addStatusHandler(
function (status) {
//check if the event source is a switch
//and if the id of the input is 0
if (status.name === "switch" && status.id === 0) {
if (status.delta.source === "http") {
print("Switch Http", status.component);
}
print("Switch ", status.id);
}
}
);
Alles anzeigen