[gelöst] Datentypen in 10_EIB-pm ergänzt

Begonnen von Andi291, 02 März 2015, 20:37:09

Vorheriges Thema - Nächstes Thema

Andi291

Hallo zusammen,

anbei eine Version, in der ich die Änderungen aus diesem Thread eingebaut habe:
http://forum.fhem.de/index.php/topic,32716.msg251330.html#msg251330

Damit sollte jetzt, bei gesetztem Attribut, ein Wert nur geschrieben werden, wenn er sich geändert hat - nicht, wenn er gesendet wurde.

@All: bitte testen - ohne gesetztes Attribut dürfte sich nichts ändern...

MiWe58

Hallo Andi,

die modifizierte Datei habe ich geladen. Die Attribute stehen damit zur Konfiguration zur Verfügung.
Leider tut es nicht das, was ich möchte. Das kann aber auch an Fehler auf meiner Seite liegen.

Hier ein Beispiel für die Konfiguration eines Devices:
define WP_TempHeissgas EIB 14/0/15
attr WP_TempHeissgas IODev KNX
attr WP_TempHeissgas event-min-interval WP_TempHeissgas.*:300
attr WP_TempHeissgas model dpt14
attr WP_TempHeissgas room 2.50_Heliotherm



Hier das entsprechende Logfile
2015-04-04_15:25:00 WP_TempHeissgas 30.2000007629395
2015-04-04_15:25:00 WP_TempRuecklauf 28.2999992370605
2015-04-04_15:25:00 WP_TempVorlauf 28.2000007629395
2015-04-04_15:25:00 WP_TempHeissgas 30.2000007629395
2015-04-04_15:25:00 WP_TempRuecklauf 28.2999992370605
2015-04-04_15:25:00 WP_TempVorlauf 28.2000007629395
2015-04-04_15:25:00 WP_TempHeissgas 30.2000007629395
2015-04-04_15:25:00 WP_TempRuecklauf 28.2999992370605
2015-04-04_15:25:00 WP_TempVorlauf 28.2000007629395
2015-04-04_15:25:00 WP_TempHeissgas 30.2000007629395
2015-04-04_15:25:01 WP_TempRuecklauf 28.2999992370605
2015-04-04_15:25:01 WP_TempHeissgas 30.2000007629395
2015-04-04_15:25:05 WP_TempVorlauf 28.2000007629395
2015-04-04_15:25:05 WP_TempRuecklauf 28.2999992370605
2015-04-04_15:25:05 WP_TempVorlauf 28.2000007629395
2015-04-04_15:25:05 WP_TempHeissgas 30.2000007629395
2015-04-04_15:25:05 WP_TempRuecklauf 28.2999992370605
2015-04-04_15:25:05 WP_TempVorlauf 28.2000007629395
2015-04-04_15:25:06 WP_TempHeissgas 30.2000007629395
2015-04-04_15:25:06 WP_TempRuecklauf 28.2999992370605
2015-04-04_15:25:06 WP_TempVorlauf 28.2000007629395
2015-04-04_15:25:06 WP_TempHeissgas 30.2000007629395
2015-04-04_15:25:06 WP_TempRuecklauf 28.2999992370605
2015-04-04_15:25:06 WP_TempVorlauf 28.2000007629395
2015-04-04_15:25:06 WP_TempHeissgas 30.2000007629395
2015-04-04_15:25:06 WP_TempRuecklauf 28.2999992370605
2015-04-04_15:25:06 WP_TempVorlauf 28.2000007629395
2015-04-04_15:25:06 WP_TempHeissgas 30.2000007629395
2015-04-04_15:25:06 WP_TempRuecklauf 28.2999992370605
2015-04-04_15:25:07 WP_TempVorlauf 28.2000007629395
2015-04-04_15:25:07 WP_TempHeissgas 30.2000007629395
2015-04-04_15:25:07 WP_TempRuecklauf 28.2999992370605
2015-04-04_15:25:07 WP_TempHeissgas 30.2000007629395
2015-04-04_15:25:11 WP_TempVorlauf 28.2000007629395
2015-04-04_15:25:11 WP_TempRuecklauf 28.2999992370605
2015-04-04_15:25:11 WP_TempVorlauf 28.2000007629395
2015-04-04_15:25:11 WP_TempHeissgas 30.2000007629395
2015-04-04_15:25:11 WP_TempRuecklauf 28.2999992370605
2015-04-04_15:25:11 WP_TempVorlauf 28.2000007629395
2015-04-04_15:25:11 WP_TempHeissgas 30.2000007629395
2015-04-04_15:25:11 WP_TempRuecklauf 28.2999992370605
2015-04-04_15:25:11 WP_TempVorlauf 28.2000007629395


Er schreibt mir dennoch das Logfile voll.

Liegt es an meiner Konfiguration oder ist ein Fehler im Programm?

Gruß
Michael
Devices: RasPi V, HomeMatic, PICCU, Modbus, Heliotherm-Wärmepumpe, SMA PV-Anlage, Easee Laderoboter
Steuerung: Rollos, Beleuchtung, Heizung-Heliotherm, Heizung-Heizkreise, PV-Anlage-Eigenverbrauch, Alarm, Zugang, Wasser

Andi291

Puh, kann ich grad gar nichts mit anfangen...

Ich schau mal drauf. Dauert aber. Neuland :-)

antonwinden

Zitat von: Andi291 am 04 April 2015, 11:16:50
Warum ich das NICHT will / von der Funktion nicht begeistert bin:
Bei mir reagiere ich fast auf jedes Kommando - oft auf den Trigger, und nicht den Inhalt. Ich müsste jetzt also überall readings-Gruppen anlegen, um meine Events haben zu können.
In meiner Anlage habe ich mit dem Datenaufkommen kein Problem - weil ich meine Geräte nur senden lasse, wenn sich der Wert ändert, oder ich den Trigger wirklich haben will.
Hallo,
verstehe ich jetzt nicht ganz denn die funktion muß man ja nur setzen wenn man KEINE events kriegen will wenn keine änderung da ist - wenn man alle haben will dann braucht man gar nichts tun.
hab die version runtergeladen und installiert nur gibt es bei mir kein event-on-change-update...
fhem sagt das sei nicht implementiert...
thx anton
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

Andi291

Hallo Anton,

stimmt. Aber meine Motivation zur (fehlerfreien) Implementierung hält sich in Grenzen, weil von mir nicht benötigt  ;)

Also ich kann die Attribute zumindest setzen. Ohne Fehlermeldung.
Funktionieren tut es aber immer noch nicht. Ich mach mich bei Gelegenheit mal dran...

Frohe Ostern!

Andi291

Abend!

Hat von Euch eigentlich jemand eine Ahnung, wie wir die Änderungen eingecheckt, bzw. veröffentlicht bekommen?

Danke und Grüße, Andreas

Andi291

Hallo Michael,

so, bin einen Schritt weiter. Mit der Datei im Anhang und der folgenden Konfig funktioniert wenigstens mal event-min-interval.

So anzuwenden:

<code>
define eventDebug EIB 5/0/12
attr eventDebug model dpt5
attr eventDebug event-min-interval state:60
define FileLog_debug FileLog ./trace/debug.log eventDebug
</code>

Hoffe, das hilft erstmal. Für event-on-Change hab ich noch keine Idee...

MiWe58

Hallo Andi,

vielen Dank für den Post.
Funktioniert hervorragend!

Hast Du Dir schon einmal Gedanken darüber gemacht, Daten zu schreiben?

Gruß
Michael
Devices: RasPi V, HomeMatic, PICCU, Modbus, Heliotherm-Wärmepumpe, SMA PV-Anlage, Easee Laderoboter
Steuerung: Rollos, Beleuchtung, Heizung-Heliotherm, Heizung-Heizkreise, PV-Anlage-Eigenverbrauch, Alarm, Zugang, Wasser

Andi291

Hallo Michael,

eins, nach dem anderen :-)

Zwecks der DPT14, meinst Du?

Jetzt quäl ich mich erstmal durch event-on-Change ...

Andi291

Hallo Michael,

so, ich glaube Du schuldest meiner Frau einen Prosecco :-)

Im Anhang eine Testversion mit "sendfähigem" DPT14, und funktionierendem event-on-Change...

HowTo:

define eventDebug2 EIB 5/0/13
attr eventDebug2 IODev tul
attr eventDebug2 model dpt9
attr eventDebug2 event-on-change-reading .*
attr eventDebug2 event-min-interval state:60
define FileLog_debug2 FileLog ./trace/debug.log eventDebug2

Bitte um Feedback...

Grüße, Andreas

aliate

...ich werde es morgen testen.
Vielen Dank für Deine Mühe Andres  :)

Schönen Abend noch

Gruß Hermann

MiWe58

Hallo Andi,

herzlichen Dank für Dein Engagement. Sofern es reicht, Dir mit einem Glas Prosecco den "Rückenfrei zu halten :)" übernehme ich das gerne.

event-on-Change-reading scheint zu funktionieren.  Ich bekomme jetzt nur noch Einträge, sofern sich der Wert tatsächlich geändert hat.

Das Schreiben kann ich offen bar nicht testen. Der Grund liegt nach meiner Einschätzung in der Zuordnung / Unterstützung von Datenformaten. Hierzu hatte ich weiter oben schon einmal einen Beitrag geschrieben.

In meinem KNX-Gateway zu meiner Wärmepumpe kann ich die folgenden Datentypen konfigurieren:

- Boolean
- float
- signed
- unsigned

nicht jeder Wert im Gateway kann für jedes der obigen Formate konfiguriert werden.
Statuswerte zu Temperaturen werden als "float" ausgelesen. Das funktioniert gut als "model dpt14"

Alle zu schreibenden Werte sind als "signed" bzw. "unsigned" konfigurierbar. Nicht jedoch als "float"

Für die Darstellung der "Boolean", "signed" und "unsigned" Werte habe ich noch kein passendes "model" gefunden.

Das benötige ich aber, um das Schreiben testen zu können.

Gruß
Michael
Devices: RasPi V, HomeMatic, PICCU, Modbus, Heliotherm-Wärmepumpe, SMA PV-Anlage, Easee Laderoboter
Steuerung: Rollos, Beleuchtung, Heizung-Heliotherm, Heizung-Heizkreise, PV-Anlage-Eigenverbrauch, Alarm, Zugang, Wasser

Andi291

Hallo Michael,

jaja, so sind sie, unsere Frauen.

OK - Frage verstanden.

Ich versuche mal ein Mapping (Trefferwahrscheinlichkeit hoch, aber nicht absolut :-P Kenne Deine Steuerung nicht):

Boolean == FS20; Senden und Empfangen implementiert
Float (2Byte) == DPT9; Senden und Empfangen implementiert
Float (4Byte) == DPT14; Senden und Empfangen implementiert
Unigned (1Byte) == DPT5; Senden und Empfangen implementiert
Unsigned (2Byte) == DPT7; Senden und Empfangen implementiert
Unsinged (4Byte) == DPT12; Senden und Empfangen implementiert
Signed-Typen: nicht implementiert

Du schreibst, dass Du die einzelnen Elemente auf Signed oder Unsigned stellen kannst - dann würd ich Dich bitten, es mal mit Unsigned zu versuchen.

Jetzt musst Du eigentlich nur rausfinden, wie lang Deine Telegramme sind (Bytes). Am einfachsten geht dies mit der ETS - das wird da direkt angezeigt. Hierfür reicht im Übrigen auch die ETS-Free - brauchst nicht zwingend eine große Version.
Ansonsten hilft auch das FHEM-Log mit vorher gesetztem Verbose 5. Da kann man auch gut was rauslesen.

Gute Lektüre:
http://www.knx.org/media/docs/KNX-Tutor-files/Summary/KNX-Communication.pdf
ftp://85.214.247.170/Download/Datapoint.pdf


Grüße, Andreas

MiWe58

Hallo Andreas,

vielen Dank erst einmal.
Ich werde mich da mal einlesen.

Wo definiere ich den Typ FS20? habe ich bei den "models" nicht gefunden.
Schreiben scheint noch nicht zu funktionieren. Ich werde mich melden, sobald ich mehr Zeit investiert habe.

Gruß
Michael
Devices: RasPi V, HomeMatic, PICCU, Modbus, Heliotherm-Wärmepumpe, SMA PV-Anlage, Easee Laderoboter
Steuerung: Rollos, Beleuchtung, Heizung-Heliotherm, Heizung-Heizkreise, PV-Anlage-Eigenverbrauch, Alarm, Zugang, Wasser

Andi291

Hallo Michael,

FS20 ist der "Standard" für 1-Bit-Adressen:

define lueften_verzoegert_status EIB 9/0/10
attr lueften_verzoegert_status IODev tul
attr lueften_verzoegert_status dummy 1
attr lueften_verzoegert_status group Lüftung
attr lueften_verzoegert_status model fs20
attr lueften_verzoegert_status room Dummies
attr lueften_verzoegert_status sortby ke1
attr lueften_verzoegert_status webCmd :