Hallo allerseits,
ich habe mittlerweile die Füllstandsanzeige erfolgreich in die Zisterne eingebaut und konfiguriert.
Nun würde ich gerne über pushover informiert werden, wenn der Füllstand und 15% fällt. Dabei will ich aber nur einmal informiert werden und nicht bei jedem weiteren Zustand unter 15%.
Des Weiteren soll bei einem Füllstand über 90% ebenfalls einmalig eine Meldung über Pushover ausgelöst werden.
Meine Frage ist nun, welches Modul sollte man dafür nehmen? Aktuell denke ich, dass notify und doif in Frage kommen könnten. Mir stellt sich nur die Frage, wie ich das umsetzen soll, dass ich nur einmal informiert werde und nicht bei weiteren Zuständen, die sich in der Range befinden würden.
Ich hoffe, dass mich jemand unterstützen kann, bzw. Tipps für die Umsetzung.
Gruß
Gruvol
Hi,
DOIF macht das was Du willst von sich aus. Es verharrt in den Zuständen wenn sich das Ergebnis der Bedingung nicht ändert. Wäre mein simpelster Ansatz.
nur symbolisch:
DOIF (Wert < 15) (Nachricht1) DOELSEIF (Wert > 95) (Nachricht2)
Gruß Otto
Hallo,
danke für deine Bestätigung. Das habe ich soweit nun umgesetzt. Nachdem ich mir noch einmal die Commandref angeschaut habe, habe ich gesehen, dass man noch einige Attribute setzen kann. Dabei bin ich auf das "Do" aufmerksam geworden. Muss ich in meinen Fall demnach, wenn ich es richtig verstanden habe, das Do auf "always" setzen, damit er dies nicht nur Einmalig ausführt, sondern immer wenn die Bedingungen eintreffen?
Gruß
Gruvol
So ist es. Aber Du wolltest es doch einmalig?!
Gruß Otto
Hallo,
hab das auch probiert, da ich von einem in einen anderen Tank umpumpen will, aber leider löst der Event nicht aus. Hier mein Code:
# ----- Programm für Bodentank voll ------
define Bodentank_voll DOIF ([Bodentank:level] > 98 ) (set Tankbefuellung on) DOELSE (set Tankbefuellung off)
attr Bodentank_voll room Garten
Hat gar nichts mit dem eigentlichen Problem zu tun, aber hier fehlt jegliche Bedingung
... DOELSEIF (set Tankbefuellung off)
Also DOELSE oder was willst Du für ein IF ?
Gruß Otto
Im Prinzip will ich umpumpen wenn der Tank voll ist. Aber auch die Heizungsanlage funktioniert nicht mehr:
define 1OG_Clima_off DOIF ([HM_4CF5DB_Clima:measured-temp] > [HM_4CF5DB_Clima:desired-temp] or [Sommer:"on"]) (set HM_471C00_Sw_01 off)
attr 1OG_Clima_off room Heizung
define 1OG_Clima_on DOIF ([HM_4CF5DB_Clima:measured-temp] < [HM_4CF5DB_Clima:desired-temp] and [Sommer:"off"]) (set HM_471C00_Sw_01 on)
attr 1OG_Clima_on room Heizung
define EG_Clima_off DOIF ([HM_4CF5C7_Clima:measured-temp] > [HM_4CF5C7_Clima:desired-temp] or [Sommer:"on"]) (set HM_471C00_Sw_02 off)
attr EG_Clima_off room Heizung
define EG_Clima_on DOIF ([HM_4CF5C7_Clima:measured-temp] < [HM_4CF5C7_Clima:desired-temp] and [Sommer:"off"]) (set HM_471C00_Sw_02 on)
attr EG_Clima_on room Heizung
# ----- Programm für Bodentank voll ------
define Bodentank_voll DOIF ([Bodentank:level] > 99 ) (set Tankbefuellung on) DOELSE (set Tankbefuellung off)
attr Bodentank_voll room Garten
# ----- Programm für Bodentank voll ENDE ------
define BewaesserungsPumpeOnOff DOIF ([Bewaesserungskreis1:"on"] or [Bewaesserungskreis2:"on"] or [Bewaesserungskreis3:"on"] or [Tankbefuellung:"on"] or [Tropfschlauch:"on"]) (set Bewaesserungspumpe on) DOELSE (set Bewaesserungspumpe off)
attr BewaesserungsPumpeOnOff room Garten
Was irgendwie sehr komisch ist und ich find den Fehler nicht.
Lg
Alex
Moin,
Du musst schon beschreiben was nicht geht. https://tty1.net/smart-questions_de.html#beprecise
Und Du kannst ein list Bodentank_voll zeigen, dort erkennt man eventuell was nicht geht.
Liefert [Bodentank:level] denn wirklich eine Zahl?
Gruß Otto
Moin,
bei der Tankbefüllung passiert einfach nichts, wenn die 100% erreicht sind.
bei der Heizung wird nur geschaltet wenn ich den Dummy einmal auf ein und dann auf aus schalte. Die Temperaturänderung löst selbst leider nicht aus.
list Bodentank_voll
???
Bei der Heizung fehlt wahrscheinlich do always ...
Danke für die schnelle Antwort, hab das do always bei den 4 Heizungszuständen mal eintragen.
list Bodentank_voll
Internals:
DEF ([Bodentank:level] > 99 ) (set Tankbefuellung on) DOELSE (set Tankbefuellung off)
MODEL FHEM
NAME Bodentank_voll
NR 384
NTFY_ORDER 50-Bodentank_voll
STATE cmd_1
TYPE DOIF
READINGS:
2018-05-02 21:38:14 cmd 1
2018-05-02 21:38:14 cmd_event Bodentank_voll
2018-05-02 21:38:14 cmd_nr 1
2018-05-02 21:38:14 state cmd_1
Regex:
condition:
0 ::ReadingValDoIf($hash,'Bodentank','level') > 99
devices:
0 Bodentank
all Bodentank
do:
0:
0 set Tankbefuellung on
1:
0 set Tankbefuellung off
helper:
globalinit 1
last_timer 0
sleeptimer -1
itimer:
perlblock:
readings:
0 Bodentank:level
all Bodentank:level
Attributes:
room Garten
z.B. hier:
attr 1OG_Clima do always
Ich denke von Bodentank:level kam noch nie ein Wert/Event!
Mach mal list Bodentank
list bodentank
Internals:
CHANGED
DEF 3E4892
HMLAN1_MSGCNT 1
HMLAN1_RAWMSG E3E4892,0000,01DFE723,FF,FFCC,42A6103E4892007B140601C880
HMLAN1_RSSI -52
HMLAN1_TIME 2018-11-01 15:52:46
HMLAN2_MSGCNT 1
HMLAN2_RAWMSG E3E4892,0000,0A589198,FF,FFAD,42A6103E4892007B140601C880
HMLAN2_RSSI -83
HMLAN2_TIME 2018-11-01 15:52:46
IODev HMLAN2
LASTInputDev HMLAN1
MSGCNT 2
NAME Bodentank
NOTIFYDEV global
NR 281
NTFY_ORDER 50-Bodentank
STATE 100
TYPE CUL_HM
lastMsg No:42 - t:10 s:3E4892 d:007B14 0601C880
protLastRcv 2018-11-01 15:52:46
protRcv 1 last_at:2018-11-01 15:52:46
protSnd 1 last_at:2018-11-01 15:52:46
protState CMDs_done
rssi_at_HMLAN1 cnt:1 min:-52 max:-52 avg:-52 lst:-52
rssi_at_HMLAN2 cnt:1 min:-83 max:-83 avg:-83 lst:-83
READINGS:
2018-11-01 15:38:39 Activity alive
2017-03-03 19:18:51 CommandAccepted yes
2017-02-26 20:27:13 D-firmware 1.3
2017-02-26 20:27:13 D-serialNr MEQ0690149
2017-02-26 20:27:15 PairedTo 0x007B14
2017-02-26 20:24:58 R-caseDesign verticalBarrel
2017-03-03 12:27:44 R-caseHigh set_100 cm
2017-02-26 20:26:34 R-caseLength 150 cm
2017-02-26 20:25:53 R-caseWidth 150 cm
2017-02-26 20:24:57 R-cyclicInfoMsgDis 6
2017-02-26 20:27:16 R-fillLevel 100 cm
2017-02-26 20:27:16 R-meaLength 120 cm
2017-02-26 20:24:57 R-pairCentral 0x007B14
2017-02-26 20:24:58 R-sign off
2017-02-26 20:24:58 R-useCustom off
2017-02-26 20:24:58 R-waterUppThr 255
2017-02-26 20:24:58 R-waterlowThr 255
2017-02-26 20:27:15 RegL_00. 02:01 0A:00 0B:7B 0C:14 11:06 14:06 18:00 00:00
2017-02-26 20:27:16 RegL_01. 06:FF 07:FF 08:00 22:64 30:06 5B:01 5E:00 5F:6E 62:00 63:64 66:00 67:96 6A:00 6B:96 6C:00 6D:78 6E:00
2018-11-01 15:52:46 battery low
2018-11-01 15:52:46 level 100
2018-11-01 15:52:46 recentStateType info
2018-11-01 15:52:46 state 100
helper:
HM_CMDNR 66
mId 009F
regLst ,0,1,4p
rxType 12
supp_Pair_Rep 0
ack:
expert:
def 1
det 0
raw 1
tpl 0
io:
newChn +3E4892,00,00,00
nextSend 1541083966.93976
rxt 2
vccu vccu
p:
3E4892
00
00
00
prefIO:
HMLAN2
mRssi:
mNo 42
io:
HMLAN1:
-52
-52
HMLAN2:
-81
-81
prt:
bErr 0
sProc 0
sleeping 1
rspWait:
q:
qReqConf 00
qReqStat
role:
chn 1
dev 1
rpt:
IO HMLAN2
flg A
ts 1541083966.84922
ack:
HASH(0x3f1e498)
428002007B143E489200
rssi:
at_HMLAN1:
avg -52
cnt 1
lst -52
max -52
min -52
at_HMLAN2:
avg -83
cnt 1
lst -83
max -83
min -83
Attributes:
IODev HMLAN2
IOgrp vccu:HMLAN2
actCycle 028:00
actStatus alive
autoReadReg 4_reqStatus
event-on-change-reading 1
event-on-update-reading 1
expert 2_raw
firmware 1.3
icon WLAN_Status.1
model HM-Sen-Wa-Od
room CUL_HM,Garten
serialNr MEQ0690149
subType sensor
userReadings 1
Ich hab nun beim Clima das Programm soweit abgeändert. Beim Aktor im 2OG hab ich die gewünschte Temperatur auf 26.5 C gestellt (zum Test) und die aktuelle ist 24C aber es wird der Switch 02 nicht aktiviert.
Der Code dazu ist:
define 1OG_Clima DOIF (([HM_4CF5DB_Clima:measured-temp] < [HM_4CF5DB_Clima:desired-temp]) and [Sommer:"off"]) (set HM_471C00_Sw_01 on) DOELSE (set HM_471C00_Sw_01 off)
attr 1OG_Clima do always
attr 1OG_Clima room Heizung
define EG_Clima DOIF (([HM_4CF5C7_Clima:measured-temp] < [HM_4CF5C7_Clima:desired-temp]) and [Sommer:"off"]) (set HM_471C00_Sw_02 on) DOELSE (set HM_471C00_Sw_02 off)
attr EG_Clima do always
attr EG_Clima room Heizung
In der Grafik sieht es auch richtig aus.
Zitatevent-on-change-reading 1
event-on-update-reading 1
Damit erzeugst Du überhaupt keine Events!
Diese Einstellung ist absoluter nonsens!
https://fhem.de/commandref_DE.html#readingFnAttributes
Zitatevent-on-change-reading
Dieses Attribut enthält eine durch Kommata getrennte Liste von "readings". Wenn gesetzt, erzeugen nur Veränderungen der gelisteten "readings" ein Ereignis. Wenn die aktualiserten Werte der gelisteten "readings" identisch sind, wird kein Ereignis generiert.
Wenn dies bei allen deinen Geräten so ist, kannst Du jede Automatisierungslogik vergessen! :o
Gruß Otto
Das hab ich dort mal entfernt. Mal schauen wann der Bodentank das nächste mal ein Update schickt ...
attr userReadings ebenso. => löschen.
die hab ich inzwischen auch schon gelöscht, aber leider immer noch keine Änderung :(
angenommen das schnellste update intervall ist 3min. dann wird mit dem register cyclicInfoMsgDis=6 6 mal senden unterdrückt. somit müsste immer nach 7x3=21 min erneut gesendet werden. also warten, oder den wert verkleinern.
ausserdem würde ich hmlan1 als prefered io setzen, da er deutlich bessere rssi hat.
Hab jetzt die ganze Nacht gewartet und es ist leider nichts passiert :(
Auch der Tank wird nicht umgepumpt, der hat weiterhin einen Füllstand von 100% und die Heizung ist aus :(
poste ein aktuelles list.
list Bodentank
Internals:
DEF 3E4892
HMLAN1_MSGCNT 47
HMLAN1_RAWMSG E3E4892,0000,027B9C7E,FF,FFCB,78A6103E4892007B140601C880
HMLAN1_RSSI -53
HMLAN1_TIME 2018-11-02 08:59:49
HMLAN2_MSGCNT 37
HMLAN2_RAWMSG E3E4892,0000,0E0508F6,FF,FFA2,78A6103E4892007B140601C880
HMLAN2_RSSI -94
HMLAN2_TIME 2018-11-02 08:59:49
IODev HMLAN2
LASTInputDev HMLAN2
MSGCNT 84
NAME Bodentank
NOTIFYDEV global
NR 281
STATE 100
TYPE CUL_HM
lastMsg No:78 - t:10 s:3E4892 d:007B14 0601C880
protLastRcv 2018-11-02 08:59:49
protRcv 37 last_at:2018-11-02 08:59:49
protSnd 40 last_at:2018-11-02 08:59:49
protState CMDs_done
rssi_at_HMLAN1 cnt:47 min:-56 max:-52 avg:-53.29 lst:-53
rssi_at_HMLAN2 cnt:37 min:-96 max:-81 avg:-88.78 lst:-94
READINGS:
2018-11-01 21:25:36 Activity alive
2017-03-03 19:18:51 CommandAccepted yes
2017-02-26 20:27:13 D-firmware 1.3
2017-02-26 20:27:13 D-serialNr MEQ0690149
2017-02-26 20:27:15 PairedTo 0x007B14
2017-02-26 20:24:58 R-caseDesign verticalBarrel
2017-03-03 12:27:44 R-caseHigh set_100 cm
2017-02-26 20:26:34 R-caseLength 150 cm
2017-02-26 20:25:53 R-caseWidth 150 cm
2017-02-26 20:24:57 R-cyclicInfoMsgDis 6
2017-02-26 20:27:16 R-fillLevel 100 cm
2017-02-26 20:27:16 R-meaLength 120 cm
2017-02-26 20:24:57 R-pairCentral 0x007B14
2017-02-26 20:24:58 R-sign off
2017-02-26 20:24:58 R-useCustom off
2017-02-26 20:24:58 R-waterUppThr 255
2017-02-26 20:24:58 R-waterlowThr 255
2017-02-26 20:27:15 RegL_00. 02:01 0A:00 0B:7B 0C:14 11:06 14:06 18:00 00:00
2017-02-26 20:27:16 RegL_01. 06:FF 07:FF 08:00 22:64 30:06 5B:01 5E:00 5F:6E 62:00 63:64 66:00 67:96 6A:00 6B:96 6C:00 6D:78 6E:00
2018-11-02 08:59:49 battery low
2018-11-02 08:59:49 level 100
2018-11-02 08:59:49 recentStateType info
2018-11-02 08:59:49 state 100
helper:
HM_CMDNR 120
mId 009F
regLst ,0,1,4p
rxType 12
supp_Pair_Rep 0
ack:
expert:
def 1
det 0
raw 1
tpl 0
io:
newChn +3E4892,00,00,00
nextSend 1541144299.30604
rxt 2
vccu vccu
p:
3E4892
00
00
00
prefIO:
HMLAN2
mRssi:
mNo 78
io:
HMLAN1:
-53
-53
HMLAN2:
-92
-92
prt:
bErr 0
sProc 0
sleeping 1
rspWait:
q:
qReqConf 00
qReqStat
role:
chn 1
dev 1
rpt:
IO HMLAN1
flg A
ts 1541145589.80599
ack:
HASH(0x8573b38)
788002007B143E489200
rssi:
at_HMLAN1:
avg -53.2978723404255
cnt 47
lst -53
max -52
min -56
at_HMLAN2:
avg -88.7837837837837
cnt 37
lst -94
max -81
min -96
Attributes:
IODev HMLAN2
IOgrp vccu:HMLAN2
actCycle 028:00
actStatus alive
autoReadReg 4_reqStatus
expert 2_raw
firmware 1.3
icon WLAN_Status.1
model HM-Sen-Wa-Od
room CUL_HM,Garten
serialNr MEQ0690149
subType sensor
list Bodentank_voll
Internals:
DEF ([Bodentank:level] > 99 ) (set Tankbefuellung on) DOELSE (set Tankbefuellung off)
MODEL FHEM
NAME Bodentank_voll
NR 380
NTFY_ORDER 50-Bodentank_voll
STATE cmd_1
TYPE DOIF
READINGS:
2018-11-02 08:59:49 Device Bodentank
2018-05-02 21:38:14 cmd 1
2018-05-02 21:38:14 cmd_event Bodentank_voll
2018-05-02 21:38:14 cmd_nr 1
2018-11-02 08:59:49 e_Bodentank_level 100
2018-05-02 21:38:14 state cmd_1
Regex:
attr:
waitdel:
condition:
0 ::ReadingValDoIf($hash,'Bodentank','level') > 99
devices:
0 Bodentank
all Bodentank
do:
0:
0 set Tankbefuellung on
1:
0 set Tankbefuellung off
helper:
event battery: low,level: 100,100
globalinit 1
last_timer 0
sleeptimer -1
timerdev Bodentank
timerevent battery: low,level: 100,100
triggerDev Bodentank
timerevents:
battery: low
level: 100
100
timereventsState:
battery: low
level: 100
state: 100
triggerEvents:
battery: low
level: 100
100
triggerEventsState:
battery: low
level: 100
state: 100
internals:
itimer:
perlblock:
readings:
0 Bodentank:level
all Bodentank:level
trigger:
uiState:
uiTable:
Attributes:
room Garten
list EG_Clima
Internals:
DEF (([HM_4CF5C7_Clima:measured-temp] < [HM_4CF5C7_Clima:desired-temp]) and [Sommer:"off"]) (set HM_471C00_Sw_02 on) DOELSE (set HM_471C00_Sw_02 off)
MODEL FHEM
NAME EG_Clima
NR 375
NTFY_ORDER 50-EG_Clima
STATE cmd_2
TYPE DOIF
READINGS:
2018-11-02 09:11:40 Device HM_4CF5C7_Clima
2018-11-02 09:11:40 cmd 2
2018-11-02 09:11:40 cmd_event HM_4CF5C7_Clima
2018-11-02 09:11:40 cmd_nr 2
2018-11-02 09:11:40 e_HM_4CF5C7_Clima_desired-temp 24.0
2018-11-02 09:11:40 e_HM_4CF5C7_Clima_measured-temp 23.6
2018-11-01 20:25:44 e_Sommer_events off
2018-11-02 09:11:40 state cmd_2
Regex:
attr:
cmdState:
wait:
waitdel:
condition:
0 (::ReadingValDoIf($hash,'HM_4CF5C7_Clima','measured-temp') < ::ReadingValDoIf($hash,'HM_4CF5C7_Clima','desired-temp')) and ::EventDoIf('Sommer',$hash,'off',1)
devices:
0 HM_4CF5C7_Clima Sommer
all HM_4CF5C7_Clima Sommer
do:
0:
0 set HM_471C00_Sw_02 on
1:
0 set HM_471C00_Sw_02 off
helper:
event ValvePosition: 100,boostTime: -,controlMode: manual,desired-temp: 24.0,measured-temp: 23.6,partyEnd: -,partyStart: -,partyTemp: -,T: 23.6 desired: 24.0 valve: 100
globalinit 1
last_timer 0
sleeptimer -1
timerdev HM_4CF5C7_Clima
timerevent ValvePosition: 100,boostTime: -,controlMode: manual,desired-temp: 24.0,measured-temp: 23.6,partyEnd: -,partyStart: -,partyTemp: -,T: 23.6 desired: 24.0 valve: 100
triggerDev HM_4CF5C7_Clima
DOIF_eventas:
cmd_nr: 2
cmd: 2
cmd_event: HM_4CF5C7_Clima
state: cmd_2
timerevents:
ValvePosition: 100
boostTime: -
controlMode: manual
desired-temp: 24.0
measured-temp: 23.6
partyEnd: -
partyStart: -
partyTemp: -
T: 23.6 desired: 24.0 valve: 100
timereventsState:
ValvePosition: 100
boostTime: -
controlMode: manual
desired-temp: 24.0
measured-temp: 23.6
partyEnd: -
partyStart: -
partyTemp: -
state: T: 23.6 desired: 24.0 valve: 100
triggerEvents:
ValvePosition: 100
boostTime: -
controlMode: manual
desired-temp: 24.0
measured-temp: 23.6
partyEnd: -
partyStart: -
partyTemp: -
T: 23.6 desired: 24.0 valve: 100
triggerEventsState:
ValvePosition: 100
boostTime: -
controlMode: manual
desired-temp: 24.0
measured-temp: 23.6
partyEnd: -
partyStart: -
partyTemp: -
state: T: 23.6 desired: 24.0 valve: 100
internals:
itimer:
perlblock:
readings:
0 HM_4CF5C7_Clima:measured-temp HM_4CF5C7_Clima:desired-temp
all HM_4CF5C7_Clima:measured-temp HM_4CF5C7_Clima:desired-temp
trigger:
all Sommer
uiState:
uiTable:
Attributes:
do always
room Heizung
list HM_4CF5C7
Internals:
DEF 4CF5C704
NAME HM_4CF5C7_Clima
NOTIFYDEV global
NR 306
STATE T: 23.6 desired: 24.0 valve: 100
TYPE CUL_HM
chanNo 04
device HM_4CF5C7
READINGS:
2018-02-07 21:43:09 CommandAccepted yes
2017-12-31 14:13:38 R-boostPos 80 %
2017-12-31 14:13:38 R-btnNoBckLight off
2017-12-31 14:13:38 R-dayTemp 24.5 C
2017-12-31 14:13:38 R-daylightSaveTime on
2017-12-31 14:13:38 R-modePrioManu all
2017-12-31 14:13:38 R-modePrioParty all
2017-12-31 14:13:38 R-nightTemp 23.5 C
2017-12-31 14:13:38 R-noMinMax4Manu off
2017-12-31 14:13:38 R-regAdaptive on
2017-12-31 14:13:38 R-showInfo time
2017-11-05 15:22:49 R-sign off
2017-12-31 14:13:38 R-tempOffset 0.0K
2017-12-31 14:13:38 R-valveOffsetRt 0 %
2017-12-31 14:13:38 R-winOpnBoost off
2017-12-31 15:07:09 R_0_tempListSat 01:00 23.0 24:00 23.0
2017-12-31 15:07:09 R_1_tempListSun 01:00 23.0 24:00 23.0
2017-12-31 15:07:09 R_2_tempListMon 01:00 23.0 24:00 23.0
2017-12-31 15:07:09 R_3_tempListTue 01:00 23.0 24:00 23.0
2017-12-31 15:07:09 R_4_tempListWed 01:00 23.0 24:00 23.0
2017-12-31 15:07:09 R_5_tempListThu 01:00 23.0 24:00 23.0
2017-12-31 15:07:09 R_6_tempListFri 01:00 23.0 24:00 23.0
2017-12-31 15:07:09 R_tempList_State verified
2017-12-31 15:07:05 RegL_01. 08:00 00:00
2017-12-31 15:07:09 RegL_07. 01:31 02:2F 03:09 04:3D 05:18 06:03 07:00 08:16 09:07 0A:30 0B:00 0C:64 0D:0F 0E:05 0F:00 10:00 11:00 12:09 13:8E 14:5C 15:0C 16:5D 17:20 18:55 19:20 1A:45 1B:20 1C:45 1D:20 1E:45 1F:20 20:45 21:20 22:45 23:20 24:45 25:20 26:45 27:20 28:45 29:20 2A:45 2B:20 2C:45 2D:20 2E:5C 2F:0C 30:5D 31:20 32:55 33:20 34:45 35:20 36:45 37:20 38:45 39:20 3A:45 3B:20 3C:45 3D:20 3E:45 3F:20 40:45 41:20 42:45 43:20 44:45 45:20 46:45 47:20 48:5C 49:0C 4A:5D 4B:20 4C:55 4D:20 4E:55 4F:08 50:45 51:20 52:45 53:20 54:45 55:20 56:45 57:20 58:45 59:20 5A:45 5B:20 5C:45 5D:20 5E:45 5F:20 60:45 61:20 62:5C 63:0C 64:5D 65:20 66:55 67:20 68:55 69:08 6A:45 6B:20 6C:45 6D:20 6E:45 6F:20 70:45 71:20 72:45 73:20 74:45 75:20 76:45 77:20 78:45 79:20 7A:45 7B:20 7C:5C 7D:0C 7E:5D 7F:20 80:55 81:20 82:55 83:08 84:45 85:20 86:45 87:20 88:45 89:20 8A:45 8B:20 8C:45 8D:20 8E:45 8F:20 90:45 91:20 92:45 93:20 94:45 95:20 96:5C 97:0C 98:5D 99:20 9A:55 9B:20 9C:55 9D:08 9E:45 9F:20 A0:45 A1:20 A2:45 A3:20 A4:45 A5:20 A6:45 A7:20 A8:45 A9:20 AA:45 AB:20 AC:45 AD:20 AE:45 AF:20 B0:5C B1:0C B2:5D B3:20 B4:55 B5:20 B6:55 B7:08 B8:45 B9:20 BA:45 BB:20 BC:45 BD:20 BE:45 BF:20 C0:45 C1:20 C2:45 C3:20 C4:45 C5:20 C6:45 C7:20 C8:45 C9:20 CA:12 CB:21 CC:2D CD:0F CE:1E CF:1E 00:00 01:31 02:2F 03:09 04:3D 05:18 06:03 07:00 08:16 09:07 0A:30 0B:00 0C:64 0D:0F 0E:05 0F:00 10:00 11:00 12:09 13:8E 14:5C 15:0C 16:5D 17:20 18:55 19:20 1A:45 1B:20 1C:45 1D:20 1E:45 1F:20 20:45 21:20 22:45 23:20 24:45 25:20 26:45 27:20 28:45 29:20 2A:45 2B:20 2C:45 2D:20 2E:5C 2F:0C 30:5D 31:20 32:55 33:20 34:45 35:20 36:45 37:20 38:45 39:20 3A:45 3B:20 3C:45 3D:20 3E:45 3F:20 40:45 41:20 42:45 43:20 44:45 45:20 46:45 47:20 48:5C 49:0C 4A:5D 4B:20 4C:55 4D:20 4E:55 4F:08 50:45 51:20 52:45 53:20 54:45 55:20 56:45 57:20 58:45 59:20 5A:45 5B:20 5C:45 5D:20 5E:45 5F:20 60:45 61:20 62:5C 63:0C 64:5D 65:20 66:55 67:20 68:55 69:08 6A:45 6B:20 6C:45 6D:20 6E:45 6F:20 70:45 71:20 72:45 73:20 74:45 75:20 76:45 77:20 78:45 79:20 7A:45 7B:20 7C:5C 7D:0C 7E:5D 7F:20 80:55 81:20 82:55 83:08 84:45 85:20 86:45 87:20 88:45 89:20 8A:45 8B:20 8C:45 8D:20 8E:45 8F:20 90:45 91:20 92:45 93:20 94:45 95:20 96:5C 97:0C 98:5D 99:20 9A:55 9B:20 9C:55 9D:08 9E:45 9F:20 A0:45 A1:20 A2:45 A3:20 A4:45 A5:20 A6:45 A7:20 A8:45 A9:20 AA:45 AB:20 AC:45 AD:20 AE:45 AF:20 B0:5C B1:0C B2:5D B3:20 B4:55 B5:20 B6:55 B7:08 B8:45 B9:20 BA:45 BB:20 BC:45 BD:20 BE:45 BF:20 C0:45 C1:20 C2:45 C3:20 C4:45 C5:20 C6:45 C7:20 C8:45 C9:20 CA:12 CB:21 CC:2D CD:0F CE:1E CF:1E 00:00
2018-11-02 09:14:43 ValvePosition 100
2018-11-02 09:14:43 boostTime -
2018-11-02 09:14:43 controlMode manual
2018-11-02 09:14:43 desired-temp 24.0
2018-11-02 09:14:43 measured-temp 23.6
2018-11-02 09:14:43 partyEnd -
2018-11-02 09:14:43 partyStart -
2018-11-02 09:14:43 partyTemp -
2018-02-07 21:43:09 recentStateType ack
2018-11-02 09:14:43 state T: 23.6 desired: 24.0 valve: 100
2018-11-01 21:25:26 tempTmplSet 01:00
helper:
regLst ,1,7
expert:
def 1
det 0
raw 1
tpl 0
role:
chn 1
shRegR:
07 00
Attributes:
model HM-CC-RT-DN
peerIDs 00000000,
room Wohnzimmer
tempListTmpl 01:00
Moin,
der level ist 100 und Du willst cmd1 bei > 99 -> das DOIF funktioniert meines Erachtens wie bestellt!?
Die DOIFs für die Heizung hast Du geändert, sorry ich sehe das jetzt erst:
Die Heizung triggerst Du lediglich auf den Event [Sommer:"off"] das ist sinnlos. Damit würde nur im Moment des Umschaltens von Sommer etwas passieren.
Dort sollte [Sommer] eq "off" stehen!
Gruß Otto
Ich sag doch mit diesem
DOIF ([Bodentank:level] > 99 ) (set Tankbefuellung on) DOELSE (set Tankbefuellung off)
Wenn Level (100) größer als 99 dann schalte Tankbefuellung auf On
Die Tankbefüllung pumpt aus dem Bodentank in den Reservetank um und soll immer schauen, dass das Level 99% nicht überschreitet. Da ich mit einer anderen Pumpte mit einem Schwimmer das Querwasser vom Haus in diesen Tank für die Bewässerung umpumpte. d.h.
Haus mit Schacht ab Bodenplattennivau via Schwimmer -> Bodentank -(wenn tank voll) > weiter zu Reservetank, der einen überlauf hat.
Aber er steht in cmd1 also hat er set Tankbefuellung on gesendet. Was macht denn
set Tankbefuellung on
in der FHEM Kommandozeile?
Hab ich gerade getestet, das schaltet die Pumpe ein und das Ventil für die Tankbefüllung auf durchfluss.
Nur macht er das eben nicht automatisch, wie im DoIF eigentlich definiert.
Naja er steht in diesem Zustand schon lange
2018-05-02 21:38:14 cmd 1
Also offenbar ändert sich der Level seit dem nicht unter 99.
vielleicht wurde die pumpe anders ausgeschaltet.
dann hängt das doif ohne attr do always in cmd1 fest, soweit ich dieses "monstrum" doif verstehe.
eigentlich gibts im ganzen config file keine weitere stelle wo die pumpe ausgeschaltet wird. Wenn ichs händisch einschalte läuft sie auch.
Zitat von: Alex76 am 02 November 2018, 10:02:30
eigentlich gibts im ganzen config file keine weitere stelle wo die pumpe ausgeschaltet wird. Wenn ichs händisch einschalte läuft sie auch.
Und sinkt denn dann der Pegel?
Deine alte DOIF Konstruktion hat nie einen Pegel Wert bekommen, weil Du die Events verhindert hast. Jetzt bekommt er 100. Er hat am 2 Mai die Pumpe eingeschaltet solange der Pegel nicht sinkt schaltet er nicht mehr aus und natürlich auch nicht ein. DOIF ist ja der Meinung es ist ein. Egal ob Du die Pumpe per Hand ausgeschaltet hast.
Du kannst natürlich noch den Zustand der Pumpe in deine Abfrage einbauen!
([Bodentank:level] > 99 and [Tankbefuellung] ne "on") (set Tankbefuellung on) DOELSE (set Tankbefuellung off)
Die Pegel bleiben stehen - Bodentank 100 und Reservetank 44 und keine Änderung auch nicht nach 10min Laufzeit.
Aber wenn ich fhem neu starte und ein Status kommt, müsste er ja wieder einschalten oder hab ich das falsch verstanden?
Aber bei der Heizung seh ich die Kurven auch in der Grafik die aus dem Log erzeugt wird und auch dort schaltet er nicht.
Naja dann liegt es am Pegel Bodentank!
Mit FHEM Neustart sollte das alles nichts zu tun haben. Es wäre doch meistens unerwünscht wenn ein Neustart irgendwelche Schaltvorgänge auslöst.
Die Pegelwerte müssen sich ändern, sonst ist deine DOIF Logik witzlos.
Hast Du das Heizungs DOIF denn geändert? Gib mal ein aktuelles list. Dort siehst Du immer welche Werte empfangen werden und welche stehenbleiben.
kein Problem:
Internals:
DEF (([HM_4CF5C7_Clima:measured-temp] < [HM_4CF5C7_Clima:desired-temp]) and [Sommer:"off"]) (set HM_471C00_Sw_02 on) DOELSE (set HM_471C00_Sw_02 off)
MODEL FHEM
NAME EG_Clima
NR 375
NTFY_ORDER 50-EG_Clima
STATE cmd_2
TYPE DOIF
READINGS:
2018-11-02 10:10:04 Device HM_4CF5C7_Clima
2018-11-02 10:10:04 cmd 2
2018-11-02 10:10:04 cmd_event HM_4CF5C7_Clima
2018-11-02 10:10:04 cmd_nr 2
2018-11-02 10:10:04 e_HM_4CF5C7_Clima_desired-temp 24.0
2018-11-02 10:10:04 e_HM_4CF5C7_Clima_measured-temp 23.7
2018-11-01 20:25:44 e_Sommer_events off
2018-11-02 10:10:04 state cmd_2
Regex:
attr:
cmdState:
wait:
waitdel:
condition:
0 (::ReadingValDoIf($hash,'HM_4CF5C7_Clima','measured-temp') < ::ReadingValDoIf($hash,'HM_4CF5C7_Clima','desired-temp')) and ::EventDoIf('Sommer',$hash,'off',1)
devices:
0 HM_4CF5C7_Clima Sommer
all HM_4CF5C7_Clima Sommer
do:
0:
0 set HM_471C00_Sw_02 on
1:
0 set HM_471C00_Sw_02 off
helper:
event ValvePosition: 100,boostTime: -,controlMode: manual,desired-temp: 24.0,measured-temp: 23.7,partyEnd: -,partyStart: -,partyTemp: -,T: 23.7 desired: 24.0 valve: 100
globalinit 1
last_timer 0
sleeptimer -1
timerdev HM_4CF5C7_Clima
timerevent ValvePosition: 100,boostTime: -,controlMode: manual,desired-temp: 24.0,measured-temp: 23.7,partyEnd: -,partyStart: -,partyTemp: -,T: 23.7 desired: 24.0 valve: 100
triggerDev HM_4CF5C7_Clima
DOIF_eventas:
cmd_nr: 2
cmd: 2
cmd_event: HM_4CF5C7_Clima
state: cmd_2
timerevents:
ValvePosition: 100
boostTime: -
controlMode: manual
desired-temp: 24.0
measured-temp: 23.7
partyEnd: -
partyStart: -
partyTemp: -
T: 23.7 desired: 24.0 valve: 100
timereventsState:
ValvePosition: 100
boostTime: -
controlMode: manual
desired-temp: 24.0
measured-temp: 23.7
partyEnd: -
partyStart: -
partyTemp: -
state: T: 23.7 desired: 24.0 valve: 100
triggerEvents:
ValvePosition: 100
boostTime: -
controlMode: manual
desired-temp: 24.0
measured-temp: 23.7
partyEnd: -
partyStart: -
partyTemp: -
T: 23.7 desired: 24.0 valve: 100
triggerEventsState:
ValvePosition: 100
boostTime: -
controlMode: manual
desired-temp: 24.0
measured-temp: 23.7
partyEnd: -
partyStart: -
partyTemp: -
state: T: 23.7 desired: 24.0 valve: 100
internals:
itimer:
perlblock:
readings:
0 HM_4CF5C7_Clima:measured-temp HM_4CF5C7_Clima:desired-temp
all HM_4CF5C7_Clima:measured-temp HM_4CF5C7_Clima:desired-temp
trigger:
all Sommer
uiState:
uiTable:
Attributes:
do always
room Heizung
Das ist jetzt fürs EG, der 1OG ist gleich im Prinzip und verhält sich ebenso tot.
Hast Du meinen Hinweis nicht gelesen? #23
Das Problem mit dem Bodentank kann auch sehr verzögert kommen. glaub der schickt nur alle heiligen Zeiten ein update.
and [Sommer:"off"]) das schaltet nur wenn Du den Schalter umlegst!
Danke, nö hatte ich überlesen, hab das nun geändert auf:
define 1OG_Clima DOIF (([HM_4CF5DB_Clima:measured-temp] < [HM_4CF5DB_Clima:desired-temp]) and [Sommer] eq "off") (set HM_471C00_Sw_01 on) DOELSE (set HM_471C00_Sw_01 off)
attr 1OG_Clima do always
attr 1OG_Clima room Heizung
define EG_Clima DOIF (([HM_4CF5C7_Clima:measured-temp] < [HM_4CF5C7_Clima:desired-temp]) and [Sommer] eq "off") (set HM_471C00_Sw_02 on) DOELSE (set HM_471C00_Sw_02 off)
attr EG_Clima do always
attr EG_Clima room Heizung
Worin besteht hier der Unterschied, dachte das ist nur die Schreibweise bzw. wann triggert DoIF bzw. nicht?
ZitatDie Pegel bleiben stehen - Bodentank 100 und Reservetank 44 und keine Änderung auch nicht nach 10min Laufzeit.
wenn nur alle 20min gesendet wird, kein wunder. ausserdem muss die pumpe in 20min auch genug rauspumpen können, sonst bist du schon bei 40min.
das prefered io hast du auch noch nicht gewechselt.
fhem möchte auch gern den wert vom register
2017-03-03 12:27:44 R-caseHigh set_100 cm
wissen. wer weiss auf welcher höhe der wirklich steht.
Nein der Unterschied ist grundlegend. Der Ausdruck [Sommer:"off"] wird in dem Moment war wo der Event eintrifft. Also genau in dem Moment wo du auf off schaltest und dann nie wieder!
Der Ausdruck [Sommer] eq "off" wird abgefragt wenn das DOIF arbeitet. Es fragt den Zustand ab, egal wann der Schalter geschaltet wird. Es wird auch abgefragt wenn der Schalter schaltet, aber eben auch wenn eine Temperaturänderung eintrifft.
Der Ausdruck [?Sommer] eq "off" würde das DOIF nicht triggern wenn Du den Schalter umlegst, sondern nur die Temperaturwerte würden das DOIF triggern, dabei würde aber wieder der Zustand des Schalters abgefragt.
Alles klar?
Der eine Teil läuft somit schon mal, die Heizung geht - vielen dank für die Erklärung, das war mir so nicht klar.
Nun ist noch abzuwarten, wann ich wieder eine Aktualisierung vom Tanksensor bekomme ...
Naja vor allem 100 ist ja der Anschlag. Kann ja sein (wie Frank vermutet) der steht eigentlich bei 200 und sinkt quasi erst wenn der Tank leer ist?
naja - ich hab das ding einmal kalibiert und das ist nun fast 2 Jahre her (deswegen steht der batteriestatus schon auf low) und da hat die anzeige ganz gut gepasst. Will damit eigentlich nur verhindern, dass der Tank übergeht und es wieder Richtung Haus läuft.
Naja Hauptsache er aktualisiert überhaupt noch?
Updates kommen, hab einen Teil aus dem Tank genommen und hab nun 78%