[­gelöst] KNX answerReading / listenonly

Begonnen von Schneewa, 01 August 2021, 20:16:29

Vorheriges Thema - Nächstes Thema

Amenophis86

Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

erwin

hi,

ich hab nicht wirklich eine idee, daher noch mehr Fragen:

1) mach bitte ein list <device> von dem Ess_Fussboden_Temp1_ist_ein

2)setze verbose auf 5 für die beiden devices und mach ein setG1 on. und poste den Log
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Schneewa

#32
Hi Erwin

Seitdem ich einige KNX Geräte jetzt ausgelagert habe (IOBroker) funktionieren die anderen wieder einwandfrei

Eine Frage - kann es sein, dass mein Fhem allgemein nicht mehr nachkommt - Ich nutze Fhem eigentlich nur als Schnittelle (keine Visu) - habe natürlich einige Geräte wie Enocean, Zwave, S7, KNX im Einsatz.

ausser apptime ist mir nichts bekannt, das ich die Geschwindigkeit mir ansehen kann


erwin

Hi,
deine delays (5 minuten?) könnten schon von irgendwelchen IO-operationen kommen, die in ein timeout laufen. .. muss aber nicht unbedingt ein KNX-Gerät sein, dass hier blockiert... könnte jedes beliebige IO-Modul sein.
Ich würde mal im Log nach timeouts oder disconnect's suchen. Oder auch ein io-device nach dem anderen auf verbose 5 setzen, z.b. TUL, Zwave, Enocean, usw...
Ohne visu "siehst" du das blockieren nicht sofort...
ausser apptime gibts noch top (auf der linux ebene), für cpu/speicherauslastung... wenn der fhem prozess auf 100% cpu geht, wird alles langsam....
PS: könnte auch ein sehr grosses filelog sein, oder ein notify das eine loop erzeugt, wird mühsam die suche nach dem verursacher....
PSS: onewire ist auch so ein Kandidat der gerne blockiert, falls du es im Einsatz hast...
l.g. erwin 
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Amenophis86

Mach doch mal zum testen eine cfg in der du nur ein KNX Device hast und auch KNXD zum verbinden. Lass das laufen und schau, ob sich was verändert. Alternativ kannste auch ein zweites FHEM mit nem anderen Port aufsetzen. Dann schauste mal, ob hier irgendwelche Probleme sind. Wenn nein, dann gibt es zwei Möglichkeiten entweder nach und nach in deiner richtigen Installation deaktivieren, bis du den Schuldigen gefunden hast oder die sauber Installation nach und nach aufbauen und schauen ab wann der die Verzögerung kommt. Alles langwierig und nervig aber was besseres fällt mir auch gerade nicht ein.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Schneewa

#35
Hi all

allgemeine Frage zum apptime


name                                     function                               max    count      total  average   maxDly   avgDly TS Max call     param Max call
Sonos                                    SONOS_Read                            2857      716   64845.47    90.57     0.00     0.00 12.08. 12:43:44 HASH(Sonos)
tmr-S7_GetUpdate                         HASH(0x5610c6050490)                  1390    15802 5531770.93   350.07  2954.64   407.27 12.08. 09:05:38 HASH(SPS_Allgemein_1)
tmr-S7_GetUpdate                         HASH(0x5610c60575c8)                  1232    15802 4576976.36   289.65  3175.08   467.70 12.08. 11:55:51 HASH(SPS_Allgemein)
tul                                      TUL_Read                              1116    33432 5624966.83   168.25     0.00     0.00 12.08. 15:40:04 HASH(tul)
Strom_L3_notify                          notify_Exec                           1103     1720  280256.37   162.94     0.00     0.00 12.08. 15:40:04 HASH(Strom_L3_notify); HASH(Strom_L3)
tmr-S7_GetUpdate                         HASH(0x5610c62168a0)                  1042    15802 4633448.21   293.22  3348.25   464.11 12.08. 12:16:00 HASH(SPS_Zwave)
Strom_L3_SPS                             S7_AWrite_Set                         1000     6795  277306.27    40.81     0.00     0.00 12.08. 15:40:04 HASH(Strom_L3_SPS); Strom_L3_SPS; -11.177
tmr-Calendar_PollChild                   HASH(0x5610c94e1f10)                   935        1     935.07   935.07   724.14   724.14 12.08. 14:36:03 HASH(Abfall)
Muelltermine_notify                      notify_Exec                            898        5     898.87   179.77     0.00     0.00 12.08. 14:36:03 HASH(Muelltermine_notify); HASH(Abfall)


ich bin eigentlich immer davon ausgegangen, dass die avarage Time die wichtigere ist - oder doch die max Zeit  :-\ - die max. Zeit ist eigentlich nur ein Spitzenwert

erwin

hi,

ich sehe das auch so, die average ist meist aussagekräftiger - bzw. auch total, wenn mans mit der startzeit von apptime korrelliert!
Was mir noch aufgefallen ist: dein TUL_Read-average ist vgl. mit meinen messungen sehr lang! Bei mir sind das ca. 25ms, bei dir 168!
Das deutet auf ein Problem in der Verbindung zum KNXD /oder mit dem KNXD hin? Zusätzlich erscheint mit die Anzahl sehr hoch, wobei ich nicht weiß, wie lange apptime schon gelaufen ist.
Wieviel läüft denn am KNX-bus? Zum nachdenken: der bus läuft mit 9600Bps, das entspricht etwa 1000Bytes/sec.... Eine msg ist ca. 25 Bytes lang...
Weiters: das S7 device braucht sehr viel Zeit und count, das kenn ich nicht, aber kannst das mal rausnehmen und testen?
l.g. erwin

PS: was du noch tun kannst: definiere ein doIFtools device
dann: set statistics enable - eine zeitlang laufen lassen - get statistics report - das zeigt dir wer wieviele events erzeugt hat...
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Schneewa

#37
Hi

Zitat
PS: was du noch tun kannst: definiere ein doIFtools device
dann: set statistics enable - eine zeitlang laufen lassen - get statistics report - das zeigt dir wer wieviele events erzeugt hat...

das Tool kenn ich gar nicht - man lernt nie aus ....  :) - werde ich probieren und posten

Die S7 kann ich leider nicht rausnehmen - auf die wird alles geschrieben


Schneewa

#38
sehr interessantes Tool

Ich habe das  tool ca. 1 Stunde am laufen knx Zählung

                                                                               Total: 12698     ∅:14019   
                                                                              Devices: 169       
                                                                        Events/device: 75       


so wie du richtig geschrieben hast kann der KNX 40 Meldungen in der Sekunde verarbeiten - das wären in der Stunde 144000 Meldungen - ich verarbeite ca. 14100 Meldungen - das sollte passen  ;)

aber bei der Abfrage get checkDOIF kommt einiges

wie z.B.: replace {fhem "set...")} with set... (plain FHEM command) - das verwende ich oft - wo liegt da der Fehler  :-\ aus der commandref werde ich nicht schlau


erwin

Zitat- das verwende ich oft - wo liegt da der Fehler  :-\ aus der commandref werde ich nicht schlau
Das ist keine Meldung vom KNX-modul, sondern vom doiftool ! - daher findest du im help text vom KNX nix dazu.
ich verwend keine doif's, aber wenn ichs richtig interpretiere soll das heissen statt fhem("set otto 12345") -> "set otto 12345" verwenden...
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Schneewa

Eine Frage noch zum Fhem Event Monitor

Wenn du den laufen lässt, sind zwischen den Abfragen noch Zeiten übrig - ich glaube immer noch, dass ich mein Fhem allgemein nicht nachkommt

ein Bsp. anbei


2021-08-13 21:45:23 S7_AWrite Server_CPU_Power_SPS 3.55
2021-08-13 21:45:24 S7_AWrite Strom_L1_SPS 5.998
2021-08-13 21:45:24 KNX Strom_L1 getG1: 5.998
2021-08-13 21:45:24 KNX Strom_L1 last-sender: 1/1/12
2021-08-13 21:45:24 KNX Strom_L1 5.998
2021-08-13 21:45:25 S7_AWrite Strom_L2_SPS 1.845
2021-08-13 21:45:25 KNX Strom_L2 getG1: 1.845
2021-08-13 21:45:25 KNX Strom_L2 last-sender: 1/1/12
2021-08-13 21:45:25 KNX Strom_L2 1.845
2021-08-13 21:45:25 S7_AWrite Strom_L3_SPS 4.682
2021-08-13 21:45:26 KNX Strom_L3 getG1: 4.682
2021-08-13 21:45:26 KNX Strom_L3 last-sender: 1/1/12
2021-08-13 21:45:26 KNX Strom_L3 4.682
2021-08-13 21:45:26 S7_AWrite 1_1_1_Buderus_Status_Zeitstempel_SPS 214526
2021-08-13 21:45:26 S7_AWrite Buderus_Kesseltemp_Ist_SPS 71.00
2021-08-13 21:45:27 KNX Buderus_Kesseltemp_Ist getG1: 71.00
2021-08-13 21:45:27 KNX Buderus_Kesseltemp_Ist last-sender: 1/1/1
2021-08-13 21:45:27 KNX Buderus_Kesseltemp_Ist 71.00
2021-08-13 21:45:27 S7_AWrite Spannung_L1_N_SPS 227.100
2021-08-13 21:45:27 KNX Spannung_L1_N getG1: 227.100
2021-08-13 21:45:27 KNX Spannung_L1_N last-sender: 1/1/12
2021-08-13 21:45:27 KNX Spannung_L1_N 227.100
2021-08-13 21:45:28 S7_AWrite Buderus_Kesseltemp_Ist_SPS 71
2021-08-13 21:45:28 S7_AWrite Spannung_L2_N_SPS 230.300
2021-08-13 21:45:28 KNX Spannung_L2_N getG1: 230.300
2021-08-13 21:45:28 KNX Spannung_L2_N last-sender: 1/1/12
2021-08-13 21:45:28 KNX Spannung_L2_N 230.300
2021-08-13 21:45:28 S7_AWrite Spannung_L3_N_SPS 229.200
2021-08-13 21:45:29 KNX Spannung_L3_N getG1: 229.200
2021-08-13 21:45:29 KNX Spannung_L3_N last-sender: 1/1/12
2021-08-13 21:45:29 KNX Spannung_L3_N 229.200
2021-08-13 21:45:29 KNX Wirkenergie_A_minus getG1: 12399784
2021-08-13 21:45:29 KNX Wirkenergie_A_minus last-sender: 1/1/12
2021-08-13 21:45:29 KNX Wirkenergie_A_minus 12399784
2021-08-13 21:45:29 KNX Wirkenergie_A_minus Wirkenergie_A_minus_kWh: 12399.784
2021-08-13 21:45:30 KNX T1_Wirkenergie_A_minus getG1: 12399784
2021-08-13 21:45:30 KNX T1_Wirkenergie_A_minus last-sender: 1/1/12
2021-08-13 21:45:30 KNX T1_Wirkenergie_A_minus 12399784
2021-08-13 21:45:30 KNX T1_Wirkenergie_A_minus T1_Wirkenergie_A_minus_kWh: 12399.784
2021-08-13 21:45:31 KNX T2_Wirkenergie_A_minus getG1: 0
2021-08-13 21:45:31 KNX T2_Wirkenergie_A_minus last-sender: 1/1/12
2021-08-13 21:45:31 KNX T2_Wirkenergie_A_minus 0
2021-08-13 21:45:31 KNX T2_Wirkenergie_A_minus T2_Wirkenergie_A_minus_kWh: 0
2021-08-13 21:45:31 ZWave ZWave_SENSOR_MULTILEVEL_56.04 voltage: 20.80 V
2021-08-13 21:45:32 ENIGMA2 VU_Duo_4k_Wohnzimmer eventremaining: 204
2021-08-13 21:45:32 ENIGMA2 VU_Duo_4k_Wohnzimmer eventremaining_next: 869
2021-08-13 21:45:32 ENIGMA2 VU_Duo_4k_Wohnzimmer eventcurrenttime: 1628883931
2021-08-13 21:45:32 ENIGMA2 VU_Duo_4k_Wohnzimmer eventcurrenttime_next: 1628883931
2021-08-13 21:45:32 ENIGMA2 VU_Duo_4k_Wohnzimmer eventcurrenttime_hr: 21:45:31
2021-08-13 21:45:32 ENIGMA2 VU_Duo_4k_Wohnzimmer eventcurrenttime_next_hr: 21:45:31
2021-08-13 21:45:32 ENIGMA2 VU_Duo_4k_Wohnzimmer eventremaining_hr: 00:03:24
2021-08-13 21:45:32 ENIGMA2 VU_Duo_4k_Wohnzimmer eventremaining_next_hr: 00:14:29
2021-08-13 21:45:32 KNX T3_Wirkenergie_A_minus getG1: 0
2021-08-13 21:45:32 KNX T3_Wirkenergie_A_minus last-sender: 1/1/12
2021-08-13 21:45:32 KNX T3_Wirkenergie_A_minus 0
2021-08-13 21:45:32 KNX T3_Wirkenergie_A_minus T3_Wirkenergie_A_minus_kWh: 0
2021-08-13 21:45:32 ENIGMA2 VU_Duo_4k_Wohnzimmer recordings_next_counter: 27548
2021-08-13 21:45:32 ENIGMA2 VU_Duo_4k_Wohnzimmer recordings_next_counter_hr: 07:39:08
2021-08-13 21:45:32 ENIGMA2 VU_Duo_4k_Wohnzimmer snrdb: 88
2021-08-13 21:45:32 ENIGMA2 VU_Duo_4k_Wohnzimmer snr: 88
2021-08-13 21:45:32 ENIGMA2 VU_Duo_4k_Wohnzimmer ber: 0
2021-08-13 21:45:32 ENIGMA2 VU_Duo_4k_Wohnzimmer acg: 80
2021-08-13 21:45:33 KNX T4_Wirkenergie_A_minus getG1: 0
2021-08-13 21:45:33 KNX T4_Wirkenergie_A_minus last-sender: 1/1/12
2021-08-13 21:45:33 KNX T4_Wirkenergie_A_minus 0
2021-08-13 21:45:33 KNX T4_Wirkenergie_A_minus T4_Wirkenergie_A_minus_kWh: 0
2021-08-13 21:45:33 KNX Druck_Wasser getG1: 3.44
2021-08-13 21:45:33 KNX Druck_Wasser last-sender: 1/1/15
2021-08-13 21:45:33 KNX Druck_Wasser 3.44
2021-08-13 21:45:34 S7_AWrite Wirkenergie_A_plus_SPS 17001.842
2021-08-13 21:45:34 KNX Wirkenergie_A_plus getG1: 17001842
2021-08-13 21:45:34 KNX Wirkenergie_A_plus last-sender: 1/1/12
2021-08-13 21:45:34 KNX Wirkenergie_A_plus 17001842
2021-08-13 21:45:34 KNX Wirkenergie_A_plus Wirkenergie_A_plus_kWh: 17001.842
2021-08-13 21:45:35 S7_AWrite Druck_Ortswasser_SPS 5.03999996185303
2021-08-13 21:45:35 S7_AWrite T1_Wirkenergie_A_plus_SPS 17001.842
2021-08-13 21:45:35 KNX T1_Wirkenergie_A_plus getG1: 17001842
2021-08-13 21:45:35 KNX T1_Wirkenergie_A_plus last-sender: 1/1/12
2021-08-13 21:45:35 KNX T1_Wirkenergie_A_plus 17001842
2021-08-13 21:45:35 KNX T1_Wirkenergie_A_plus T1_Wirkenergie_A_plus_kWh: 17001.842
2021-08-13 21:45:35 HTTPMOD PV_Anlage_CommonInverterData DAY_ENERGY: 95270
2021-08-13 21:45:35 HTTPMOD PV_Anlage_CommonInverterData IDC: 0
2021-08-13 21:45:35 HTTPMOD PV_Anlage_CommonInverterData TOTAL_ENERGY: 19830798
2021-08-13 21:45:35 HTTPMOD PV_Anlage_CommonInverterData UDC: 3.1000000000000001
2021-08-13 21:45:35 HTTPMOD PV_Anlage_CommonInverterData YEAR_ENERGY: 15134842

erwin

Hi,
Zitatsind zwischen den Abfragen noch Zeiten übrig
das versteh ich nicht!
Zitatich glaube immer noch, dass ich mein Fhem allgemein nicht nachkommt
Das glaub ich auch! Du solltest mal versuchen, die Anzahl events zu begrenzen, z.b. jene die du nicht für logging od. weiterverarbeitung brauchst.
Stichwort: event-onchange-reading...usw.
konkretes beispiel: last-sender - ändert sich praktisch nie - kommt aber bei jeder Änderung eines Wertes- verwendest du das weiter?
weiters: reading getG1 vs. state: sind 2 events mit jeweils gleichem Wert - welchen verwendest du weiter?
Damit hast du schon eine reduktion um 2/3 der events!
l.g. erwin 
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Schneewa

Hi Erwin

Erstmal vielen Dank für deine Geduld und deine Hilfe für mein Problem!!


sind zwischen den Abfragen noch Zeiten übrig


damit habe ich gemeint, dass bei mir in wirklich jeder Sekunde mindestens ein Event gefeuert wird

Zitat
konkretes beispiel: last-sender - ändert sich praktisch nie - kommt aber bei jeder Änderung eines Wertes- verwendest du das weiter?
weiters: reading getG1 vs. state: sind 2 events mit jeweils gleichem Wert - welchen verwendest du weiter?
Damit hast du schon eine reduktion um 2/3 der events!

Wie kann ich das reduzieren...

Bsp. aus dem Event Monitor

2021-08-13 21:45:26 KNX Strom_L3 getG1: 4.682
2021-08-13 21:45:26 KNX Strom_L3 last-sender: 1/1/12
2021-08-13 21:45:26 KNX Strom_L3 4.682


list Reading - das Reading wurde automatisch angelegt - soll ich die nicht verwendeten Readings löschen - werden die nicht wieder automatisch angelegt?



Internals:
   DEF        0/1/76:dpt14
   DEVNAME    Strom_L3
   FIRSTGADNAME g1
   FUUID      5dc67d7c-f33f-70d9-1939-438f39e9fac68bdc
   GETSTRING  g1:noArg
   IODev      tul
   LASTInputDev tul
   MSGCNT     728
   NAME       Strom_L3
   NR         3973
   NTFY_ORDER 50-Strom_L3
   SETSTRING  g1
   STATE      -13.408
   TYPE       KNX
   tul_MSGCNT 728
   tul_RAWMSG C0110cw0014cc156872a
   tul_TIME   2021-08-14 12:42:02
   GADDETAILS:
     g1:
       CODE       0014c
       GROUP      0/1/76
       MODEL      dpt14
       NO         1
       OPTION     
       RDNAMEGET  getG1
       RDNAMEPUT  putG1
       RDNAMESET  setG1
       SETLIST   
   GADTABLE:
     0014c      g1
   READINGS:
     2021-08-14 08:59:49   IODev           tul
     2021-08-14 12:42:02   getG1           -13.408
     2021-08-14 12:42:02   last-sender     1/1/12
     2021-08-14 12:42:02   state           -13.408
Attributes:
   IODev      tul
   alias      Strom_L3
   room       Leistungsmessung



weiterverabeitet wird nur das State - anbei das notify


Internals:
   DEF        Strom_L3 {fhem "set Strom_L3_SPS ".ReadingsVal("Strom_L3","state",0.0);}
   FUUID      5dc67d7d-f33f-70d9-c413-a38f7c2768c4dc0d
   NAME       Strom_L3_notify
   NOTIFYDEV  Strom_L3
   NR         4084
   NTFY_ORDER 50-Strom_L3_notify
   REGEXP     Strom_L3
   STATE      2021-08-14 12:45:04
   TRIGGERTIME 1628937904.86506
   TYPE       notify
   READINGS:
     2021-08-14 08:59:45   state           active
Attributes:
   alias      Strom_L3_notify
   room       Leistungsmessung


lg

erwin

#43
Hi,

1)attr KNX Strom_L3  event-on-change-reading state
.. und das für ALLE ähnlichen Fälle. /Devices wo du nur den state weiterverarbeitest...
2)defmod Strom_L3_notify notify Strom_L3:state:.* set Strom_L3_SPS $EVTPART1
attr Strom_L3_notify addStateEvent 1

..wobei ich mir jetzt nicht sicher bin, ob es $EVTPART1 oder $EVTPART0 richtig ist.- Kannst du im Eventmonitor od. Log checken.

Im prinzip machst du bisher aus einer Änderung im KNX-Device 3 Events  UND 3 mal das notify - und 3mal fhem("set....)

falls das funktioniert, kannst du 3  notifies in 1 zusammenfassen:
define Strom_L_notify notify Strom_L[1-3]:state:.* set $NAME_SPS $EVTPART1
attr Strom_L_notify addStateEvent 1


l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Schneewa

#44
Hi,

Zitat1)

ist Gold wert  :) :) und funktioniert bestens

Zitat2)

Mein notify habe ich aus einem Bsp. von Fhem Wiki

Zitat
define Temperaturkorrektur_317_Knob_notify notify Temperaturkorrektur_317_Knob {\
fhem "set Temperaturkorrektur_317 ".ReadingsVal("Temperaturkorrektur_317_Knob","state","0");;\
}

https://wiki.fhem.de/wiki/S7

ZitatIm prinzip machst du bisher aus einer Änderung im KNX-Device 3 Events  UND 3 mal das notify - und 3mal fhem("set....)

Wenn es jetzt nur mehr eine Änderung gibt, muss ich das notify jetzt trotzdem ändern
ich frag nur, weil wenn das so ist - sitze ich ein paar Stunden  ::)