Ankündigung

Einklappen
Keine Ankündigung bisher.

eBus->USB->Plugin->KNX

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Zitat von JuMi2006 Beitrag anzeigen
    @makki:
    schlimmer sind die memleaks
    ..
    Oh ja, noch schlimmer ist, das nichtmal der lieber Gott (obwohl wir grad noch Papst sind) weiss, warum

    Ich wiederhole das gerne: ich liebe Perl, weil irgendwie kann ichs - aber es gibt da ein paar Sachen die mir Übelkeit machen..
    Da ist C so schön ehrlich, da gibts nen GDB und nen Valgrind der einem eindeutig sagt, wo man den Speicher verbummelt hat..
    Anyway, iSV Perl: es gibt immer viele mögliche Wege; aber Tipp vom Kücken: liefere etwas für den Monit mit, das der auf den Speicher aufpasst weil .. Mutter der memleaks..?

    Makki
    EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
    -> Bitte KEINE PNs!

    Kommentar


      Hi,

      bei zyklischen Master(M) Slave(S) Nachrichten ist bei manchen der Inhalt M->S ebenso von Interesse als der Inhalt von S->M.

      Derzeit wird bei diesen Nachrichten nur der Inhalt von S->M abgelegt.

      Falls das jemand benötigt müsste man sich eine Kennung in der Konfiguration überlegen, was (M->S, S->M oder beides) gesucht wird.

      roland

      Kommentar


        Stimmt ...
        auch wenn es bei mir gerade ruhig ist ... ich bau das grad in den KNX-Bus ein um da produktiv zu testen ...
        Sind die meisten M>S die interessant wären nicht einfach welche die mit einem ACK quittiert werden ?
        Umgezogen? Ja! ... Fertig? Nein!
        Baustelle 2.0 !

        Kommentar


          Jein. Ich weiß bei den meisten nicht wirklich was der Inhalt ist.

          Code:
          2013-02-26 22:29:21.995 [EBH] 1 10 50 b5 05 07 2b 00 01 00 00 00 00 24 00 00 00 00
          2013-02-26 22:29:22.492 [EBH] 1 10 08 b5 11 02 03 00 1e 00 0a 33 02 5e 09 28 06 03 2c 00 00 67 00
          2013-02-26 22:29:22.655 [EBH] 1 10 08 b5 11 01 02 8a 00 05 00 00 c8 00 c8 ca 00
          2013-02-26 22:29:22.821 [EBH] 1 10 ed b5 08 07 07 01 01 e0 03 f0 01 b5 00 00 00 00
          2013-02-26 22:29:23.893 [EBH] 1 10 08 b5 13 03 04 cd 01 7f 00 0a cd 01 00 00 00 00 01 00 01 00 fa 00
          2013-02-26 22:29:23.989 [EBH] 1 03 0a b5 03 02 00 01 dc 00 0a ff ff ff ff ff ff ff ff ff ff 0f 00
          2013-02-26 22:29:25.837 [EBH] 1 10 08 b5 10 09 00 02 3e 00 00 00 00 00 02 13 00 00 00 00
          2013-02-26 22:29:25.992 [EBH] 1 10 08 b5 09 04 0e d1 00 00 29 00 00 00 00
          2013-02-26 22:29:27.012 [EBH] 1 10 50 b5 04 01 00 ff 00 0a 03 47 28 22 26 02 02 13 80 03 e9 00
          2013-02-26 22:29:27.853 [EBH] 1 10 52 b5 04 01 01 7b 00 09 14 03 00 00 05 81 00 01 00 a7 00
          2013-02-26 22:29:28.020 [EBH] 1 10 52 b5 04 02 0d 00 53 00 05 1e 00 e8 01 14 a4 00
          2013-02-26 22:29:28.204 [EBH] 1 10 52 b5 04 01 32 48 00 0a 00 24 06 03 01 01 60 03 01 00 46 00
          2013-02-26 22:29:28.354 [EBH] 1 10 52 b5 04 01 31 4b 00 02 00 01 2d 00
          2013-02-26 22:29:28.517 [EBH] 1 10 08 b5 09 03 29 b8 01 fd 00 03 b8 01 00 70 00
          2013-02-26 22:29:28.680 [EBH] 1 10 08 b5 09 03 29 bb 00 ca 00 03 bb 00 64 b5 00
          2013-02-26 22:29:28.844 [EBH] 1 10 08 b5 09 03 29 ba 00 51 00 03 ba 00 0a cd 00
          2013-02-26 22:29:29.007 [EBH] 1 10 08 b5 09 03 29 e2 01 b3 00 03 e2 01 62 af 00
          2013-02-26 22:29:29.882 [EBH] 1 10 08 b5 09 03 29 01 00 23 00 05 01 00 2c 02 00 e0 00
          Hier sind schon einige Beispiele dabei. Jedoch habe ich keine Ahnung was da so rübergeht. Für Vaillant brauchen wir das ja nicht wirklich, wir können ja aktiv abfragen.

          Wie gesagt, wenn es gebraucht wird kann ich es einbauen.

          Kommentar


            Du hast recht, ich hatte mich da nur an meine Geistertelegramme erinnert.
            Na da muss ich dann nochmal ran und einfach ein paar verschiedene datentypen mitloggen lassen.

            Jetzt ist aber mangels 2. Adapter Bastelstop für eine Woche. Ich will sehen was ebusd und knxd können und sich Speicherverbrauch entwickelt. Das fällt mit dem Pi aber echt schwer...die Kiste macht irgendwie Spaß.

            Grüße
            Umgezogen? Ja! ... Fertig? Nein!
            Baustelle 2.0 !

            Kommentar


              Vorschlag: Wenn es gebraucht wird, setzen wir das um.

              ToDo: Aufzeichnung von Master und Slave Inhalt zyklischer Master Slave Nachrichten.

              Kommentar


                Man müsste die aufzeichnen (separates *.log?) und dann durch die bekannten Decodierungsroutinen jagen. Dann sieht man evtl. was sinnvolles. Irgendwo hatte ich schonmal WW/Heizen entdeckt, muss ich nochmal rauskramen.

                Im eBus-Wiki gab es dazu mal ein Script dass sowas ähnliches gemacht hat ... find ich aber auf die Schnelle nicht. Die Anzahl der unterschiedlichen CYC hält sich ja in Grenzen.
                Umgezogen? Ja! ... Fertig? Nein!
                Baustelle 2.0 !

                Kommentar


                  Ein separates Log wäre eine Möglichkeit jedoch werden bereits 2 Logs geschrieben. (Log und Raw)

                  Meinst Du mit "Man müsste die aufzeichnen..." nur die Unbekannten?
                  In welcher Art? Hier würde vielleicht eine eigene Log Klasse ausreichen.

                  Kommentar


                    Hallo Roland und alle,

                    ich wolte jetzt endlich mal Eure vielen Änderungen ausprobieren, um dann auch Langzeit-Feedback geben zu können (bin Vater geworden und war deswegen zeitlich etwas eingespannt :-)

                    Was ich gemacht habe:
                    1. make distclean
                    2. autogen.sh
                    3. make install

                    Wenn ich jetzt den ebusd aufrufe bekomme ich Speicherzugriffsfehler:
                    Code:
                    root@wiregate248:/home/user/src/ebusd/ebusd# ebusd -d /dev/ttyUSBHeizung -f -lALL 
                    2013-02-27 12:27:10.993 [WAR] no command files found ==> decode disabled.
                    2013-02-27 12:27:10.994 [INF] command files read.
                    2013-02-27 12:27:10.995 [INF] /dev/ttyUSBHeizung opened.
                    2013-02-27 12:27:10.995 [INF] port 8888 opened.
                    2013-02-27 12:27:10.995 [INF] msg queue initialized.
                    2013-02-27 12:27:12.377 [EBH] 1:  10 03 08 00 08 66 22 00 03 80 01 00 37 d8 00
                    Speicherzugriffsfehler
                    Dann hab ich mal eine neue cycle Config gebaut und auch da bekomme ich einen Speicherzugriffsfehler.

                    Code:
                    root@wiregate248:/home/user/src/ebusd/ebusd/tools# ./csv -c /etc/ebusd/
                    2013-02-27 12:53:40.137 [NOT] /etc/ebusd//wolf_cycle.csv
                    2013-02-27 12:53:40.138 [NOT] /etc/ebusd//wolf_cycle.csv success
                    2013-02-27 12:53:40.138 [INF] [000] cyc : reglerbetriebsdaten.betriebsdaten                       (type: 2) 030507           (len: 9) [7] ==> Betriebsdaten des Reglers an den Feuerungsautomaten
                    Speicherzugriffsfehler
                    Könnt Ihr mir helfen?


                    Danke und Gruß Moritz

                    Kommentar


                      Zitat von yuhu Beitrag anzeigen
                      Meinst Du mit "Man müsste die aufzeichnen..." nur die Unbekannten?
                      In welcher Art? Hier würde vielleicht eine eigene Log Klasse ausreichen.
                      Naja irgendwie müsste man die unbekannten Stück für Stück filtern.
                      Den ersten Tag nimmt man sich ein Telegramm und definiert es bis zum NN.

                      Entweder nimmt man dieses Log jetzt und wertet es später aus oder oder man macht das gleich während des loggens.

                      Gehen wir von 3 Datenbytes aus z.B.:

                      Varianten:
                      01 02 -> d2b
                      01 02 -> d2c
                      02 03 -> d2b
                      02 03 -> d2c
                      01 -> bcd
                      01 -> d1b
                      01 -> d1c
                      ...
                      03 -> d1c

                      Das ist natürlich sehr mühselig.
                      Umgezogen? Ja! ... Fertig? Nein!
                      Baustelle 2.0 !

                      Kommentar


                        Zitat von kleinklausi Beitrag anzeigen
                        bin Vater geworden und war deswegen zeitlich etwas eingespannt :-)
                        Herzlichen Glückwunsch.

                        Zum Speicherproblem:

                        Kannst du bitte mal Valgrind installieren und damit den ebusd starten.

                        valgrind --leak-check=full --show-reachable=yes ./ebusd

                        EDIT: einfach mal ohne CYC Config laufen lassen. Wenn die geht, dann erst die Config verwenden. Danke.

                        Komisch, Frank0207 hat auch so ein Verhalten auf einem Wiregate.
                        Bei den CYC Funktionen habe ich darum schon einiges geändert.
                        JuMi und ich haben diese Problem nicht.

                        Kommentar


                          Zitat von JuMi2006 Beitrag anzeigen
                          Naja irgendwie müsste man die unbekannten Stück für Stück filtern.
                          Den ersten Tag nimmt man sich ein Telegramm und definiert es bis zum NN.

                          Entweder nimmt man dieses Log jetzt und wertet es später aus oder oder man macht das gleich während des loggens.

                          Gehen wir von 3 Datenbytes aus z.B.:

                          Varianten:
                          01 02 -> d2b
                          01 02 -> d2c
                          02 03 -> d2b
                          02 03 -> d2c
                          01 -> bcd
                          01 -> d1b
                          01 -> d1c
                          ...
                          03 -> d1c

                          Das ist natürlich sehr mühselig.
                          Während dem loggen ist das einfach "scheiße"

                          Warum nicht im RAW Modus mitloggen (so wie es vom Bus gekommen ist.) und mit einem Comandline Tool diesen Log Stück für Stück ausseinander nehmen.

                          Aufbauend auf dem "csv" Tool (kann CSV Files lesen und anzeigen) sollte so ein RAW Dump gelesen und dann gleich dekodiert werden.

                          Damit könnten man Offline auch die Config testen.

                          Kommentar


                            Zitat von yuhu Beitrag anzeigen
                            Herzlichen Glückwunsch.
                            Danke!

                            Zitat von yuhu Beitrag anzeigen
                            valgrind --leak-check=full --show-reachable=yes ./ebusd

                            EDIT: einfach mal ohne CYC Config laufen lassen.
                            Gesagt, getan. Ich hab die Config umbenannt und den ebusd mit Valgrind gestartet. Hier die Ausgabe:
                            Code:
                            root@wiregate248:/home/user/src/ebusd/ebusd# valgrind --leak-check=full --show-reachable=yes /usr/local/bin/ebusd 
                            ==11530== Memcheck, a memory error detector.
                            ==11530== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
                            ==11530== Using LibVEX rev 1854, a library for dynamic binary translation.
                            ==11530== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
                            ==11530== Using valgrind-3.3.1-Debian, a dynamic binary instrumentation framework.
                            ==11530== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
                            ==11530== For more details, rerun with: -v
                            ==11530== 
                            ==11530== 
                            ==11530== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 12 from 1)
                            ==11530== malloc/free: in use at exit: 352 bytes in 1 blocks.
                            ==11530== malloc/free: 13 allocs, 12 frees, 10,572 bytes allocated.
                            ==11530== For counts of detected errors, rerun with: -v
                            ==11530== searching for pointers to 1 not-freed blocks.
                            ==11530== checked 59,692 bytes.
                            ==11530== 
                            ==11530== 352 bytes in 1 blocks are still reachable in loss record 1 of 1
                            ==11530==    at 0x4022D6E: malloc (vg_replace_malloc.c:207)
                            ==11530==    by 0x40895EE: (within /lib/libc-2.7.so)
                            ==11530==    by 0x40896BB: fopen (in /lib/libc-2.7.so)
                            ==11530==    by 0x8050234: log_open (log.c:86)
                            ==11530==    by 0x804A4EB: main (ebusd.c:606)
                            ==11530== 
                            ==11530== LEAK SUMMARY:
                            ==11530==    definitely lost: 0 bytes in 0 blocks.
                            ==11530==      possibly lost: 0 bytes in 0 blocks.
                            ==11530==    still reachable: 352 bytes in 1 blocks.
                            ==11530==         suppressed: 0 bytes in 0 blocks.
                            root@wiregate248:/home/user/src/ebusd/ebusd# ==11540== Invalid read of size 1
                            ==11540==    at 0x804C50E: eb_raw_print_hex (ebus-bus.c:938)
                            ==11540==    by 0x2030301F: ???
                            ==11540==  Address 0x8003043 is not stack'd, malloc'd or (recently) free'd
                            ==11540== 
                            ==11540== Process terminating with default action of signal 11 (SIGSEGV)
                            ==11540==  Access not within mapped region at address 0x8003043
                            ==11540==    at 0x804C50E: eb_raw_print_hex (ebus-bus.c:938)
                            ==11540==    by 0x2030301F: ???
                            ==11540== 
                            ==11540== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 12 from 1)
                            ==11540== malloc/free: in use at exit: 624 bytes in 2 blocks.
                            ==11540== malloc/free: 27 allocs, 25 frees, 15,218 bytes allocated.
                            ==11540== For counts of detected errors, rerun with: -v
                            ==11540== searching for pointers to 2 not-freed blocks.
                            ==11540== checked 60,436 bytes.
                            ==11540== 
                            ==11540== 
                            ==11540== 272 bytes in 1 blocks are still reachable in loss record 1 of 2
                            ==11540==    at 0x4022D6E: malloc (vg_replace_malloc.c:207)
                            ==11540==    by 0x804B403: msg_queue_init (utils.c:53)
                            ==11540==    by 0x804A5B0: main (ebusd.c:650)
                            ==11540== 
                            ==11540== 
                            ==11540== 352 bytes in 1 blocks are still reachable in loss record 2 of 2
                            ==11540==    at 0x4022D6E: malloc (vg_replace_malloc.c:207)
                            ==11540==    by 0x40895EE: (within /lib/libc-2.7.so)
                            ==11540==    by 0x40896BB: fopen (in /lib/libc-2.7.so)
                            ==11540==    by 0x8050234: log_open (log.c:86)
                            ==11540==    by 0x804A4EB: main (ebusd.c:606)
                            ==11540== 
                            ==11540== LEAK SUMMARY:
                            ==11540==    definitely lost: 0 bytes in 0 blocks.
                            ==11540==      possibly lost: 0 bytes in 0 blocks.
                            ==11540==    still reachable: 624 bytes in 2 blocks.
                            ==11540==         suppressed: 0 bytes in 0 blocks.
                            Danke und Gruß

                            Kommentar


                              Irgendwie startet der Daemon hier gar nicht.

                              Zum Testen des Daemon einfach auch ohne Konfigurationsdatei (ebusd.conf) starten. Nur mit den Daemon Flags Werte anpassen.

                              Ich mach das immer so: "./ebusd -Sf -lall -d /dev/ttyXXX" vielleicht auch noch mit -s

                              Wenn das auch nicht klappt mal das gesamte Projekt löschen und neu aus dem SVN holen.

                              Im Moment habe ich noch keinen Plan was hier faul ist, wo der idente Softwarestand bei mir und JuMi keine Probleme macht.

                              Was mir bei JuMi sehr geholfen hat, war ein ssh Zugriff auf seine Testumgebung. Ist natürlich eine Vertrauenssache und muß nicht sein.

                              EDIT: Du kannst auch mal mit strace ./ebusd starten. Dann würde ich auch schon mehr sehen.

                              Kommentar


                                Zitat von yuhu Beitrag anzeigen
                                Zum Testen des Daemon einfach auch ohne Konfigurationsdatei (ebusd.conf) starten. Nur mit den Daemon Flags Werte anpassen.

                                Ich mach das immer so: "./ebusd -Sf -lall -d /dev/ttyXXX" vielleicht auch noch mit -s
                                ok, der erste Versuch war leider erfolglos:
                                Code:
                                root@wiregate248:/home/user/src/ebusd/ebusd/src# ./ebusd -Sf -lall -d /dev/ttyUSBHeizung 
                                configuration file /etc/ebusd/ebusd.conf not found.
                                can't open cfgfile: /etc/ebusd/ebusd.conf ==> build in settings will be used.
                                
                                address = FF
                                cfgdir = /etc/ebusd
                                cfgfile = /etc/ebusd/ebusd.conf
                                device = /dev/ttyUSBHeizung
                                extension = .csv
                                foreground = YES
                                loglevel = all
                                logfile = /var/log/ebusd.log
                                pidfile = /var/run/ebusd.pid
                                port = 8888
                                rawdump = NO
                                rawfile = /tmp/ebusd.bin
                                showraw = NO
                                settings = YES
                                get_retry = 3
                                skip_ack = 1
                                max_wait = 4000
                                send_retry = 2
                                
                                2013-02-27 15:19:57.274 [WAR] no command files found ==> decode disabled.
                                2013-02-27 15:19:57.274 [INF] command files read.
                                2013-02-27 15:19:57.275 [INF] /dev/ttyUSBHeizung opened.
                                2013-02-27 15:19:57.276 [INF] port 8888 opened.
                                2013-02-27 15:19:57.276 [INF] msg queue initialized.
                                2013-02-27 15:19:57.357 [EBH] 1:  10 03 05 07 09 bb 06 1b 02 00 80 ff 6e ff f2 00
                                Speicherzugriffsfehler
                                also mal neues co...

                                Kommentar

                                Lädt...
                                X