TIA HTTP-Request (GET und POST) Shelly über Cloud

Topper

Level-2
Beiträge
6
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
hat jemand mittels LHTTP Post Put Baustein schon einmal Shellys über die Cloud geschalten?
Den Status des Shellys konnte ich bereits auslesen. Leider klappt es nicht mit den Schalten. Wenn ich das ganze in Postman ausprobiere klappt es ohne Probleme

bei contentType hab ich 'text/html'
url ist mit der Server Adresse vom Shelly beschaltet also 'https://shelly-x-eu.shelly.cloud/device/relay/control/'
data ist mit dem Befehl zum schalten und der Shelly Id beschaltet 'turn=toggle&channel=0&id=XXXX&auth_key=myapi'

Leider bekomm ich immer ein Error HTML Fehler 401.
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    5,9 KB · Aufrufe: 18
Also erstmal musste beim content Type 'application/x-www-form-urlencoded' hinterlegt werden. Das war das erste Problem.

Das zweite Problem war die Timeout Zeit die ist Standardmäßig bei 10s. Der Server braucht aber scheinbar relativ lang zum Antwortet als ich die Zeit auf 25s erhöht habe lief es stabil
 

Anhänge

  • Unbenannt.JPG
    Unbenannt.JPG
    27,5 KB · Aufrufe: 25
Zuviel Werbung?
-> Hier kostenlos registrieren
du kannst den status auf jeden fall direkt vom shelly abrufen.
ob das direkt aus der sps klappt kann ich nicht sagen. ich mach das über die hmi
steuern tu ich das ding nicht. nutze ich nur zum lesen der pv-panale.

shelly plug s
curl.exe -k http://192.168.1.90/meter/0/Status > d:\shelly_sw.htm
der response
Code:
{"id":0, "source":"init", "output":true, "apower":39.8, "voltage":232.0, "current":0.190, "aenergy":{"total":49273.371,"by_minute":[697.734,732.333,701.283],"minute_ts":1690212479},"temperature":{"tC":40.4, "tF":104.8}}

shelly plus
curl.exe -k http://192.168.1.91/rpc/Switch.Getstatus?id=0 > d:\shelly_so.htm
der response
Code:
{"power":58.05,"overpower":0.00,"is_valid":true,"timestamp":1690219741,"counters":[61.850, 64.124, 106.779],"total":2600771}
 
direkt in der SPS geht das auch Anstatt der Cloud Adresse einfach die IP benutzen. Gibt dazu auch eine gute Anleitung bei Shelly
 
@Hesse : du weißt aber grundsätzlich wie man sie fernsteuern kann ?
z.B. für einen Shelly 1 , 2 :
http://192.168.XXX.XXX/relay/0?turn=on
Bin mal wieder dran an dem Thema ...
Danke @Larry Laffer ...
Das geht so tatsächlich mein Fehler war vermutlich das der Shelly nicht mit der Cloude verbunden sein darf um auf
:80 per http zu hören ...

Mal sehn ob ich das auch aus der SPS per Get/Post hinbekomme. "Ihr" habt es ja hinbekommen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
direkt in der SPS geht das auch Anstatt der Cloud Adresse einfach die IP benutzen. Gibt dazu auch eine gute Anleitung bei Shelly
Es gibt dazu, wenn man lange genug sucht, so einiges bei Shelly.
Ich habe das aber für mich auch mal zusammengestellt soweit ich konnte und brauchte - manches muss man auch probieren.
@Hesse : Wenn du möchtest dann schicke ich dir meine Liste per Mail - wenn ja dann schreib mir einfach eine PN ...

Du kannst die Befehle jedenfalls, so wie ich dir das Beispiel gegeben habe, direkt über den Browser absetzen. Dann müßte man es eigentlich auch über die SPS als Befehlstring absetzen können ...
 
Mal falls es jemanden interessiert:
Ich hab das Problem gehabt, daß ich mein WLAN über Nacht abschalte und sich dann die Shelly Plugs zwar im WLAN angemeldet haben, aber nicht mehr ansprechbar waren - und was ganz toll war: sie waren über z.B. Handy ansprechbar, aber nicht mehr über den PC.
Ich habe jetzt folgendes Script im Shelly laufen:

Code:
// Fügt einen Event-Handler hinzu, der auf alle System-Ereignisse lauscht.
Shelly.addEventHandler(function(event) {

  // Prüft, ob das eingetretene Ereignis eine erfolgreiche WLAN-Verbindung ist.
  if (event.name === "Sys.EVENT_WIFI_CONNECTED") {
    
    console.log("WLAN-Verbindung wiederhergestellt! Neustart wird in " + (REBOOT_DELAY_MS / 1000) + " Sekunden ausgelöst.");

    // Startet einen einmaligen Timer, der nach der eingestellten Verzögerung abläuft.
    Timer.set(REBOOT_DELAY_MS, false, function() {
      console.log("Führe Neustart nach erfolgreicher WLAN-Verbindung durch.");
      Shelly.call("Sys.Reboot", {});
    });
  }

});

Damit laufen jetzt seit einiger Zeit die Plugs wieder stabil und sind jederzeit ansprechbar.
 
@JSEngineering : interessant - aber das Problem müßte dann doch nach einem Stromausfall genauso bestehen. Das wiederum kann ich aber nicht bestätigen ... Wie machst du das denn über deinen PC ? Weil wenn du sie über die App (also Cloud-Verbindung) des Handys noch erreichen kannst dann sind sie doch eigentlich korrekt im WLan ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ehrlich: ich habe keine Ahnung... Cloud ist normalerweise ausgeschaltet. Ich möchte sie nur über Links schalten, intern im Netz. Mit Cloud eingeschaltet, waren sie über die App immer erreichbar, aber intern per IP halt von einigen Geräten ja, von anderen nicht.
Stromausfall heißt ja: Neustart. Neustart behebt immer alle Probleme. Aber anscheinend wiederkehrendes WLAN ist ein Problem für die.
 
Zurück
Oben