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
    Hallo Zusammen,

    endlich habe ich ein paar Minuten gefunden um den aktuellen Stand zu testen und versucht den Logikbaustein mal aus Anwendersicht (wie Mike) anzuwenden und einfach mal die Bausteine compiliert und in den Experten eingebunden.

    Die Payload Ausgänge habe ich auf ein Text-Ausgang gelegt und eine HSlist erstellt.
    Das war das Ergebnis:
    buderus_test1.PNG

    Oder denke ich gerade zu einfach, bzw. hab ich etwas vergessen? Hätte jetzt hier die Payloaddaten wie im Debugger erwartet?

    Debugwerte:
    Code:
    Microsoft Windows [Version 6.1.7601]
    Copyright (c) 2009 Microsoft Corporation. Alle Rechte vorbehalten.
    
    C:\Users\MaPa>cd c:\HSLogik
    
    c:\HSLogik>python LogikGen.py -d -i 12264_Buderus_V0.9.hsl
    12264
    Looking for 12264 Config
    Found Config for 12264
    
    
    ### Logik Debugger ###
    
    teste Bedingung in Zeile 49: 'EI'
    starte Formel: "eval(compile(__import__('base64').decodestring('CmlmIEVJID09IDE6
    CiAgZ2xvYmFsIHNv .... hc3RjaGFyID0gZGF0YQo='),'<12264_Buderus>','exec'))"
    RunTime: 0.005694
    Ausgabe: 0|0|0|0
    Ergebnis: None
    -------
    teste Bedingung in Zeile 52: 'EI'
    starte Formel: 'buderus_connect(locals())'
    RunTime: 0.003680
    Ausgabe: 0|0|1|0
    Ergebnis: <__main__.buderus_connect object at 0x01CE0030>
    -------
    teste Bedingung in Zeile 53: 'EC[3]'
    >> ** intern ** auf AN[2]: "<log><id>507dfa1d66a081147d83f570a673cf30</id><facil
    ity>buderus</facility><severity>info</severity><message>Ger\xe4t 'unbekanntes Ge
    r\\xe4t (9F)' an ECOCAN 00 gefunden</message></log>"
    ** intern ** auf AN[1]: 'A7009F0ED6'
    ** intern ** auf AN[1]: 'A500000001'
    ** intern ** auf AN[1]: 'A7009F0ED7'
    ** intern ** auf AN[2]: "<log><id>b415105929200e268244bd507e23d696</id><facility
    >buderus</facility><severity>info</severity><message>Ger\xe4t 'Heizkreis 9' an E
    COCAN 00 gefunden</message></log>"
    ** intern ** auf AN[1]: 'A7008E0340'
    ** intern ** auf AN[1]: 'A500000001'
    ** intern ** auf AN[2]: "<log><id>28251e23e6ee679d71eba53983e48dea</id><facility
    >buderus</facility><severity>info</severity><message>Ger\xe4t 'Heizkreis 3' an E
    COCAN 00 gefunden</message></log>"
    ** intern ** auf AN[1]: 'A70082031F'
    ** intern ** auf AN[1]: 'A7009F0ED8'
    ** intern ** auf AN[2]: "<log><id>95077f861cf75c7c22555e782aef52a8</id><facility
    >buderus</facility><severity>info</severity><message>Ger\xe4t 'Heizkreis 4' an E
    COCAN 00 gefunden</message></log>"
    ** intern ** auf AN[1]: 'A700830A20'
    ** intern ** auf AN[1]: 'A700830A80'
    ** intern ** auf AN[1]: 'A500000001'
    ** intern ** auf AN[1]: 'A7008E0A40'
    ** intern ** auf AN[2]: "<log><id>52439b74afec02e226267eb05e31fbcb</id><facility
    >buderus</facility><severity>info</severity><message>Ger\xe4t 'Solarfunktion' an
     ECOCAN 00 gefunden</message></log>"
    ** intern ** auf AN[1]: 'A7009E0EFF'
    ** intern ** auf AN[1]: 'A7009E0FFF'
    ** intern ** auf AN[1]: 'A7009E2144'
    ** intern ** auf AN[1]: 'A7008E0A80'
    ** intern ** auf AN[1]: 'A7009E0E00'
    ** intern ** auf AN[1]: 'A7009E0F00'
    ** intern ** auf AN[1]: 'A7009E2128'
    ** intern ** auf AN[1]: 'A7009E2124'
    ** intern ** auf AN[1]: 'A500000001'
    ** intern ** auf AN[2]: "<log><id>b3dc5406f2444806f524473204e38a87</id><facility
    >buderus</facility><severity>info</severity><message>Ger\xe4t 'Unterstation' an
    ECOCAN 00 gefunden</message></log>"
    ** intern ** auf AN[1]: 'A7009D003D'
    ** intern ** auf AN[1]: 'A7009F0ED9'
    ** intern ** auf AN[1]: 'A500000001'


    Gruß
    Marcus
    Angehängte Dateien

    Einen Kommentar schreiben:


  • pmike
    antwortet
    Hallo Tbi,
    ich versuche jetzt die "Ich-bin-nur-Anwender-Sicht" zu testen, also die Bausteine direkt im HS. Du gehst da formaler ran und forderst die korrekte & vollständige Implementierung mit deinen Tests. Da ergänzen wir uns prima. Du entdeckst die prinzipiellen und ich die Flüchtigkeitsfehler. Wenn das nicht das perfekte Testteam ist!?

    BTW: Ich habe gerade festgestellt, dass die Befehle nicht durchkommen, wenn du an einer MEC2 gerade im Konfigurationsmodus bist. Für den HS kam der Befehl aber an (Kein NAK). Somit müssen wir wohl immer durch anschließendes Lesen die Annahme verifizieren.

    Zitat von tbi Beitrag anzeigen
    Ich denke aber Du hast nur ein Regelgerät, dann ist das eh nicht so wild.
    Bei mir steckt im zweiten Regelgerät nur das Solarmodul, was derzeit wenig Nutzen bringt. Insofern ja, im Moment nicht so wild, aber mit ein Grund meiner Aktivitäten hier, da das Solarmodul für das EIB Modul ja unsichtbar ist.

    Meine Hoffnung ist, dass sich durch die guten Ergebnisse auch andere nun mal trauen und uns beiden beim Testen helfen.

    Frohe (Test-)Weihnachten

    Mike

    Einen Kommentar schreiben:


  • tbi
    antwortet
    Hi Mike,

    Zitat von pmike Beitrag anzeigen
    scheinbar sind gerade irgendwie alle im Weihnachtsstress.
    Ja, da ist was dran

    Ich war noch an dem Direktmodus testen. Also wenn auf E[3]= "A201*A202" kommt. geht er zwar in den Direktmodus aber nur mit "A201" das AC01 kommt auch, aber das A202 geht nicht raus. Auch wartet er bis die 60 Sekunden des Direktmodus verstreichen und wechselt dann erst in den Normal Modus. Eigentlich sollte ja nach 1-2 Sekunden nach dem letzten ACxx in den normal Modus gewechselt werden.

    Diese Queue für die Direktmodus Befehle geht jedefalls irgendwie noch nicht.

    Dazu braucht es aber wieder etwas Zeit am Stück.

    Ich denke aber Du hast nur ein Regelgerät, dann ist das eh nicht so wild.

    Danke noch für deinen Kommentar zum Kapseln der 3964R Schicht, ja das wollen wir jetzt alle nicht mehr sehen das STX und DLE . Schön so, finde ich auch

    Ich denke Du bist nicht blockiert, ich kommen später wieder dazu. Im Moment muß ich hier noch andere Sachen fertig machen,

    Herzliche Grüsse

    Tbi

    Einen Kommentar schreiben:


  • pmike
    antwortet
    Coole Bausteingruppe

    Hi Nils,
    konnte zwar nicht intensiv testen, aber das sieht schon richtig toll aus.
    Das ganze im Blindflug entwickelt... Ich bin schwer beeindruckt!

    Solltemperatur vom WW gändert. Die Desinfektion ein und ausgeschaltet ... funzt einfach. Mischer sehe ich erst morgen, da die Hzg schon im Schlafmodus war.
    BTW: Meine XML IKOs sehen zwar noch etwas schäbig aus, aber es steht drin was reingehört. Danke.
    Der Fehlerbaustein muss leider noch bis nach Weihnachten warten.
    Frohe Weihnachten!

    Mike

    Einen Kommentar schreiben:


  • pmike
    antwortet
    Hi Nils,
    scheinbar sind gerade irgendwie alle im Weihnachtsstress.
    Zitat von NilsS Beitrag anzeigen
    Hab leider gerade keine Zeit das mal eben als Logik zu bauen.
    Deine Erklärung reicht völlig, also bitte nicht noch mehr Aufwand deshalb.
    Sind die Versionen deiner XML Bausteine im Downloadbereich hier aktuell?

    Ich teste heute abend weiter.

    Mike

    Einen Kommentar schreiben:


  • NilsS
    antwortet
    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

    Einen Kommentar schreiben:


  • pmike
    antwortet
    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

    Einen Kommentar schreiben:


  • NilsS
    antwortet
    @mike ok ist gefixed. aktuelles ist im Git

    Einen Kommentar schreiben:


  • NilsS
    antwortet
    @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

    Einen Kommentar schreiben:


  • makki
    antwortet
    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

    Einen Kommentar schreiben:


  • pmike
    antwortet
    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

    Einen Kommentar schreiben:


  • pmike
    antwortet
    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

    Einen Kommentar schreiben:


  • pmike
    antwortet
    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

    Einen Kommentar schreiben:


  • NilsS
    antwortet
    Den HS beanspruchen? ... not really.

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

    Einen Kommentar schreiben:


  • pmike
    antwortet
    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

    Einen Kommentar schreiben:

Lädt...
X