Agreggierung funktioniert nur halb!

Begonnen von choetzu, 28 Oktober 2018, 20:47:37

Vorheriges Thema - Nächstes Thema

choetzu

Hallo

ich aggregiere meine Storen mit folgendem DOIF

attr Storen_CLOSED_Anzahl_DOIF state [#"FSB61$":position:$_  > 60]

Das komische ist, dass wenn alle Storen die postion 0 haben (also auf sind), zeigt es mir trotzdem im State eine 1. Aber wenn dann 4 Storen die position 100 haben, zeigt es korrekt 4 an. Fehlermeldung gibt es nicht.

Woran könnte das liegen?

lg c
Raspi3, EnOcean, Zwave, Homematic

amenomade

Vielleicht willst Du jetzt nicht die Storen aufmachen ;) , aber ein "list Storen_CLOSED_Anzahl_DOIF", wenn alle auf 0 sind, wäre interessant
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

choetzu

danke für deine Antwort. So, jetzt sind alle oben ;)

Hier das Listing:


Internals:
   DEF        ##
   MODEL      FHEM
   NAME       Storen_CLOSED_Anzahl_DOIF
   NR         499
   NTFY_ORDER 50-Storen_CLOSED_Anzahl_DOIF
   STATE      1
   TYPE       DOIF
   OLDREADINGS:
   READINGS:
     2018-10-29 07:06:47   state           1
   Regex:
     STATE:
       :
         STATE:
           "FSB61$"   FSB61$
   condition:
   devices:
   do:
     0:
   helper:
     event      endPosition: open_ack,open_ack
     globalinit 1
     last_timer 0
     sleeptimer -1
     triggerDev
     DOIF_eventas:
       state: 1
     triggerEvents:
       endPosition: open_ack
       open_ack
       position: 0
     triggerEventsState:
       endPosition: open_ack
       state: open_ack
   itimer:
   perlblock:
   uiState:
   uiTable:
Attributes:
   alias      Storen zu
   event-on-change-reading state
   group      Statistik
   icon       shutter1
   room       01_Automatisierung
   state      [#"FSB61$":position:$_  > 60]


siehst du was? Ich nicht... hmm..
Raspi3, EnOcean, Zwave, Homematic

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

choetzu

danke.

hier das list .*FSB61

Buero_St_FSB61
EZ_St1_FSB61
EZ_St2_FSB61
Kueche_St_FSB61
SZ_St1_FSB61
SZ_St2_FSB61
Spiri_St_FSB61
TV_St_FSB61
WZ_St1_FSB61
WZ_St2_FSB61
Raspi3, EnOcean, Zwave, Homematic

Damian

Zitat von: choetzu am 29 Oktober 2018, 20:29:24
danke.

hier das list .*FSB61

Buero_St_FSB61
EZ_St1_FSB61
EZ_St2_FSB61
Kueche_St_FSB61
SZ_St1_FSB61
SZ_St2_FSB61
Spiri_St_FSB61
TV_St_FSB61
WZ_St1_FSB61
WZ_St2_FSB61


Du sprachst von vier, das DOIF hat all diese gecheckt und einer davon hat wohl noch die Bedingung erfüllt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

choetzu

hallo, danke Damian. Das list zeigt ja alle Storen. Davon sind jedoch zur Zeit nur 4 geschlossen... Und wenn alle offen sind, dann zeigt mir

attr Storen_CLOSED_Anzahl_DOIF state [#"FSB61$":position:$_  > 60]

immer 1 an, was ja falsch ist..

Raspi3, EnOcean, Zwave, Homematic

Damian

Zitat von: choetzu am 29 Oktober 2018, 21:30:37
hallo, danke Damian. Das list zeigt ja alle Storen. Davon sind jedoch zur Zeit nur 4 geschlossen... Und wenn alle offen sind, dann zeigt mir

attr Storen_CLOSED_Anzahl_DOIF state [#"FSB61$":position:$_  > 60]

immer 1 an, was ja falsch ist..

ok. Es ist eigentlich ganz einfach herauszufinden, wo das Problem ist. Du änderst deine Definition in

attr Storen_CLOSED_Anzahl_DOIF state [@"FSB61$":position:$_  > 60]

dann wird das betroffene Device angezeigt und von dem machst du dann ein list, dann sehen wir ja, was los ist.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

choetzu

danke. So, jetzt sind wieder alle Storen oben. SZ_St1_FSB61 scheint der Übeltäter zu sein.


Hier das Listing:
Internals:
   DEF        019F2166
   IODev      TCM_ESP3_0
   LASTInputDev TCM_ESP3_0
   MSGCNT     4
   NAME       SZ_St1_FSB61
   NR         111
   NTFY_ORDER 50-SZ_St1_FSB61
   STATE      0 open_ack
   TCM_ESP3_0_DestinationID FFFFFFFF
   TCM_ESP3_0_MSGCNT 4
   TCM_ESP3_0_PacketType 1
   TCM_ESP3_0_RSSI -80
   TCM_ESP3_0_ReceivingQuality good
   TCM_ESP3_0_RepeatingCounter 0
   TCM_ESP3_0_SubTelNum 3
   TCM_ESP3_0_TIME 2018-10-30 07:02:10
   TYPE       EnOcean
   READINGS:
     2018-10-29 16:35:04   anglePos        90
     2018-10-27 17:54:11   block           unlock
     2018-10-30 07:02:10   endPosition     open_ack
     2018-10-30 07:02:10   position        0
     2018-10-30 07:02:10   state           open_ack
   helper:
Attributes:
   IODev      TCM_ESP3_0
   alias      Schlafzimmer 1
   comMode    confirm
   eep        A5-3F-7F
   genericDeviceType blind
   group      Storen
   homebridgeMapping CurrentPosition=invert=1 TargetPosition=invert=1
   icon       shutter1
   manufID    00D
   model      FSB61
   room       04_Storen
   shutTime   53
   shutTimeCloses 56
   sortby     30
   stateFormat position endPosition
   subDef     FFBC6509
   subType    manufProfile
   userattr   Storen Storen_map structexclude
   webCmd     opens:stop:closes


Hmm, das verstehe ich nicht. Steht doch bei position 0, was ja definitiv nicht mehr als > 60 ist...
Raspi3, EnOcean, Zwave, Homematic

Damian

Dann musst du schauen, wann der Status zuletzt aktualisiert wurde. Vielleicht wurden von irgendeinem dieser Devices die Events per Attribut unterdrückt, dann bekommt DOIF eine Änderung ggf. nicht mit.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

choetzu

Zitat von: Damian am 30 Oktober 2018, 08:22:50
Dann musst du schauen, wann der Status zuletzt aktualisiert wurde. Vielleicht wurden von irgendeinem dieser Devices die Events per Attribut unterdrückt, dann bekommt DOIF eine Änderung ggf. nicht mit.

Hallo und danke.

TV_St_FSB61 ist der Ueberltäter. Er hat position 0 aber er wird als zu im DOIF gelistet. Hier das Listing. Komisch ist, dass es genau so konfiguriert wurde wie z.B. das Device Kueche_St_FSB61. Zudem ist ja das event-on-change-reading auf .* . Es sollte doch eigentlich gehen... Oder übersehe ich etwas?

Internals:
   DEF        019FF583
   IODev      TCM_ESP3_0
   LASTInputDev TCM_ESP3_0
   MSGCNT     22
   NAME       TV_St_FSB61
   NR         117
   NTFY_ORDER 50-TV_St_FSB61
   STATE      0 open_ack
   TCM_ESP3_0_DestinationID FFFFFFFF
   TCM_ESP3_0_MSGCNT 22
   TCM_ESP3_0_PacketType 1
   TCM_ESP3_0_RSSI -73
   TCM_ESP3_0_ReceivingQuality excellent
   TCM_ESP3_0_RepeatingCounter 0
   TCM_ESP3_0_SubTelNum 5
   TCM_ESP3_0_TIME 2018-11-01 10:26:10
   TYPE       EnOcean
   READINGS:
     2018-11-01 10:19:59   anglePos        90
     2018-11-01 10:19:59   block           unlock
     2018-11-01 10:26:10   endPosition     open_ack
     2018-11-01 10:26:10   position        0
     2018-11-01 10:26:10   state           open_ack
   helper:
Attributes:
   IODev      TCM_ESP3_0
   alias      TV
   comMode    confirm
   eep        A5-3F-7F
   event-on-change-reading .*
   genericDeviceType blind
   group      Storen
   homebridgeMapping CurrentPosition=invert=1 TargetPosition=invert=1
   icon       shutter1
   manufID    00D
   model      FSB61
   room       04_Storen
   shutTime   54
   shutTimeCloses 56
   sortby     20
   stateFormat position endPosition
   subDef     FFBC6505
   subType    manufProfile
   userattr   Storen Storen_map structexclude
   webCmd     opens:stop:closes
Raspi3, EnOcean, Zwave, Homematic

Damian

Dann weiß ich auch nicht. Du könntest den mal umbenennen und schauen, ob es mit den restlichen korrekt funktioniert
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

choetzu

Zitat von: Damian am 01 November 2018, 16:27:00
Dann weiß ich auch nicht. Du könntest den mal umbenennen und schauen, ob es mit den restlichen korrekt funktioniert

Ich habs mal geändert

[#"FSB61$":endPosition:$_ ne "open"]

Komisch nur, dass es mir alle 10 Storen anzeigt, obschon 7 davon die endPosition open oder open_ack haben.  Stimmt hier was nicht?
Raspi3, EnOcean, Zwave, Homematic

Damian

Zitat von: choetzu am 20 November 2018, 22:34:35
Ich habs mal geändert

[#"FSB61$":endPosition:$_ ne "open"]

Komisch nur, dass es mir alle 10 Storen anzeigt, obschon 7 davon die endPosition open oder open_ack haben.  Stimmt hier was nicht?

Naja, open_act ist nicht open. Ansonsten kann man zu diesen wenigen Infos nicht viel dazusagen, weil man es nicht nachvollziehen kann. Vielleicht hast du Alias-Namen definiert - die werden nicht ausgewertet.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

choetzu

Zitat von: Damian am 21 November 2018, 19:34:34
Naja, open_act ist nicht open. Ansonsten kann man zu diesen wenigen Infos nicht viel dazusagen, weil man es nicht nachvollziehen kann. Vielleicht hast du Alias-Namen definiert - die werden nicht ausgewertet.

danke für deine Antwort. Ich bin davon ausgegangen - und das war die Absicht - dass "open" nach open im Reading sucht. Und open_act enthält ja open(_act).

Hier das List .*FSB61

Buero_St_FSB61
EZ_St1_FSB61
EZ_St2_FSB61
Kueche_St_FSB61
SZ_St1_FSB61
SZ_St2_FSB61
Spiri_St_FSB61
TV_St_FSB61
WZ_St1_FSB61
WZ_St2_FSB61


Siehe auch ReadingsGroup Bild anbei.

Was ich will: Zähl mir alle .*FSB61 die weder open noch open_act im Reading endPosition haben.  Reichen diese Infos?


Ich nehme bewusst nicht eq "closed", weil bei einer Teilöffnung "not_reached" steht..

Raspi3, EnOcean, Zwave, Homematic