Ankündigung

Einklappen
Keine Ankündigung bisher.

Plugin für Stiebel Eltron LWZ 304/404 (CAN Bus)

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

    #31
    Wie panzaeron schon geschrieben hat, schaut es aus als ob du dich unter dem falschen Benutzer eingeloggt hast.

    Was ist der Output von folgenden Befehlen?

    Code:
    id
    ls -l /lib/modules/
    Grüße,
    Bernd

    Kommentar


      #32
      ihr hattet recht. Ich war nicht als root angemeldet.
      Habe es noch einmal versucht und diesmal ist der 4. Befehl geglückt.

      Ich habe dann Zeile für Zeile als Befehl weiter eingegeben bis bei dem Befehl "make install" eine Fehlemeldung kam. Alle voheringen gingen ohne Probleme durch.

      Fehler:

      Befehl ´make install´
      fehlgeschlagen mit Beedingungscode 127 und Fehlernachricht
      -bash: line 88: make: command not found.

      was bedeutet dies nun !!

      und muss ich jetzt alles noch einmal eingeben oder sind die oberen Befehle abgeschlossen ?

      Kommentar


        #33
        Das bedeutet nur, daß ich mir nicht mehr an alle Schritte von damals erinnern kann und dementsprechend kleinere Fehler drinn sein können.
        Wie z.B. das Übersetzten der Convert-Binary-C Library für perl.

        Wahrscheinlich es ist kein C Compiler installiert.

        Keine Sorge die oberen Befehle sind nun abgeschlossen. Wir müssen nur vorher den C Compiler installieren und wieder in das richtige Verzeichnis wechseln:

        Code:
        apt-get update
        apt-get install gcc
        cd /tmp/Convert-Binary-C-0.76
        perl Makefile.PL
        make
        make test
        make install
        cp /tmp/can /etc/init.d/.
        chmod 755 /etc/init.d/can
        insserv can
        rm /tmp/can
        rm -r /tmp/iproute2-3.5.1
        rm -r /tmp/Convert-Binary-C-0.76
        rm -r /tmp/usb2can-pre-3.3
        In meinen letzten Posts hatte ich noch vergessen, daß zum Schluß natürlich noch das Interface gestartet werden muß und das Plugin ins Wiregate geladen und konfiguriert werden muß.

        Zum Starten des Interfaces kannst du das Wiregate einfach rebooten oder folgenden Befehl eingeben:
        Code:
        /etc/init.d/can start
        Um das Plugin zu installieren klickst du bei "Plugins" auf "Plugin hinzufügen". Als Name kannst du eigentlich eingeben was du willst. Es ist aber auch keine schlechte Idee den Namen des Plugins selbst einzugeben.

        Danach einfach folgenden Sourcecode kopieren und einfügen:
        Open Automation / Code / [r2355] /wiregate/plugin/generic/StiebelEltron-LWZ-x04.pl

        Wenn dies erledigt ist auf Speichern klicken und unter Config den Inhalt von
        folgender Datei einfügen:
        Open Automation / Code / [r2355] /wiregate/plugin/generic/conf.d/StiebelEltron-LWZ-x04.conf

        Unterhalb von "BEGINN DER KONFIGURATION" müssen nun die gewünschten Werte und KNX Adressen eingegeben werden.

        Nach dem Speichern sollte alles wie gewünscht laufen. Die Ausgabe des Plugins kann unter "Plugin-Logdatei anzeigen" kontrolliert werden.


        Die Ausgabe von "perl Makefile.PL" sollte wie folgt aussehen:
        Code:
        Building with feature 'ieeefp'
        Building with DEPRECATED feature 'threads'
        Finding dependencies...
        Setting license tag...
        Writing Makefile for Convert::Binary::C
        Die Ausgabe von "make" sollte wie folgt aussehen:
        Code:
        Compiling [cc -O2 -g] C.c
        Compiling [cc -O2 -g] cbc/basic.c
        Compiling [cc -O2 -g] cbc/dimension.c
        Compiling [cc -O2 -g] cbc/hook.c
        Compiling [cc -O2 -g] cbc/idl.c
        Compiling [cc -O2 -g] cbc/init.c
        Compiling [cc -O2 -g] cbc/macros.c
        Compiling [cc -O2 -g] cbc/member.c
        Compiling [cc -O2 -g] cbc/object.c
        Compiling [cc -O2 -g] cbc/option.c
        Compiling [cc -O2 -g] cbc/pack.c
        Compiling [cc -O2 -g] cbc/sourcify.c
        Compiling [cc -O2 -g] cbc/tag.c
        Compiling [cc -O2 -g] cbc/type.c
        Compiling [cc -O2 -g] cbc/typeinfo.c
        Compiling [cc -O2 -g] cbc/util.c
        Compiling [cc -O2 -g] ctlib/bitfields.c
        Compiling [cc -O2 -g] ctlib/byteorder.c
        Compiling [cc -O2 -g] ctlib/cterror.c
        Compiling [cc -O2 -g] ctlib/ctparse.c
        Compiling [cc -O2 -g] ctlib/cttags.c
        Compiling [cc -O2 -g] ctlib/cttype.c
        Compiling [cc -O2 -g] ctlib/fileinfo.c
        Compiling [cc -O2 -g] ctlib/layout.c
        Compiling [cc -O2 -g] ctlib/y_parser.c
        Compiling [cc -O2 -g] ctlib/y_pragma.c
        Compiling [cc -O2 -g] ucpp/assert.c
        Compiling [cc -O2 -g] ucpp/cpp.c
        Compiling [cc -O2 -g] ucpp/eval.c
        Compiling [cc -O2 -g] ucpp/lexer.c
        Compiling [cc -O2 -g] ucpp/macro.c
        Compiling [cc -O2 -g] ucpp/mem.c
        Compiling [cc -O2 -g] ucpp/nhash.c
        Compiling [cc -O2 -g] util/hash.c
        Compiling [cc -O2 -g] util/list.c
        Compiling [cc -O2 -g] util/memalloc.c
        Running Mkbootstrap for Convert::Binary::C ()
        chmod 644 C.bs
        rm -f blib/arch/auto/Convert/Binary/C/C.so
        cc  -shared -O2 -g -L/usr/local/lib C.o cbc/basic.o cbc/dimension.o cbc/hook.o cbc/idl.o cbc/init.o cbc/macros.o cbc/member.o cbc/object.o cbc/option.o cbc/pack.o cbc/sourcify.o cbc/tag.o cbc/type.o cbc/typeinfo.o cbc/util.o ctlib/bitfields.o ctlib/byteorder.o ctlib/cterror.o ctlib/ctparse.o ctlib/cttags.o ctlib/cttype.o ctlib/fileinfo.o ctlib/layout.o ctlib/y_parser.o ctlib/y_pragma.o ucpp/assert.o ucpp/cpp.o ucpp/eval.o ucpp/lexer.o ucpp/macro.o ucpp/mem.o ucpp/nhash.o util/hash.o util/list.o util/memalloc.o  -o blib/arch/auto/Convert/Binary/C/C.so    \
                        \
                  
        chmod 755 blib/arch/auto/Convert/Binary/C/C.so
        cp C.bs blib/arch/auto/Convert/Binary/C/C.bs
        chmod 644 blib/arch/auto/Convert/Binary/C/C.bs
        cp bin/ccconfig blib/script/ccconfig
        /usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/ccconfig
        Manifying blib/man1/ccconfig.1p
        Manifying blib/man3/Convert::Binary::C::Cached.3pm
        Manifying blib/man3/Convert::Binary::C.3pm
        Die Ausgabe von "make test" sollte wie folgt aussehen:
        Code:
        PERL_DL_NONLAZY=1 /usr/bin/perl "-Iblib/lib" "-Iblib/arch" test.pl
        tests/001_init............ok                                                 
        tests/101_basic...........ok                                                 
        tests/201_config..........ok                                                 
                1/2070 skipped: various reasons
        tests/202_misc............ok                                                 
        tests/203_warnings........ok                                                 
        tests/204_enum............ok                                                 
        tests/205_pack............ok                                                 
        tests/206_parse...........ok                                                 
                42/116 skipped: various reasons
        tests/207_typedef.........ok                                                 
        tests/208_float...........ok                                                 
        tests/209_sourcify........ok                                                 
        tests/210_depend..........ok                                                 
        tests/211_clone...........ok                                                 
        tests/212_clean...........ok                                                 
        tests/213_string..........ok                                                 
        tests/214_cache...........ok                                                 
        tests/215_local...........ok                                                 
        tests/216_language........ok                                                 
        tests/217_preproc.........ok                                                 
        tests/218_member..........ok                                                 
        tests/219_def.............ok                                                 
        tests/220_new.............ok                                                 
        tests/221_asm.............ok                                                 
        tests/222_ieee............ok                                                 
        tests/223_initializer.....ok                                                 
        tests/224_typeof..........ok                                                 
        tests/225_magic...........ok                                                 
        tests/226_indexed.........ok                                                 
                33/45 skipped: various reasons
        tests/227_flexarray.......ok                                                 
        tests/228_hooks...........ok                                                 
        tests/229_substr..........ok                                                 
        tests/230_compiler........ok                                                 
        tests/231_align...........ok                                                 
        tests/232_native..........ok                                                 
        tests/233_tags............ok                                                 
        tests/234_format..........ok                                                 
        tests/235_basic...........ok                                                 
        tests/236_typeinfo........ok                                                 
        tests/237_parser..........ok                                                 
        tests/238_byteorder.......ok                                                 
        tests/239_macros..........ok                                                 
        tests/240_offsetof........ok                                                 
        tests/241_sizeof..........ok                                                 
        tests/242_dimension.......ok                                                 
        tests/243_parser..........ok                                                 
        tests/501_bfsimple........ok                                                 
        tests/502_bfmicrosoft.....ok                                                 
        tests/503_bfgeneric.......ok                                                 
        tests/601_speed...........ok                                                 
        tests/602_threads.........ok                                                 
        tests/603_complex.........ok                                                 
                80/6080 skipped: various reasons
        tests/701_debug...........ok                                                 
        tests/702_env.............ok                                                 
        tests/703_bugs............ok                                                 
        tests/801_examples........ok                                                 
        tests/802_pod.............ok                                                 
                16/16 skipped: various reasons
        tests/803_pod_coverage....skipped
                all skipped: testing pod coverage requires Pod::Coverage 0.10
        tests/901_memory..........ok                                                 
                396/397 skipped: various reasons
        All tests successful, 1 test and 568 subtests skipped.
        Files=58, Tests=50433, 737 wallclock secs (367.38 cusr +  7.20 csys = 374.58 CPU)
        Die Ausgabe von "make install" sollte wie folgt aussehen:
        Code:
        Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
        Writing /usr/local/lib/perl/5.10.0/auto/Convert/Binary/C/.packlist
        Appending installation info to /usr/local/lib/perl/5.10.0/perllocal.pod

        Kommentar


          #34
          und du must noch make installieren:
          Code:
          apt-get install make

          Kommentar


            #35
            Hallo Bernd,

            ich habe den Befehl "apt-get update" unter puTTY eingeben. Danach hat er sich verschiede Pakete geholt und am Ende allerdings einen Fehler ausgeben.
            W: GPG error: Index of / lenny/updates Release: Die folgende Signaturen waren ungültig: KEYEXPIRED 1356982504

            Ich habe dies dann mal ignoriert und deinen nächsten Befehl
            "apt-get install gcc" eingegeben. Daraufhin hat er sich wieder etliche Pakete herundergeladen und installiert. Danach habe ich den erstel "make" Befehl eingeben und es kam wieder der Fehler:
            -bash: make: command not found

            ??? hat es was mit dem obingen Fehler zu tun?

            Kommentar


              #36
              Ich hatte vergessen apt-get make install einzugeben. Jetzt gibt er mir die erste make antwort.

              Kommentar


                #37
                Ich habe jetzt alle Befehle eingeben. Die make Befehle kamen auch alle so zurück wie du es geschrieben hast.

                beim Starten des Interfaces mit "/etc/init.d/can start" kam leider ein Fehler.

                Startup can0Cannot find device "can0"
                failed!


                kann ich überprüfen oder sehen ob der CAN auf dem Wiregate läuft?
                Auch bei einem Neustart des Gates und wiedeholen des Befehles kam der Fehler wieder.

                Kommentar


                  #38
                  Sooo... der fehler lag wohl daran das der CAN2USB Adapter nicht eingesteckt war. Jetzt läuft der can0

                  und es scheint auch so als würde das Plugin auch schon werte schreiben...muss mir das ganze jetzt erst mal noch in ruhe anschauen.

                  Aber es sei an dieser stelle nochmals ein großer Dank gesagt. Sowohl an dich Bernd für deine bemühungen mit mir und auch an dich panzaeron für die kleinen zwischenrufe. Wenn ich alles mal soweit zusammen habe auch mit der ETS und dem Homeserver schreibe ich mein Endergebniss.


                  MfG Stefan

                  Kommentar


                    #39
                    Super!

                    Man kann natürlich das CAN Interface auch ganz einfach kontrollieren.

                    Der Befehl ifconfig zeigt das CAN Interface und ein paar Counterdaten an:
                    Code:
                    can0      Link encap:UNSPEC  Hardware Adresse 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
                              UP RUNNING NOARP  MTU:16  Metrik:1
                              RX packets:4486045 errors:0 dropped:72 overruns:0 frame:0
                              TX packets:1299366 errors:1 dropped:0 overruns:0 carrier:0
                              Kollisionen:0 Sendewarteschlangenlänge:10 
                              RX bytes:31402321 (29.9 MiB)  TX bytes:9095562 (8.6 MiB)
                    Der Befehl dmesg zeigt die letzten Kernelmeldungen an:
                    Code:
                    [   24.013268] CAN device driver interface
                    [   24.102024] usb_8dev 1-4.1.2:1.0: can0: firmware: 1.5, hardware: 1.0
                    [   24.102250] usbcore: registered new interface driver usb_8dev
                    [   95.049740] can: controller area network core (rev 20090105 abi 8)
                    [   95.049922] NET: Registered protocol family 29
                    [   95.916701] can: raw protocol (rev 20090105)
                    Sollte dein USB2CAN Adapter die Firmware Version 1.4 anzeigen so rate ich dir zu einem Update auf 1.5 bevor du den Adapter an ein 64-bit Windows oder an einen USB 3.0 Port unter Linux ansteckst.

                    Grüße,
                    Bernd

                    Kommentar


                      #40
                      Hallo Bernd,

                      ich bekomm es nicht hin einen Wert zur LWZ zu senden. Ich habe bei knxStatusGA eine GA angegeben und bei knxWriteGA auch. cycle ist auf 1
                      also im prinzip so wie bei deinem Beispiel.
                      Empfangen kann ich fast alles. Nur bei den Heizungswerten kommt immer ein Fehler.
                      z.B.: bei abfrage des: Heizkreis_Solltemperatur: Attribut "target" wird benötigt

                      und es kommt bei manchen Werten vor das sie laut des Log-Protokolls Bearbeitet werden jedoch kein Wert kommt.

                      Hast du da einen Tipp für mich ??

                      Kommentar


                        #41
                        Hi!

                        Ja, ich habe ein Erklärung für manche dieser Probleme.

                        1. Ich habe vergessen das Attribut target zu beschreiben. Manche Werte benötigen ein zusätzliches Attribut, welches den Heizkreis beschreibt. Dort wo es von der Fehlermeldung gefordert wird bitte das Attribut target => 1 für Heizkreis 1 eintragen.

                        2. Heizkreis_Solltemperatur kann nicht geschrieben werden, dies steht auch so in der Doku der Konfig. Dies liegt daran, daß es sich um einen variablen Werte handelt, der je nach Modus, Tageszeit, Heizkurve anders ist. Je nach Konfiguration hängt dieser Wert von folgenden Werten ab:
                        • Heizen_Raumtemperatur_Tag
                        • Heizen_Raumtemperatur_Bereitschaft
                        • Heizen_Raumtemperatur_Nacht
                        • Kühlen_Raumtemperatur_Tag
                        • Kühlen_Raumtemperatur_Bereitschaft
                        • Kühlen_Raumtemperatur_Nacht
                        • Heizkurve_Steigung
                        • Heizkurfe_Maximaler_Sollwert
                        • Heizkurfe_Sollwert_Min
                        • und div. andere

                        In deinem Fall möchtest du wahrscheinlich "Heizen_Raumtemperatur_Tag" für den Heizkreis 1 einstellen.

                        3. Bzgl. der anderen Fehler kann ich am besten helfen, wenn ich zumindest die jeweilige Konfigurationszeile und einen Ausschnitt vom Log bekomme.


                        Grüße,
                        Bernd

                        Kommentar


                          #42
                          Hallo Bernd,

                          ich habe das mit dem einfügen von traget =>1 in der jeweiligen Zeile in der config. versucht, läuft aber leider nicht.
                          Hier ist jetzt mal Beispielsweise der Befehl für das "Heizen_Raumtemperatur_Tag"

                          push @mapped, { name => 'Heizen_Raumtemperatur_Tag', knxStatusGA => '11/6/42', knxWriteGA => '11/6/43', cycle => 1, };

                          Das Log schreibt:
                          2015-02-10 08:44:51.260,LWZ 403,Bearbeite: Heizen_Raumtemperatur_Tag 2015-02-10 08:44:51.261,LWZ 403,Heizen_Raumtemperatur_Tag: Attribut "target" wird benötigt

                          wo muss genau das target =>1 hin? dann kann ich das ja für alle anderen Werte genauso machen.




                          Das Einstellen der Lüftungsstufen. z.B.: "Lüftung_Stufe_Handbetrieb" funktioniert leider auch nicht. Hier mal die Befehlszeile:

                          push @mapped, { name => 'Lüftung_Stufe_Handbetrieb', knxStatusGA => '11/6/83', knxWriteGA => '11/6/84', cycle => 1 };

                          Hier der Log dazu:
                          2015-02-10 08:48:59.419,LWZ 403,Bearbeite: Lüftung_Stufe_Handbetrieb
                          2015-02-10 08:49:48.001,LWZ 403,Lüftung_Stufe_Handbetrieb: 2

                          Er liest den aktuellen Wert der Stufe aus, doch das beschreiben klappt nicht. Im Log kommt auch keine Fehlermeldung wenn ich auf die GA 11/6/84 z.B.: den Wert 3 schicke. Ich verwende zum Lesen und schicken der GA´s den HomeServer QC mit der Funktionsvorlage "Werteingabe plus" und das KO habe ich als 16-Bit EIS10 festgelegt. Habe auch schon andere 16-Bit varienaten versucht. Aber auch da keine Reaktion.


                          Wie machst du das den ?

                          Kommentar


                            #43
                            Hi!

                            So sollte es klappen:
                            Code:
                            push @mapped, { name => 'Heizen_Raumtemperatur_Tag', target => 1, knxStatusGA  => '11/6/42', knxWriteGA => '11/6/43', cycle => 1};
                            Beim Schreiben habe ich bisher hauptsächlich Temperaturen, etc. getestet. Leider habe ich momentan keine Zeit weitere Tests anzustellen. Aber ich versuche es mir vorzumerken und in ein paar Wochen zu korrigieren, falls ein Fehler vorliegt.

                            Grüße,
                            Bernd

                            Kommentar


                              #44
                              Ich hole diesen alten Thread mal wieder nach vorne. Ich habe dieses Plugin am laufen, bekomme aber im Plugin-Log viele Warnings der folgenden Art:
                              Code:
                               
                               2016-02-08 12:57:03.728,StiebelEltron-LWZ-x04.pl,Warning: Constant subroutine main::CAN_RAW_ERR_FILTER redefined at /usr/share/perl/5.10/constant.pm line 115.  2016-02-08 12:57:03.728,StiebelEltron-LWZ-x04.pl,Warning: Constant subroutine main::CAN_RTR_FLAG redefined at /usr/share/perl/5.10/constant.pm line 115.  2016-02-08 12:57:03.728,StiebelEltron-LWZ-x04.pl,Warning: Constant subroutine main::SOURCE_SENSOR redefined at /usr/share/perl/5.10/constant.pm line 115.  2016-02-08 12:57:03.729,StiebelEltron-LWZ-x04.pl,Warning: Constant subroutine main::TARGET_HEIZKREIS redefined at /usr/share/perl/5.10/constant.pm line 115.  2016-02-08 12:57:03.729,StiebelEltron-LWZ-x04.pl,Warning: Constant subroutine main::AF_CAN redefined at /usr/share/perl/5.10/constant.pm line 115.  2016-02-08 12:57:03.734,StiebelEltron-LWZ-x04.pl,Warning: Constant subroutine main::CAN_RAW redefined at /usr/share/perl/5.10/constant.pm line 115.  2016-02-08 12:57:03.735,StiebelEltron-LWZ-x04.pl,Warning: Constant subroutine main::TYPE_REGISTER redefined at /usr/share/perl/5.10/constant.pm line 115.  2016-02-08 12:57:03.735,StiebelEltron-LWZ-x04.pl,Warning: Constant subroutine main::HEIZKREIS_2 redefined at /usr/share/perl/5.10/constant.pm line 115.  2016-02-08 12:57:03.735,StiebelEltron-LWZ-x04.pl,Warning: Constant subroutine main::SOURCE_SYSTEM redefined at /usr/share/perl/5.10/constant.pm line 115.
                              Das Problem ist, das Wiregate läuft nur solange bis die Log-Datei wiregate_plugin.log mit den Warnings die kleine CF-Karte zu 100% gefüllt hat. Was kann ich gegen die Warnings tun? Ich bin leider in Perl nicht so Sattelfest und das Internet war auch nicht wirklich hilfreich.

                              Kommentar


                                #45
                                Bevor Du das Plugin anfasst würde ich vorschlagen erst mal den Haken bei "Warnungen loggen" (im Plugin Menü) einfach rauszunehmen. Falls noch kein Haken da ist Updaten. Diese Funktion (und auch die Warnung) kamen erst mit den letzten Updates.

                                Kommentar

                                Lädt...
                                X