[Modul] Shelly

Da musst du glaube ich mal @Brownson zu befragen.

Grüße,
Kai

Auf jeden Fall über das Modul anlegen und nicht über den MQTT Server Konfigurator.
Hat die Shelly Instanz den richtigen Splitter? Kommen Daten im Debug von der Shelly Instanz an?

Grüße,
Kai

Hi Kai,
setzte ich hier zwei unterschiedliche Module (Brownson und Deins) etwa ein? Da bin ich mir gerade unsicher… Also ist es überflüssig, über den MQTT Server zu gehen?

Die Antwort mit @Brownson war nicht für dich. :wink:

Grüße,
Kai

OK lol

Aber grundsätzlich ist der Weg über den MQTT Server überflüssig um die Variablen anzulegen. Das mache ich dann mit deiner Modulinstanz - richtig? Jetzt funktioniert es - ich hatte die Anzahl der lizenzierten Variablen überschritten …

Genau, du musst nur den Weg über das Modul gehen.
Schön, dass es nun funktioniert.

Grüße,
Kai

1 „Gefällt mir“

Bin nicht sicher ob es hier reingehört.
Ich habe einen „Shelly Plug S“ dessen Werte ich archiviere.
Kann ich irgendwie einstellen dass z.b. nur alle x Sek. Werte daher kommen bzw. verarbeitet werden ?
Es hängt ein PV Modul dran und dadurch rührt sich permanent was.

Das kannst du nur über ein Script und eine Hilfsvariable regeln. Also Original alle x Sekunden lesen, in die Hilfsvariable schreiben und die archivieren.

Schade - danke - ich hatte auch gehofft man könnte den Traffic etwas reduzieren

@paresy dafür wolltet ihr in Zukunft glaube ich eine Lösung bringen, oder?

Grüße,
Kai

Mehrere Befehle Funktionieren nicht korrekt
Ich habe Shelly BulbDuo in Betrieb.
Wenn ich z.B.
Dei BlubDuo einschalte und entsprechenden Werte setze,
kommt es sehr oft vor das die Werte nicht korrekt übernommen werden.

Ich habe mir mal ein kleines Scrip zum Testen erstell.

RequestAction($licht_helligkeit,50);
RequestAction($licht_weiss, 75);

Wenn ich nun beide Werte ändere und das Script wieder ausführe werden die Wert nicht korrekt gesetzt.
Bei einer Änderung nur eines Wertes wird der Wert korrekt gesetzt.

Mir ist noch folgendes Aufgefallen. Habe es über 20x getestet und das Verhalten wahr immer gleich.

Der zweite Befehl wird immer korrekt ausgeführt. Der Wert wird korrekt gesetzt.
Das gleich Verhalten wenn ich die zwei Befehle umkehre.
Es scheint mir so als ob der erste Befehl Zuwenig Zeit hat dies auszuführen.

Wenn ich ein sleep dazwischen lege funktioniert dies Problemlos. (Kann aber nicht die Lösung sein)

RequestAction($licht_helligkeit,60);
sleep(1);
RequestAction($licht_weiss, 65);

Ich könnte wohl auch nach jedem Setzen den Wert prüfen und falls der nicht stimmt nochmals setzen.
Etwas umständlich.

Ist diese Problem bereits bekannt.
Und was wäre da die Lösung.

Evtl. könnte ja ne Art Prüfung im Modul eingebaut werden.

Gruss

Es gibt eine neue Beta Version, dort habe ich mal eine weitere Funktion eingeführt: setExtOpt

Beispiel:

$Payload['brightness'] = strval(50);
$Payload['white'] = strval(75);
SHELLY_setExtOpt(12345, $Payload);

Kannst du das mal damit testen?

Grüße,
Kai

Hallo Kai,

habe es wie folgt im Script erstellt.

$Payload['brightness'] = strval(50);
$Payload['white'] = strval(75);
SHELLY_setExtOpt(31671, $Payload);

Ich nehme an das bei SHELLY_setExtOpt die ID der Shelly Instanz angegeben wird.

Beim Ausführen erhalte ich folgen Meldung.

Fatal error: Uncaught Exception: Instance does not implement this function in /var/lib/symcon/scripts/__generated.inc.php:514
Stack trace:
#0 /var/lib/symcon/scripts/37224.ips.php(6): SHELLY_setExtOpt(31671, Array)
#1 {main}
  thrown in /var/lib/symcon/scripts/__generated.inc.php on line 514

Modul ist auf BETA und wurde bereits neu installiert.
IPS habe ich auch neu gestartet.

Gruss
Nightman

Mein Fehler, ich habe es in der falschen Instanz implementiert.
Ich fixe das gleich.

Grüße,
Kai

@Nightman, kannst du die aktuelle Beta Version nochmal testen?

Grüße,
Kai

Habe es nochmals getestet.
Es kommt kein Fehlermeldung.
Die Werte werden aber nicht verändert.
Hier noch das Debug der Instanz

dump.txt (23,6 KB)

Wenn ich nun im WebFront oder Direkt auf der Instanz die Helligkeit ändere kommt folgende Fehlermeldung.

Konnte nicht schalten

Notice: Undefined variable: transition in /var/lib/symcon/modules/.store/info.schnittcher.ips.shelly/ShellyDuo/module.php on line 182
 (Code: -32603)

Das habe ich gerade gefixt.

Aber im Debug kommt von der Funktion „SHELLY_setExtOpt“ auch gar nichts an. Kannst du das bitte nochmal testen?

Grüße,
Kai

Geht leider immer noch nicht.

Habe das den Befehl für Status setzen mit reingenommen.

Das Script habe ich einmal mit true und einmal mit false gestartet.

RequestAction(46215, true);

$Payload['brightness'] = strval(30);
$Payload['white'] = strval(35);
SHELLY_setExtOpt(31671, $Payload);

Hier das Debugfile,
dump.txt (28,8 KB)

Ich habe leider gerade kein Gerät hier angeschlossen um es selbst zu testen.
Aber ich glaube ich habe noch einen Fehler gefunden, bitte nochmal ein Update machen und dann mit diesem Code testen:

$Payload['turn'] = strval('on');
$Payload['brightness'] = strval(30);
$Payload['white'] = strval(35);
SHELLY_setExtOpt(31671, $Payload);

Grüße,
Kai

1 „Gefällt mir“

Cool. Schein zu Funktionieren.
Habe einige Tests gemacht und sehen alle gut aus.
Hier noch das Log vom Test.

dump.txt (54,5 KB)

Ich werde dies mal in eigen Scripts entsprechend anpassen und schauen wie es sich verhält.
Wenn mir was auffällt melde ich mich.

Auf jedem Fall vielen Dank für die schnelle Unterstützung. Danke dir.