Ankündigung

Einklappen
Keine Ankündigung bisher.

Anbindung Tecalor TTW13

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #46
    Zitat von duennsch Beitrag anzeigen

    kann. Ich weiss, ich könnte bzw. sollte die Szenen in den Autoren hinterlegen aber ich hoffe, dass ich mir das umprogrammieren sparen kann und ihr mir eine andere Lösung mitteilen könnt.
    Vieleicht hift ja das.

    https://knx-user-forum.de/code-schni...ller-sein.html

    Kommentar


      #47
      Hallo zusammen

      Ich beobachte dieses Forum seit geraumer Zeit. Eure Informationen waren mir sehr hilfreich. Die Zusammenhänge zwischen Telegramm-Indizes und Funktionalität sind in der Elster-Tabelle beschrieben. Ich selbst verwende den Raspberry Pi mit CAN-Schnittstelle. Der CAN232 von Lawicel kann mit meiner Software auch verwendet werden (ist noch in der Testphase). Das Protokoll sieht gleich wie das vom "ttyUSB" aus. Sind sie identisch?

      Eine Zusammenfassung meiner Software ist unter

      http://juerg5524.ch

      zu finden. Die Elster-Tabelle ist in can_progs.zip versteckt.

      Gruss
      Jürg

      Kommentar


        #48
        Zitat von juerg5524 Beitrag anzeigen
        Hallo zusammen

        Ich beobachte dieses Forum seit geraumer Zeit. Eure Informationen waren mir sehr hilfreich. Die Zusammenhänge zwischen Telegramm-Indizes und Funktionalität sind in der Elster-Tabelle beschrieben. Ich selbst verwende den Raspberry Pi mit CAN-Schnittstelle. Der CAN232 von Lawicel kann mit meiner Software auch verwendet werden (ist noch in der Testphase). Das Protokoll sieht gleich wie das vom "ttyUSB" aus. Sind sie identisch?

        Eine Zusammenfassung meiner Software ist unter

        http://juerg5524.ch

        zu finden. Die Elster-Tabelle ist in can_progs.zip versteckt.

        Gruss
        Jürg
        Hallo Jürg,
        sieht höchst Interssant aus. Hast Du Dich in dem Zusammenhang mal mit dem Projekt smarthome.pi (auch hier im Forum) auseinander gesetzt?

        Vieleicht läßt sich da ja was verbinden....
        Gruß
        Georg

        Kommentar


          #49
          Hallo Georg,

          das Projekt smarthome.pi (oder py) sieht schön aus. Leider lassen sich die beiden Programm-Bibliotheken C++ und Python schlecht miteinander verbinden.

          Weisst Du das: Kann ein Python-Programm ein C++-Programm als Treiber (oder so ähnlich) einbinden?

          Wenn es jedoch darum geht, zu ermitteln, wie die Werte via CAN-Bus gelesen und geschrieben werden können (vgl. Elster-Tabelle), dann sind es bei beiden Vorhaben dieselben Probleme. Das smarthome-Projekt ist riesig! Kannst Du mir zu dieser CAN-Bus-Anbindung die Stelle im Projekt zeigen?

          Viele Grüsse
          Jürg

          Kommentar


            #50
            Hallo Georg,

            ein C++-Programm lässt sich in Python einbinden:

            https://docs.python.org/2/extending/extending.html

            Die Frage ist nun: Kannst Du irgend etwas von meinem Code brauchen? Hast Du eine Stiebel (oder ähnliche) Wärmepumpe und ein CAN-Interface zu Deinem Raspi?

            Viele Grüsse
            Jürg

            Kommentar


              #51
              Zitat von juerg5524 Beitrag anzeigen
              Hallo Georg,

              ein C++-Programm lässt sich in Python einbinden:

              https://docs.python.org/2/extending/extending.html

              Die Frage ist nun: Kannst Du irgend etwas von meinem Code brauchen? Hast Du eine Stiebel (oder ähnliche) Wärmepumpe und ein CAN-Interface zu Deinem Raspi?

              Viele Grüsse
              Jürg
              Hallo Jürg,
              vielen Dank für Deine Antwort.
              Ja ich werde demnächst eine Stiebel Eltron WP haben (LWZ504) und es gibt im Forum noch ein paar Leute, die daran Interesse haben.
              Ich betreibe meinen Pi momentan mit der ROT Extension; ein CAN-Interface habe ich nicht, könnte aber beschafft werden (weiß nur nicht, ob das zusätzlich zu der ROT geht oder ob ich einen separaten Pi. dafür brauche...).

              Mein Problem ist, dass ich Ewigkeiten nicht mehr programmiert habe und auch nicht die Zeit, mich da wirklich einzuarbeiten um ein solches Plugin zu schreiben.

              Aber vielleicht könnnen wir ja verschiedene Aktivitäten zusammenfassen.
              daher hier mal der link auf den Thread im smarthome.py für Interessierte....:
              https://knx-user-forum.de/forum/supp...?highlight=lwz
              Gruß
              Georg

              Kommentar


                #52
                Hallo Georg,

                die ROT Extension und CAN-Bus-Anbindung, wie ich sie verwende, benutzen unterschiedliche Ressourcen des Raspi. Dazu die beiden Schemas

                http://busware.de/tiki-download_file.php?fileId=70

                und

                http://juerg5524.ch/data/piCan_Schema.pdf

                D.h. man kann die beiden parallel verwenden. Wie es mit der CPU-Auslastung steht, kann ich nicht beurteilen. Skripts und interpretierte Programmiersprachen sind Ressourcen-Fresser! Deshalb verwende ich C++. Ausserdem war es für mich wichtig, dass die WP und der Raspi galvanisch getrennt sind.

                KNX verwende ich nicht. Ich wohne in einem alten Haus, da ist nichts automatisiert.

                Ich denke, dass es für mich nicht allzu schwierig sein dürfte, ein Plugin für Python zu schreiben. Voraussetzung ist allerdings, dass jemand für mich die Parameter des Plugin definiert.

                Viele Grüsse
                Jürg

                Kommentar


                  #53
                  Hallo Georg,

                  ich habe zu meiner CAN-Bus-Anbindung ein Import-Module für Python3 programmiert. Das Modul "elster" muss mit

                  >>>import elster

                  importiert werden. Danach stehen verschiedene Methoden zur Verfügung. Hier eine Bash-Kopie:

                  Python 3.2.3 (default, Mar 1 2013, 11:53:50)
                  [GCC 4.6.3] on linux2
                  Type "help", "copyright", "credits" or "license" for more information.
                  >>> import elster
                  >>> str(elster.getvalue("680 601 000a"))
                  '1034'
                  >>> str(elster.getstring("680 601 000a"))
                  "b'04.10.'"
                  >>> str(elster.gettype("000a"))
                  '9'
                  >>> str(elster.getname("000a"))
                  "b'DATUM'"
                  >>> str(elster.getstring("680 500 930"))
                  "b'90.076'"
                  >>> str(elster.getname("931"))
                  "b'WAERMEERTRAG_HEIZ_SUM_MWH'"
                  >>> str(elster.gettype("930"))
                  '5'
                  >>>

                  680 ist jeweils die CAN-Id des Senders. Die zweite Zahl (601 bzw. 500) ist die CAN-Id des Empfängers. 930 und 000b (alles hexadezimal) sind Elster-Indices.

                  Wenn Du an diesem Modul interessiert bist, lass es mich wissen.

                  Wie gehen wir weiter vor?

                  Viele Grüsse
                  Jürg

                  Kommentar


                    #54
                    Zitat von juerg5524 Beitrag anzeigen

                    Wenn Du an diesem Modul interessiert bist, lass es mich wissen.

                    Wie gehen wir weiter vor?

                    Viele Grüsse
                    Jürg
                    Hallo Jürg,
                    Interessse ist da. Du hast ja im Smarthome.py Forum eine mögliche Variante für die Vorgehensweise gepostet, würde gern mal sehen, ob wir da die eine Zusammenarbeit hinkriegen.
                    Bleibe am Ball, bin aber in nächster Zeit viel unterwegs, also nicht direktes Antworten soll kein Desinteresse signalisieren....
                    Gruß
                    Georg

                    Kommentar


                      #55
                      Aufbau Telegramm

                      Hallo Jürg,

                      Vielen Dank für die großartige Arbeit, die du bereits gemacht hast!

                      Was ich bis jetzt noch nicht ganz verstanden habe, ist der Telegrammaufbau bzw. die ersten 16-Bit.

                      Wenn ich folgendes Telegramm habe:

                      A1 00FA 07A9 0000
                      bzw. 92 00FA 07A9 001D

                      dann ist mir noch nicht klar, was A1 00 (vom ersten Telegramm)bzw. 92 00 (vom zweiten Telegramm) bedeutet.

                      Es kommen auch Telegramme vor, welche mit A2 79 oder anderen Kombinationen beginnen. Ich habe bei meinen Mitschnitten bisher nicht eindeutig rausfinden können, was diese 16-Bit genau beschreiben. Es wäre mir sehr geholfen, wenn du dies etwas näher erklären könntest.

                      Vielen Dank!

                      Viele Grüße
                      berti

                      Kommentar


                        #56
                        Hallo berti

                        A1 00: bedeutet Anfrage (das ist das 2. Digit "1") an die CAN-ID 500. Die 500 setzt sich aus 8*(A0 & f0) + (00 & 0f) zusammen, d.h. das ertste Digit A0 mal 8 plus das 4. Digit 0. Demnach ist 61 02 eine Anfrage an die CAN-ID 302. Als Antwort auf A1 00 fa 07 49 (die beiden letzten Bytes kannst Du auch weglassen) erhältst Du: D2 00 fa 07 49 xxxx. Wobei xxxx der gewünschte Wert ist und das erste Digit "D" gibt über den Sender von A100 Auskunft. Das müsste sich dann um die CAN-ID des Senders 780 (8*d0) handeln. Das Zweite Digit von D2, also die "2", besagt, dass es sich um eine Antwort handelt, bzw. dass nach dem Elster-Index ein gültiger Wert steht.

                        92 00: bedeutet Änderung eines Wertes. Die CAN-ID ist hier 8*90 + 0, also 480. Auch hier nach "fa" kommt der Elster-Index und danach der zu setzende Wert. Hier gibt es kein Antwort-Telegramm.

                        Die Telegramme, bei welchen 79 an 2. Stelle steht, sind "broadcast" Telegramme, die in regelmässigen Zeitabständen abgesetzt werden.

                        An der 3. Stelle steht nicht notwendigerweise "fa" ("ERWEITERUNGSTELEGRAMM" siehe Elster-Tabelle). Wenn ein Elster-Index 2-stellig ist, also kleiner oder gleich ff ist, dann darf der Index dort direkt eingesetzt werden. Das Resultat erhält man dann im 4. und 5. Byte.

                        -------------- Methode aus meiner C++-Sammlung:

                        void KCanFrame::InitElsterFrame(unsigned short sender_id,
                        unsigned short receiver_id,
                        unsigned short ElsterId)
                        {
                        unsigned char address = (receiver_id & 0x780) / 8;
                        Init();
                        Id = sender_id;
                        Len = 5;
                        Data[0] = (unsigned char)((address & 0xf0) + 1);
                        Data[1] = (receiver_id & 7);
                        Data[2] = 0xfa;
                        Data[3] = (unsigned char)(ElsterId >> 8);
                        Data[4] = (unsigned char)(ElsterId & 0xff);
                        }

                        ----------------

                        Ich hoffe, Du kommst nun weiter.

                        Viele Grüsse
                        Jürg

                        Kommentar


                          #57
                          Danke

                          Hallo Jürg!

                          Vielen, vielen herzlichen Dank!

                          Jetzt ist mir das klar! Du hast mir wahnsinning viel damit geholfen.
                          Hatte mein Projekt (Umschalten der Betriebsmodis der Stiebel Eltron WP über KNX) schon in die Ecke gestellt, doch jetzt kommt da, dank dir, wieder Wind in die Segel!

                          Ich denke, es wäre eine gute Ergänzung auf deiner Seite juerg5524.ch/
                          für so begriffsstutzige Leute wie mich!

                          Vieeln Dank nochmals!

                          mfg
                          berti

                          Kommentar


                            #58
                            Empfänger ID für Umschalten des Betriebsmodus

                            Hallo Juerg,

                            Ich hätte noch ein Frage an dich, welche du eventuell beantworten kannst:
                            Ich möchte gerne die Betriebsart meiner Wärmepumpe umschalten.
                            Folgendes Frame würde ich senden:
                            Sender: 0x680 --> x0 00 fa 01 00 00 02

                            Erklärung bzw. Frage:
                            x0 --> 1.ter Teil der recv. ID, x ist mir noch unbekannt (wer ist Empfänger 0x480, 0x500, ???)
                            00 --> 2.ter Teil der receiver ID
                            fa --> für ID's > 0xFF
                            01 00 --> Index 0x0100 laut ElsterTable für die Betriebsarten
                            00 02 --> Wert für den Automatik Betrieb

                            Kannst du mir sagen, ob das im Grundsatz richtig ist und was ich für x einsetzen muss, damit ich die korrekte receiver ID anspreche?

                            Vielen Dank!

                            mfg
                            berti

                            Kommentar


                              #59
                              Hallo berti,

                              die Elster-Tabelle ist nicht absolut korrekt. Deshalb wird sie von mir auch immer wieder angepasst. In der neuesten "ElsterTable.inc" (can_progs.zip) ist der Index für den "PROGRAMMSCHALTER" 0x0112. Das Format dazu ist "et_little_endian", soll heissen, der Wert für Automatikbetrieb ist 0x0200. Auf meiner WP ist 180 der Empfänger.

                              680: 32 00 fa 01 12 02 00

                              Die "2" in 32 steht für Schreiben.

                              Wie sieht Deine Hardware/Software Konfiguration aus? Ich könnte Dir vielleicht helfen, dass Du zu einem Dump Deiner WP kommst. Damit könntest Du, mit der ComfortSoft die Telegramme in der Simulation Deiner WP ausprobieren, bevor es echt auf die WP geht.

                              Viele Grüsse
                              Jürg

                              Kommentar


                                #60
                                Nun meine Hardware/Softwarekonfiguration sieht folgendermaßen aus:
                                Hardware Infineon C167CR LM mit selbst gebastelter SW.

                                Ich habe über einen längeren Zeitraum mit einem CAN Sniffer den Datenverkehr meiner WP mitgeloggt.
                                Erst mit deinen Hinweisen in diversen Foren, konnte ich die Daten einigermaßen sinnvoll auswerten.

                                Bis dato ist es mit meiner Bastelei möglich, alle Telegramme im Datenverkehr zu lesen und auf die serielle Schnittstelle als Klartext (anhand deiner ElsterTable) auszugeben. Dies erleichtert schon mal die Ausertung.

                                Als nächstes würde ich gerne den Betriebsmodus der Wärmepumpe umschalten, um mir den Gang in den Technikraum (Keller) zu ersparen.
                                Im Endausbau sollte dies dann über meinen Hausbus KNX funktionieren.

                                Für mich wäre es interessant zu wissen wofür die verschiedenen CAN ID's stehen.
                                z.B.: 0x680; 0x601; 0x500; 0x480; 0x180
                                Ich möchte vermeiden, dass ich ein Kommando an die falsche ID sende --> Folgen unbekannt!

                                Sofern du eine Idee dazu hast, wäre es toll, wenn du das kurz erläutern könntest.

                                Viele Grüße
                                berti

                                Kommentar

                                Lädt...
                                X