.../light/0?turn=on&brightness=50&timer=10
schaltet ihn für 10 Sekunden mit einer Helligkeit von 50% ein
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.
.../light/0?turn=on&brightness=50&timer=10
schaltet ihn für 10 Sekunden mit einer Helligkeit von 50% ein
zeig dem Elektriker einfach den folgenden Anschlussplan, den wird er lesen können bei dir wäre dann ein dritter Taster (nicht Tastschalter!) dran.
Der Dimmer kann dimmen, aber nicht die Farbtemperatur von LEDs ändern. Dazu sind LEDs mit eigener Elektronik (z.B. Shelly Duo) notwendig, die sind aber üblicherweise nicht mit einem Phasenabschnitt/Phasenanschnittdimmer ansteuerbar.
trotzdem versuchen mit der Cloud zu telefonieren.
api,shelly.cloud ist aber nicht direkt die Shelly-Cloud sondern lediglich der zentrale Anlaufpunkt für Firmware-Updates..
die konkrete URL dürfte diese hier sein: https://api.shelly.cloud/files/firmware/
Das läuft allerdings nur am PC.
verständlicherweise, denn ein Shelly Plus kann lediglich mJS, aber eben kein Powershell-Script verarbeiten.
Wer kann helfen ?
ohne das Powershell-Script zu sehen und ohne eine API zum Testen wird das ziemlich schwierig bis unmöglich.
Gibt es eine Größenbeschränkung ?
die Dokumentierten Limits sind diese hier, aber es wird mit ziemlicher Sicherheit auch Limits auf Datei-Ebene (Größe) geben. Die stehen aber nirgends.
wie erstelle ich eine Globale Variabel denn von einem Script zum Anderen habe ich das nicht hinbekommen.
meines Wissens noch gar nicht, das wird aber möglicherweise integriert.
please check https://github.com/shelly-tools/s…_consumption.js
Basically it's a switch.getStatus API-Call, you'd need the apower from the repsonse.
Beim ersten Screenshot ist die Anfrage mit Unauthorized abgewiesen worden. Das liegt daran, dass der Content-Type falsch definiert ist.
Der Default-Content-Type für HTTP.POST oder HTTP.request ist JSON. Du hast aber im body eine Zeichenkette mit der Formatierung für application/x-www-form-urlencoded drin stehen.
ich würde es mit einem generischen HTTP.Request lösen und dabei den Content-Type mitgeben.
let b = 'auth_key=mein_auth_key&channel=0&turn=on&id=device_id';
Shelly.call(
"http.request", {
method: "POST",
url: 'https://shelly-XX-eu.shelly.cloud/device/relay/control',
headers: {
"Content-Type":"application/x-www-form-urlencoded"
},
body: b
},
function (r, e, m) {
print(JSON.stringify(r));
},
null
);
Alles anzeigen
Ein "zentraler" Taster lässt sich problemlos mittels Script relaisieren. Entweder mit dem Shelly Plus I4 oder auch einem Shelly Plus 2 PM.
Vorteil: du brauchst nur zwei (von den 4) Tasten und die verhalten sich so, wie man das vom lokalen Taster am Shelly gewohnt ist.. dabei ist ein Rollladen als "Master" zu konfigurieren. der wird benötigt um den aktuellen Zustand (gestoppt oder in Bewegung) zu definieren.
Die trägst du nur beim Shelly 1 ein, mit dem du den Dimmer "fernsteuern" willst.
- die beiden ersten (Button switched on bzw. off) kannst du nutzen, um den Zustand vom angeschlossenen Schalter als Auslöser zu nehmen.
- Button Short und Long würdest du nutzen, wenn beim Shelly1 ein Taster dran hängt.
- Output on / off nutzt den Zustand des Relais vom Shelly1.
der Shelly hat keinen internen Speicher, in dem die Logging-Daten sinnvoll abgelegt werden können.
Geht sowas (beliebige Texte irgendwohin schreiben/senden) dann mit MQTT? Oder mit Webhooks?
ich würde es an einen (internen) Webserver per Shelly.Call übergeben, bei mir läuft z.B. ein NginX in einer VM auf der Synology. Dem übergebe ich die Variablen als GET-Parameter, auch wenn er die nicht verarbeitet wird aber der komplette Aufruf im Webserver-Log protokolliert und damit hab ich die Daten.
Welche Befehle gibt es beim Shelly Script und wo kann ich das nachlesen.
Also erst mal die Basics und nicht gleich die Diplomarbeit
die Offizielle Doku enthält eigentlich sämtliche gültigen Funktionen, Datentyen etc.
https://shelly-api-docs.shelly.cloud/gen2/Scripts/S…anguageFeatures
switch/case gibt es da meines wissens nicht. Stattdessen if / else if / else nutzen.
Es existiert lediglich ein minimaler, sehr abgespeckter Javacsript-Befehlssatz + ein paar Shelly-eigene API-Funktionen (Call, AddEVentListener, AddStatusHandler) sowie Timer & MQTT.
Das reicht aber für die meisten Dinge aus.
Fragen? dann hier fragen ..
Zum Konvertieren von anderen Datentypen zu Strings oder anders herum lassen sich JSON.stringify bzw. JSON.parse nutzen.
Zahl zu String:
oder Boolean
oder null
oder anders herum, z.B. String to Number:
und nein, soweit mir bekannt gibt es keine Unterschiede bei den einfachen bzw. doppelten Anführungszeichen.
Schubbie würdest du es bitte zukünftig unterlassen mich in irgendwelchen Themen zu markieren? ich entscheide gerne selbst welche Themen ich hier beantworten will.
Im Webinterface des Shelly 1 auf "an" => nichts.
wie soll das gehen? definiert hast du die Actions für Schalter an / Schalter aus.. damit ist ein physikalischer Schalter gemeint, der am Shelly angeschlossen wurde.
bei fixer IP:
- ist auch das Gateway (und DNS) korrekt konfigiriert? beides muss die Adresse vom Router sein.
- sind im WLAN Repeater im Einsatz?
Oder meintest du damit mal alle MQTT-Topics abzugreifen oder noch früher anzusetzen?
ich meinte den Subscribe so, dass ALLE MQTT Nachrichten sichtbar werden und nicht nur der Baum Shelly.../#
ich bevorzuge DHCP gegenüber statischen Adressen. funktioniert in jeglicher Hinsicht gleichwertig, hat aber auch Vorteile.
wenn ich mein Subnetz wechseln oder vergrößern will kann ich das direkt am DHCP-Server, danach reicht ein Reboot und ALLE Clients haben die neuen Einstellungen.
Bei > 100 Shellies und statischen IP wäre das für mich der blanke Horror
Aber jeder wie er mag:
Hinweis: wenn statische IP, dann auf jeden Fall auch das Gateway (und den DNS) eintragen.
woran kann es liegen?
die Funktionalität gibt es in den neuen Plus-Geräten bisher nicht.
Gibts einen Link dahin?
nein, das ist ein geschlossener Bereich für das QA-Team.