Hallo,
ich hoffe ich bin hier im Richtigen Bereich. Falls nicht bitte verschieben
Ich möchte mit DOIF einen Dummy um +1 hochzählen. Nach vielen lesen und Goggeln komm ich einfach nicht weiter. Vielleicht kann mir jemand bei dem Code bitte helfen.
Aktuell sieht es so aus.
Wenn von tg_wetter:windSpeed >5 dann soll er den Dummy Zaehler um 1 erhöhen
define di_wind DOIF ([tg_wetter:windSpeed] > "5") ("set""Zaehler"+"1")
Danke und Gruß Stefan
Hi Stefan,
versuch es mal so:
define di_wind DOIF ([tg_wetter:windSpeed] > 5) (set Zaehler [Zaehler]+1)
Die eckigen Klammern kannst du auch im Ausführungsteil verwenden (nicht nur in der Bedingung, wo du sie schon verwendet hast).
Des Weiteren solltest du bei ">" auch Zahlen vergleichen, und deshalb die Anführungsstriche um die 5 weglassen...
Grüße
Reiner
Hallo Reiner,
danke für den Tip mit den eckigen Klammern. Bin noch nicht so fit was Perl und RegEx betrifft, aber man lernt nie aus.
Bei mir im Dummy Zaehler steht aber jetzt Zaehler 1+1+1
Hab ich beim Dummy device noch was vergessen
Gruß Stefan
(set Zaehler {([Zaehler]+1)})
DOIF_Berechnungen_im_Ausfuehrungsteil (http://fhem.de/commandref_DE.html#DOIF_Berechnungen_im_Ausfuehrungsteil)
Hi Stefan,
das sind DOIF Besonderheiten, die sehr gut in der commandref http://fhem.de/commandref_DE.html#DOIF (http://fhem.de/commandref_DE.html#DOIF) beschrieben sind.
Ich habe bei der Berechnung vergessen geschweifte Klammern hinzuschreiben. So hat er jetzt einfach die String an den Zaehler gesetzt...
Versuch mal:
define di_wind DOIF ([tg_wetter:windSpeed] > 5) (set Zaehler {([Zaehler]+1)})
Da muss ich immer mal ein bißchen probieren :)
Grüße
Reiner
Danke Reiner
für die Hilfe, ja die lieben Klammern ;)
Und wieder mal gemerkt das man mit FHEM nie auslernt
und danke fürs Verschieben ins richtige Forum
Gruß Stefan
So muß das Thema nochmal Pushen da ich einen Fehler bekomme
DOIF di_Wind_test error: reading does not exist: [tg_wetter:windSpeed]
Weis aber nicht woher der fehler kommt. Das reading gibt es und ich kann auch darauf triggern. Hat jemand eine Idee ????
Poste mal ein Listing vom DOIF und "tg_wetter" im Fehlerfall.
Welche DOIF Version ist geladen?
Wenn älter als 03.03.2016, dann update, shutdown restart.
Benutze ggf. das Attribut "notexist".
Hallo,
sorry für die späte Antwort, war leider nicht im Lande
das List di_Wind_test
Internals:
DEF ([tg_wetter:windSpeed] > 5) (set Zaehler {([Zaehler]+1)})
NAME di_Wind_test
NR 173
NTFY_ORDER 50-di_Wind_test
STATE cmd_1
TYPE DOIF
Readings:
2016-03-30 20:58:18 Device tg_wetter
2016-03-30 19:27:06 cmd_event tg_wetter
2016-03-30 19:27:06 cmd_nr 1
2016-03-30 20:58:18 e_tg_wetter_windSpeed 0
2016-03-30 19:27:06 state cmd_1
Condition:
0 ReadingValDoIf($hash,'tg_wetter','windSpeed','','',AttrVal($hash->{NAME},'notexist',undef)) > 5
Devices:
0 tg_wetter
all tg_wetter
Do:
0:
0 set Zaehler {([Zaehler]+1)}
1:
Helper:
event brightness: 14,humidity: 87,isRaining: 0,rain: 490.585,T: 7.5 H: 87 W: 0 R: 490.585 IR: 0 WD: 35 WDR: 22.5 S: 243 B: 14 ,sunshine: 243,temperature: 7.5,windDirRange: 22.5,windDirection: 35,windSpeed: 0,absFeuchte: 7.0,dewpoint: 5.5
globalinit 1
last_timer 0
sleeptimer -1
timerdev tg_wetter
timerevent brightness: 18,humidity: 81,isRaining: 0,rain: 490.585,T: 8.8 H: 81 W: 7.6 R: 490.585 IR: 0 WD: 35 WDR: 67.5 S: 243 B: 18 ,sunshine: 243,temperature: 8.8,windDirRange: 67.5,windDirection: 35,windSpeed: 7.6,absFeuchte: 7.1,dewpoint: 5.7
triggerDev tg_wetter
timerevents:
brightness: 18
humidity: 81
isRaining: 0
rain: 490.585
T: 8.8 H: 81 W: 7.6 R: 490.585 IR: 0 WD: 35 WDR: 67.5 S: 243 B: 18
sunshine: 243
temperature: 8.8
windDirRange: 67.5
windDirection: 35
windSpeed: 7.6
absFeuchte: 7.1
dewpoint: 5.7
triggerEvents:
brightness: 14
humidity: 87
isRaining: 0
rain: 490.585
T: 7.5 H: 87 W: 0 R: 490.585 IR: 0 WD: 35 WDR: 22.5 S: 243 B: 14
sunshine: 243
temperature: 7.5
windDirRange: 22.5
windDirection: 35
windSpeed: 0
absFeuchte: 7.0
dewpoint: 5.5
Internals:
Itimer:
Readings:
0 tg_wetter:windSpeed
all tg_wetter:windSpeed
Regexp:
0:
All:
State:
Trigger:
Attributes:
do always
room 8_DOIF
und das list tg_wetter
Internals:
DEF 145BD0
HMLAN1_MSGCNT 7433
HMLAN1_RAWMSG E145BD0,0000,A4588F44,FF,FFBA,008670145BD0000000004B58067F400005F30E
HMLAN1_RSSI -70
HMLAN1_TIME 2016-03-30 21:01:22
IODev HMLAN1
LASTInputDev HMLAN1
MSGCNT 7433
NAME tg_wetter
NR 67
NTFY_ORDER 50-tg_wetter
STATE T: 7.5 H: 88 W: 0 R: 490.585 IR: 0 WD: 25 WDR: 22.5 S: 243 B: 14
TYPE CUL_HM
lastMsg No:00 - t:70 s:145BD0 d:000000 004B58067F400005F30E
protLastRcv 2016-03-30 21:01:22
rssi_at_HMLAN1 lst:-70 cnt:7433 max:-70 avg:-76.41 min:-89
Readings:
2016-03-17 18:32:46 Activity alive
2016-01-05 21:34:15 CommandAccepted yes
2015-03-08 12:10:19 D-firmware 1.2
2015-03-08 12:10:19 D-serialNr HEQ0401067
2016-01-05 21:34:16 PairedTo 0x164680
2015-03-08 12:12:30 R-burstRx off
2015-03-08 12:12:30 R-pairCentral 0x164680
2015-08-05 21:06:03 R-stormUpThresh set_50
2015-03-08 12:12:31 R-sunThresh 30
2016-01-05 21:34:16 RegL_00. 01:00 02:01 05:00 0A:16 0B:46 0C:80 00:00
2016-01-05 21:34:16 RegL_01. 05:1E 00:00
2016-03-30 21:01:22 absFeuchte 7.0
2016-03-30 21:01:22 brightness 14
2016-03-30 21:01:22 dewpoint 5.6
2016-03-30 21:01:22 humidity 88
2016-03-30 21:01:22 isRaining 0
2015-06-14 17:37:12 powerOn 2015-06-14 17:37:12
2016-03-30 21:01:22 rain 490.585
2015-06-14 17:37:12 recentStateType info
2016-03-30 21:01:22 state T: 7.5 H: 88 W: 0 R: 490.585 IR: 0 WD: 25 WDR: 22.5 S: 243 B: 14
2016-03-30 21:01:22 sunshine 243
2016-03-30 21:01:22 temperature 7.5
2015-06-14 17:37:12 unknown 06000000
2016-03-30 21:01:22 windDirRange 22.5
2016-03-30 21:01:22 windDirection 25
2016-03-30 21:01:22 windSpeed 0
Helper:
HM_CMDNR 0
mId 0040
rxType 12
Expert:
def 1
det 0
raw 1
tpl 0
Io:
newChn +145BD0,00,00,00
nextSend 1459364482.77875
prefIO
rxt 0
vccu
p:
145BD0
00
00
00
Mrssi:
mNo 00
Io:
HMLAN1 -68
Prt:
bErr 0
sProc 0
Q:
qReqConf
qReqStat
Role:
chn 1
dev 1
Rssi:
At_hmlan1:
avg -76.4196152293827
cnt 7433
lst -70
max -70
min -89
Attributes:
IODev HMLAN1
actCycle 000:10
actStatus alive
autoReadReg 4_reqStatus
expert 2_full
firmware 1.2
icon icoTempHausRegEG
model HM-WDS100-C6-O
peerIDs 00000000,
room Wetter
serialNr HEQ0401067
subType THSensor
Gruß Stefan
Und wo steht da die Fehlermeldung?
Beim List von doif vor Helper
gesendet vom Handy . Deswegen kurz gehalten
ZitatDOIF di_Wind_test error: reading does not exist: [tg_wetter:windSpeed]
Das kann ich in Deinem Listing nicht sehen, markier es mal ;)
Zitat von: StefanL am 30 März 2016, 21:02:51
Hallo,
sorry für die späte Antwort, war leider nicht im Lande
das List di_Wind_test
Internals:
DEF ([tg_wetter:windSpeed] > 5) (set Zaehler {([Zaehler]+1)})
NAME di_Wind_test
NR 173
NTFY_ORDER 50-di_Wind_test
STATE cmd_1
TYPE DOIF
Readings:
2016-03-30 20:58:18 Device tg_wetter
2016-03-30 19:27:06 cmd_event tg_wetter
2016-03-30 19:27:06 cmd_nr 1
2016-03-30 20:58:18 e_tg_wetter_windSpeed 0
2016-03-30 19:27:06 state cmd_1
Condition:
0 ReadingValDoIf($hash,'tg_wetter','windSpeed','','',AttrVal($hash->{NAME},'notexist',undef)) > 5
Devices:
0 tg_wetter
all tg_wetter
Do:
0:
0 set Zaehler {([Zaehler]+1)}
1:
Helper:
event brightness: 14,humidity: 87,isRaining: 0,rain: 490.585,T: 7.5 H: 87 W: 0 R: 490.585 IR: 0 WD: 35 WDR: 22.5 S: 243 B: 14 ,sunshine: 243,temperature: 7.5,windDirRange: 22.5,windDirection: 35,windSpeed: 0,absFeuchte: 7.0,dewpoint: 5.5
globalinit 1
last_timer 0
sleeptimer -1
timerdev tg_wetter
timerevent brightness: 18,humidity: 81,isRaining: 0,rain: 490.585,T: 8.8 H: 81 W: 7.6 R: 490.585 IR: 0 WD: 35 WDR: 67.5 S: 243 B: 18 ,sunshine: 243,temperature: 8.8,windDirRange: 67.5,windDirection: 35,windSpeed: 7.6,absFeuchte: 7.1,dewpoint: 5.7
triggerDev tg_wetter
timerevents:
brightness: 18
humidity: 81
isRaining: 0
rain: 490.585
T: 8.8 H: 81 W: 7.6 R: 490.585 IR: 0 WD: 35 WDR: 67.5 S: 243 B: 18
sunshine: 243
temperature: 8.8
windDirRange: 67.5
windDirection: 35
windSpeed: 7.6
absFeuchte: 7.1
dewpoint: 5.7
triggerEvents:
brightness: 14
humidity: 87
isRaining: 0
rain: 490.585
T: 7.5 H: 87 W: 0 R: 490.585 IR: 0 WD: 35 WDR: 22.5 S: 243 B: 14
sunshine: 243
temperature: 7.5
windDirRange: 22.5
windDirection: 35
windSpeed: 0
absFeuchte: 7.0
dewpoint: 5.5
Internals:
Itimer:
Readings:
0 tg_wetter:windSpeed
all tg_wetter:windSpeed
Regexp:
0:
All:
State:
Trigger:
Attributes:
do always
room 8_DOIF
und das list tg_wetter
Internals:
DEF 145BD0
HMLAN1_MSGCNT 7433
HMLAN1_RAWMSG E145BD0,0000,A4588F44,FF,FFBA,008670145BD0000000004B58067F400005F30E
HMLAN1_RSSI -70
HMLAN1_TIME 2016-03-30 21:01:22
IODev HMLAN1
LASTInputDev HMLAN1
MSGCNT 7433
NAME tg_wetter
NR 67
NTFY_ORDER 50-tg_wetter
STATE T: 7.5 H: 88 W: 0 R: 490.585 IR: 0 WD: 25 WDR: 22.5 S: 243 B: 14
TYPE CUL_HM
lastMsg No:00 - t:70 s:145BD0 d:000000 004B58067F400005F30E
protLastRcv 2016-03-30 21:01:22
rssi_at_HMLAN1 lst:-70 cnt:7433 max:-70 avg:-76.41 min:-89
Readings:
2016-03-17 18:32:46 Activity alive
2016-01-05 21:34:15 CommandAccepted yes
2015-03-08 12:10:19 D-firmware 1.2
2015-03-08 12:10:19 D-serialNr HEQ0401067
2016-01-05 21:34:16 PairedTo 0x164680
2015-03-08 12:12:30 R-burstRx off
2015-03-08 12:12:30 R-pairCentral 0x164680
2015-08-05 21:06:03 R-stormUpThresh set_50
2015-03-08 12:12:31 R-sunThresh 30
2016-01-05 21:34:16 RegL_00. 01:00 02:01 05:00 0A:16 0B:46 0C:80 00:00
2016-01-05 21:34:16 RegL_01. 05:1E 00:00
2016-03-30 21:01:22 absFeuchte 7.0
2016-03-30 21:01:22 brightness 14
2016-03-30 21:01:22 dewpoint 5.6
2016-03-30 21:01:22 humidity 88
2016-03-30 21:01:22 isRaining 0
2015-06-14 17:37:12 powerOn 2015-06-14 17:37:12
2016-03-30 21:01:22 rain 490.585
2015-06-14 17:37:12 recentStateType info
2016-03-30 21:01:22 state T: 7.5 H: 88 W: 0 R: 490.585 IR: 0 WD: 25 WDR: 22.5 S: 243 B: 14
2016-03-30 21:01:22 sunshine 243
2016-03-30 21:01:22 temperature 7.5
2015-06-14 17:37:12 unknown 06000000
2016-03-30 21:01:22 windDirRange 22.5
2016-03-30 21:01:22 windDirection 25
2016-03-30 21:01:22 windSpeed 0
Helper:
HM_CMDNR 0
mId 0040
rxType 12
Expert:
def 1
det 0
raw 1
tpl 0
Io:
newChn +145BD0,00,00,00
nextSend 1459364482.77875
prefIO
rxt 0
vccu
p:
145BD0
00
00
00
Mrssi:
mNo 00
Io:
HMLAN1 -68
Prt:
bErr 0
sProc 0
Q:
qReqConf
qReqStat
Role:
chn 1
dev 1
Rssi:
At_hmlan1:
avg -76.4196152293827
cnt 7433
lst -70
max -70
min -89
Attributes:
IODev HMLAN1
actCycle 000:10
actStatus alive
autoReadReg 4_reqStatus
expert 2_full
firmware 1.2
icon icoTempHausRegEG
model HM-WDS100-C6-O
peerIDs 00000000,
room Wetter
serialNr HEQ0401067
subType THSensor
Gruß Stefan
Es geht um diese Zeile, die auch dann im Log auftaucht
0 ReadingValDoIf($hash,'tg_wetter','windSpeed','','',AttrVal($hash->{NAME},'notexist',undef)) > 5
im Log:
2016-04-03 10:45:25 DOIF di_Wind_test error: reading does not exist: [tg_wetter:windSpeed]
Gruß Stefan
ZitatEs geht um diese Zeile, die auch dann im Log auftaucht
0 ReadingValDoIf($hash,'tg_wetter','windSpeed','','',AttrVal($hash->{NAME},'notexist',undef)) > 5
Das ist die DOIF interne Darstellung Deiner Abfrage. Die Fehlermeldung entsteht nur wenn windSpeed leer ist. Wenn das Reading 0 ist, dann dürfte keine Fehlermeldung im Log auftauchen.
Was hat dazu geführt, dass das Reading windSpeed zum Zeitpunkt 2016-04-03 10:45:25 leer war?
Und sonst:
ZitatPoste mal ein Listing vom DOIF und "tg_wetter" im Fehlerfall.
Welche DOIF Version ist geladen?
Wenn älter als 03.03.2016, dann update, shutdown restart.
Benutze ggf. das Attribut "notexist".
Plus dazu gehörender Logeintrag.
Hallo,
anbei das List tg_wetter
Internals:
DEF 145BD0
HMLAN1_MSGCNT 1885
HMLAN1_RAWMSG E145BD0,0000,C7CB8619,FF,FFB8,538670145BD000000000883906C2C00C42EA21
HMLAN1_RSSI -72
HMLAN1_TIME 2016-04-06 18:12:13
IODev HMLAN1
LASTInputDev HMLAN1
MSGCNT 1885
NAME tg_wetter
NR 67
NTFY_ORDER 50-tg_wetter
STATE T: 13.6 H: 57 W: 1.2 R: 510.35 IR: 0 WD: 330 WDR: 67.5 S: 234 B: 33
TYPE CUL_HM
lastMsg No:53 - t:70 s:145BD0 d:000000 00883906C2C00C42EA21
protLastRcv 2016-04-06 18:12:13
rssi_at_HMLAN1 min:-79 avg:-73.22 lst:-72 max:-68 cnt:1885
Readings:
2016-04-03 10:47:14 Activity alive
2016-01-05 21:34:15 CommandAccepted yes
2015-03-08 12:10:19 D-firmware 1.2
2015-03-08 12:10:19 D-serialNr HEQ0401067
2016-01-05 21:34:16 PairedTo 0x164680
2015-03-08 12:12:30 R-burstRx off
2015-03-08 12:12:30 R-pairCentral 0x164680
2015-08-05 21:06:03 R-stormUpThresh set_50
2015-03-08 12:12:31 R-sunThresh 30
2016-01-05 21:34:16 RegL_00. 01:00 02:01 05:00 0A:16 0B:46 0C:80 00:00
2016-01-05 21:34:16 RegL_01. 05:1E 00:00
2016-04-06 18:12:13 absFeuchte 6.7
2016-04-06 18:12:13 brightness 33
2016-04-06 18:12:13 dewpoint 5.3
2016-04-06 18:12:13 humidity 57
2016-04-06 18:12:13 isRaining 0
2015-06-14 17:37:12 powerOn 2015-06-14 17:37:12
2016-04-06 18:12:13 rain 510.35
2015-06-14 17:37:12 recentStateType info
2016-04-06 18:12:13 state T: 13.6 H: 57 W: 1.2 R: 510.35 IR: 0 WD: 330 WDR: 67.5 S: 234 B: 33
2016-04-06 18:12:13 sunshine 234
2016-04-06 18:12:13 temperature 13.6
2015-06-14 17:37:12 unknown 06000000
2016-04-06 18:12:13 windDirRange 67.5
2016-04-06 18:12:13 windDirection 330
2016-04-06 18:12:13 windSpeed 1.2
Helper:
HM_CMDNR 83
mId 0040
rxType 12
Expert:
def 1
det 0
raw 1
tpl 0
Io:
newChn +145BD0,00,00,00
nextSend 1459959133.78292
prefIO
rxt 0
vccu
p:
145BD0
00
00
00
Mrssi:
mNo 53
Io:
HMLAN1 -70
Prt:
bErr 0
sProc 0
Q:
qReqConf
qReqStat
Role:
chn 1
dev 1
Rssi:
At_hmlan1:
avg -73.2217506631301
cnt 1885
lst -72
max -68
min -79
Attributes:
IODev HMLAN1
actCycle 000:10
actStatus alive
autoReadReg 4_reqStatus
expert 2_full
firmware 1.2
icon icoTempHausRegEG
model HM-WDS100-C6-O
peerIDs 00000000,
room Wetter
serialNr HEQ040106
Hat wahrscheinlich am Fehlenden Update gelegen. DOIF ist jetzt natürlich aktuell. Momentan tauchen auch keine Fehler auf trotz das windSpeed "0" ist
Danke
Gruß Stefan