Ankündigung

Einklappen
Keine Ankündigung bisher.

Umfrage: Interesse an Anbindung von Buderus Heizung an KNX

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

    Zitat von NilsS Beitrag anzeigen
    genauso ..

    Code:
    public static long RVZ = 3000;  // 3sec  //Zeit nachdem wieder was gesendet werden darf.
    Wo kommt das her ???
    So ich bin dem mal nachgegangen:

    Ich vermute das SIEMENS das 3964R mal definiert hat. Wäre ja nicht das erste mal, sowas.

    http://support.automation.siemens.co...iew/de/1117397


    Dort in "Grundlage der Seriellen Datenübertragung" ist alles zu finden.

    Unter Senden ist auch das Zustandsmodell zu finden. Was eben genau die Timer genau erklärt.



    Danach haben wir eigentlich alles richtig gemacht. Also das DLE im Konfliktfall zur Lösung zu schicken.


    Unsere Problem ist aber wohl nicht der Konfliktfall selbst, sondern die Wartezeit ( die du nun eingefügt hast) zwischen den beiden Grundzuständen also dem letzten DLE und dem neuen STX.
    Wir müssen also das letzte Zeichen DLE erst verarbeiten lassen, dabei wird der Timer T_QVZ augezogen. Der ist bei 3964R = 2 Sekunden.

    In der Zeit dürfen wir noch kein neues STX senden.


    Daraus erklärt sich dann die 3 Sekunden, die Du gefunden hast. Dadurch ist sichergestellt, dass T_QVZ verstrichen ist.


    Das ist aber nur relevant, wenn die Senderichtung gewechselt wird.
    Warum, weil wenn die Senderichtung gleichbleibt ja der andere das STX sendet und damit den empfang des DLE bestätigt hat. Somit kann es da sofort weiter gehen.



    Also wenn sich die Senderichtung ändert,sollten wir also T_QVZ+(1 Sekunde als Sicherheit) warten und erst dann das neue STX rauschicken.


    Gruß Tbi

    Kommentar


      Ok werde ich mir nachher mal ansehen, das ist dann ja wenigstens mal was definiertes. Ich werde dann aber mit QVZ welches ja definiert ist warten.
      Nils

      aktuelle Bausteine:
      BusAufsicht - ServiceCheck - Pushover - HS-Insight

      Kommentar


        Hi, wir haben uns doch gefragt was die A5 bedeutet !!!

        Hier steht es drin:

        Ganz interessant, sind auch noch ein paar andere Infos über den ECOCAN-Bus drin, die man auswerten kann.

        viel Spaß

        Tbi
        Angehängte Dateien

        Kommentar


          Sehr interessant , damit kann man dann auch nach dem ädern von Parametern diese abfragen, bzw diese auch beim Starten tuen.

          Die A6 Meldungen sollten auch geloggt werden vom Fehlermodul.

          A5 Meldungen wären für einen Debugseiten Eintrag des Servers brauchbar, falls das überhaupt irgendwer braucht.
          Nils

          aktuelle Bausteine:
          BusAufsicht - ServiceCheck - Pushover - HS-Insight

          Kommentar


            Hi,

            mit A5 weiß man sofort wieviele und welche Regelgerate im ECOCAN-Bus existieren:

            Code:
            A500000006
            Bei mir ist das 1 und 2 als Bitmuster: 000000110 => Hex => 00000006

            Bei nur einem Regelgerät mit Adresse 0 müste das 00000001 sein.
            Also
            Code:
            A500000001
            Voila: Dann kann ich dann gleich im Direktmode "A2 01" und "A2 02" machen und alles ist erstmal up-to-date.

            Danach wird nur noch aktualisiert im "normal"-Mode.

            Ja, A6 ist ein Adressen-Fehler im Bus. Sollten wir eigentlich alle nie sehen. Aber kann man auch auswerten, ja.

            Interessant ist noch der Blockübertragungs-Mode: immer 4 mal zusammen in eine Payload.

            Das ist dann der Turbo

            Das KM471 ist historisch einiges alter als das RS232 Gateway. Ich vermute aber dass es die Sachen alle so noch gibt. Will nur sagen, müssen wir noch nachprüfen, ob es wirklich alles so geht. Denke aber schon.

            Tbi

            Kommentar


              Hallo Tbi,
              dein Dokument ist sehr hilfreich und informativ! mit B2 ... die Uhrzeit gesetzt und mit B1 verfiziert. Funktioniert super.

              Deine Idee mit der Geräteermittlung über A5 kam mir beim Lesen auch und wäre sicher eine geeignete Optimierung. Durch die 9600Baud dauert es ja ein paar Sekunden alle möglichen Geräte anzuklingeln. Du könntest dann auch direkt die Werte mit B4 ... oder das Modul mit A3 ... gezielt abfragen, wenn das Receive Config den HS zu sehr beansprucht.
              Boah, jede Menge Möglichkeiten und weil gleich Weihnachten ist: Ich wünsch mir einen Emulator für den kompletten HS zur Entwicklung. Notfalls tuts auch ein Simulator.

              Mit den wachsenden Kenntnissen über die Befehle zeigt sich, dass deine Idee, das Protokoll völlig unabhängig von den Daten zu implementieren, der absolut beste Weg war.

              Bin dann mal am testen ...

              Mike

              Kommentar


                Den HS beanspruchen? ... not really.

                Man könnte das A2 bzw A3 direkt im Serverbaustein machen, nachdem das A5 empfangen wurde.
                Nils

                aktuelle Bausteine:
                BusAufsicht - ServiceCheck - Pushover - HS-Insight

                Kommentar


                  Heizkreisbaustein im Test

                  Hallo Nils,
                  nachdem ich das fehlende " vor A19 Vorlaufsolltemp ergänzt habe, sieht es für mich bisher gut aus. Wenn du das nachziehst, kannst du auch das A vor Ausgang 34 ergänzen.

                  Mit EIB Modul und ohne FB wird es schwierig alle Testcases abzubilden.

                  @49-Haben-will-Leser: Kann mir jemand eine Fernbedieneinheit leihen? Dann teste ich das auch mal.

                  Mike

                  Kommentar


                    Hi Nils,

                    Zitat von NilsS Beitrag anzeigen
                    Den HS beanspruchen? ... not really.
                    Ich hatte hier irgendwo gelesen, dass Socket Operationen die Logik Engine blockieren. Es freut mich, wenn du da keine Bedenken hast.

                    Mike

                    Kommentar


                      Hallo Nils,
                      unter Exceptions in der Debug Liste taucht das hier bei mir auf:
                      Code:
                      [B]18.12.2012 23:17:46 (6)
                      [/B]File "[12264_Buderus]", line 187, in _send3964r
                      File "[12264_Buderus]", line 247, in wait_for_ready_to_receive
                      NameError: global name 'select' is not defined
                      'DD'
                      Kannst du damit etwas anfangen?

                      Mike

                      Kommentar


                        Zitat von pmike Beitrag anzeigen
                        Ich hatte hier irgendwo gelesen, dass Socket Operationen die Logik Engine blockieren.
                        Da hab ich als Anwender mit 10-60sek Latenz aber ganz ne andere Ansicht!
                        Nils (und ich glaube nur er ) darf mir gern widersprechen..

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

                        Kommentar


                          @mike ich guck nachher mal rein

                          Bzgl der Sockets ;-) makki ich spreche ja nicht von dem HS kommunikations trallala, sondern davon das gethreadete Sockets oder socketserver dem HS nixmachen
                          Nils

                          aktuelle Bausteine:
                          BusAufsicht - ServiceCheck - Pushover - HS-Insight

                          Kommentar


                            @mike ok ist gefixed. aktuelles ist im Git
                            Nils

                            aktuelle Bausteine:
                            BusAufsicht - ServiceCheck - Pushover - HS-Insight

                            Kommentar


                              Hallo Nils,
                              bei meinen Tests gestern habe ich festgestellt, dass nur Werte des Normalmodus in den Bausteinen ankommen. Vielleicht müssen wir dazu auch noch mal etwas nachdenken: Da ist zum Beispiel der Wert des Mischers (Stellglied), der nur im Direktmodus zur Verfügung steht, sich aber doch häufig ändert. Vielleicht ein "RefreshData" Eingang im Funktionsbaustein (Heizkreis, WW), der die Daten aktualisiert, weil z.B. die Visuseite aufgerufen wird.

                              Dann habe ich versucht, ein A201 mittels IKO auf SendData zu schicken, um ihn zum Daten holen zu bringen und nach so 2 Sekunden Bedenkzeit hat er wieder A7... Daten auf der Console ausgegeben. Scheinbar gelingt der Wechsel in den Direktmodus nicht.

                              Die XML Ausgabe anzuzeigen ist mir noch nicht gelungen, da ich hier noch nicht genau verstanden habe, welcher Baustein von dir der Richtige dafür ist und wie er eingebunden wird. Habe leider im Moment zu wenig Zeit zum Stöbern hier im Forum und würde mich über einen Hint freuen.

                              Mike

                              Kommentar


                                Also die fehlenden Directmode daten kamen evtl wegen dem fehlenden select gar nicht erst an. Daher bitte mit der aktuellen Version testen (falls nicht schon)

                                Der XML Ausgang gibt die Daten in folgender Form aus.


                                Code:
                                <busnr_1> 
                                  <errno_666>1</errno_666>
                                  <errno_41>0</errno_41>
                                  <slot_1>
                                     <errno>666</errno><errmsg>Doomsday :P</errmsg><errtime>12:12:21 21.12.12</errtime>
                                  </slot_1>
                                  <slot_2>
                                     <errno></errno><errmsg></errmsg><errtime></errtime>
                                  </slot_2>
                                  <slot_3>
                                     <errno></errno><errmsg></errmsg><errtime></errtime>
                                  </slot_3>
                                  <slot_4>
                                     <errno></errno><errmsg></errmsg><errtime></errtime>
                                  </slot_4>
                                </busnr_1>
                                nun kannst du an dem Ausgang erstmal ein xml2text anhängen, mit dem du alles von busnr_x auf einen Ausgang des Baustein XML2Text legst. EN2 busnr_1 -> Ausgang 1 nun nurnoch innerhalb der <busnr_1> tags.

                                Diesen legst du nun zum einen auf einen XML2Num, mit dem du die einzelnen Errorstatis erhalten kannst. z.B beim XML2NUM EN2 errno_666 und EN3 errno_41, dann kannst du Ausgang 1 und Ausgang 2 vom XML2Num nehmen, und sie direct auf ein 1bit Iko legen und damit direkt Fehler 666 auf busnr_1 mit einem dynobjekt rot/grün anzeigen.

                                Des weiteren legst du den Ausgang 1 vom XML2Text der unseren busnr_1 splittet. und legst den auf einen weiteren XML2Text, mit dem du die einzelnen Fehlerslots erhällst. XML2Text EN2 slot_1 EN3 slot_2 ...... die jeweiligen Ausgänge kannst du dann evtl auf ein XML2Mix legen, damit kannst du dann errno auf ein 8 oder 16bit iko legen und z.b spezielle dynamische Symbole anzeigen lassen, errmsg und errtime legst du auf 14byte iko's und kannst damit die Fehlermeldung und Uhrzeit anzeigen.

                                Hab leider gerade keine Zeit das mal eben als Logik zu bauen. Sollte aber recht einfach sein, im Zweifel einfach über makkis https://knx-user-forum.de/knx-eib-fo...lisierung.html die Werte der Ausgänge der xml2... beobachten, dann ist das eigentlich ein selbstgänger
                                Nils

                                aktuelle Bausteine:
                                BusAufsicht - ServiceCheck - Pushover - HS-Insight

                                Kommentar

                                Lädt...
                                X