[Modul] Shelly

Danke für eure Antworten zum Energiezähler.

Ja, fürs Logging ist es nicht weiter schlimm, da ich aber den aktuellen Wert auch im Webfront anzeige ist es etwas blöd und es wundert mich, weil es früher mal gut funktioniert hat.

Dass der Plug S den Wert bei Stromausfall oder Reset nicht speichert, ist mir klar. Aber wenn es daran lege, dann würde sich das Teil neuerdings alle paar Minuten resetten.
Da fällt mir gerade ein, dass es in der neuen Firmware eine Option zum Reset bei Access Point Wechsel gibt. Aber die soll laut Beschreibung nichts zurücksetzen oder unterbrechen. Aber das teste ich vielleicht mal.

Müsste das Modul denn nicht trotzdem einen Wert anzeigen, wenn die entsprechende MQTT-Variable einen Wert > 0 hat? Ich habe noch nicht in den Quellcode geguckt, wie die Variable vom Modul genutzt wird.

Gruß
Slummi

EDIT:
Meine Annahme mit den Wh der MQTT-Variable war übrigens falsch. Ich habe mal in der API-Beschreibung nachgelesen. Die Shellys liefern den Verbrauch in Wattminuten.

Bist du dir sicher, dass die Funktion „Enable AP Roaming“ den Wert resettet? Ich verstehe das so, dass der Shelly einen stärkeren Zugang / AP sucht wenn die Signalstärke unter einem bestimmten Wert liegt…

Das weiß ich eben nicht. Deswegen habe ich es jetzt testweise mal deaktiviert. Die Option scheint auch neu in der aktuellen Firmware zu sein. Sie heißt bei mir: SOFT REBOOT WHEN WIFI CONNECTION IS LOST

Und in der Beschreibung dazu heißt es:

The device will restart once if it loses connection to the network gateway and cannot restore it. The restart will not change the state of the outputs or any other parameters.

Eigentlich soll sich dadurch ja nichts am Gerätestatus ändern, aber ob das auch für den Energiezähler zutrifft…

Die Option meine ich nicht, es gibt noch ein „Enable AP Roaming“. Soft Reboot solltest du ausschalten, beim Reboot setzt auf jeden Fall der Energiezähler zurück.

Achso, ok. Ich habe jetzt erst mal beides deaktiviert und teste damit.
Es scheint aber so oder so am Shelly zu liegen und nicht am Modul. Ich habe mal einen Blick in den Code vom Modul geworfen und das nimmt eigentlich nur den MQTT-Wert und rechnet ihn in kWh um. Von daher muss der Reset vom Shelly selbst kommen.

Ich werde mir bei Bedarf einfach eine Hilfsvariable bauen, die den Verbrauchswert fortschreibt. Dann ist es egal, wenn er sich resettet.

Hi Lukky, ich habe ein ähnliches Problem, woran lag es bei dir? :slight_smile:

Hallo Hendrik,

scheinbar ist beim Update des Shelly Modul - ich hatte noch die alte Version - ein Fehler aufgetreten und es hat die Shelly Duo nicht mehr richtig erkannt. Du musst bei der Instanz nochmals die Shelly Duo auswählen und die Konfiguration abspeichern. Zu dem Zeitpunkt wo ich das Modul installiert hatte gab es noch nicht die Shelly Bulb rgbw. Draufgekommen bin ich auf meinen Testsystem haben die gleich Lampen funktioniert. Was mich verwirrt hatte, das der Status der Lampen korrigiert wurde wenn ich über das Webfrontend der Lampe geschaltet hatte.

VG

Andreas

1 „Gefällt mir“

Evtl. wird dort etwas geblockt? Bzw. der Port schon verwendet?
@paresy, kannst du dazu evtl. etwas sagen?

Grüße,
Kai

Ich hab da auch ein Problem in diese Richtung. Hab 2 Shelly1. bei einem ein Update gemacht und neu gestartet. Jetzt ist er in IPS offline. Wie bei dir kann ich über shelly App und Webfront im Browser alles schalten. In der IPS Instanz kann ich nur Shelly1 oder Shelly1PM switchen, habe ich auch getan, ändert aber nichts an dem Problem. Bei mir läuft IPS 5.5

Gruß oekomat

Edit: hab es hinbekommen, auch mit der neuen Firmware der shellys, auch ohne Anpassung in der Instanz. IPS neu gestartet hat geholfen.

Hi Andreas,

vielen Dank für die schnelle Rückmeldung, dein Tipp hat tatsächlich geholfen. :slight_smile:

gern geschehen.

VG

Andreas

Kann man eigentlich den Timer (zB Auto-Off im Shelly konfiguriert) über das Modul darstellen?
Habe zB eine Aussenleuchte, die nach dem Einschalten nach spätestens 4 Stunden wieder ausgehen soll.
Im Shelly habe ich da den Auto-Off Timer konfiguriert und in der WebUI des Shelly sieht man den Timer auch.
Wäre toll wenn das über das Modul auch dargestellt werden könnte ?

Ich glaube über MQTT geht das nicht.
Man könnte es über die HTTP API abrufen, ich weiß aber noch nicht ob ich das wirklich einbauen will.

Schau mal hier: API Reference
Du kannst es damit auch per Script abrufen.

Grüße,
Kai

Ja, über IP/status bekommt man so diverse Infos. Allerdings kapiere ich nicht wie ich da per HTTP an die entsprechenden Infos kommen soll (?)

Ganz einfach:

$APIResult = file_get_contents('http://ShellyIP/status');
$Status = json_decode($APIResult,true);

echo $Status['relays'][0]['timer_started'];
echo $Status['relays'][0]['timer_duration'];
echo $Status['relays'][0]['timer_remaining'];

Grüße,
Kai

Danke Kai!

So funktioniert es wenn ich das Skript dann manuell aufrufe, sehe ich die verbleibenden Sekunden.
Lasse ich das Skript zyklisch (sekündlich) aufrufen wenn das Licht an ist, dann passiert im Webfront nichts. Erst wenn man das Skript manuell anstösst, öffnet sich das Popup mit dem aktuellen Wert (dieser wird aber nur bei jedem erneuten Aufrufen aktualisiert)
Schön wäre natürlich wenn der Timer in Echtzeit herunterzählen würde, ohne das dieses immer wieder aufgerufen werden muss

Du musst ja auch die Werte noch in Variablen schreiben.
Also Variablen anlegen und mit SetValue im Script die Werte in die Variablen schreiben.
Wenn du es in Echtzeit runterzählen lassen willst, musst du sekündlich das Script aufrufen.
Allerdings ist das nicht so sinnvoll, damit blockierst du fast die ganze Zeit einen Thread in Symcon.

Grüße,
Kai

Ja logisch, ich hatte total das Brett vorm Kopf… :confused:
Habe gerade was festgestellt. Kann das sein, das im Unix Timestamp Profil ein Fehler drin ist? Habe einen Timer von 4 Stunden (14.400 Sekunden) und das Profil errechnet daraus 5 Stunden…

Bei mir auch.
@paresy @Dr.Niels, sind das evtl. Probleme mit der Zeitzone?

Grüße,
Kai

Timestamp Profile zeigen immer lokale Zeit an.
Der Wert in der Variable wird immer als UTC/GMT integer-Timestamp erwartet.
Das berücksichtigt?
Michael