[Modul] Shelly

Hallo Kai,
habe im Testsystem getestet, der Client scheint erstmal sauber zu laufen.

Für eine Umstellung im Echtsystem fehlen mir aber ein Werte den ich über den internen MQTT bekomme.

Es geht um die String-Variable announce. Diese ist immer mit den Werten des zu letzt gestarteten Shelly gefüllt.
Diese zerlege ich mir und fülle die unter dem jeweiligem Shelly ein bzw lege diese auch an , wenn noch nicht vorhanden.

Benötigt wird vor allem die IP. Leider habe ich bis jetzt keine Möglichkeit gefunden einen originalen Shelly ohne Tasmota, für eine gewisse Zeit zum Beispiel einzuschalten, nein ich will dies absolut NICHT über ein Scripttimer lösen.
Wofür soll ich zum Beispiel beim Hoflicht, das per Bewegungsmelder eingeschaltet wird, einen Scripttimer einsetzten, wenn ich dem Gerät selbst sagen kann, schalte für 5 Minuten ein. Bei Tasmota geht dies super über Pulsetime, bei Shell nur per WEB.

Nutze ich für sehr viele Geräte.

Meine Frage:
Komme ich nach Umstellung auf MQTT Client, was ich unbedingt gerne machen würde, an announce irgendwie dran oder kannst du es sogar zu Verfügung stellen. Ich wüsste nicht, wie ich die Information MQTT Client Client ständig bekommen kann.

Vielleicht kannst du ja die Werte direkt in der Shelly Instanz zur Verfügung stellen und wenn sich die Werte ändern aktualisieren.

Und da ich gerade unverschämt bin::rolleyes:

Wenn du im Bild vom MQTT Explorer schaust, siehst du auch den LWT (online), der funktioniert auch sauber unter Mosquitto beim Shelly.
Nur bei Tasmota wird dieser ständig geliefert (teleperiod) bei Shelly nur bei Änderung oder Neustart.
Also wenn ich bei einem laufenden Shelly schau, sehe ich den Wert nicht im Explorer, erst nach Neustart.

Gruß Achim

Ich kann nur das einbauen, was ich in den Debugs bekomme, ich habe nicht jedes Gerät hier liegen.
Du könntest selbst auch nach einer gewissen Zeit sagen setzen die Variable wieder zurück.

Vielen Dank, für die Antwort. :slight_smile:

Das der Client sauber läuft freut mich schon mal. :slight_smile:
Du könntest ein Handle Script schreiben und einem MQTT Client zuweisen.
Dieses Script muss sich dann auf das Topic „shellies“ subscriben, dann solltest du dort die Werte im Script erhalten und kannst damit machen was du möchtest.

LWT könnte ich sicherlich noch einbauen.

Grüße,
Kai

Hallo,
ich habe gerade mal einen Taster an einen Shelly 1 angeschlossen, Longpush bleibt solange 1 bis ein kurzer Push kommt.
Das macht die Shelly Firmware so, also sie teil mir nur mit, dass der Taster lange gedrückt wurde, aber nicht wie lang. Sobald ich ihn wieder das nächste mal kurz betätige, springt Longpush wieder auf false.
Also ich kann nicht sagen, solange der Taster gedrückt ist regele zum Beispiel die Lautstärke hoch .

Gruß Achim

@AchimJeschke

Das kann ich aber so nicht bestätigen. Ich nutze einen Shelly1 zur Visualisierung des Garagentor Zustands.
Der Input ist ‚detached‘ vom Relaisausgang des Shelly1.
Der Shelly1 wird mit 24V DC betrieben. Bei geschlossenem Tor gebe ich 0V auf den Input, bei geöffnetem Tor werden die 0V vom Eingang genommen.
Ein Neustart des Shelly1 ändert nix am Status / Zustand des Input.

Mit dem LongPush kann man nicht nur eine Lautstärke nicht regeln sondern auch keine Schaltbefehle ala ‚Alle Lampen aus‘ realisieren weil das nur 1x funktionieren würde.
Der nächste LongPush würde nicht mehr registriert werden, es sei denn man drückt vorher den Taster kurz und setzt damit den LongPush zurück.
Also vollkommen unbrauchbar…

Longpush ist ein Shelly Problem, wird Zeit das die mal was an der Firmware ändern.
Also, einfach bei Shelly nachfragen.
Wenn die das anders einbauen, wird es auch benutzbar werden.

Longpush scheint doch kein Problem zu sein, es behält den Status auch nach Shelly - Neustart bei. Man muss wohl nur die Skripte auf ‚Aktualisierung‘ triggern, nicht auf ‚Änderung‘. Dann sollte es auch funktionieren.

Hallo,
hier der Link API Reference
Werde heute Nachmittag mal testen, was neues im Bereich MQTT kommt.
Soll mz.B. Longpush für Dimmer dabei sein. Auch LongpushTime soll dazu kommen.
Gruß
Achim

Hallo Kai,
ehrlich eingestanden, das mit dem Handle Script für den Client, verstehe ich nicht im Ansatz,
aber das große Shelly Update hat jetzt
-announce- unter jedem shelly, extra unter dem direkten Topic eines jeden shellies, direkt auf der ersten Ebene.

Den JSON zerlegen ist kein Problem, mach ich ja schon.
Toll wäre wenn du announce als String-Variable einbauen könntest.
Wäre ja ein Rutsch mit Online(LWT). Wäre wirklich toll.

Wenn du dazu noch Debugs brauchst, kein Problem.

Die Anbindung übern MQTT Client läuft bei mir im Echtsystem seid 3 Tagen perfekt!
Dafür nochmals vielen Dank.

Gruß Achim

Das freut mich.
Schick mir mal Debugs dann schaue ich mir das an, evtl. kann ich es auch direkt im Modul in Variablen schreiben, was genau möchtest du denn alles noch für Variablen haben?

Grüße,
Kai

Hi,
habe Debug noch an gehangen von einem PlugsS.
Im Debug sieht man , dass selbst beim Reset des Shellies sofort Online false und wieder true im Payload hat.
Es sind beide announce vorhanden, den unter Shellies und den unter shellies/plugS.

Gruß Achim

dump.txt (22.8 KB)

Ich habe gerade das Modul hinzugefügt. Beim erstellen des Konfigurators kam folgender Error:
shelly_error.png

Kann mir jemand weiterhelfen?

Danke und Gruss
Michi

@vosermi, ich habe deinen Beitrag mal in den richtigen Thread verschoben.
Welche Version nutzt du denn von dem Modul? Kannst du mal die Beta Version versuchen?

Grüße,
Kai

Ich habe im Module Store auf Beta gewechselt und erhalte denselben Fehler wenn ich auf den Shelly Configurator Doppelklick mache. die Kernelversion ist 5.3.

Gruss
Michi

Das Problem ist in der aktuellen Beta Version behoben, wenn der Fehler auftritt wird nun die aktuelle Firmware im Konfigurator nicht angezeigt und der Konfigurator lässt sich wieder öffnen.

Grüße,
Kai

Ich hatte vorher keine Probleme und die Firmware wurde angezeigt.
Nun steht bei Firmware nur noch ein „-“, wird also nicht mehr angezeigt.

Kann es sein, das in den letzten 2 Tagen (so ca) irgendwas am MQTT Server gedreht wurde? Ich habe seit Kurzem zum Teil recht hohe Latenzen, also Verzögerungen wenn ich schalte und walte. Die Rückmeldung kommt irgendwie doch zum Teil arg verzögert, zum Teil jedoch sofort…

Habe alles versucht aber irgendwie keinen Erfolg.

Das Problem mit den Verzögerungen.ist mir auch aufgefallen.
Die Firmware wird allerdings nicht per MQTT Server ausgelesen, sondern kommt per mDNS.

@paresy, gab es interne Änderungen?

Grüße,
Kai

Version 4.0 ist online.
Die Änderungen findet ihr auf der ersten Seite.

Grüße,
Kai

Hallo zusammen,

leider kommt es hin und wieder vor, dass einer meiner Shelly 1 auf MQTT-Befehle aus dem IPS heraus nicht mehr reagiert. Auf der Shelly-GUI und über Taster funktioniert er einwandfrei. Nach einem Reboot des Shellys über einen HTTPS-Befehl ist alles wieder gut. Nun möchte ich das etwas automatisieren und bräuchte hierzu die Möglichkeit, über die IPS-ID des Shellys an seine IP-Adresse zu kommen. Kann mir jemand weiterhelfen ? Über das Modul habe ich keine Lösung gefunden und die einzige Variable, in der eine IP steht ist /shellies/announces, welche aber nur einmal für alle shellies vorhanden ist.

Grüße Frank

Hast du eine Idee wieso das passiert?
Aber ich überlege mir mal, ob man die IP-Adresse noch irgendwo hinterlegen kann.

Grüße,
Kai

nicht wirklich - da die GUI vom Shelly funktioniert, kann es kein WLAN-Problem sein und der Debug vom MQTT zeigt den Befehlsausgang auch an … aber wer wie ich bisher mit ELV-Geräten und Bidcos arbeitet, ist wesentlich Schlimmeres gewohnt :stuck_out_tongue:

Das mit dem Reboot mache ich übrigens so :

$url = "http://xx.x.x.xxx/reboot";
$Ausgabe = fopen("$url", "r");

Wenn du mal Langeweile hast, könntest du das ja mal im Modul einbauen :smiley: