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

  • MaPa
    antwortet
    @Nils
    Das ist richtig was du das schreibst ->
    Solar hat hier schon funktoniert, Heizkreise noch nicht!
    Sollte auch nur demonstrieren wie das angedacht war.

    Schade das Seriell nicht mehr drin ist, dann kann ich auch nicht testen, da ich kein Moxa habe!

    Einen Kommentar schreiben:


  • MarcusF
    antwortet
    Mal eine grundsätzliche Frage dazu: Könnte man in ähnlicher Weise auch den eBus (Vaillant) an den HS bringen? Letztlich ist das ja auch ein serielles Protokoll, das ich bereits per eBus-RS232-Interface und Lantronix (ähnlich Moxa) ans Netzwerk angebunden habe. Mit dem Erstellen von Python-Logikbausteinen im HS kenn ich mich halt gar nicht aus...

    Wäre eine Alternative für HS-Besitzer mit Vaillant-Heizung, auf dem Wiregate gibts da schon etliches dazu.

    Marcus

    Einen Kommentar schreiben:


  • NilsS
    antwortet
    @MaPa

    zur auch nur annähernden Funktionalität des obigen Screenshots, sag ich mal nix das geht nichtmal aus dem Experten raus.

    *unterschiedliche Datentypen an den Eingängen
    *kein Ausgang belegt

    aber naja nu isses ja eigentlich vom Tisch

    Einen Kommentar schreiben:


  • NilsS
    antwortet
    Zitat von MaPa Beitrag anzeigen
    * Schnittstelle Moxa und RS232.
    nicht korrekt, den serial support habe ich entfernt weil es pyserial auf dem HS nicht gibt. Auf dem HS4 bestünde zwar die Möglichkeit das wieder hinzuzufügen .... aber dafür ist es ja OSS :P

    Einen Kommentar schreiben:


  • MaPa
    antwortet
    Zitat von Gaston Beitrag anzeigen
    Sorry hat etwas gedauert. Aber das verstehe Ich nicht. Ich habe ein Bild von MaPa im Juli erhalten in dem die Bausteine im HS Logikeditor zu sehen sind. Woraufhin Ich auch die Aussage bekam diese könnten eigentlich sofort veröffentlicht werden.

    Woraufhin Ich logischerweise mein projekt einstellte. Ok, muss dann mal sehen welche Schritte Ich unternehme.

    Gruss,
    Gaston

    Es ist richtig, ich hatte einen Baustein und sagen wir mal für "Beta-User" soweit fertig. Mein HS-Logik war Quick and Dirty aufgebaut, da ich noch nie Python bzw. für den HomeServer Logikmodule programmiert habe. So wie ich in der Email geschrieben habe, geht das Lesen mit dem Baustein nur im "Normal Mode". Also einmal Initial und dann nur noch Änderungen. Dabei habe ich nur nach dem Offset 0x9E für Solar und Offset 0x82 für Heizkreis 3 gesucht und diese Daten als Stream ausgegeben. Damit hier alle wissen um welches Bild es sich handelt: (siehe Anhang) Die Module danach sind Byte2Bit-Wandler nichts Weltbewegendes. Danach blieb der Code liegen und wurde nichts mehr weiter gemacht, da es für mich andere Prioritäten gab.

    Der Pythoncode den ich Nils gegeben habe funktioniert im Normal und Direkt Modus, aber keine HomeServer Bausteine. Nils ist dabei den Code so umzuschreiben, dass der neue Baustein alles kann:
    * Lesen und Schreiben,
    * Normal-Modus und Direkt-Modus.
    * Schnittstelle Moxa und RS232.
    * in HS-Logikbaustein verpacken (da scheint Nils Profi zu sein)

    Dafür bin ich Nils und auch allen anderen hier sehr dankbar, dass sie ihre Freizeit dafür opfert und als OSS weiter entwickelt.

    @Gaston, wo liegt jetzt genau ihr Problem?
    Angehängte Dateien

    Einen Kommentar schreiben:


  • NilsS
    antwortet
    Antwortet ein Gerät auf den Sendewunsch (Zeichen STX) seines Peripheriegerätes innerhalb der
    Quittungsverzugszeit QVZ nicht mit der Quittung DLE oder NAK, sondern ebenfalls mit dem Zeichen STX,
    liegt ein Initialisierungskonflikt vor. Beide Geräte möchten einen vorliegenden Sendeauftrag ausführen.
    Das Gerät mit der niederen Priorität stellt seinen Sendeauftrag zurück und antwortet mit dem Zeichen
    DLE. Das Gerät mit der höheren Priorität sendet daraufhin seine Daten in der vorher beschriebenen
    Weise. Nach dem Verbindungsabbau kann das Gerät mit der niederen Priorität seinen Sendeauftrag
    ausführen.
    Wie sollen wir das machen? wer hat die höhere Priorität? wollen wir uns unterordnen und erst empfangen?

    Einen Kommentar schreiben:


  • NilsS
    antwortet
    Zitat von pmike Beitrag anzeigen
    Mmh, ich habe dirkt das Zipfile von hier genommen (weil ich mir den Client sparen wollte)
    Hmm das ist ja komisch, das ist nicht aktuell oO

    https://raw.github.com/knxuf/buderus...264_Buderus.py

    das sollte immer das aktuelle aus dem git sein

    EDIT:

    oh fast vergessen updated und hoffenltich fixed

    Einen Kommentar schreiben:


  • tbi
    antwortet
    So, nachdem mir doch die Augen zugefallen waren, hier mal ein Test, scheint sich gelohnt zu haben noch ein Nickerchen zu machen

    Also das Umschalten zwischen Read und Write Thread scheint jetzt zu gehen.
    Auch der * und die Leerzeichen werden umgesetzt. => dreimal send geht und die Leerzeichen sind entfernt.

    Aber das Empfangen geht noch nicht.

    Das Bild vom Debugger im Anhang

    In den Kongfig steht das AN[3]="A2 01 23 24 53 66" übrigens. geht auch.

    und der Log om Terminal:
    einfach:
    Code:
    -> A2 01 23 24 53 66 
    -> DD 
    -> A2 01 
    -> DE 
    <- 0B 90 06 00 08 44  (error: timeout - no DLE after STX)
    -> DD 
    -> A2 01 
    -> DE
    mit trace
    Code:
    1354762304401 - COM2 - (z00) receive: STX
    1354762304581 - COM2 - (z00) sending: DLE
    1354762304581 - COM2 - (z00) receive: A2 01 23 24 53 66 
    1354762304621 - COM2 - (z21) receive: DLE
    1354762304621 - COM2 - (z22) receive: ETX
    1354762304621 - COM2 - (z23) receive: BCC=[82], is ok
    1354762304621 - COM2 - (z23) sending: DLE
    1354762351739 - COM2 - (z00) receive: STX
    1354762351919 - COM2 - (z00) sending: DLE
    1354762351919 - COM2 - (z00) receive: DD 
    1354762351949 - COM2 - (z21) receive: DLE
    1354762351949 - COM2 - (z22) receive: ETX
    1354762351949 - COM2 - (z23) receive: BCC=[CE], is ok
    1354762351949 - COM2 - (z23) sending: DLE
    1354762351969 - COM2 - (z00) receive: STX
    1354762352149 - COM2 - (z00) sending: DLE
    1354762352149 - COM2 - (z00) receive: A2 01 
    1354762352179 - COM2 - (z21) receive: DLE
    1354762352179 - COM2 - (z22) receive: ETX
    1354762352179 - COM2 - (z23) receive: BCC=[B0], is ok
    1354762352179 - COM2 - (z23) sending: DLE
    1354762352199 - COM2 - (z00) receive: STX
    1354762352380 - COM2 - (z00) sending: DLE
    1354762352380 - COM2 - (z00) receive: DE 
    1354762352410 - COM2 - (z21) receive: DLE
    1354762352410 - COM2 - (z22) receive: ETX
    1354762352410 - COM2 - (z23) receive: BCC=[CD], is ok
    1354762352410 - COM2 - (z23) sending: DLE
    
    1354762362194 - COM2 - (z00) sending: STX
    1354762364197 - COM2 - (z01) sending: STX, because QVZ is over
    1354762366199 - COM2 - (z11) sending: STX, because QVZ is over
    1354762368202 - COM2 - (z12) QVZ is over
    1354762368212 - COM2 - (z12) After STX no DLE within QVZ-time. Unable to send the data. Please try again. Rejecting the data !!!
    1354762388662 - COM2 - (z00) receive: STX
    1354762388842 - COM2 - (z00) sending: DLE
    1354762388852 - COM2 - (z00) receive: DD 
    1354762388872 - COM2 - (z21) receive: DLE
    1354762388872 - COM2 - (z22) receive: ETX
    1354762388872 - COM2 - (z23) receive: BCC=[CE], is ok
    1354762388882 - COM2 - (z23) sending: DLE
    1354762388892 - COM2 - (z00) receive: STX
    1354762389072 - COM2 - (z00) sending: DLE
    1354762389072 - COM2 - (z00) receive: A2 01 
    1354762389102 - COM2 - (z21) receive: DLE
    1354762389102 - COM2 - (z22) receive: ETX
    1354762389102 - COM2 - (z23) receive: BCC=[B0], is ok
    1354762389102 - COM2 - (z23) sending: DLE
    1354762389122 - COM2 - (z00) receive: STX
    1354762389303 - COM2 - (z00) sending: DLE
    1354762389303 - COM2 - (z00) receive: DE 
    1354762389333 - COM2 - (z21) receive: DLE
    1354762389333 - COM2 - (z22) receive: ETX
    1354762389333 - COM2 - (z23) receive: BCC=[CD], is ok
    1354762389333 - COM2 - (z23) sending: DLE
    Also Senden geht and empfangen hängt.

    Gute Nacht

    Tbi
    Angehängte Dateien

    Einen Kommentar schreiben:


  • pmike
    antwortet
    Zitat von NilsS Beitrag anzeigen
    @mike

    Ich glaube du hast die falsche Version. meine Version die das kann ist nicht im Master sondern im Head

    git checkout Head
    git pull HEAD
    Mmh, ich habe dirkt das Zipfile von hier genommen (weil ich mir den Client sparen wollte) und dann EN[3]="DD"+run eingegeben:

    Code:
    DEBUG: 'STX <--- empfangen'
    DEBUG: '---> DLE gesendet'
    DEBUG: "Data 'A7'"
    DEBUG: "Data '01'"
    DEBUG: "Data '89'"
    DEBUG: "Data '1A'"
    DEBUG: "Data 'AB'"
    DEBUG: 'erstes DLE in DATA gefunden'
    DEBUG: 'Received BBC -> OK'
    DEBUG: Daten sind erfolgreich empfangen
    DEBUG: "Reveice_Data 'A7 01 89 1A AB'"
    DEBUG: _3964r_Receive: Also in Empfangs Mode
    EN[3]="DD"
    >> run
    teste Bedingung in Zeile 49: 'EI'
    teste Bedingung in Zeile 52: 'EI'
    teste Bedingung in Zeile 53: 'EC[3]'
    starte Formel: 'SN[1].incomming(EN[3])'
    DEBUG: "incomming message 'DD'"
    RunTime: 0.000419
    Ausgabe: 0|0|0|0
    Ergebnis: None
    -------
    Nach ca. 2s Denkpause spuckt er weiter Normalmode Daten aus. Das dürfte er im Direktmodus aber erst nach 1min und auf "A201" reagiert er deshalb auch nicht. Nach meiner Vermutung ist nicht sichergestellt, dass der Befehl solange gesendet wird, bis ein DLE von der Anlage kommt.

    Mike

    Einen Kommentar schreiben:


  • NilsS
    antwortet
    Zitat von pmike Beitrag anzeigen
    Allerdings weiß ich nicht, wie man 60Byte zwischen zwei Bausteinen übertragen könnte.
    keine Sorge da ja alle als hex String kommen können die einfach über ein 14byte iko im HS verarbeitet werden. Genau so wie es hsfusion jetzt mit den connectoren macht. Da geht bis 10kbyte sogar remanent.

    Einen Kommentar schreiben:


  • NilsS
    antwortet
    @mike

    Ich glaube du hast die falsche Version. meine Version die das kann ist nicht im Master sondern im Head

    git checkout Head
    git pull HEAD

    Einen Kommentar schreiben:


  • NilsS
    antwortet
    Fixed

    Einen Kommentar schreiben:


  • NilsS
    antwortet
    Tobias das ungültige Zeichen kannst du einfach ignorieren, das baue ich noch um. Das kommt aus dem anderen thread. Das sollte eigentlich nicht stören

    Edit: Mist klar das read schnappt das DLE da natürlich weg.

    Einen Kommentar schreiben:


  • pmike
    antwortet
    Hi Nils,
    die Eingabe von EN[3]="DD" ... habe ich irgendwie nicht hinbekommen. Ich lese am WE noch mal deine Anleitung zum Debugger.

    Dafür habe ich in der Zeile 268 MODE_DIRECT statt MODE_NORMAL eingetragen und das Array in Zeile 277 auf Send_Data=[ 0xA2 , 0x01 ]
    Man kann "DD" und "A201" leider nicht in einem 3964r Frame packen, sondern immer schön nacheinander, weil Einzelkommandos. Dann kommen auch die Konfigurationsdaten vom Gerät 1. Nach einer Minute ohne Action kommen dann die Normal-Modus Daten.
    Das Ende der Konfiguration ist immer "AC <Ger.-ID>" auch wenn das Gerät nicht da ist.

    Supi!

    So könnte man in einer Schleife die Initialdaten holen und die Einzelwerte mit den Normal-Mode Daten aktualisieren. Ein Kesselbaustein fragt dann z.B. den Typ "0x92" ab und bekommt die 60 Byte Daten vom
    Grundbaustein im aktuellen Status zur Weiterverarbeitung. Allerdings weiß ich nicht, wie man 60Byte zwischen zwei Bausteinen übertragen könnte.


    Zitat von NilsS Beitrag anzeigen
    ich hoffe das ich auch jede menge Daten bekomme
    Ich kann dir meine Konfigurationsdaten als Hexdump schicken, wenn das hilft. War die Frage so gemeint?

    Viele Grüße
    Mike

    Einen Kommentar schreiben:


  • tbi
    antwortet
    Hi Nils,
    hab gerade angefangen, Kommt "ein ungülige Zeichen //0x10" empfangen" nach dem STX

    Mach nachher weiter. Wir habe hier noch Besuch bekommen und den muß ich nun noch in Bett treiben

    Weißt Du einen git Befehl um das letzte File vom Branch local zu kriegen ?

    Viele Grüße

    Tbi
    Angehängte Dateien

    Einen Kommentar schreiben:

Lädt...
X