[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,

ich hätte folgende Änderungen im EIB-Modul ergänzt:

1. DPT12 implementiert
2. Beim Empfang von DPT5 wird "1" als "on" interpretiert - Workaround eingebaut
3. DPT10_no_seconds hinzu: ermöglicht das "Empfangen" von Zeittelegrammen ohne Sekunde (meine DCF-Masteruhr sendet nur minütlich)
4. DPT16 zum "Empfangen" implementiert

Könnte die bitte jemand überprüfen und ggf. einchecken?

Danke Euch!

aliate

Hallo Andi,

schön, dass sich auch beim EIB-Modul wieder was tut.


Wenn Du magst, könntest Du vielleicht auch noch diese Sachen http://forum.fhem.de/index.php/topic,34611.0.html http://forum.fhem.de/index.php/topic,18138.0.html
http://forum.fhem.de/index.php/topic,32716.msg251330.html#msg251330

"einbauen" und die EIB.pm Datie an Hr. König senden, damit diese via Update verteilt werden kann.

Ich will nicht unhöflich sein und Dich nur freundlich darum bitten, Du scheinst nämlich etwas Ahnung von der Sache zu haben und könntest damit einigen Usern (inkl. mir ;) ) helfen. Das EIB-Modul könnte nämlich hier und da etwas an Update gebrauchen ;)

Vielen Dank und schönen Gruß

Hermann

Andi291

Hallo,

kein Ding - schau ich mir mal an. Wird aber ein paar Tage dauern.
Bin ganz froh, dass jetzt mal alles läuft :-P

Nächste Woche hab ich ein wenig Luft.

Ich poste dann wieder!

aliate


Andi291

Hallihallo,

done - funktioniert so weit. Das senden der DPT9 und 7 konnte ich allerdings nicht probieren. Jedenfalls ist das Log nun sauber.
Lauffähig ist es jedenfalls.

Bitte ausgiebig testen ;-)

aliate

Hallo Andi,

vielen Dank, bei mir funktioniert alles, auch die dpt9 dekodierung passt :)

Wäre super, wenn Deine Datei eingecheckt wird, damit diese via update an alle verteilt werden kann.

Marthinx

wenn es geht bitte auch gleich das "Undefined value" Problem für das nächste update verteilen.
http://forum.fhem.de/index.php/topic,19523.msg273018/boardseen.html#new

Das wäre super,

Danke,

Andi291

N'Abend!

Ist bereits drin. Löst zwar die Ursache nicht, beseitigt aber die Meldung(en)...

Grüße, Andreas

Falki

Hallo,

könnte das im folgenden Thread diskutierte event-on-change-reading mit eingebaut werden? Wäre super, wenn das zusammen geführt werden würde.

Siehe   http://forum.fhem.de/index.php/topic,32716.0.html

Vorab schon mal vielen Dank.

Falki

KNX + Cubietruck + FHEM

aliate

Hallo,
ich denke Andi hat das "event-on-change reading" auch schon eingebaut

Marthinx

Hallo Andi291,

du bist ja super.
Wie kommt man denn an die Anpassungen?
Sind die per update dann schon integriert?
Würde gerne testen ob alles passt.

Vielen Dank

aliate

Zitat von: Marthinx am 14 März 2015, 17:12:20
Hallo Andi291,

du bist ja super.
Wie kommt man denn an die Anpassungen?
Sind die per update dann schon integriert?
Würde gerne testen ob alles passt.

Vielen Dank

Einfach die "10_EIB.pm" Datei aus Andi's Post (vom 10 März 2015, 20:45:31 ») runterladen und im fhem-Verzeichnis in den Ordner Fhem kopieren bzw. die darin befindliche Datei ersetzen.

Vorher unbedingt ein Backup von fhem bzw. der sd-Karte machen. Sicher ist sicher ;)

Andi291

N'Abend,

ja, genau so. Die alte Datei bitte unbedingt sichern.
Ist mein erstes Perl-Objekt, also doppelten Boden beachten...

Wenn genügend positive Rückmeldungen kommen, kriegen wir das Teil bestimmt ins SVN und somit per Update zugänglich. Aber mit vier Testern wär ich noch vorsichtig :-)

Peter-FL

Hey Andi,

hab die Datei auch gerade mal eingespielt. Sieht bisher gut aus ("Undefined value" Meldungen weg und dpt9 Decodierung). Also von mir aus grünes Licht;)

Danke für Deine Mühe!

Gruß Peter

Marthinx

Wann und wie kommt es dann ganz regulär per Update?
Die Vorgehensweise würde mich mal interessieren.

Danke

Andi291

Hallihallo,

das weiß ich auch nicht. Wenn mal so 20..30 Tester grün zurück gemeldet haben, würd ich Rudolph König mal kontaktieren. Kenne mich da auch nicht so gut aus.
Insofern: bitte fleißig Testen!!!

MiWe58

Hallo,

nachdem ich gestern diese Neuerungen gelesen habe, machte ich mich gleich heute ans Testen.
Schon seit einiger Zeit versuche ich meine Wärmepumpe (Heliotherm) über KNX an FHEM anzubinden, was bisher nicht geklappt hat.

Mit der neuen 10_EIB.pm  hat es nun schon recht gut geklappt.

Einzig die Darstellung irritiert mich noch etwas. Vielleicht fällt euch hierzu etwas ein?
Werte von "TempRuecklauf" und "TempVorlauf" werde prinzipiell richtig dargestellt. Das Komma ist allerdings verschoben

define WP_TempAussen EIB 14/0/0
attr WP_TempAussen IODev KNX
attr WP_TempAussen model tempsensor
attr WP_TempAussen room 2.50_Heliotherm

define WP_TempBrauchwasser EIB 14/0/2
attr WP_TempBrauchwasser IODev KNX
attr WP_TempBrauchwasser model tempsensor
attr WP_TempBrauchwasser room 2.50_Heliotherm

define WP_TempVorlauf EIB 14/0/3
attr WP_TempVorlauf IODev KNX
attr WP_TempVorlauf model tempsensor
attr WP_TempVorlauf room 2.50_Heliotherm

define WP_TempRuecklauf EIB 14/0/4
attr WP_TempRuecklauf IODev KNX
attr WP_TempRuecklauf model tempsensor
attr WP_TempRuecklauf room 2.50_Heliotherm

define WP_TempPuffer EIB 14/0/5
attr WP_TempPuffer IODev KNX
attr WP_TempPuffer model tempsensor
attr WP_TempPuffer room 2.50_Heliotherm

define WP_HKRHeizgrenze EIB 14/1/76
attr WP_HKRHeizgrenze IODev KNX
attr WP_HKRHeizgrenze model tempsensor
attr WP_HKRHeizgrenze room 2.50_Heliotherm

define WP_WWTempSoll EIB 14/1/83
attr WP_WWTempSoll IODev KNX
attr WP_WWTempSoll model tempsensor
attr WP_WWTempSoll room 2.50_Heliotherm




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

antonwinden

Hallo,
Da hätte ich auch ein Anliegen :
wäre es möglich auch den Datentyp 14 (Float nach IEEE 754) zu integrieren?
Meine Schnittstelle für den Stromzähler liefert leider genau diese Typen...
auf der seite http://www.h-schmidt.net/FloatConverter/IEEE754de.html ist ein umrechner vorhanden nur mein perl ist praktisch nicht vorhanden.
wäre super
anton
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

Andi291

Hallo,

Du zum Lesen/Empfangen ist der Datentyp bereits drin:

   } elsif ($code eq "dpt14") # contributed by Olaf
       {
           ...
   }

Funktioniert auch bombig. Nur Schreiben/Senden geht nicht. Musst Du zwingend Senden, oder reicht Dir Empfangen?

antonwinden

stimmt schon das der Typ drinnen ist nur funktioniert es nicht - zumindestens bei mir ergibt dpt12 das gleiche wie dpt14.
in ets kann ich mir im busmonitor aber die richtigen ergebnisse sehen.
z.b. ist 43F3E3D7  1140057047 in fhem in ets sehe ich aber die richtigen werte nämlich 487,78
auf http://www.h-schmidt.net/FloatConverter/IEEE754de.html kommt auch 487,78 raus

dpt 14 (14.000 bis 14.079) ist für unter anderem elektrische energie so genormt ("4-Octet Float Value")
4 octets: F32
4MSB 3 2 1LSB
The values are encoded in the IEEE floating point format according IEEE 754.

S Exponent.......I   Fraction
F F F F F F F F  F F F F F F F F  F F F F F F F F  F F F F F F F F

S (Sign) Exponent Fraction
= {0,1}
= [0 ... 255]
= [0 ... 8 388 607]

danke anton
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

Andi291

Aaaah! Verstanden. Funktion Kaputt :-)

Ich bei Gelegenheit schau mal drauf...

antonwinden

KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

Andi291

Hallo Anton,

also bei mir geht's ohne weitere Änderungen:

2015.03.31 18:40:20 1: Byte: 66, Sign: 1, Bytee: 17136, Exp: 6, Bytem: 15728640, Mant: 15728640
2015.03.31 18:40:20 1: EIB dpt14 parse 42f00000 translated: 120
2015.03.31 18:41:36 1: Byte: 67, Sign: 1, Bytee: 17395, Exp: 8, Bytem: 15983575, Mant: 15983575
2015.03.31 18:41:36 1: EIB dpt14 parse 43f3e3d7 translated: 487.779998779297

Nimm bitte meine 10_EIB.pm von Seite 1, stelle Dein LogLevel auf 5 und poste mal die relevanten Zeilen...

antonwinden

#23
werd ich machen -
so hab es jetzt riskiert und es funktioniert tatsächlich richtig - super

merci anton
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

antonwinden

Danke für die Super Arbeit - bei mir funktionieren jetzt die Datentypen die ich brauche.
Fehlt nur mehr loglevel zu streichen und dafür verbose reinzugeben  8) dann wäre es glatt aktuell gepflegt.
danke anton
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

Andi291

Hallo Anton,

gerne.

Was genau meinst Du? Das "spammen" ins fhem-Log bei großem Loglevel ist in der Version ebenfalls deaktiviert...
Mit gesetztem Loglevel 2 bekomme ich keine Einträge mehr im normalen Log.

aliate

Das Log ist sauber, kann ich nur bestätigen :)

Gibt es eine Möglichkeit die normalen EIB-Schaltvorgänge (z.B. Licht ein/aus) ins Log zu bekommen?
Kann bei verbose und loglevel einstellen was ich will, bzgl. EIB-Bewegungen kommt nichts mehr in die Log-Datei.

Andi291

Abend!

Ja, es gibt ne radikale Möglichkeit :-P
Wenn Du das Log-Level auf 5 stellst, kriegst Du alles, was Du möchtest:

2015.04.02 19:31:54 5: Received packet: 00271289423d0080

2015.04.02 19:31:54 5: decode_eibd byte len: 1 array size: 1
2015.04.02 19:31:54 5: SimpleRead msg.type: write, msg.src: 1289, msg.dst: 823d
2015.04.02 19:31:54 5: SimpleRead data: 00
2015.04.02 19:31:54 4: SimpleRead: B1289w823d00

2015.04.02 19:31:54 4: tul: B1289w823d00
2015.04.02 19:31:54 5: tul dispatch B1289w823d00
2015.04.02 19:31:54 4: EIB parse off for rtr_flur_og_heizen model: fs20 dpt: HASH(0x11fed88)
2015.04.02 19:31:54 4: EIB parse off for rtr_flur_og_heizen model: fs20 dpt:  unit:
2015.04.02 19:31:54 4: EIB rtr_flur_og_heizen model fs20 value off could not be translated.
2015.04.02 19:31:54 5: EIB rtr_flur_og_heizen off
2015.04.02 19:31:54 5: Triggering rtr_flur_og_heizen (2 changes)
2015.04.02 19:31:54 5: Notify loop for rtr_flur_og_heizen off

Was genau hättest Du Dir den vorgestellt?
Meiner Meinung nach haben die Daten nichts im fhem-log verloren. Du kannst ja prinzipiell alle Elemente parallel in mehrere Logs schreiben - dann hast Du auch wieder alles beieinander...

aliate

Ursprünglich, in der originalen EIB_pm landete ja alles was EIB/KNX betrifft im Log. Ganz egal was man in den einzelnen EIB-Geräten bei verbose/loglevel eingestellt hat.
Ich hatte von jedem Gerät die on/off Meldungen im Log stehen.

014.12.30 11:50:46 2: EIB Garage_Licht on
2014.12.30 11:50:49 2: EIB EIB_4001 off
2014.12.30 11:50:49 2: EIB EIB_4000 off
2014.12.30 11:50:50 2: EIB Keller_Treppe on
2014.12.30 11:50:52 2: EIB Putzen off
2014.12.30 11:51:03 2: EIB EIB_3204 off
2014.12.30 11:51:03 2: EIB Garage_Licht on
2014.12.30 11:51:08 2: EIB Keller_Holz_Rechts on
2014.12.30 11:51:08 2: EIB Keller_Holz_Links on


Das war mir definitiv zu viel, weil da Geräte/Meldungen dabei sind die zum einen im Sekundenabstand kommen und das Log zumüllen und zum anderen mich die Geräte auch nicht interessieren.
Der Jetzt-Zustand ohne "spammerei" ist mir also ganz recht.

Es gibt jedoch ein paar Schalter, da würden mich die Logeinträge schon interessieren, zumindest wenn es um Fehlersuche geht. Mir geht es hier nur um diese "on/off" Meldungen.

Verbose im Gerät global steht bei mir auf 3 und ich kann auch bei den einzelnen EIB-Geräten einstellen was ich will, die Einträge kommen nicht ins Log.

Hast du da vielleicht eine Idee?

antonwinden

#29
Zitat von: Andi291 am 02 April 2015, 18:38:48
Hallo Anton,

gerne.

Was genau meinst Du? Das "spammen" ins fhem-Log bei großem Loglevel ist in der Version ebenfalls deaktiviert...
Mit gesetztem Loglevel 2 bekomme ich keine Einträge mehr im normalen Log.
ich meinte damit das wenn ich es richtig verstanden habe loglevel nicht mehr loglevel genannt werden soll sondern verbose  8)
zumindestens soll man bei neuen modulen verbose statt loglevel einbinden - nur ein anderes wort für das gleiche...

was wichtiger wäre ein implementieren von event-on-change-reading damit kann man ein zumüllen von logfiles mit immer gleichen werten vermeiden.
ist hier beschrieben: http://forum.fhem.de/index.php/topic,32716.0.html
überdrüber wäre dazu noch ein prozentwert der angibt ab welcher änderung ein notify bzw ein schreiben ins logfile erfolgen soll - diese schwelle kann man leider nicht bei jedem gerät in ets einstellen... ist aber nicht wirklich notwendig da wohl eher nicht systemkonform
danke anton
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

Andi291

@Aliate:

Hallo Aliate,

also in DEM log landen die Meldungen definitiv nur, wenn das globale verbose >= 5 ist. Eine gerätesensitive Auswertung passiert meiner Meinung nach nicht. Eine Idee hab ich allerdings.
Bei den Geräten, welche Dich interessieren, konfigurierst Du ein zusätzliches FileLog. Dort lässt Du alle relevanten Devices reinschreiben - damit erhälst Du ein zeitsynchrones Log über alle genannten Devices. Was halt fehlt, sind Ausgaben vom FHEM selbst. Diese müsstet Du manuell mit dem FHEMLog mergen, wenn erforderlich...

define rtr_ankleide_heizen EIB 8/2/40
attr rtr_ankleide_heizen IODev tul
#...
#logfile 1
define FileLog_rtr_ankleide_solltemp FileLog ./trace/rtr/rtr_schlafzimmer_%Y-%m.log rtr_ankleide_solltemp
#logfile 2
define FileLog_mein_zweites_log ./trace/rtr/biglog.log rtr_ankleide_solltemp


Hab ich Dich richtig verstanden? Wenn nein, was wäre Dein genauer Usecase?




@Anton:

Hallo Anton,

ah - jetzt weiß ich, was Du meinst :-) Mea culpa - natürlich verbose und nicht loglevel. Das Attribut LogLevel habe ich nie benutzt, immer nur verbose.

Die Änderungen aus dem von Dir genannten Thread (Event on Change reading) sind bereits enthalten!

Das mit dem Prozent...würde ich eher ungern umsetzen wollen. Damit müsste man ja noch einen Wert cachen, bewerten und dann ggf. erst ausgeben. Kannst Du in den von Dir betroffenen Telegrammen nicht "Sender"-seitig was machen?
Also ich kann bei allen meinen KNX-Devices, welche Analogwerte senden, eine Schwelle zum Senden einstellen...



Frohe Ostergrüße - Andreas

MiWe58

Hallo,

darf ich euch nochmals auf meinen Beitrag vom 22.3. aufmerksam machen?

Hat der beschriebene Effekt auch etwas mit Datentypen zu tun?
Sind die beim Lesen zu erwarteten Datentypen irgendwo einzustellen?

Meine bisherigen Recherchen haben mich leider noch nicht ans Ziel gebracht.

Für Tipps oder Unterstützung bis ich sehr dankbar.

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,

aber sicher darfst Du :-) Gut so, denn das hatte ich verdrängt.

Hast Du das Verhalten nur mit "meiner" Version der 10_EIB oder auch mit einer anderen?

Kannst Du vielleicht einen Trace mit der ETS ziehen? Alternativ: Kannst Du bitte global verbose auf 5 setzen, und einen Auszug Deiner Logdatei posten? Dann fräs ich mal durch...

MiWe58

Hallo Andi,

vielen Dank für Deine schnelle Reaktion. Anbei das Logfile

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,

sicher, dass der Datentyp ein DPT9 ist? Hier Dein Logauszug:

2015.04.03 16:24:22.816 4: EIB parse 42120000 for WP_TempVorlauf model: tempsensor dpt: HASH(0x2849320)
2015.04.03 16:24:22.817 4: EIB parse 42120000 for WP_TempVorlauf model: tempsensor dpt: dpt9 unit: °C
2015.04.03 16:24:22.817 5: EIB dpt9 parse 42120000 = 1108475904 sign: 1 mant: 0 exp: 0 translated: 0

Rechenvorschrift:

      my $fullval = hex($value);
      my $sign = 1;
      $sign = -1 if(($fullval & 0x8000)>0);
      my $exp = ($fullval & 0x7800)>>11;
      my $mant = ($fullval & 0x07FF);
      $mant = -(~($mant-1)&0x07FF) if($sign==-1);
      
      $transval = (1<<$exp)*0.01*$mant;


Bei Deinem Input spielt sich alles in den Bytes 3 und 4 ab. DPT9/Tempsensor arbeiten mit Byte 0 und 1.
-> Gemäß den Rechenvorschriften passt der Inhalt nicht zu einer DPT9!

Hast Du evtl. die Möglichkeit, Dir das mit dem Busmonitor von der ETS mal anzusehen?

Ganz auf Doof: versuch mal statt tempsensor den dpt14...könnte ein 4-Byte-Float sein...

MiWe58

Hallo Andi,

BINGO! das war es ganz offensichtlich. dpt14 funktioniert

Damit kann ich nun offenbar 5 Werte aus meiner Wärmepumpe auslesen. Alle werden richtig angezeigt. Das habe ich mit dem online Monitoring direkt auf dem KNX-Gateway überprüft.

Habe ich die bisherigen Meldungen richtig verstanden, dass es noch nicht möglich ist über das EIB-Modul auch Werte zu schreiben?
Ich möchte nach bestimmten Regeln Soll-Werte in der Heizung dynamisch anpassen.

Gruß und herzlichen Dank schon einmal

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,

das ist korrekt.

Die Codierung für dpt9 geht wie folgt:

# 2byte signed float
sub encode_dpt9 {
    my $state = shift;
    my $data;

    my $sign = ($state <0 ? 0x8000 : 0);
    my $exp  = 0;
    my $mant = 0;

    $mant = int($state * 100.0);
    while (abs($mant) > 2047) {
        $mant /= 2;
        $exp++;
    }
    $data = $sign | ($exp << 11) | ($mant & 0x07ff);
    return $data
}


Für DPT14-Implenentierung, bzw. Testen fehlt mir gerade die Zeit. Wenn Du das als Denkanstoß nimmst, müsste es klappen :-)

MiWe58

Noch einmal eine Frage zu den Formaten:

in meinem Gateway kann ich zu den einzelnen Werten die folgenden Formate einstellen:

Boolean
float
signed
unsigned

Nicht alle Formate für alle Werte (ist ja auch klar)

float scheint dpt14 zu sein
kannst Du noch ein Tipp für die anderen Formate geben?

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

aliate

Zitat von: Andi291 am 03 April 2015, 16:06:24
@Aliate:

Hallo Aliate,

also in DEM log landen die Meldungen definitiv nur, wenn das globale verbose >= 5 ist. Eine gerätesensitive Auswertung passiert meiner Meinung nach nicht. Eine Idee hab ich allerdings.
Bei den Geräten, welche Dich interessieren, konfigurierst Du ein zusätzliches FileLog. Dort lässt Du alle relevanten Devices reinschreiben - damit erhälst Du ein zeitsynchrones Log über alle genannten Devices. Was halt fehlt, sind Ausgaben vom FHEM selbst. Diese müsstet Du manuell mit dem FHEMLog mergen, wenn erforderlich...

define rtr_ankleide_heizen EIB 8/2/40
attr rtr_ankleide_heizen IODev tul
#...
#logfile 1
define FileLog_rtr_ankleide_solltemp FileLog ./trace/rtr/rtr_schlafzimmer_%Y-%m.log rtr_ankleide_solltemp
#logfile 2
define FileLog_mein_zweites_log ./trace/rtr/biglog.log rtr_ankleide_solltemp


Hab ich Dich richtig verstanden? Wenn nein, was wäre Dein genauer Usecase?



Top Andi, das ist für mich eine gute Lösung :)

Vielen Dank für Deine Hilfe, schön dass hier im KNX-Bereich wieder etwas los ist ;)

Allen zusammen schöne Osterfeiertage

Gruß Hermann

antonwinden

Zitat von: Andi291 am 03 April 2015, 16:06:24
@Anton:

Hallo Anton,

ah - jetzt weiß ich, was Du meinst :-) Mea culpa - natürlich verbose und nicht loglevel. Das Attribut LogLevel habe ich nie benutzt, immer nur verbose.

Die Änderungen aus dem von Dir genannten Thread (Event on Change reading) sind bereits enthalten!

Das mit dem Prozent...würde ich eher ungern umsetzen wollen. Damit müsste man ja noch einen Wert cachen, bewerten und dann ggf. erst ausgeben. Kannst Du in den von Dir betroffenen Telegrammen nicht "Sender"-seitig was machen?
Also ich kann bei allen meinen KNX-Devices, welche Analogwerte senden, eine Schwelle zum Senden einstellen...



Frohe Ostergrüße - Andreas
hab ich gar nicht bemerkt das event-on-change schon drinnen ist.
hab leider 2 knx teile wo ich keine schwelle einstellen kann - wobei es eigentlich nur eines betrifft (beim anderen reicht event-on-change-update) und da hat der hersteller gemeint er berücksichtigt das bei der nächsten version des app programms des devices...
also auch kein problem
danke und frohe ostern
anton

p.s. jetzt wäre einchecken angesagt ;-)
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

antonwinden

Hallo Andi,
was überdrüber wäre die implementierung von event-on-change-reading denn damit würden gleichbleibende werte nicht das logfile zumüllen.
frohe ostern
anton
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

MiWe58

Zitat von: antonwinden am 04 April 2015, 09:01:36
hab ich gar nicht bemerkt das event-on-change schon drinnen ist....

Hallo Anton,
auch ich suche nac der Möglichkeit von "event-on-Change", weil mir das logfile sonst voll geschrieben wird.

Wo hast Du es gefunden bzw. wie implementiert?
Bei mir steht es bei der Auswahl von "attr" nicht zur Verfügung

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,

geht grundsätzlich ganz leicht - der Code ist in meinem File schon drin, aber nicht aktiv. Hier die Details:
http://forum.fhem.de/index.php/topic,32716.0.html

In der Version am Anfang des Postes einfach die Zeilen 308, 309, 310, 311, 362, 363, 366, 367 auskommentieren, und das Attribut setzen - fertig.

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.

MiWe58

Hallo Andi,

welchen Editor nutzt Du, damit Dir die Zeilennummern angezeigt werden?

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

MiWe58

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 Andi,

das scheint für DEINE Anlage so OK zu sein. Mein Eindruck ist, dass das leider nicht allgemeingültig ist.
Leider kann ich mein Gerät nicht so konfigurieren, dass es nur Änderungen sendet.
Es sendet ständig.
Ich werde mich auch mit dem Hersteller in Verbindung setzen. Vielleicht kann er dort etwas machen. Ich ja schließlich einer der Pilotanwender.

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 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 :

aliate

Guten Abend,

leider etwas verspätet, aber besser spät als nie ;)

Event-on-Change funktioniert, wie die anderen Änderungen von Dir, bei mir bestens.

Am besten schreibst Du Rudolf König mal direkt an, um die Datei einzuchecken. Er liest im KNX-Bereich meines Wissens nach nicht aktiv mit.

Gruß
Hermann

Andi291

Hallo Hermann,

danke fürs Feedback.

Leider kann ich ihm keine PM schicken. Bin geblockt :-(

Kannst Du?

Grüße, Andreas

aliate

Zitat von: Andi291 am 14 April 2015, 21:17:27
Hallo Hermann,

danke fürs Feedback.

Leider kann ich ihm keine PM schicken. Bin geblockt :-(

Kannst Du?

Grüße, Andreas

Kann ihm auch keine Mitteilungen schicken.

Habe mir erlaubt, das Ganze mal unter "Wunschliste" vorzutragen.

http://forum.fhem.de/index.php/topic,36303.0.html


Danke nochmal für Deine Arbeit.

Schönen Abend noch.

Gruß
Hermann

SkorpionMB

Hallo
danke für die ergänzungen im eib modul
werde das jetzt auch mal testen
beim start von fhem in putty kommt allerdings direkt folgende fehlermeldung
"my" variable $model masks earlier declaration in same scope at ./FHEM/10_EIB.pm line 245, <> line 1.
"my" variable $code masks earlier declaration in same scope at ./FHEM/10_EIB.pm line 303, <> line 1.
sonst scheint es zu funktionieren

Andi291

Hallo Skorpion,

die kommen bei mir auch. Krieg ich auch nicht wirklich weg. Dafür kenn ich mich doch nicht genug aus :-P

Übers lange Wochenende werd ich mich mal hinsetzen, saubermachen und Einchecken. Dann müssten die Updates drin sein...

Grüße, Andreas

Andi291

Hallo zusammen,

die neue Version ist nun regulär über Update verfügbar.

Grüße, Andi