Ankündigung

Einklappen
Keine Ankündigung bisher.

Lesen eines Byte-Objektes (nicht Standart DPT)

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

  • Zigulle
    antwortet
    Zitat von kkreuzer Beitrag anzeigen
    Jetzt habe ich aber gerade einen Fix gepusht, welcher das Problem beim Parsen des "<" behebt als auch Support für den DPT 5.001 einführt.

    Da ich gerade weder ein KNX System zur Hand habe, noch den DPT 5.001 irgendwo in meiner Installation benutze, habe ich diesen Fix "blind" gemacht - kann also gut sein, dass es noch nicht so funktioniert, wie es soll.

    Wenn Du aber schonmal testen möchstest, nur zu! Bin auf Dein Feedback gespannt
    Würd ich gerne, allerdings ist Euer Repository nicht sehr intuitiv strukturiert.
    Ich verwende noch das 1.0.0 Bundle aus dem Download-Bereich. Ich hab das Repro schon ausgeheckt. Reicht es, die knx-Bindings zu ersetzen oder muss ich auch an den Core dran.

    Könntet Ihr so was wie ein Nightly-Bundle anbieten, dann ist das Testen einfacher?

    Gruß Daniel

    Einen Kommentar schreiben:


  • kkreuzer
    antwortet
    Sorry, hat etwas gedauert.
    Jetzt habe ich aber gerade einen Fix gepusht, welcher das Problem beim Parsen des "<" behebt als auch Support für den DPT 5.001 einführt.

    Da ich gerade weder ein KNX System zur Hand habe, noch den DPT 5.001 irgendwo in meiner Installation benutze, habe ich diesen Fix "blind" gemacht - kann also gut sein, dass es noch nicht so funktioniert, wie es soll.

    Wenn Du aber schonmal testen möchstest, nur zu! Bin auf Dein Feedback gespannt

    Viele Grüße,
    Kai

    Einen Kommentar schreiben:


  • kkreuzer
    antwortet
    Ok, da scheint es mir also gleich mehrere Bugs auf einmal zu geben.
    Erstens wird das "<" nicht richtig entfernt, wenn der DPT herausgefunden werden soll. Dann gibt es NPEs bei der Nutzung des DPT 5.001. Und last but not least würde vermutlich auch noch der Prozentwert falsch abgebildet.

    Ich schaue mir das bei Gelegenheit mal an, um es gerade zu ziehen.

    Grüße,
    Kai

    Einen Kommentar schreiben:


  • Zigulle
    antwortet
    Hallo,

    Zitat von kkreuzer Beitrag anzeigen
    Bist Du Dir da ganz sicher? Dein Logauszug sagte:

    Code:
    11:48:43.062 WARN o.o.b.k.i.d.KNXCoreTypeMapper[:151] - Failed creating a translator for datapoint type ‘<5.0001‘.
    tuwien.auto.calimero.exception.KNXException: main number not found for <5.0001
    at tuwien.auto.calimero.dptxlator.TranslatorTypes.cre ateTranslator(TranslatorTypes.java:442)
    Diese Meldung kann ich mir bei einer korrekten Konfiguration mit 5.001 nicht vorstellen...
    Ok, dann hier noch mal die Meldung für einen korrekten Eintrag in der items-Datei mit DPT 5.001:

    Code:
    Number Betriebsart_DG_Arbeitszimmer_Status      "Status [(%d)]"         <heating> (DG_Arbeitszimmer) { knx="<5.001:1/2/10" }
    Code:
    4:57:15.642 WARN  o.o.b.k.i.d.KNXCoreTypeMapper[:151] - Failed creating a translator for datapoint type ‘<5.001‘.
    tuwien.auto.calimero.exception.KNXException: main number not found for <5.001
    Wie gesagt. ich habs mit mehreren in Frage kommenden DPT´s versucht. Immer das gleiche.

    Interessant ist, wenn ich folgende Definition nehme:
    Code:
    Number Betriebsart_DG_Arbeitszimmer_Status      "Status [(%d)]"         <heating> (DG_Arbeitszimmer) { knx="5.001:1/2/10" }
    bekomme ich folgende Fehlermeldung:

    Code:
    15:03:58.536 ERROR o.o.b.k.i.bus.KNXBinding[:247] - Error while receiving event from KNX bus: java.lang.NullPointerException
    und bei der Angabe von keinem DTP:
    Code:
    Number Betriebsart_DG_Arbeitszimmer_Status      "Status [(%d)]"         <heating> (DG_Arbeitszimmer) { knx="1/2/10" }
    folgendes:
    Code:
    15:07:06.447 ERROR o.o.b.k.i.bus.KNXBinding[:247] - Error while receiving event from KNX bus: tuwien.auto.calimero.exception.KNXIllegalArgumentException: data length 0 < KNX data type width 2
    bzw:
    bei:
    Code:
    Number Betriebsart_DG_Arbeitszimmer_Status      "Status [(%d)]"         <heating> (DG_Arbeitszimmer) { knx="<1/2/10" }
    als Fehler:
    Code:
    15:07:57.896 ERROR o.o.b.k.i.bus.KNXBinding[:247] - Error while receiving event from KNX bus: tuwien.auto.calimero.exception.KNXIllegalArgumentException: data length 0 < KNX data type width 2
    15:07:57.898 WARN  o.o.b.k.i.bus.KNXBinding[:464] - Error sending KNX read request for 'Betriebsart_DG_Arbeitszimmer_Status': data length 0 < KNX data type width 2
    Gruß
    Daniel

    Einen Kommentar schreiben:


  • kkreuzer
    antwortet
    Zitat von Zigulle Beitrag anzeigen
    Ja, sorry. War ein Schreibfehler. Ich habe es nur mit 5.001 versucht, auch wenn der letzte Post so aussieht.
    Bist Du Dir da ganz sicher? Dein Logauszug sagte:

    Code:
    11:48:43.062 WARN o.o.b.k.i.d.KNXCoreTypeMapper[:151] - Failed creating a translator for datapoint type ‘<5.0001‘.
    tuwien.auto.calimero.exception.KNXException: main number not found for <5.0001
    at tuwien.auto.calimero.dptxlator.TranslatorTypes.cre ateTranslator(TranslatorTypes.java:442)
    Diese Meldung kann ich mir bei einer korrekten Konfiguration mit 5.001 nicht vorstellen...

    Einen Kommentar schreiben:


  • Zigulle
    antwortet
    Zitat von kkreuzer Beitrag anzeigen
    Hast du es auch mit 5.001 statt 5.0001 probiert?
    Ja, sorry. War ein Schreibfehler. Ich habe es nur mit 5.001 versucht, auch wenn der letzte Post so aussieht. Das war nur ein kurzer Hack um die Fehlermeldung zu reproduzieren.
    Bei 5.001 kann die oben genannte Fehlermeldung auch.

    Meine Vermutung ist, das die Fehlermeldung kommt, wenn KEIN DPT im Telegram gesetzt ist. Denn für dieses Telegramm ist halt kein DPT definiert (laut Manuel von Jung). Ich habe hier auch noch Temperatursensoren von MDT im Einsatz, die auf die gleiche Weise den Betriebszustand melden. Sie nennen den Zustand DPT_HVAC Status mit fast der gleichen Bit-Kodierung wie die Jung-Regler (nur Bit 4 und Bit 6 sind nicht definiert).
    Auch für dieses Objekt wird kein Standart DPT benutzt sondern in der ETS ist für das Datagram der DPT ungesetzt eingetragen, genauso wie beim Jung-Regler.
    MDT gibt extra an, das diese Objekte zur Visualisierung benutzt werden können.

    Wie geht openhab damit um, wenn kein DPT gesetzt ist?

    Gruß Daniel

    Einen Kommentar schreiben:


  • kkreuzer
    antwortet
    Hast du es auch mit 5.001 statt 5.0001 probiert?

    Einen Kommentar schreiben:


  • Zigulle
    antwortet
    Zitat von kkreuzer Beitrag anzeigen
    Welchen DPT hat die Adresse 1/2/10 denn? Wenn es 1byte ist, dann wohl eine 5.xxx, richtig? Versuche mal ein knx="<5.001:1/2/10", ob er es dann schafft, diese GA korrekt auszulesen.

    Grüße,
    Kai
    Hallo,

    genau da ist das Problem. Es hat keine Standart DPT.
    Nun bekomme ich folgende Fehlermeldung:

    11:48:43.062 WARN o.o.b.k.i.d.KNXCoreTypeMapper[:151] - Failed creating a translator for datapoint type ‘<5.0001‘.
    tuwien.auto.calimero.exception.KNXException: main number not found for <5.0001
    at tuwien.auto.calimero.dptxlator.TranslatorTypes.cre ateTranslator(TranslatorTypes.java:442)

    Die Definition im items-File lautet:
    Number Betriebsart_DG_Arbeitszimmer_Status "Status [(%d)]" <heating> (DG_Arbeitszimmer) { knx="<5.0001:1/2/10" }

    Ich habs nicht nur mit 5.001 versucht sondern auch mit fast jedem anderen, den ich im Standart gefunden habe (9.0001 usw.)

    Wenn ich den DPT weglasse:

    11:51:09.876 WARN o.o.b.k.i.bus.KNXBinding[:464] - Error sending KNX read request for 'Betriebsart_DG_Arbeitszimmer_Status': data length 0 < KNX data type width 2
    11:51:09.873 ERROR o.o.b.k.i.bus.KNXBinding[:247] - Error while receiving event from KNX bus: tuwien.auto.calimero.exception.KNXIllegalArgumentE xception: data length 0 < KNX data type width 2

    Das ganze wird in der Jung-Doku als "Non-Standart) beschrieben und auch in der ETS wird er als "undefiniert" geführt.

    Ich weiß sol langsam nicht mehr weiter.

    Gruß Daniel

    Einen Kommentar schreiben:


  • kkreuzer
    antwortet
    Welchen DPT hat die Adresse 1/2/10 denn? Wenn es 1byte ist, dann wohl eine 5.xxx, richtig? Versuche mal ein knx="<5.001:1/2/10", ob er es dann schafft, diese GA korrekt auszulesen.

    Grüße,
    Kai

    Einen Kommentar schreiben:


  • Zigulle
    hat ein Thema erstellt Lesen eines Byte-Objektes (nicht Standart DPT).

    Lesen eines Byte-Objektes (nicht Standart DPT)

    Hallo,

    mal wieder ein Problem, bei dem ich ohne Hilfe nicht weiterkommen.

    Die Jung-Raumcontroller, die ich einsetze, liefern ihren Status per 1 Byte-Objekt aus, nur so bekommt man mit, ob was umgeschaltet wurde oder nicht.

    Das Objekt ist in der Doku mit nicht Standart-DPT angegeben und hat folgenden Aufbau:

    Bit
    0 - Komfort - An/Aus
    1 - Standby - An/Aus
    2 - Nacht An/Aus
    3 - Frostschutz An/Aus
    4 - Regler gesperrt
    5 - Heizen
    6 - Regler inaktiv
    7- Frostalarm

    Wie bekomme ich die Adresse z.B. 1/2/10 als Zahl (dezimal reicht mir) ausgelesen. Folgende Konfig:
    Number Betriebsart_DG_Arbeitszimmer_Status "Status" <heating> (DG_Arbeitszimmer) { knx="<1/2/10" }

    liefert mir die Fehlermeldung:
    16:58:27.405 DEBUG o.o.b.k.i.bus.KNXBinding[:456]- Sending read request to KNX for item Betriebsart_DG_Arbeitszimmer_Status
    16:58:27.499 WARN o.o.b.k.i.bus.KNXBinding[:464]- Error sending KNX read request for 'Betriebsart_DG_Arbeitszimmer_Status': data length 0 < KNX data type width 2
    16:58:27.506 ERROR o.o.b.k.i.bus.KNXBinding[:247]- Error while receiving event from KNX bus: tuwien.auto.calimero.exception.KNXIllegalArgumentE xception: data length 0 < KNX data type width 2

    Das Parsen würd ich schon hinbekommen, wenn in der rules-Datei & Verknüfungen erlaubt sind.

    Gruß
    Daniel
Lädt...
X