Zitat von yuhu
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
eBus->USB->Plugin->KNX
Einklappen
Dieses Thema ist geschlossen.
X
X
-
Gast
Die Vaillant Steuerung hat beim 2-ten Ferienzeitenraum einen Fehler. Statt der Jahreszahl wird FF zurückgegeben - Oder steht hier etwas anderes?
Zum Testen habe ich folgendes eingestellt.
1: 04.07.2013 - 18.07.2013
2: 22.08.2014 - 27.08.2014
Code:2013-02-17 17:35:21.144 [0x80 NET] >>> client [6] get ci holiday_period 2013-02-17 17:35:21.144 [0x02 NOT] search: get ci.holiday_period 2013-02-17 17:35:21.144 [0x02 NOT] found: 15B509030D4300 type: 3 ==> id: 6 2013-02-17 17:35:21.144 [0x10 DBG] data: - 2013-02-17 17:35:21.144 [0x10 DBG] add: id: 6 clientfd: 6 ==> entries: 1 2013-02-17 17:35:21.144 [0x10 DBG] del: id: 6 clientfd: 6 ==> entries: 0 2013-02-17 17:35:21.144 [0x20 EBH] 15 b5 09 03 0d 43 00 2013-02-17 17:35:21.303 [0x20 EBH] 0c 04 07 0d ff 16 08 12 07 0d ff 1b 08 2013-02-17 17:35:21.303 [0x10 DBG] id: 6 elem: 0 p1: 1 p2: 2 p3: 3 2013-02-17 17:35:21.303 [0x10 DBG] id: 6 elem: 1 p1: 5 p2: 6 p3: 4 2013-02-17 17:35:21.303 [0x10 DBG] id: 6 elem: 2 p1: 7 p2: 8 p3: 9 2013-02-17 17:35:21.303 [0x10 DBG] id: 6 elem: 3 p1: 11 p2: 12 p3: 10 2013-02-17 17:35:21.303 [0x80 NET] <<< client [6] 04.07.2013 error start2 ==> 16 08 ff 18.07.2013 error end2 ==> 1b 08 ff
Kommentar
-
Nochmal die kurze Frage sollen die GAs automatisch rauspurzeln oder lieber manuell? Fürs automatische rauspurzeln hätte ich bis dato keine Lösung damit sich das nicht ändert wenn man mal eine neue config aus der ebusd *.csv ausliest. Ergo: Auch doof.
Problem auf später verschieben und dafür das erste "Release" machen ?Umgezogen? Ja! ... Fertig? Nein!
Baustelle 2.0 !
Kommentar
-
So ich hab den knxd jetzt mal ins SVN geschoben.
Am einfachsten ist es wenn man den ganzen Inhalt des Ordners knxd ins Wurzelverzeichnis kopiert/auscheckt.
Insgesamt gibt es neben der ebusd noch 3 Configs. Generell ist das noch etwas unterdokumentiert.
eibga.conf kennen alle WireGate Besitzer, entweder einfach kopieren oder in der knxd.conf den Pfad dazu angeben. Sonst einfach ein symlink im Ordner /etc/knxd erstellen. Die ist nur wichtig für User mit Bussystem.
knxd.conf ist die Config für den knxd. Dort wird z.B. EIB deaktiviert und die globalen Pfade angeben (RRDs,EIBD,Logs etc.).
ebus_plugin.conf gibt es eigentlich nur weil das ganze nun doch als Plugin läuft. Da sich aber sicherlich noch einige Strukturen im Plugin ändern werden ist es somit für alle später einfacher, i.d.R. wird die ja nicht mehr angefasst. Man könnte überlegen die mit in die knxd.conf zu übernehmen.
Unter tools liegt noch ein make_config.pl Perl script. Der Aufruf erfolgt z.B. über
Code:perl make_config.pl -i /tmp/vaillant.csv -o /etc/knxd/eBus_plugin.conf
Code:apt-get install libmath-round-perl libmath-basecalc-perl librrds-perl libproc-pid-file-perl libproc-daemon-perl
Da ich sicherlich so einiges vergessen hab ... fragen.
GrüßeUmgezogen? Ja! ... Fertig? Nein!
Baustelle 2.0 !
Kommentar
-
Gast
Zitat von kleinklausi Beitrag anzeigenIm Sinne der Trennung von ebusd und ebus-knxd, könnte ich mir gut vorstellen, dass der ebusd für alle cycle Telegramme in der Config jeweils den letzten Wert, der über den EBus gegangen ist, puffert. Somit könnte dann jeder im ebus-knxd die zeitliche Auflösung selber bestimmen. Entweder er pollt alle Minute und sendet auf den KNX oder er schreibt alle 30 Sekunden in ein RRD usw. Abfragen des ebusd könnte dann mit einem get_cycle oder auch mit einem get gemacht werden.
JuMi2006 hat da schon nachgehackt, damit diese Werte ähnlich einfach wie get/set abgeholt werden können.
Statt dem get/set steht dann einfach ein cyc davor. zB cyc broad date_time_temp temp sollte dann als Anwort zB 3.2 kommen.
Struktur Idee:
Code:struct cycbuf { int key; /**< internal number - now we need it */ unsigned char msg[CMD_SIZE_S_MSG]; /**< zz + cmd + len + msg */ unsigned char buf[CMD_SIZE_S_MSG]; /**< NN + Data*/ };
Wie könnte der genutzt werden?
Gibt es noch andere Ideen?
Kommentar
-
Gast
So aktueller Commit (1500):
svn commit -m "add internal buffer for cyc data so we can use cyc command like get/set to fetch last data"
In Aktion sieht das ganze so aus.
Code:~/src/ebusd/tools $ telnet backup 8888 Trying 192.168.1.16... Connected to backup.lan. Escape character is '^]'. cyc broad load_vf_temp temp 17.50 cyc broad date_time_temp 3.750 Sun 17.02.2013 23:47:01 cyc broad date_time_temp temp 3.750 shutdown Connection closed by foreign host.
Kommentar
-
Die neuen Versionen kommen ja schneller, als man mit dem auschecken fertig ist
Ich hab gestern get/set bei mir getestet, scheint soweit zu funktionieren. Dann werd ich heut abend mal updaten und berichten. Nur mit dem Testen der Kühlfunktion warte ich lieber auf wärmeres Wetter
Wie ist das mit dem knxd - ist der für ein "normales" Linux gedacht oder soll der auch auf einem Wiregate/Clonegate zum Einsatz kommen? Nicht dass sich da der knxd und der wiregated ins Gehege kommen.
Marcus
Kommentar
-
knxd und wiregated kommen sich nicht in die queere ... das kann durchaus parallel laufen ... tut es hier auch (nicht auf meinem Original, aber auf dem "EntwicklungsGate" -> Alix1D).
Der Vorteil ist dass man die eibga.conf einfach nur passend in der knxd.conf verlinken muss. Der Pfad zum lokalen eibd ist dort auch schon vermerkt.
Es war mit der größte Aufwand sämtliche hardcoded Pfade aus dem wiregated.pl zu entfernen und das ganze über die knxd.conf flexibel zu machen. Auf einem 11er Ubuntu in der VM hat das alles auch anstandslos geklappt.Umgezogen? Ja! ... Fertig? Nein!
Baustelle 2.0 !
Kommentar
-
cycle und Alter der Telegramme
Zitat von yuhu Beitrag anzeigenStatt dem get/set steht dann einfach ein cyc davor. zB cyc broad date_time_temp temp sollte dann als Anwort zB 3.2 kommen.
Zitat von yuhu Beitrag anzeigenSollte da noch ein Zeitstempel rein von wann der Wert ist?
Wie könnte der genutzt werden?
Interessant ist dann wirklich die Frage, was wir damit machen.
Mal ein paar Ideen:
1. ein weiterer optionaler Parameter "maximales Alter in Minuten". Wenn dieser nicht angegeben ist, wird der letze empfangene Wert zurückgegeben - egal wie alt der ist. Ist der Parameter angegeben, wird ein Wert nur zurückgegeben, falls der Wert nicht älter als X Minuten ist.
2. eigentlich wie 1. nur dass als Standard ein Wert nur zurückgegeben wird, falls er nicht älter als X Minuten ist. Wenn der optionale Parameter "egal wie alt" angegeben ist, wird der letzte verfügbare Wert zurückgegeben.
3. die Ausgabe beinhaltet immer den Wert und den Zeitstempel. Sowas wie: "17.5; 2013-02-18 23:20MEZ"
Ich tendiere zu 1. - so bin ich das aber halt gewohnt aus z.B. wiregate knx_read
Offen wäre noch was zurückgegeben wird, wenn der Puffer für den angefragten Wert leer ist.
Was meint Ihr?
Gruß Moritz
Kommentar
-
Zitat von yuhu Beitrag anzeigenSo aktueller Commit (1500):
svn commit -m "add internal buffer for cyc data so we can use cyc command like get/set to fetch last data"
In Aktion sieht das ganze so aus.
Code:~/src/ebusd/tools $ telnet backup 8888 Trying 192.168.1.16... Connected to backup.lan. Escape character is '^]'. cyc broad load_vf_temp temp 17.50 cyc broad date_time_temp 3.750 Sun 17.02.2013 23:47:01 cyc broad date_time_temp temp 3.750 shutdown Connection closed by foreign host.
Hi yuhu,
super, danke Dir, habe ich gestern beriets die CYC Telegramme, die bei dem TEM Kontroller sehr oft kommen, ausprobiert, jetzt ist es perfekt. :-)
Zu meinem Problem, den ich hier vorher beschrieben hatte. Vielleicht haben andere auch so etwas. Wie schon beschrieben konnte ich die Telegramme empfanden aber nicht senden. Das lag dann tatsächlich an dem Interface (Poti!). Ich habe ein simples selbsgebautes Interface, falls Interesse besteht kann ich es hier vorstellen. Ich habe nach und nach die C-Sourcen angeschaut, ich wollte ja nicht glauben dass es an dem Poti lag, da ich die Telegramme empfangen konnte...
Na ja, letzendlich habe ich die Stelle gefunden, wo das "FF"= Bussaddr. (Du hast wirklich alles komplett eingebaut incl. dwer Kollisionserkennung, aller Achtung) gesendet aber nicht empfangen wurde, und daran lag das Problem. Anscheinend war die RX-> TX "loop" im Interface nicht ausreichend Empfindlich. Jedenfalls jetzt funktioniert es. Ich warte noch auf die Informationen über die TEM Kommandos, WernerF hier aus dem Forum wollte mir diese zuschicken. Bis jetzt habe ich ein paar implementiert, vieles ist aber nicht ganz eBUS-Konform...
Gruß
Thomas
Kommentar
-
Zitat von kobza Beitrag anzeigenIch habe ein simples selbsgebautes Interface, falls Interesse besteht kann ich es hier vorstellen.
Grüße
Guste
Kommentar
-
Zitat von kleinklausi Beitrag anzeigenJa, den Zeitstempel mitzuspeichern macht auf jeden Fall Sinn.
Offen wäre noch was zurückgegeben wird, wenn der Puffer für den angefragten Wert leer ist.
Was meint Ihr?
- Was mache ich wenn der Wert zu alt ist? Gerade bei zyklischen Daten (CYC) macht das doch wenig Sinn. Wer soll das wie auswerten ... der Wert kann ja nur zu alt sein weil irgendwas mit der Heizung nicht stimmt.
- Der letzte ist zwangsläufig der aktuelle - egal wie alt
Zitat von kobza Beitrag anzeigenIch habe ein simples selbsgebautes Interface, falls Interesse besteht kann ich es hier vorstellen.
Zitat von kobza Beitrag anzeigen... (Du hast wirklich alles komplett eingebaut incl. der Kollisionserkennung, aller Achtung)...
GrüßeUmgezogen? Ja! ... Fertig? Nein!
Baustelle 2.0 !
Kommentar
Kommentar