DOIF mit readings und KNX

Begonnen von Michael Schmidt, 04 Juni 2017, 19:37:14

Vorheriges Thema - Nächstes Thema

Michael Schmidt

Hey

bin auf das Problem gestoßen das meine Doifs nicht mehr das tuen was sie sollen seit readings gelesen werden sollen,

Meine KWL:
define kwl_wolf_cwl400 KNX 3/7/3:dpt5:[programm] 3/7/7:dpt1:[intensivlueftung] 3/7/8:dpt9.001:[temp_frischluft] 3/7/9:dpt9.001:[temp_abluft] 3/7/10:dpt13:[vol_frischluft] 3/7/11:dpt13:[vol_abluft] 3/7/12:dpt1:[bypass_offen] 3/7/13:dpt1:[bypass_geschlossen]

Das DOIF:
DOIF ([kwl_wolf_cwl400:vol_frischluft]) (set alle_rtr_s2z2E string  {([kwl_wolf_cwl400:vol_frischluft])/10000})

^^der rtr_s2z2E ist als dpt16 angelegt und funktioniert auch bei manuellen eingaben.

Das Hauptproblem ist das dass Reading ([kwl_wolf_cwl400:vol_frischluft]) scheinbar das doif nicht triggert!
obendrein gibt es wenn ich das doif triggere folgende Fehlermeldung:
set alle_rtr_s2z2E string : no data for cmd string


Hoffe mir kann jemand helfen
LG

Ellert

Poste mal ein Listing der beiden Geräte, sieht so aus das [kwl_wolf_cwl400:vol_frischluft] leer ist. Gibt es Events zu dem Reading?

Michael Schmidt

müsste eigentlich alles da sein!?

gibt es möglicherweise Schwierigkeiten den Inhalt als string auszugeben?

Internals:
   DEF        3/7/3:dpt5:[programm] 3/7/7:dpt1:[intensivlueftung] 3/7/8:dpt9:[temp_frischluft] 3/7/9:dpt9:[temp_abluft] 3/7/10:dpt13:[vol_frischluft] 3/7/11:dpt13:[vol_abluft] 3/7/12:dpt1:[bypass_offen] 3/7/13:dpt1:[bypass_geschlossen]
   DEVNAME    kwl_wolf_cwl400
   IODev      KNX
   KNX_MSGCNT 4
   KNX_RAWMSG C01107w0370b00186a00
   KNX_TIME   2017-06-05 09:55:52
   LASTInputDev KNX
   MSGCNT     4
   NAME       kwl_wolf_cwl400
   NR         42
   NTFY_ORDER 50-kwl_wolf_cwl400
   STATE      1600000
   TYPE       KNX
   Gaddr:
     1          3/7/3
     2          3/7/7
     3          3/7/8
     4          3/7/9
     5          3/7/10
     6          3/7/11
     7          3/7/12
     8          3/7/13
   Gcode:
     1          03703
     2          03707
     3          03708
     4          03709
     5          0370a
     6          0370b
     7          0370c
     8          0370d
   Model:
     1          dpt5
     2          dpt1
     3          dpt9
     4          dpt9
     5          dpt13
     6          dpt13
     7          dpt1
     8          dpt1
   Readings:
     2017-06-05 09:49:33   [bypass_geschlossen]-get off
     2017-06-05 09:49:33   [bypass_offen]-get on
     2017-06-05 09:49:33   [intensivlueftung]-get on
     2017-06-05 09:49:33   [intensivlueftung]-set on
     2017-06-05 09:49:33   [programm]-get  1
     2017-06-05 09:49:33   [programm]-set  1
     2017-06-05 09:49:33   [temp_abluft]-get 22.80
     2017-06-05 09:49:33   [temp_frischluft]-get 17.20
     2017-06-05 09:55:52   [vol_abluft]-get 1600000
     2017-06-05 09:49:33   [vol_frischluft]-get 1590000
     2017-06-05 09:49:33   getG1           1
     2017-06-05 09:55:52   last-sender     1/1/7
     2017-06-05 09:49:33   setG1           3
     2017-06-05 09:55:52   state           1600000
   Readingsname:
     1          [programm]
     2          [intensivlueftung]
     3          [temp_frischluft]
     4          [temp_abluft]
     5          [vol_frischluft]
     6          [vol_abluft]
     7          [bypass_offen]
     8          [bypass_geschlossen]
Attributes:
   IODev      KNX
   group      Lueftung
   room       1 Zentral


Andi291

Puh, bezüglich DoIf kann nicht nichts beitragen, aber:

1. ein "set alle_rtr_s2z2E string " muss zu einem Fehler führen. Leere Strings mag das modul nicht. "set alle_rtr_s2z2E string """ müsste gehen...
2. Ich meine, dass die Snytax im doif so nicht hinhaut. In "kwl_wolf_cwl400:vol_frischluft" dürfte nichts verwertbares stehen. Was Du meintest, ist wohl "kwl_wolf_cwl400:vol_frischluft-get" oder "kwl_wolf_cwl400:vol_frischluft-[sg]et"

Grüße, Andi

Ellert

Ich kenne KNX nicht, mir fällt nur auf, dass die Readings eckige Klammern enthalten, dass erscheint mir merkwürdig.

Da im DOIF eckige Klammern eine besondere Bedeutung haben könnte es zu einem Konflikt kommen, wenn diese Klammern Namensbestandteil sind.

Michael Schmidt

#5
Ja da ist nun die frage wie die readings wirklich abgelegt sind?

Aber ich bin doch nicht der erste der aus etwas mit einem Reading anstellen will oder   :o

Habe mal beides ausprobiert

Zitat
1. ein "set alle_rtr_s2z2E string " muss zu einem Fehler führen. Leere Strings mag das modul nicht. "set alle_rtr_s2z2E string """ müsste gehen...
"
^^Also alles was nach dem string steht wird so geschrieben also auch die Anführungsstriche werden gesendet

Zitat2. Ich meine, dass die Snytax im doif so nicht hinhaut. In "kwl_wolf_cwl400:vol_frischluft" dürfte nichts verwertbares stehen. Was Du meintest, ist wohl "kwl_wolf_cwl400:vol_frischluft-get" oder "kwl_wolf_cwl400:vol_frischluft-[sg]et"
^^habe ich beides versucht funktioniert leider nicht

Scheinbar wird wirklich das Reading bzw. der Inhalt nicht gefunden!?

ein set alle_rtr_s2z2E string [kwl_wolf_cwl400:vol_frischluft]1 läuft ohne Fehlermeldung durch gibt jedoch nur eine 1 als Ausgabe

ein set alle_rtr_s2z2E string [kwl_wolf_cwl400:vol_frischluft]-get läuft ohne Fehlermeldung durch gibt jedoch keine Ausgabe

LG





Ellert

Zitatein set alle_rtr_s2z2E string [kwl_wolf_cwl400:vol_frischluft]1 läuft ohne Fehlermeldung durch gibt jedoch nur eine 1 als Ausgabe

Ist logisch, in [kwl_wolf_cwl400:vol_frischluft] steht nichts drin also wird nur 1 in string geschrieben wird.
Zitatein set alle_rtr_s2z2E string [kwl_wolf_cwl400:vol_frischluft]-get läuft ohne Fehlermeldung durch gibt jedoch keine Ausgabe

Hier würde ich erwarten, dass -get in string geschrieben wird

Michael Schmidt

Hallo Ellert,

Danke für die Mühe, hattest Recht die Readings dürfen keine [] enthaalten
inzwischen konnte ich einen "Workaround" umsetzen.

Originaler KNX Syntax laut commandref
define <name> KNX <group>:<DPT>:<[;readingName]> [<group>:<DPT> ..] [IODev]

mein Syntax welcher funktioniert
define <name> KNX <group>:<DPT>:<readingName> [<group>:<DPT> ..] [IODev]

LG




Michael Schmidt

bin gleich auf daaas nächste Problem gestoßen @Andi,

scheinbar funktioniert die query für die KNX Telegramme nicht vollumfänglich.

ich musste das senden der Strings zeitlich verzögern damit alles am RTR ankam.
das funktionierte mit EIB noch einwandfrei vielleicht solltest du da mal schauen!?

gibt es eine Begrenzung der sende und empfangswarteschlange oder macht das knxd?

Andi291

Servus Jens!

Au weia...jetzt hab ich das Mißverständnis...
Mit den eckigen Klammern will ich ausdrücken: Teil ist optional...Will sagen, Du sollst den Readingnamen nicht in eckigen Klammern angeben, sondern darfst ihn weglassen...

Zu Deinem zweiten Problem:
Zwischen knx und eib hab ich eigentlich nur Timings optimiert, nichts am Queuing geändert. Anteilig puffert die TUL, einen Großteil übernimmt der knxd.
Ich selbst schicke mehrere Strings zeitlich unverzögert - bislang ohne Probleme.
Hast Du mal mit der ETS gelauscht?

Grüße, Andi

Michael Schmidt

ja habe der ETS gelauscht und gesehen das 6 strings gleichzeitig versendet werden Route 6 (knx Gateway von Wolf sendet alles zeitgleich) jedoch nur 4 der strings erneut mit Route 5 auftauchen (Bestätigung?) diese 4 sind Zufall also mal der eine dann der Andere.

Gruß

Andi291

Gib mir mal Level5-Logs. Kanns mir nicht erklären.

Michael Schmidt

#12
Habe das eben mal nachgestellt und 4 Strings auf einmal versendet -> nur 2 kommen an und werden bestätigt.

zum vergleich habe ich danach im DOIF die DO´s verzögert jeweils 5 Sekunden zwischen den Ausführungen -> Funktioniert

hier mal das Verbose5 Log mit timer:
2017-06-11 15:13:22 DOIF doif_kwl_frischluft_temp wait_timer: no timer
2017-06-11 15:13:22 KNX alle_rtr_s2 zeile1-set: 27.10/
2017-06-11 15:13:22 KNX alle_rtr_s2 27.10/
2017-06-11 15:13:22 DOIF doif_kwl_frischluft_temp cmd_nr: 1
2017-06-11 15:13:22 DOIF doif_kwl_frischluft_temp cmd_seqnr: 1
2017-06-11 15:13:22 DOIF doif_kwl_frischluft_temp cmd: 1.1
2017-06-11 15:13:22 DOIF doif_kwl_frischluft_temp cmd_event: kwl_wolf_cwl400
2017-06-11 15:13:22 DOIF doif_kwl_frischluft_temp cmd_1_1
2017-06-11 15:13:22 DOIF doif_kwl_frischluft_temp wait_timer: 11.06.2017 15:13:27 cmd_1_2 kwl_wolf_cwl400
2017-06-11 15:13:22 KNX alle_rtr_s2 zeile1-get: 27.10/
2017-06-11 15:13:22 KNX alle_rtr_s2 last-sender: 0/0/1
2017-06-11 15:13:22 KNX alle_rtr_s2 27.10/
2017-06-11 15:13:23 KNX schlaf_strom_leistung getG1: 551 mA
2017-06-11 15:13:23 KNX schlaf_strom_leistung last-sender: 1/1/11
2017-06-11 15:13:23 KNX schlaf_strom_leistung 551 mA
2017-06-11 15:13:24 KNX wc_helligkeit getG1: 976.00 lux
2017-06-11 15:13:24 KNX wc_helligkeit last-sender: 1/1/59
2017-06-11 15:13:24 KNX wc_helligkeit 976.00 lux
2017-06-11 15:13:24 KNX kueche_helligkeit getG1: 717.44 lux
2017-06-11 15:13:24 KNX kueche_helligkeit last-sender: 1/1/99
2017-06-11 15:13:24 KNX kueche_helligkeit 717.44 lux
2017-06-11 15:13:25 KNX kind_strom_leistung getG1: 17 mA
2017-06-11 15:13:25 KNX kind_strom_leistung last-sender: 1/1/11
2017-06-11 15:13:25 KNX kind_strom_leistung 17 mA
2017-06-11 15:13:25 KNX hwr_helligkeit getG1: 72.00 lux
2017-06-11 15:13:25 KNX hwr_helligkeit last-sender: 1/1/69
2017-06-11 15:13:25 KNX hwr_helligkeit 72.00 lux
2017-06-11 15:13:25 KNX kueche_helligkeit getG1: 729.60 lux
2017-06-11 15:13:25 KNX kueche_helligkeit last-sender: 1/1/99
2017-06-11 15:13:25 KNX kueche_helligkeit 729.60 lux
2017-06-11 15:13:26 KNX flur_haupt_helligkeit getG1: 352.96 lux
2017-06-11 15:13:26 KNX flur_haupt_helligkeit last-sender: 1/1/48
2017-06-11 15:13:26 KNX flur_haupt_helligkeit 352.96 lux
2017-06-11 15:13:26 KNX bad_helligkeit getG1: 560.96 lux
2017-06-11 15:13:26 KNX bad_helligkeit last-sender: 1/1/39
2017-06-11 15:13:26 KNX bad_helligkeit 560.96 lux
2017-06-11 15:13:26 KNX schlaf_strom_leistung getG1: 626 mA
2017-06-11 15:13:26 KNX schlaf_strom_leistung last-sender: 1/1/11
2017-06-11 15:13:26 KNX schlaf_strom_leistung 626 mA
2017-06-11 15:13:27 DOIF doif_kwl_frischluft_temp wait_timer: no timer
2017-06-11 15:13:27 KNX alle_rtr_s2 zeile1e-set: 24.30
2017-06-11 15:13:27 KNX alle_rtr_s2 24.30
2017-06-11 15:13:27 DOIF doif_kwl_frischluft_temp cmd_nr: 1
2017-06-11 15:13:27 DOIF doif_kwl_frischluft_temp cmd_seqnr: 2
2017-06-11 15:13:27 DOIF doif_kwl_frischluft_temp cmd: 1.2
2017-06-11 15:13:27 DOIF doif_kwl_frischluft_temp cmd_event: kwl_wolf_cwl400
2017-06-11 15:13:27 DOIF doif_kwl_frischluft_temp cmd_1_2
2017-06-11 15:13:27 DOIF doif_kwl_frischluft_temp wait_timer: 11.06.2017 15:13:32 cmd_1_3 kwl_wolf_cwl400
2017-06-11 15:13:27 KNX alle_rtr_s2 zeile1e-get: 24.30
2017-06-11 15:13:27 KNX alle_rtr_s2 last-sender: 0/0/1
2017-06-11 15:13:27 KNX alle_rtr_s2 24.30
2017-06-11 15:13:28 KNX kueche_helligkeit getG1: 741.76 lux
2017-06-11 15:13:28 KNX kueche_helligkeit last-sender: 1/1/99
2017-06-11 15:13:28 KNX kueche_helligkeit 741.76 lux
2017-06-11 15:13:30 KNX schlaf_strom_leistung getG1: 590 mA
2017-06-11 15:13:30 KNX schlaf_strom_leistung last-sender: 1/1/11
2017-06-11 15:13:30 KNX schlaf_strom_leistung 590 mA
2017-06-11 15:13:32 DOIF doif_kwl_frischluft_temp wait_timer: no timer
2017-06-11 15:13:32 KNX alle_rtr_s2 zeile2-set: 101/
2017-06-11 15:13:32 KNX alle_rtr_s2 101/
2017-06-11 15:13:32 DOIF doif_kwl_frischluft_temp cmd_nr: 1
2017-06-11 15:13:32 DOIF doif_kwl_frischluft_temp cmd_seqnr: 3
2017-06-11 15:13:32 DOIF doif_kwl_frischluft_temp cmd: 1.3
2017-06-11 15:13:32 DOIF doif_kwl_frischluft_temp cmd_event: kwl_wolf_cwl400
2017-06-11 15:13:32 DOIF doif_kwl_frischluft_temp cmd_1_3
2017-06-11 15:13:32 DOIF doif_kwl_frischluft_temp wait_timer: 11.06.2017 15:13:37 cmd_1_4 kwl_wolf_cwl400
2017-06-11 15:13:32 KNX alle_rtr_s2 zeile2-get: 101/
2017-06-11 15:13:32 KNX alle_rtr_s2 last-sender: 0/0/1
2017-06-11 15:13:32 KNX alle_rtr_s2 101/
2017-06-11 15:13:33 KNX kind_strom_leistung getG1: 18 mA
2017-06-11 15:13:33 KNX kind_strom_leistung last-sender: 1/1/11
2017-06-11 15:13:33 KNX kind_strom_leistung 18 mA
2017-06-11 15:13:33 KNX schlaf_strom_leistung getG1: 623 mA
2017-06-11 15:13:33 KNX schlaf_strom_leistung last-sender: 1/1/11
2017-06-11 15:13:33 KNX schlaf_strom_leistung 623 mA
2017-06-11 15:13:37 DOIF doif_kwl_frischluft_temp wait_timer: no timer
2017-06-11 15:13:37 KNX alle_rtr_s2 zeile2e-set: 101
2017-06-11 15:13:37 KNX alle_rtr_s2 101
2017-06-11 15:13:37 DOIF doif_kwl_frischluft_temp cmd_nr: 1
2017-06-11 15:13:37 DOIF doif_kwl_frischluft_temp cmd_seqnr: 4
2017-06-11 15:13:37 DOIF doif_kwl_frischluft_temp cmd: 1.4
2017-06-11 15:13:37 DOIF doif_kwl_frischluft_temp cmd_event: kwl_wolf_cwl400
2017-06-11 15:13:37 DOIF doif_kwl_frischluft_temp cmd_1
2017-06-11 15:13:37 KNX alle_rtr_s2 zeile2e-get: 101
2017-06-11 15:13:37 KNX alle_rtr_s2 last-sender: 0/0/1
2017-06-11 15:13:37 KNX alle_rtr_s2 101

^^alles kommt an alles wird bestätigt

und hier ohne:
2017-06-11 15:08:14 DOIF doif_kwl_frischluft_temp wait_timer: no timer
2017-06-11 15:08:14 KNX alle_rtr_s2 zeile1-set: 27.10/
2017-06-11 15:08:14 KNX alle_rtr_s2 27.10/
2017-06-11 15:08:14 KNX alle_rtr_s2 zeile1e-set: 24.30
2017-06-11 15:08:14 KNX alle_rtr_s2 24.30
2017-06-11 15:08:14 KNX alle_rtr_s2 zeile2-set: 160/
2017-06-11 15:08:14 KNX alle_rtr_s2 160/
2017-06-11 15:08:14 KNX alle_rtr_s2 zeile2e-set: 158
2017-06-11 15:08:14 KNX alle_rtr_s2 158
2017-06-11 15:08:14 DOIF doif_kwl_frischluft_temp cmd_nr: 1
2017-06-11 15:08:14 DOIF doif_kwl_frischluft_temp cmd: 1
2017-06-11 15:08:14 DOIF doif_kwl_frischluft_temp cmd_event: kwl_wolf_cwl400
2017-06-11 15:08:14 DOIF doif_kwl_frischluft_temp cmd_1
2017-06-11 15:08:14 KNX alle_rtr_s2 zeile1-get: 27.10/
2017-06-11 15:08:14 KNX alle_rtr_s2 last-sender: 0/0/1
2017-06-11 15:08:14 KNX alle_rtr_s2 27.10/
2017-06-11 15:08:14 KNX alle_rtr_s2 zeile2e-get: 158
2017-06-11 15:08:14 KNX alle_rtr_s2 last-sender: 0/0/1
2017-06-11 15:08:14 KNX alle_rtr_s2 158

^^nur zeile 1 und zeile 2e kommen an und werden bestätigt

Gruß

Andi291

Häng mal bitte TUL-Logs auch noch an.

Ich vermute aber, dass ich hier nicht viel tun kann. Das Modul knx ruft synchron das Modul tul auf, welches die Daten ebenfalls synchron an den knxd weiterschiebt.
Außer Totzeiten einzubauen (will ich nicht) fällt mir eigentlich nur ein, mit den Parametern im knxd rumzuspielen - beispielsweise per GroupCaching.

Jetzt schick mal Deine Logs mit TUL. Ggf. muss Du smurfix mal anhauen...

P.S.: Ich hab mein System auf einem I5 laufen - habe getestet. Erwartungsgemäß keine Probleme...

Grüße, Andi

antonwinden

wenn du in der ets im monitor siehst das 6 gesendet aber nur 4 bestätigt werden dann wird es eher nicht an fhem liegen sondern an der knx installation.
hatte erst kürzlich ein defektes Teil am bus das den kompletten busverkehr gestört hat und einige telegramme geschluckt hat...
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...