[obsolet - Modul ist im SVN - siehe Forum #12582] 10_KNX.pm Weiterentwicklung

Begonnen von erwin, 15 Dezember 2020, 11:45:16

Vorheriges Thema - Nächstes Thema

Amenophis86

Zitat von: erwin am 19 Februar 2021, 11:55:01
Unknown code C01002r0110e00, help me!
C<src-addresse><r> 01 1 0e <value>
Ah das ist der Hexcode für die GA Adresse, vielen Dank

Zitat
der system-weite autocreate threshold ist 3* in 60 sekunden , dass gilt für alle devices. Was richtig oder falsch ist, bin ich mir nicht sicher. Z.b. Ein ThemperaturSensor, der alle 3 Minuten sendet, würde auch mit dem default nicht angelegt werden, aber jedesmal eine "unknown..." message produzieren.

Ich verstehe. Dann muss das vermutlich wirklich jeder für sich entscheiden, ob er will, dass jedes Gerät angelegt wird (1x Nachricht in 10 Sekunden zum Beispiel) oder nur bestimmte Geräte und dann die Werte entsprechend anpassen.
Kann es sein, dass das help me auch kommt, wenn es das Device schon gibt aber auf disable 1 steht? Und ist es neu, dass neue Geräte auf disable 1 gestellt werden? Ich glaube nämlich, dass das früher nicht war mit disable und deswegen weniger help me Nachrichten gekommen sind, wenn es das Device schon gab.
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

ZitatKann es sein, dass das help me auch kommt
das muss ich mir anschauen...
ZitatUnd ist es neu, dass neue Geräte auf disable 1 gestellt werden?
Ja, das ist neu. Grund ist, das der User sowieso die def ändern muss (zumindest model)  sonst kann das device die ankommenden Nachrichten ja nicht richtig interpretieren. Und mit disable schmeisst die parse funktion gleich die ankommende message weg (=schneller).
Das mit den unknown messages, wenn das device schon exisitert, aber disabled ist, schau ich mir noch an.
PS: die "unknown code xxx, pls. help me" werden aus der fhem.pl geschickt, ausgelöst werden sie durch die 00_TUL, bzw. 00_KNXTUL Module...
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,...

EinEinfach

Hallo zusammen, habe heute das Update eingespielt und gleich angefangen mit DPT16.001 spielen. Gerade im Log folgendes gesehen:
2021.02.24 11:42:03 1: PERL WARNING: Illegal hexadecimal digit ' ' ignored at ./FHEM/10_KNX.pm line 2082.
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

erwin

Hi EinEinFach,

Line 2082 ist bei dieser version mitten in der cmd-ref, dort kann/darf nichts exektuiert werden, kannst du bitte nochmal checken?
und: geht irgendwas nicht? Was versuchst du - was ist das ergebnis - ich brauch was zum nachstellen.
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,...

EinEinfach

Ich schicke einige Statis an den Glastaster 2 von MDT. Der String war "Gesperrt", wo das einmalig im Log aufgetaucht ist. Wie gesagt, das war nur einmalig da, sonst tut alles wie es soll. Ich beobachte das, sollte was neues auftauchen, versuche ich mehr Input zu liefern

Gruß
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

erwin

@EinEinfach: ok,schaun wir mal...

@All:
ich bin dabei, die nächste Version zu releasen:
u.a. wird dort ein neues Attribut eingeführt, siehe diskussion in diesem Thread zum Thema toggle-cmd.
Die neue cmd-ref:
toggleSRC - lookup current value before issuing "set device <gadName> toggle" cmd.
FHEM has to retrieve a current value to make the toggle-cmd acting correctly. This attribute can be used to define the source of the current value.
Format is: <devicename>:<readingname>. If you want to use a reading from own device, you can use "$self" as devicename. Be aware that only on and off are supported as valid values when defining device:readingname.
If this attribute is not defined, the current value will be taken from owndevice:readingName-get or, if readingName-get is not defined, the value will be taken from readingName-set.

...sollte soweit rückwärtskompatibel sein und nun auch "spezial-fälle" abdecken.
Die Frage: der name toggleSRC gefällt mir überhaupt nicht, mir ist nur nix besseres eingefallen....
Hab ihr bessere Vorschläge für den Attribut-Namen? - noch kann ich ganz leicht ändern...
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

Top, für die Einführung.

Ich schlage einfach nur KNX_toggle vor. Zum einen bin ich ein Fan davon, wenn attr die nur für ein Modul sind entsprechend mit dem Modulnamen beginnen und zum zweiten bedarf es aus meiner Sicht das Kürzel SRC nicht.
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,
"KNX_toggle" klingt logisch und plausibel...und gefällt mir wesentlich besser!
Ich lass die Version noch ein paar Tage auf meine Prod-system laufen...
Falls in den nächsten Tagen kein "genialer name" ;D kommt, wirds KNX_toogle!
Danke 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,...

erwin

Hi All,
eine neue Version E04.43 ist am Git:
change History:
1) fix: en-de-code dpt 6,8,13
2) fix autocreate- unknown code..
ich hab autocreateThreshold wieder aus dem Modul entfernt, nachdem das als Attribute im autocreate modul vom user selbst definiert
werden kann, und zwar auch KNX spezifisch! Z.b: "attr autocreate autocreateThreshold KNX_.*:2:10"
-übersetzt: definiere ein KNX_xxyyzzz device falls binnen 10 sekunden 2 Messages mit der gleichen GA-addr. vom Bus ankommen.
unknown codes sollten jetzt keine mehr vorkommen!
Die devices sind default disabled, es muss ein richtiger dpt-typ manuell definiert werden.
3) Set-readings / get-readings
Ich habe versucht zu trennen: die Funktion der set/get/listenonly option (verhindern von set- od. get-cmd) von der Logik wann set- / get-readings gesetzt werden.
set-readings werden NUR MEHR gesetzt, sobald ein FHEM set-cmd ausgeführt wird.
  bisher: wurde das set reading auch gesetzt, fall die "set-option" definiert war und eine Msg vom Bus kam..
  (es gab kein get-reading wenn die "set-option" definiert war)
get-readings werden für ALLE messages gesetzt, die vom Bus kommen (unabhängig von set-option).
- das kann bei unterschiedlichen Implementationen durchaus zu Unterschieden führen: (das ist zwar nicht neu, aber kann fürs debuggen nützlich sein!)
- Folgende Varianten hab ich bisher festellen können:
- a) ein FHEM-set cmd erzeugt KEIN get-reading. Das wäre der "Normalfall"
- b) ein FHEM-set cmd erzeugt EIN get-reading, zusätzlich zum set-reading.
Mögliche Ursachen:
b1) der IP- Layer echoed die gesendete FHEM-set msg. (Trifft für KNXTUL multicast zu)
b2) in der ETS (bzw. im KNX-device) ist für diese GA das Flag update/aktualisieren gesetzt.
b3) sehr alte KNXD-Versionen machen das auch auf Tunnel-connections.
Was zutrifft kann man evtl. erkennen, wenn man im event-monitor auf last-sender schaut...
- Mehrfache get-readings (für dieselbe GA) kommen vor:
a) Falls am KNX-TP1 ein resend passiert.
b) TASMOTA-KNX - schickt jede msg 3mal, falls in den KNX-definitionen im Tasmota "Communication Enhancement" eingestellt ist.
c) wenn es in einem LAN mehrere KNXD's mit "S" option bzw. KNX Router gibt, dann entstehen möglicherweise loops..
d) Falls gleichzeitig ein TUL UND ein KNXTUL Modul definiert ist! Verhalten ist nicht deterministisch, manchmal kommen die msgs über beide Interfaces, manchmal nur über eins von beiden...
Lt. KNX-specs darf es KEINE 2 Pfade zwischen 2 Geräten geben! (so hab ich es zumindest verstanden)
Falls jetzt jemand verwirrt ist, hab ich Verständnis dafür... Falls ihr die unterscheidung set-/get-reading nicht für weitere Logik braucht, empfehle ich die Verwendung der "noSuffix-option".
4) cmd-ref: umstellung von "<a name=" nach "<a id=" siehe:https://forum.fhem.de/index.php/topic,118915.msg1135123.html#msg1135123
5) Neu: Attribute KNX_toggle
ist in der cmdref im Detail beschrieben.

Das sollte für die nächste Zeit die letzte "gröbere" Änderung am Modul sein, fixes und neue Features natürlich ausgenommen.
Feedback willkommen! Bei Problemen bitte mit einem "list <device>" und evtl. Log-Auszug, falls sinnvoll.
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,...

Hauswart

Läuft bei mir bisher unauffällig stabil, auch die 00_KNXTUL.pm.
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

GammaTwin

Läuft bei mir auch unauffällig und stabil.

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

Das sind ja good news, und ich dachte schon das verwendet keiner...  ;D
Wär schon interessant, wieviele user/installationen das nutzen?
Frage an die Experten: gibts am GIT eine Möglichkeit das zu finden? Abgesehen von views/pulls... Die downloads wären interessant!
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

Bei offiziellen Modulen gibt es das in FHEM aber bei git weiß ich es nicht. Bzw vll geht das auch bei nicht offiziellen Modulen. https://fhem.de/stats/statistics.html
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...

xps

#89
Hallo Zusammen,

vielen Dank für die Weiterentwicklung des Modules.

Leider ist bei mir durch das Update ein Problem aufgetreten und ich  konnte ich in dem Thread nichts passendes dazu finden.
Scheinbar hat das Update einige meiner KNX Devices deaktviert ohne das ich diese wieder aktiveren kann.
Es ist kein disable Attribute vorhanden und auch ein setreading KNX_Heizung disable 0 brachte keinen Erfolg.

Update, shutdown restart etc. hab ich auch schon erfolglos probiert.

Anbei eine List definition.

Ausgelöst wurde das disable durch "9/0/47:dpt1.011:Warmwasser"
In der ETS kommt im Gruppenmonitor bei einem Get eine Rückmeldung mit DPT 1.011, Aktiv/Inaktiv.

Vielen Dank im Voraus!

Internals:
   DEF        9/0/46:dpt1.011:Heizen 9/0/47:dpt1.011:Warmwasser 9/0/41:dpt9.001:TemperaturOutside 9/0/42:dpt13.013:Heizen-Stromverbrauch 9/0/43:dpt13.013:Warmwasser-Stromverbrauch 9/0/44:dpt13.013:Umweltertrag
   DEVNAME    KNX_Heizung
   FIRSTGADNAME Heizen
   FUUID      5ddfecf9-f33f-28ca-1268-af970f7fdf65597b
   FVERSIONE  04.43 25-02-2021
   GETSTRING  Warmwasser:noArg Heizen-Stromverbrauch:noArg Umweltertrag:noArg TemperaturOutside:noArg Warmwasser-Stromverbrauch:noArg Heizen:noArg
   IODev      KNXD01
   KNXD01_MSGCNT 4
   KNXD01_RAWMSG C0100bw09029071b
   KNXD01_TIME 2021-04-11 15:09:17
   LASTInputDev KNXD01
   MSGCNT     4
   NAME       KNX_Heizung
   NOTIFYDEV  global,TYPE=KNX
   NR         143
   NTFY_ORDER 50-KNX_Heizung
   SETSTRING  Warmwasser:inactive,active Heizen-Stromverbrauch:slider,-2147483648,42949672,2147483647 Umweltertrag:slider,-2147483648,42949672,2147483647 TemperaturOutside:slider,-274,6710,670760 Warmwasser-Stromverbrauch:slider,-2147483648,42949672,2147483647 Heizen:inactive,active
   STATE      Temperatur Außen: 0.81 &deg;C<br /><br />Heizen FBH: inactive<br />Heizen WW: inactive<br /><br />Stromverbrauch FBH:4771 kWh<br />Stromverbrauch WW: 3202 kWh
   TYPE       KNX
   GADDETAILS:
     Heizen:
       CODE       0902e
       GROUP      9/0/46
       MODEL      dpt1.011
       NO         1
       OPTION     
       RDNAMEGET  Heizen-get
       RDNAMEPUT  Heizen-put
       RDNAMESET  Heizen-set
       SETLIST    :inactive,active
     Heizen-Stromverbrauch:
       CODE       0902a
       GROUP      9/0/42
       MODEL      dpt13.013
       NO         4
       OPTION     
       RDNAMEGET  Heizen-Stromverbrauch-get
       RDNAMEPUT  Heizen-Stromverbrauch-put
       RDNAMESET  Heizen-Stromverbrauch-set
       SETLIST    :slider,-2147483648,42949672,2147483647
     TemperaturOutside:
       CODE       09029
       GROUP      9/0/41
       MODEL      dpt9.001
       NO         3
       OPTION     
       RDNAMEGET  TemperaturOutside-get
       RDNAMEPUT  TemperaturOutside-put
       RDNAMESET  TemperaturOutside-set
       SETLIST    :slider,-274,6710,670760
     Umweltertrag:
       CODE       0902c
       GROUP      9/0/44
       MODEL      dpt13.013
       NO         6
       OPTION     
       RDNAMEGET  Umweltertrag-get
       RDNAMEPUT  Umweltertrag-put
       RDNAMESET  Umweltertrag-set
       SETLIST    :slider,-2147483648,42949672,2147483647
     Warmwasser:
       CODE       0902f
       GROUP      9/0/47
       MODEL      dpt1.011
       NO         2
       OPTION     
       RDNAMEGET  Warmwasser-get
       RDNAMEPUT  Warmwasser-put
       RDNAMESET  Warmwasser-set
       SETLIST    :inactive,active
     Warmwasser-Stromverbrauch:
       CODE       0902b
       GROUP      9/0/43
       MODEL      dpt13.013
       NO         5
       OPTION     
       RDNAMEGET  Warmwasser-Stromverbrauch-get
       RDNAMEPUT  Warmwasser-Stromverbrauch-put
       RDNAMESET  Warmwasser-Stromverbrauch-set
       SETLIST    :slider,-2147483648,42949672,2147483647
   GADTABLE:
     09029      TemperaturOutside
     0902a      Heizen-Stromverbrauch
     0902b      Warmwasser-Stromverbrauch
     0902c      Umweltertrag
     0902e      Heizen
     0902f      Warmwasser
   READINGS:
     2021-04-11 14:43:29   FBH-Heizphase   0
     2021-04-11 14:43:29   Heizen-Stromverbrauch 4771
     2021-04-11 14:43:29   Heizen-Stromverbrauch-get 4771 kWh
     2021-04-11 14:43:29   Heizen-get      inactive
     2021-04-11 14:43:29   TemperaturOutside-Value 0.81
     2021-04-11 14:43:29   TemperaturOutside-get 0.81 &deg;C
     2021-04-11 14:43:29   Umweltertrag    14298
     2021-04-11 14:43:29   Umweltertrag-get 14298 kWh
     2021-04-11 14:43:29   Warmwasser-Heizphase 0
     2021-04-11 14:43:29   Warmwasser-Stromverbrauch 3202
     2021-04-11 14:43:29   Warmwasser-Stromverbrauch-get 3202 kWh
     2021-04-11 14:43:29   Warmwasser-get  inactive
     2021-04-11 14:43:29   last-sender     1.0.11
     2021-04-11 14:43:29   state           inactive
Attributes:
   DbLogInclude Heizen-get,TemperaturOutside-Value,Warmwasser-get
   IODev      KNXD01
   room       30_KNX
   stateFormat {"Temperatur Außen: " . ReadingsVal($name,"TemperaturOutside-get",0) .
"<br /><br />Heizen FBH: " . ReadingsVal($name,"Heizen-get",0) .
"<br />Heizen WW: " . ReadingsVal($name,"Warmwasser-get",0) .
"<br /><br />Stromverbrauch FBH:" . ReadingsVal($name,"Heizen-Stromverbrauch-get",0).
"<br />Stromverbrauch WW: " . ReadingsVal($name,"Warmwasser-Stromverbrauch-get",0)}
   userReadings TemperaturOutside-Value { ReadingsNum($name,"TemperaturOutside-get",0) }, FBH-Heizphase { if(ReadingsVal($name,'Heizen-get',0) eq "active") {"1"} else {"0"}}, Warmwasser-Heizphase { if(ReadingsVal($name,'Warmwasser-get',0) eq "active") {"1"} else {"0"}}, Heizen-Stromverbrauch {ReadingsNum($name,"Heizen-Stromverbrauch-get",0)}, Warmwasser-Stromverbrauch {ReadingsNum($name,"Warmwasser-Stromverbrauch-get",0)}, Umweltertrag {ReadingsNum($name,"Umweltertrag-get",0)}