[GELÖST] mit DOIF Zähler um 1 hochzählen

Begonnen von StefanL, 09 Februar 2016, 21:45:43

Vorheriges Thema - Nächstes Thema

StefanL

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
NUC als Prduktivsystem,  Rasperry Pi mit FHEM zum Testen, diverse HM Komponenten, Arduino mit EthernetShield (China), AVR NetIO, NanoCUL, FHEMduino

Reinerlein

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

StefanL

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
NUC als Prduktivsystem,  Rasperry Pi mit FHEM zum Testen, diverse HM Komponenten, Arduino mit EthernetShield (China), AVR NetIO, NanoCUL, FHEMduino

Ellert


Reinerlein

Hi Stefan,

das sind DOIF Besonderheiten, die sehr gut in der commandref 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

StefanL

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
NUC als Prduktivsystem,  Rasperry Pi mit FHEM zum Testen, diverse HM Komponenten, Arduino mit EthernetShield (China), AVR NetIO, NanoCUL, FHEMduino

StefanL

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 ????

NUC als Prduktivsystem,  Rasperry Pi mit FHEM zum Testen, diverse HM Komponenten, Arduino mit EthernetShield (China), AVR NetIO, NanoCUL, FHEMduino

Ellert

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".

StefanL

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
NUC als Prduktivsystem,  Rasperry Pi mit FHEM zum Testen, diverse HM Komponenten, Arduino mit EthernetShield (China), AVR NetIO, NanoCUL, FHEMduino

Ellert


StefanL

Beim List von doif vor Helper

gesendet vom Handy  . Deswegen  kurz gehalten

NUC als Prduktivsystem,  Rasperry Pi mit FHEM zum Testen, diverse HM Komponenten, Arduino mit EthernetShield (China), AVR NetIO, NanoCUL, FHEMduino

Ellert

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

StefanL

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
NUC als Prduktivsystem,  Rasperry Pi mit FHEM zum Testen, diverse HM Komponenten, Arduino mit EthernetShield (China), AVR NetIO, NanoCUL, FHEMduino

Ellert

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.

StefanL

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
NUC als Prduktivsystem,  Rasperry Pi mit FHEM zum Testen, diverse HM Komponenten, Arduino mit EthernetShield (China), AVR NetIO, NanoCUL, FHEMduino