Shelly JSON JavaScript

Drittanbieter Anwendungen werden nicht durch Shelly selbst supported! Haftung ist hierfür ausgeschlossen!

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.

  • Liebe Shelly Community,

    ich bin seit mehreren Tagen verzweifelt an einem Problem, welches ich allein nicht lösen kann. Es geht darum, dass ich den JSON Status der Shelly Komponente, in meinem Fall ein Relay Shelly plus 1, in einer HTML Seite anzeigen lassen will.

    Im folgenden Beispiel habe ich eine einfache HTML-Seite mit JavaScript (Asynchron). Zwei Buttons , einmal ein und einmal aus Abb[1]. Dies funktioniert soweit ganz gut.

    Ziel ist es, das JSON, welches beim Aufrufen der URL, die vom Shelly zurückgegeben wird Abb[3], auch in der selben HTML Seite Abb[2] (Asynchron) in einem Textfeld anzeigen zu lassen.

    Vielleicht hat sich schon jemand damit auseinandergesetzt und weiß eine Lösung für das Problem. Wenn möglich KEIN jQuery.

    Ich danke im voraus.

  • Lösungsansatz für Shelly 1 (NICHT Shelly Plus 1)

    Um das JSON Objekt auslesen zu können, muss auf der Servereite also direkt in den Shelly Einstellungen CROSS-Origin Resource Sharing aktiviert werden. Siehe Abb[6]

    JavaScript

    Mit dem folgenden Script kann das gesamte JSON Objekt ausgelesen werden oder auch nur bestimmte Attribute im JSON. Siehe Abb[5]

    Bei Shelly Plus 1 und Shelly Plus1PM habe ich bis jetzt keine Lösung, da in den Shelly Einstellungen die Option für CROSS-Origin Resource Sharing fehlt. Siehe den Unterschied Abb[10]

    Vielleicht findet Jemand die CROSS Einstellungen für diese zwei Shelly Komponente.

    Danke für die Zusammenarbeit.


    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
  • CORS gibt es für die Shelly Plus-Serie nicht mehr, denn ist ist im Grunde etwas veraltet und wird durch Browser-Restriktionen immer mehr eingeschränkt.

    Stattdessen können die Shellies der zweiten Generation (Plus und PRo) via Websockets direkt mit dem Browser kommunizieren.

    Großer Vorteil gegenüber asynchronen Abfragen: Der Shelly meldet dem Browser selbst seine Änderungen über Status-Events.

    Wenn du z.B. den Shelly über den Schalter / die App oder Alexa bedienst bekommt der Browser das automatisch mit und zeigt den aktuellen Status (Relais an oder aus) von ganz alleine an. Die regelmäßige Abfrage (Polling) an den Shelly über die REST-API ist damit nicht mehr notwendig.

    Ich hab das hier mal an einem Bespiel für den Pro 4 PM gezeigt:

    Seven of Nine
    30. August 2021 um 20:25

    Falls du dazu Fragen hast einfach melden.

    >100 Shellies, darunter so gut wie alles was der Hersteller produziert hat. ;)
    :!: ich beantworte grundsätzlich keine Fragen per persönlicher Nachricht:!: