Forum: Mikrocontroller und Digitale Elektronik Shelly Plug S zyklisch über HTTP auslesen


von Richard B. (richbz)


Lesenswert?

Hallo,
ich möchte die Leistungs-Messwerte des Shelly Plug S zyklisch per 
http-Kommando auslesen, wünschenswert wäre ein Messintervall von 10s.
Das Teil läuft in meinem Gast-WLAN, mittels http Kommando im Browser 
läßt sich der aktuelle Leistungsmesswert auslesen -> soweit funktioniert 
das zumindest schonmal.

Ich habe jedoch keinen Plan, ob und wie sich das automatisieren läßt.

Gibt es irgendein Programm/Tool zur zyklischen Generierung von 
http-Kommandos (quasi das was im Browser manuell gemacht wird in festen 
Zeitinvervallen automatisch wiederholen)? Optimal wäre, wenn die Antwort 
vom Shelly gleich dekodiert oder zumindest in eine Datei geschrieben 
werden könnte.

von c-hater (Gast)


Lesenswert?

Richard B. schrieb:

> Ich habe jedoch keinen Plan, ob und wie sich das automatisieren läßt.

Einfach geht es mit wget. Allerdings hat wget deutliche Grenzen. Je 
nachdem, wie die Seite generiert wird, kann es passieren, dass keine 
sinnvolles Ergebnis dabei herauskommt.

> vom Shelly gleich dekodiert oder zumindest in eine Datei geschrieben
> werden könnte.

Letzteres tut wget. Seiten vom Server in lokale Dateien schreiben. Wenn 
die gewünschte Information grundsätzliche erstmal auf der Platte landet, 
ist es meist auch keine großes Problem mehr, den eigentlich 
interessierenden Teil daraus zu extrahieren.

von DerEinzigeBernd (Gast)


Lesenswert?

c-hater schrieb:
> Letzteres tut wget.

Alternative: curl.
Ist bei aktuellen Windows-Versionen von Haus aus dabei, und unter 
unixoiden Betriebssystemen ebenso zu Hause.

Muss man nur (wie wget auch) zyklisch aus einem Zeitplandienst/cronjob 
heraus aufrufen und einen aus der Systemzeit generierten Dateinamen für 
die Ausgabe übergeben.

von Tasmota (Gast)


Lesenswert?

curl http://shelly/emeter/0
sollte die Daten ohne viel html liefern.

Mehr steht auf:

https://shelly-api-docs.shelly.cloud/gen1/#shelly-plug-plugs

von Roland P. (pram)


Lesenswert?

Sofern du vor hast das unter Linux zu betreiben, würde ich dir empfehlen 
auch mal den Weg
Tasmota -> MQTT -> telegraf -> InfluxDB -> Grafana anzuschauen.

Tasmota kann z. B. alle 10 sec den Wert autom. an einen MQTT Broker (z. 
B. Mosquitto) schicken. Telegraf trägt die Werte dann in eine InfluxDB 
ein und Grafana kann es visualisieren.

Ansonsten wie schon geschrieben mit wget/curl in einem Cron job (geht 
leider nur minütlich, müsstet ein Script schreiben, das das 6x macht und 
dazwischen ca. 10 sec Pause)

Gruß Roland

von Roland P. (pram)


Lesenswert?

Richard B. schrieb:
> Das Teil läuft in meinem Gast-WLAN


DAS könnte noch ein Problem werden, da du vom produktiv WLAN nicht ins 
Gast-WLAN kommst.

Hier findest du Infos wie man MQTT  auch im Gast-WLAN zum Laufen 
bekommt:
https://tasmota.github.io/docs/Securing-your-IoT-from-hacking/

Dürfte vielleicht auch für die Original Shelly Firmware zutreffen, die 
AFAIK auch MQTT kann

Gruß Roland

von J. S. (jojos)


Lesenswert?

Roland P. schrieb:
> Sofern du vor hast das unter Linux zu betreiben, würde ich dir
> empfehlen
> auch mal den Weg
> Tasmota -> MQTT -> telegraf -> InfluxDB -> Grafana anzuschauen.

Und warum sollte das unter Windows oder MacOS nicht genauso gut gehen?

Ohne eigenen Server funktioniert das auch mit der Shelly Cloud sehr 
einfach. Mit eigenem Server ist das ein Klacks mit jeder 
Hausautomasierungssoftware.
Auch Tasmota braucht man bei Shelly nicht unbedingt, die Firmware 
unterstützt direkt einen eigenen MQTT Broker.

: Bearbeitet durch User
von Roland P. (pram)


Lesenswert?

J. S. schrieb:
> Und warum sollte das unter Windows oder MacOS nicht genauso gut gehen?

Man wird das sicherlich unter jedem Betriebssystem zum Laufen bringen. 
Die Frage ist halt: Will man das und kann man das?
Linux ist zwar für manch einen auch eine Einstiegshürde, aber für das 
vorgeschlagene Setup gibts halt deutlich mehr Tutorials für Linux als 
für Windows.

Sollte man sogar auf einen RaspberryPi zum Laufen bekommen. Man sollte 
die Datenbank dann aber nicht unbedingt auf der SD Karte ablegen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.