[Modul] Shelly

Shelly Pro 4 PM
shellypro4pm.txt (74,3 KB)

auch nach Neustart des Rechners, kommt der selbe Fehler.

Hein09

Der Fehler ist behoben und sollte mit dem neuen Update weg sein.

Grüße,
Kai

Funktioniert jetzt einwandfrei.
Vielen Dank.

hein09

Es gibt eine neue Beta Version:

Pro 2 und Pro 4:
Leistungsfaktor, Gerätetemperatur und Generic Status über MQTT eingebaut, somit sollte auch die Volt Variable immer aktualisiert werden.

Plus H&T:
Die Idents haben sich geändert, nach einem Update werden also alle Variablen doppelt sein, sollten die Variablen geloggt sein, muss das Archiv auf die neue Variable transferiert werden, nachdem die Daten transferiert wurden, können die Variablen gelöscht werden. Danach muss einmalig die Funktion restVariables über „Befehle testen“ aufgerufen werden.

Plus 1:
Hier hat sich nur der Ident der Erreichbar Variable geändert. Also ggf. die Archivdaten auf die neue Variable übertragen, danach die alte Variable löschen und die Funktion restVariables über „Befehle testen“ aufrufen.

Grüße,
Kai

Hallo Kai,

könntest du vielleicht auch eine Logpush Variable einrichten? Habe einige Szenarien wo ich mit einem Taster eine zweite Lampe ein bzw. ausschalten möchte.

Gruß
Jörg

Das müsste doch über die Ereignis Variable funktionieren.

Grüße,
Kai

Es gibt beim Shelly Pro 4PM aber nur eine Ereignis-Variable. Woher soll ich dann wissen, von welchem Taster der LogPush kam?
Ich müsste also bei einer Änderung der entsprechenden Status-Variable, schnell die Änderungen der Ereignis Variable speichern und gucken, ob „long_push“ dabei war.
Beim LongPush steht am Ende die Ereignis-Variable nach dem Loslassen des Tasters immer auf „btn_up“.

In der Ereignis-Variable sieht es nämlich so aus:
Normal : btn_down => btn_up => single_push
LongPush: btn_down => long_push => btn_up

Und es gibt noch die Variable EventComponent, da steht dann nämlich sowas wie input:0 drin.
Du musst also beide Variablen auswerten. Das hat Shelly mit der neuen API geändert.

Grüße,
Kai

Ich habe eben das neue Update installiert.
Bekomme jetzt folgende Fehlermeldungen:

23.09.2022, 11:56:15 | FlowHandler          | Kann Daten nicht zur Instanz #31394 weiterleiten: 
Fatal error: Uncaught ArgumentCountError: Too few arguments to function ShellyModule::SetValue(), 1 passed in C:\ProgramData\Symcon\modules\.store\info.schnittcher.ips.shelly\ShellyPro2\module.php on line 240 and exactly 2 expected in C:\ProgramData\Symcon\modules\.store\info.schnittcher.ips.shelly\libs\ShellyModule.php:127
Stack trace:
#0 C:\ProgramData\Symcon\modules\.store\info.schnittcher.ips.shelly\ShellyPro2\module.php(240): ShellyModule->SetValue('Powerfactor0,55')
#1 C:\Windows\System32\-(3): ShellyPro2->ReceiveData('{"DataID":"{7F7...')
#2 {main}
  thrown in C:\ProgramData\Symcon\modules\.store\info.schnittcher.ips.shelly\libs\ShellyModule.php on line 127
Abort Processing during Fatal-Error: Uncaught ArgumentCountError: Too few arguments to function ShellyModule::SetValue(), 1 passed in C:\ProgramData\Symcon\modules\.store\info.schnittcher.ips.shelly\ShellyPro2\module.php on line 240 and exactly 2 expected in C:\ProgramData\Symcon\modules\.store\info.schnittcher.ips.shelly\libs\ShellyModule.php:127
Stack trace:
#0 C:\ProgramData\Symcon\modules\.store\info.schnittcher.ips.shelly\ShellyPro2\module.php(240): ShellyModule->SetValue('Powerfactor0,55')
#1 C:\Windows\System32\-(3): ShellyPro2->ReceiveData('{"DataID":"{7F7...')
#2 {main}
  thrown
   Error in Script C:\ProgramData\Symcon\modules\.store\info.schnittcher.ips.shelly\libs\ShellyModule.php on Line 127

Und folgende Benutzerdefinierte Meldung:

23.09.2022, 11:56:59 | PHP                  | Error: Error: Uncaught ArgumentCountError: Too few arguments to function ShellyModule::SetValue(), 1 passed in C:\ProgramData\Symcon\modules\.store\info.schnittcher.ips.shelly\ShellyPro2\module.php on line 240 and exactly 2 expected in C:\ProgramData\Symcon\modules\.store\info.schnittcher.ips.shelly\libs\ShellyModule.php:127
Stack trace:
#0 C:\ProgramData\Symcon\modules\.store\info.schnittcher.ips.shelly\ShellyPro2\module.php(240): ShellyModule->SetValue('Powerfactor0')
#1 C:\Windows\System32\-(3): ShellyPro2->ReceiveData('{"DataID":"{7F7...')
#2 {main}
  thrown
   Error in Script C:\ProgramData\Symcon\modules\.store\info.schnittcher.ips.shelly\libs\ShellyModule.php on Line 127

Hein09

Ja, wenn „long_push“ am Ende in der Ereignis-Variable drin stände, wäre es einfach.

Schau mal, ob das mit der aktuellen Version behoben ist.

Grüße,
Kai

Du musst einfach beide Variablen prüfen.
Ereignis Komponente = input:0
Ereignis = long_push

Laut Debug sollte das in den Variablen ankommen.

Grüße,
Kai

Leider nein, der Fehler ist noch vorhanden.

Hein09

Wie sieht es jetzt aus?

Grüße,
Kai

Jetzt sieht es wieder gut aus.

Die neue Variable Leistungsfaktor funktioniert auch.
Nur bei der neuen Variable Gerätetemperatur, steht nur false drin und Sie ändert sich auch nicht.

Hein09

Alles klar, hab’s so eingerichtet, funktioniert!

Danke dir

Sehr gut. :slight_smile:

Grüße,
Kai

Das sollte jetzt gehen, du musst die Funktion restVariables ein Mal aufrufen.
Und dann kannst du die Variable löschen, welche als Boolean angelegt wurde.

Grüße,
Kai

Wo oder wie rufe ich die die Funktion restVariables auf?