[­gelöst] KNX answerReading / listenonly

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

Vorheriges Thema - Nächstes Thema

Amenophis86

Ich habe bei fast allen meinen Device attr xx event-on-change-reading .* gesetzt. Es gibt eigentlich nur wenige Geräte, bei welchen man auf ein Event lauschen muss, welches aber den Status nicht verändert. Damit kann mann sehr viel Last reduzieren.
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,

das notify aus dem wiki ist ja nicht falsch, aber halt nur beschränkt elegant  ;D
ich würde den Aufwand machen, mal mit einem notify nach dem letzen vorschlag ( 3 statt eins) beginnen und testen,
dann gibts bei künftigen Änderungen weniger Aufwand.

PS: schau dir den copy command an - damit kannst du devices und notifies kopieren - und anschließend nur die wenigen Änderungen machen...
copy device1 device2

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 euch Beiden

erste Erfolgsmeldungen  :) :)

nur das umstellen der KNX Readings
event-on-change-reading state
- sind mittlerweile auf 191 abgewachsen - werden jetzt alle sofort eingelesen - Vergleich mit IOBroker kein Zeitversatz

als nächstes werde ich meine Notify's angehen

das dauert jetzt ein bisschen länger - ich werde berichten

Vielen Vielen Dank 

GammaTwin

Grüße,

ich hätte da noch eine Verfeinerung. Da ein reines
event-on-change-reading state
schon sehr rigoros alles abblockt, is mir das zu derb  ;D

Hier eine Lösung, um nur das "last-sender" von unnötigen Updates auszuschließen.
event-on-change-reading .*
event-on-update-reading (?!last-sender).*

erwin

Hi GammaTwin,

... stimmt natürlich, mir ist's darum gegangen von 14000 Events in der Stunde mal radikal runterzukommen....
Und wenns keiner braucht ... (e.g. Filelog/dblog,...)
Sobald die notifies nicht mehr mehrfach getriggert werden, kann man bei Bedarf noch tunen.
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

#50
eine Frage zum 
event-on-update-reading

Wenn ich jetzt von einem knx Reading (z.B.: in Betrieb) alle 20 min ein Event gefeuert bekomme würde ich


event-on-change-reading .*
event-on-update-reading state


das funktioniert auch - jedoch, wenn jetzt eine 0 gefeuert wird, werde wieder alle 3 getG1, lastsender, state gefeuert


event-on-update-reading state, (?!last-sender).*, (?!getG1).*

funktioniert leider nicht

Amenophis86

Verstehe deine Frage nicht. Was haste genau für Werte, was ist gesetzt und was genau soll passieren?
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

bei

event-on-change-reading .*
event-on-update-reading state


wird immer das "state" gefeuert wenn das KNX Modul ein Update sendet, auch wenn keine Änderung stattfindet

jedoch, kommt es zu einer Änderung werden mit dieser Einstellung alle 3 Readings "getG1", "lastsender", "state" gefeuert

die Einstellung von GammaTwin hätte mir gut gefallen, in diesem Fall wären "getG1", "lastsender" vom update ausgenommen




Amenophis86

Hast du mal die CommandRef zum Unterschied zwischen update und change gelesen? Da ist es sehr gut erklärt was du willst.
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

Hi Amenophis86

stimmt - ich sehe den Wald vor lauter Bäumen nicht mehr  :o

Fortschrittsbericht:
mit jeder Änderung nimmt mein Fhem richtig fahrt auch  :D :D

Ich denke wir können die Frage als gelöst erklären

Vielen Vielen Dank an alle

erwin

Hi,
...eine Überlegung aus der Design-Sicht:
du schickst jede/viele Änderungen von KNX devices an dein SPS. - mittels notify und zwar den Wert aus state.
Soweit ich eine SPS verstehe, ist das eine state-machine. Soll heissen: Jeder wert der dort mal gespeichert ist, bleibt auch dort!
Daher ist es nicht nötig, wiederholende gleiche werte an die SPS zu schicken.
Konsequenz: event-on-change-reading.
Ändern würde ich in dem Bereich erst wenn du die notifies eingeschränkt hast auf state!
getG1 und state haben immer den gleichen Wert, zumindest bei den definitionen, die ich von dir bisher gesehen habe.
in FHEM-WEB hast du auch ohne events die aktuellen werte in den readings (nach page refresh) !
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

#56
Hi Erwin

Vielen Dank - Die Readings von der SPS hatte ich schon mit einem event-on-change-reading versehen

Internals:
   ADDRESS    354
   AREA       db
   DATATYPE   float
   DB         501
   DEF        db 501 354 float
   FUUID      5dc67d80-f33f-70d9-4e5a-7c7c2df1e795bcd6
   IODev      SPS_KNX
   LASTInputDev SPS_KNX
   LENGTH     4
   MSGCNT     16950
   NAME       Strom_L3_SPS
   NR         4198
   SPS_KNX_MSGCNT 16950
   SPS_KNX_TIME 2021-08-16 17:39:47
   STATE      4.143
   TYPE       S7_AWrite
   READINGS:
     2021-08-16 11:05:18   IODev           SPS_KNX
     2021-08-16 17:39:41   state           4.143
   helper:
     bm:
       S7_AWrite_Set:
         cnt        2797
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        16.08. 16:35:26
         max        0.0841071605682373
         tot        76.6443145275116
         mAr:
           HASH(Strom_L3_SPS)
           Strom_L3_SPS
           3.715
Attributes:
   IODev      SPS_KNX
   alias      Strom_L3_SPS
   event-min-interval .*:600
   event-on-change-reading state:0.01
   room       Leistungsmessung


eine andere Frage:

Ich habe ein Reading indem ich ein Usereading erstellt habe
jetzt muss ich beide aktualisieren, damit das Event gefeuert wird - weiterverarbeitet wird das Userreading - gibt es da eine andere/bessere Lösung

Reading

Internals:
   ADDRESS    32
   AREA       db
   DATATYPE   float
   DB         526
   DEF        db 526 32 float
   FUUID      5d90471e-f33f-70d9-f0e2-4d915d87e80ecd37
   IODev      SPS_Allgemein
   LASTInputDev SPS_Allgemein
   LENGTH     4
   MSGCNT     27701
   NAME       Aussen_Wind_SPS
   NR         361
   SPS_Allgemein_MSGCNT 27701
   SPS_Allgemein_TIME 2021-08-16 21:47:29
   STATE      2.07999992370605
   TYPE       S7_ARead
   READINGS:
     2021-08-16 11:05:17   IODev           SPS_Allgemein
     2021-08-16 21:47:29   state           2.07999992370605
     2021-08-16 21:47:29   state_Wind      2.08
   helper:
     bm:
       S7_ARead_Attr:
         cnt        5
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        16.08. 17:24:01
         max        4.60147857666016e-05
         tot        0.000130891799926758
         mAr:
           set
           Aussen_Wind_SPS
           event-on-change-reading
           state_Wind.*
Attributes:
   IODev      SPS_Allgemein
   alias      Aussen_Wind_SPS
   event-min-interval .*:600
   event-on-change-reading state:0.01,state_Wind:0.01
   room       Aussen
   userReadings state_Wind {sprintf("%.2f", ReadingsVal($name,"state",0))}



erwin

Hi,

wenn das ein KNX device wäre:
attr <device> stateCmd {sprintf("%.2f", $state)}
.. aber es ist ja ein SPS device, da musst du in der cmd-ref von S7_... suchen...
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,...