FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Hadl am 14 Februar 2026, 16:17:14

Titel: Befehl an Shelly erneut senden wenn senden nicht erfolgreich
Beitrag von: Hadl am 14 Februar 2026, 16:17:14
Hallo zusammen,
ich nutze einen Shelly um mein Warmwasser bei PV Überschutz zu erhitzen.
Das klappt auch mit einem etwas komplexeren DOIF sehr gut. Der DOIF schaltet an dem Shelly dann einen oder beide Ausgänge mit Heizstäben je nach Überschuss ein und aus.

Manchmal hat aber der Shelly scheinbar keine WLAN verbindung und ein Kommando geht verloren. Das ist besondes ärgerlich wenn es das letze Ausschalten vor Sonnenuntergang ist, denn dann läuft der Heizstab einfach weiter und heizt bis Maximaltemperatur.

Den Shelly steuere ich über das Shelly Modul

defmod ShellyBoiler Shelly 192.168.178.xx
attr ShellyBoiler event-min-interval .*:3600
attr ShellyBoiler event-on-change-reading .*
attr ShellyBoiler eventMap /on 0:1kW-ein/off 0:1kW-aus/on 1:2kW-ein/off 1:2kW-aus
attr ShellyBoiler icon sani_buffer_electric_heater_side
attr ShellyBoiler interval 60
attr ShellyBoiler mode relay
attr ShellyBoiler model shellyplus2pm
attr ShellyBoiler stateFormat 1kW:relay_0\
<br>\
2kW:relay_1
attr ShellyBoiler userReadings power_sum:power_.* {my $val = ReadingsVal($name,"power_0",0) + ReadingsVal($name,"power_1",0);;;;$val},\
energy_sum:energy_.* {my $val = ReadingsVal($name,"energy_0",0) + ReadingsVal($name,"energy_1",0);;;;$val},
attr ShellyBoiler webCmd 1kW-ein:1kW-aus:2kW-ein:2kW-aus
attr ShellyBoiler webhook WEB

setstate ShellyBoiler 1kW:off\
<br>\
2kW:off
Der DOIF ruft diese Kommandos hier auf:
1kW-ein:1kW-aus:2kW-ein:2kW-aus

Ich wünsche mir nun eine Funktion die das Shelly Kommando solange wiederholt bis es erfolgreich empfangen wurde. Kann man das mit dem Shelly Modul selbst hinbekommen?

Falls nicht, kann ich irgendwie einen Soll/Ist Vergleich der Relais Zustände machen und das Kommando bei Abweichung wiederholen?


Vielen Dank für eure Ideen

Hadl
Titel: Aw: Befehl an Shelly erneut senden wenn senden nicht erfolgreich
Beitrag von: Prof. Dr. Peter Henning am 14 Februar 2026, 18:57:52
Zunächst einmal sollte der Shelly jeden erfolgreich durchgeführten Schaltvorgang mit einem REST-Call zu FHEM quittieren, z.B. einfach ein userReading im Device setzen - das geht mit einem Shelly-internen Skript. Auf FHEM-Seite kann man kontrollieren, ob dieses Reading gesetzt wurde und ggf. den Befehl wiederholen.

LG

pah