Hallo,
Ich melde mich nach längerer Zeit wieder mal.
Ich steuere meine Poolpumpe mit einer Shelly 1PM
Diese Shelly wird über ein DOIF angesteuert.
Ich stelle es hier ein, weil ich kein Shelly Rubrik finde.
Ich habe aber das Problem, dass die Shelly oft nach 30 min, oder auch nach 3 Stunden abschaltet, obwohl diese keine Befehl dafür bekommen hat.
Hier die Lists der Shelly:
ZitatInternals:
DEF 192.168.1.211
DURATION 0
FUUID 5efe108e-f33f-0d7f-4f14-acf17054f8df3091
FVERSION 36_Shelly.pm:v3.4.0-s25465/2022-01-14
INTERVAL 60
NAME PoolPumpe
NR 366
SHELLYID shelly1pm-A4CF12F3D297
STATE PoolPumpe: on<br>Stromaufnahme aktuell: 725.24 Watt<br>Stromaufnahme Tag: 507.10 Wh
TCPIP 192.168.1.211
TYPE Shelly
Helper:
DBLOG:
Status:
DBLogging:
TIME 1654846200.03518
VALUE on
power:
DBLogging:
TIME 1654849023.87124
VALUE 725.24
state:
DBLogging:
TIME 1654848300.61846
VALUE on
OLDREADINGS:
READINGS:
2022-06-10 09:30:00 Status on
2022-06-10 10:18:04 Stromaufnahme_Pumpe_Tag 507.096929065883
2020-07-02 18:51:27 cloud disabled
2020-07-02 18:53:48 energy 0
2020-07-02 18:51:27 firmware 1047-long-id-for-shelly-devices
2022-06-10 10:18:04 inttemp 46.36
2022-06-06 08:22:53 network <html>connected to <a href="http://192.168.1.211">192.168.1.211</a></html>
2022-06-10 10:05:00 overpower 0
2022-06-10 10:17:03 power 725.24
2022-06-10 10:05:00 relay on
2022-06-10 10:05:00 state on
Attributes:
DbLogExclude .*
DbLogInclude state,power,Status
group Pumpe
icon sani_garden_pump
model shelly1pm
mqttName Pumpe
mqttReadings state
mqttRoom Pool
room 7.01_Pool
sortby 3
stateFormat {sprintf("PoolPumpe: %s<br>Stromaufnahme aktuell: %.2f Watt<br>Stromaufnahme Tag: %.2f Wh", ReadingsVal($name,"state",0),ReadingsVal($name,"power",0),ReadingsVal($name,"Stromaufnahme_Pumpe_Tag",0))}
userReadings Stromaufnahme_Pumpe_Tag integral { ReadingsVal($name,"power",0) /3600 }
Der Relay on Status wurde manuell ausgeführt, da ja die Pumpe laufen soll.
Das List des DOIFs:
ZitatInternals:
DEF ([Pool_Hauptschalter] eq "on" and [ [Filterpumpe_Laufzeitstart] - ( [Filterpumpe_Laufzeitstart] + [PoolPumpeLaufZeit:Gesamtlaufzeit] ) ] )
(set PoolPumpe on) (setreading PoolPumpe Status on )
DOELSE (set PoolPumpe off) (setreading PoolPumpe Status off )
FUUID 5e7a6505-f33f-bdb6-5f77-f261740d476447f5
FVERSION 98_DOIF.pm:0.259750/2022-04-17
MODEL FHEM
NAME Schalt_Poolpumpe
NOTIFYDEV Pool_Hauptschalter,PoolPumpeLaufZeit,global,Filterpumpe_Laufzeitstart
NR 249
NTFY_ORDER 50-Schalt_Poolpumpe
STATE Pumpenlaufzeit: 8.0 Stunden <br>Laufzeit: 10.06.2022 09:30:00 Uhr bis 10.06.2022 17:30:00 Uhr
TYPE DOIF
VERSION 25975 2022-04-17 09:48:15
READINGS:
2022-06-10 09:30:00 cmd 1.2
2022-06-10 09:30:00 cmd_event timer_1
2022-06-10 09:30:00 cmd_nr 1
2022-06-10 09:30:00 cmd_seqnr 2
2022-05-24 10:25:27 mode enabled
2022-06-10 09:30:00 state cmd_1
2022-06-10 05:00:00 timer_01_c01 10.06.2022 09:30:00
2022-06-10 05:00:00 timer_02_c01 10.06.2022 17:30:00
Regex:
accu:
collect:
cond:
Pool_Hauptschalter:
0:
&STATE ^Pool_Hauptschalter$
itimer:
Filterpumpe_Laufzeitstart:
itimer:
&STATE ^Filterpumpe_Laufzeitstart$
PoolPumpeLaufZeit:
itimer:
Gesamtlaufzeit ^PoolPumpeLaufZeit$:^Gesamtlaufzeit:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::InternalDoIf($hash,'Pool_Hauptschalter','STATE') eq "on" and ::DOIF_time($hash,0,1,$wday,$hms)
days:
do:
0:
0 set PoolPumpe on
1 setreading PoolPumpe Status on
1:
0 set PoolPumpe off
1 setreading PoolPumpe Status off
helper:
NOTIFYDEV Pool_Hauptschalter,PoolPumpeLaufZeit,global,Filterpumpe_Laufzeitstart
event timer_1
globalinit 1
last_timer 2
sleeptimer -1
timerdev
timerevent timer_1
triggerDev
DOIF_eventa:
cmd_nr: 1
cmd_seqnr: 2
cmd_event: timer_1
cmd_1
DOIF_eventas:
cmd_nr: 1
cmd_seqnr: 2
cmd_event: timer_1
state: cmd_1
timerevents:
timer_1
timereventsState:
timer_1
triggerEvents:
timer_1
triggerEventsState:
timer_1
internals:
all Pool_Hauptschalter:STATE
interval:
0 -1
1 0
intervalfunc:
intervaltimer:
localtime:
0 1654846200
1 1654875000
perlblock:
realtime:
0 09:30:00
1 17:30:00
time:
0 [Filterpumpe_Laufzeitstart]
1 ([Filterpumpe_Laufzeitstart]+[PoolPumpeLaufZeit:Gesamtlaufzeit])
timeCond:
0 0
1 0
timer:
0 0
1 0
timers:
0 0 1
triggertime:
1654875000:
localtime 1654875000
hash:
uiState:
uiTable:
Attributes:
DbLogExclude .*
do always
event-on-change-reading 1
group Pumpe
icon general_an_fuer_zeit
room 7.01_Pool
sortby 8
stateFormat {sprintf("Pumpenlaufzeit: %.1f Stunden <br>Laufzeit: %s Uhr bis %s Uhr" ,ReadingsVal("PoolPumpeLaufZeit","Laufzeit_Std",0),ReadingsVal($name,"timer_01_c01",0),ReadingsVal($name,"timer_02_c01",0))}
Das setreading habe ich eingefügt, weil eben die Probleme auftraten.
Interessant ist, dass es diese Konfiguration schon seit 2019 gibt und immer funktioniert hat. Heuer traten plötzlich diese Probleme auf.
Die Shelly hat die Firmware aus 2019 drauf, aktualisieren kann ich nicht, denn in dem Netz wo sie hängt, kann sie nicht nach Hause telefonieren, da Internet untersagt ist.
Wass kann da schuld sein?
Kannst du bitte die List im Fehler Zustand posten?
Sonst ist das alles Glaskugel raten
😉
Wann das nächste mal der Fehler auftritt (wahrscheinlich erst morgen), poste ich die Lists nochmals.
Servus
kann es sein das der Shelly "over power" geht und deshalb abschaltet.
Ich hatte das bei meiner Solarpumpe beim Pool mit einem pro4pm. Hab ihn gegen einen plus1pm getauscht und jetzt gehts.
Ist nur eine Vermutung. Aber da es bei dir ja länger schon gelaufen ist und auch keine neue FW drauf ist sollte es nicht sein.
Gruß
Helmut
Es war wieder soweit. Um 13 Uhr hat die Pumpe wieder abgeschaltet.
Hier das List der PoolPumpe
Internals:
DEF 192.168.1.211
DURATION 0
FUUID 5efe108e-f33f-0d7f-4f14-acf17054f8df3091
FVERSION 36_Shelly.pm:v3.4.0-s25465/2022-01-14
INTERVAL 60
NAME PoolPumpe
NR 366
SHELLYID shelly1pm-A4CF12F3D297
STATE PoolPumpe: off<br>Stromaufnahme aktuell: 0.00 Watt<br>Stromaufnahme Tag: 2456.02 Wh
TCPIP 192.168.1.211
TYPE Shelly
Helper:
DBLOG:
Status:
DBLogging:
TIME 1654846200.03518
VALUE on
power:
DBLogging:
TIME 1654858829.82234
VALUE 0
state:
DBLogging:
TIME 1654858829.82234
VALUE off
OLDREADINGS:
READINGS:
2022-06-10 09:30:00 Status on
2022-06-10 13:09:30 Stromaufnahme_Pumpe_Tag 2456.02181134386
2020-07-02 18:51:27 cloud disabled
2020-07-02 18:53:48 energy 0
2020-07-02 18:51:27 firmware 1047-long-id-for-shelly-devices
2022-06-10 13:09:30 inttemp 44.2
2022-06-06 08:22:53 network <html>connected to <a href="http://192.168.1.211">192.168.1.211</a></html>
2022-06-10 10:05:00 overpower 0
2022-06-10 13:00:29 power 0
2022-06-10 13:00:29 relay off
2022-06-10 13:00:29 state off
Attributes:
DbLogExclude .*
DbLogInclude state,power,Status
group Pumpe
icon sani_garden_pump
model shelly1pm
mqttName Pumpe
mqttReadings state
mqttRoom Pool
room 7.01_Pool
sortby 3
stateFormat {sprintf("PoolPumpe: %s<br>Stromaufnahme aktuell: %.2f Watt<br>Stromaufnahme Tag: %.2f Wh", ReadingsVal($name,"state",0),ReadingsVal($name,"power",0),ReadingsVal($name,"Stromaufnahme_Pumpe_Tag",0))}
userReadings Stromaufnahme_Pumpe_Tag integral { ReadingsVal($name,"power",0) /3600 }
Hier noch ein Auszug das dem Log, das ich extra dafür angelegt habe.
2022-06-10_12:51:28 PoolPumpe inttemp: 50.74
2022-06-10_12:51:28 PoolPumpe power: 722.54
2022-06-10_12:51:28 PoolPumpe Stromaufnahme_Pumpe_Tag: 2353.48907135471
2022-06-10_12:52:28 PoolPumpe inttemp: 51.05
2022-06-10_12:52:28 PoolPumpe power: 721.95
2022-06-10_12:52:28 PoolPumpe Stromaufnahme_Pumpe_Tag: 2365.55612454363
2022-06-10_12:53:28 PoolPumpe inttemp: 50.85
2022-06-10_12:53:28 PoolPumpe power: 721.35
2022-06-10_12:53:28 PoolPumpe Stromaufnahme_Pumpe_Tag: 2377.61151949634
2022-06-10_12:54:29 PoolPumpe inttemp: 51.05
2022-06-10_12:54:29 PoolPumpe power: 722.25
2022-06-10_12:54:29 PoolPumpe Stromaufnahme_Pumpe_Tag: 2389.67178457989
2022-06-10_12:55:29 PoolPumpe inttemp: 51.26
2022-06-10_12:55:29 PoolPumpe Stromaufnahme_Pumpe_Tag: 2401.73828192725
2022-06-10_12:56:29 PoolPumpe inttemp: 51.05
2022-06-10_12:56:29 PoolPumpe power: 721.95
2022-06-10_12:56:29 PoolPumpe Stromaufnahme_Pumpe_Tag: 2413.7965628282
2022-06-10_12:57:29 PoolPumpe inttemp: 50.74
2022-06-10_12:57:29 PoolPumpe power: 723.14
2022-06-10_12:57:29 PoolPumpe Stromaufnahme_Pumpe_Tag: 2425.86644444564
2022-06-10_12:58:29 PoolPumpe inttemp: 51.05
2022-06-10_12:58:29 PoolPumpe power: 721.95
2022-06-10_12:58:29 PoolPumpe Stromaufnahme_Pumpe_Tag: 2437.93425472996
2022-06-10_12:59:29 PoolPumpe inttemp: 51.15
2022-06-10_12:59:29 PoolPumpe Stromaufnahme_Pumpe_Tag: 2449.99496632504
2022-06-10_13:00:29 PoolPumpe inttemp: 50.44
2022-06-10_13:00:29 PoolPumpe relay: off
2022-06-10_13:00:29 PoolPumpe off
2022-06-10_13:00:29 PoolPumpe power: 0
2022-06-10_13:00:29 PoolPumpe Stromaufnahme_Pumpe_Tag: 2456.02181134386
2022-06-10_13:01:29 PoolPumpe inttemp: 49.2
2022-06-10_13:01:29 PoolPumpe Stromaufnahme_Pumpe_Tag: 2456.02181134386
2022-06-10_13:02:30 PoolPumpe inttemp: 48.05
2022-06-10_13:02:30 PoolPumpe Stromaufnahme_Pumpe_Tag: 2456.02181134386
2022-06-10_13:03:30 PoolPumpe inttemp: 47.31
2022-06-10_13:03:30 PoolPumpe Stromaufnahme_Pumpe_Tag: 2456.02181134386
2022-06-10_13:04:30 PoolPumpe inttemp: 46.47
2022-06-10_13:04:30 PoolPumpe Stromaufnahme_Pumpe_Tag: 2456.02181134386
2022-06-10_13:05:30 PoolPumpe inttemp: 45.73
2022-06-10_13:05:30 PoolPumpe Stromaufnahme_Pumpe_Tag: 2456.02181134386
2022-06-10_13:06:30 PoolPumpe inttemp: 45.41
2022-06-10_13:06:30 PoolPumpe Stromaufnahme_Pumpe_Tag: 2456.02181134386
2022-06-10_13:07:30 PoolPumpe inttemp: 44.84
2022-06-10_13:07:30 PoolPumpe Stromaufnahme_Pumpe_Tag: 2456.02181134386
2022-06-10_13:08:30 PoolPumpe inttemp: 44.56
Der Vollständigkeit halber auch noch ein List des DOIFs in dem Zustand
Internals:
DEF ([Pool_Hauptschalter] eq "on" and [ [Filterpumpe_Laufzeitstart] - ( [Filterpumpe_Laufzeitstart] + [PoolPumpeLaufZeit:Gesamtlaufzeit] ) ] )
(set PoolPumpe on) (setreading PoolPumpe Status on )
DOELSE (set PoolPumpe off) (setreading PoolPumpe Status off )
FUUID 5e7a6505-f33f-bdb6-5f77-f261740d476447f5
FVERSION 98_DOIF.pm:0.259750/2022-04-17
MODEL FHEM
NAME Schalt_Poolpumpe
NOTIFYDEV Pool_Hauptschalter,PoolPumpeLaufZeit,global,Filterpumpe_Laufzeitstart
NR 249
NTFY_ORDER 50-Schalt_Poolpumpe
STATE Pumpenlaufzeit: 8.0 Stunden <br>Laufzeit: 10.06.2022 09:30:00 Uhr bis 10.06.2022 17:30:00 Uhr
TYPE DOIF
VERSION 25975 2022-04-17 09:48:15
READINGS:
2022-06-10 09:30:00 cmd 1.2
2022-06-10 09:30:00 cmd_event timer_1
2022-06-10 09:30:00 cmd_nr 1
2022-06-10 09:30:00 cmd_seqnr 2
2022-05-24 10:25:27 mode enabled
2022-06-10 09:30:00 state cmd_1
2022-06-10 05:00:00 timer_01_c01 10.06.2022 09:30:00
2022-06-10 05:00:00 timer_02_c01 10.06.2022 17:30:00
Regex:
accu:
collect:
cond:
Pool_Hauptschalter:
0:
&STATE ^Pool_Hauptschalter$
itimer:
Filterpumpe_Laufzeitstart:
itimer:
&STATE ^Filterpumpe_Laufzeitstart$
PoolPumpeLaufZeit:
itimer:
Gesamtlaufzeit ^PoolPumpeLaufZeit$:^Gesamtlaufzeit:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::InternalDoIf($hash,'Pool_Hauptschalter','STATE') eq "on" and ::DOIF_time($hash,0,1,$wday,$hms)
days:
do:
0:
0 set PoolPumpe on
1 setreading PoolPumpe Status on
1:
0 set PoolPumpe off
1 setreading PoolPumpe Status off
helper:
NOTIFYDEV Pool_Hauptschalter,PoolPumpeLaufZeit,global,Filterpumpe_Laufzeitstart
event timer_1
globalinit 1
last_timer 2
sleeptimer -1
timerdev
timerevent timer_1
triggerDev
timerevents:
timer_1
timereventsState:
timer_1
triggerEvents:
timer_1
triggerEventsState:
timer_1
internals:
all Pool_Hauptschalter:STATE
interval:
0 -1
1 0
intervalfunc:
intervaltimer:
localtime:
0 1654846200
1 1654875000
perlblock:
realtime:
0 09:30:00
1 17:30:00
time:
0 [Filterpumpe_Laufzeitstart]
1 ([Filterpumpe_Laufzeitstart]+[PoolPumpeLaufZeit:Gesamtlaufzeit])
timeCond:
0 0
1 0
timer:
0 0
1 0
timers:
0 0 1
triggertime:
1654875000:
localtime 1654875000
hash:
uiState:
uiTable:
Attributes:
DbLogExclude .*
do always
event-on-change-reading 1
group Pumpe
icon general_an_fuer_zeit
room 7.01_Pool
sortby 8
stateFormat {sprintf("Pumpenlaufzeit: %.1f Stunden <br>Laufzeit: %s Uhr bis %s Uhr" ,ReadingsVal("PoolPumpeLaufZeit","Laufzeit_Std",0),ReadingsVal($name,"timer_01_c01",0),ReadingsVal($name,"timer_02_c01",0))}
Wenn hier nichts zu finden ist, muss ich die Shelly mal tauschen.
Also der Shelly steht auf off um 13.00.29.
Dein DOIF war es nicht.
Prüfe doch mal ob der shelly noch mit anderen Dingen geschälten wird. Notify, andere DOIF, at,...
Diese Prüfung habe ich schon gemacht, denn ich habe diese Gerät gelöscht und neu angelegt mit einem anderen Namen. Dann das zugehörige DOIF geändert.
Da sich hier ja andere DOIFs, notitfy's und at's ja nicht automatisch ändern ist dies ausgeschlossen. Außerdem sieht man alle Definitionen die das Gerät ansteuern oder auslesen ja im Gerät selbst ganz unten.
Meine Vermutung ist, dass dies die Shelly selbst macht.
Eine zweite Möglichkeit wäre, dass ich die Shelly über den Schalteingang ein bzw ausschalte. ein ESP8266 ist in der Nähe, der ja die Temperaturen ausliest.
Dann braucht die Shelly nur noch den Stromverbrauch senden, dass sie ja problemlos macht.
Ich habe derzeit ein 2. DOIF angelegt, dass überprüft ob die Pumpe läuft, und bei Bedarf wieder einschaltet.
Hier nutze ich das Reading, dass ich auch setze beim Schalten.
Da ich nach einer Verletzung etwas eingeschränkt bin, muss ich den Tausch des Shelly etwas verschieben.
Unterstützung zum Tausch habe ich bereits angefordert.
Zitat von: maci am 11 Juni 2022, 11:21:37
Außerdem sieht man alle Definitionen die das Gerät ansteuern oder auslesen ja im Gerät selbst ganz unten.
Nicht alle, nur was automatisch erkannt werden kann.
Wenn du z.B. etwas in einer myUtils-Sub tust, dann steht das garantiert nicht unter dem Device (nur ein mögliches Beispiel)...
Gruß, Joachim
Hier werden so viele Dinge in einen Topf geworfen, dass eine ordenliche Fehlersuche nicht möglich ist.
- gleich mehrere DOIFs,
- die Hardware des Shelly,
- die Firmware des Shelly.
Gleichzeitig werden noch Behauptungen aufgestellt, die nicht verifizierbar sind - z.B. "schaltet, ohne einen Befehl dafür bekommen zu haben". Wieso das denn? Etwa durch Magie, Erdstrahlen oder Echsenmenschen ausgelöst?
Warum wird nicht einfach mal verbose auf 5 gesetzt, so dass alle Schaltvorgänge am Shelly dokumentiert sind?
LG
pah
Entwarnung!
Ursache für das Schalten des Shelly zwischendurch habe ich gefunden. :)
Übeltäter war meine Test Installation von Fhem!
Hatte diese config hier mal laufen, als meine Hauptinstallation im Vorjahr mal nicht richtig lief.
Hatte diese DOIFs hier nur inaktiv gestellt.
Aber anscheinend waren sie wieder aktiv, und die Testinstallation (in Docker) aktiv. :(
Durch einen Zufall bin ich da heute draufgekommen. An diese Installation habe ich gar nicht gedacht.
ZitatAn diese Installation habe ich gar nicht gedacht.
Die Hauptfehlerquelle liegt immer zwischen den Ohren des Users.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 16 Juni 2022, 18:39:09
Hauptfehlerquelle liegt immer zwischen den Ohren des Users.
Wie wahr! :)
Wir sind alle nur Menschen und kommt vor.
Über die Dinge, die wahr sind, schreibe ich gerne Bücher. Darin ist mein Vorbild Friedrich II. von Hohenstaufen.
Insofern heißt mein nächstes Buchprojekt "Künstliche Dummheit und natürliche Intelligenz".
LG
pah