ich möchte erst mal erklären was ich vorhabe.
Ich habe an meiner Loxone eine RS232 Extension die an einem MBUS Pegelwandler meinen Wärmemengenzähler Allmess ausliest.
Ich sende den UDP2 Befehl zur Abfrage dort hin und bekomme auch die Antwort zurück.
Was bis jetzt funktioniert sind die 16Bit Antworten für z.B. die KWh Gesamt.
Mein Problem ist aber die 4Bit BCD in Loxone darzustellen. Diese sind ja per Hex direkt sichtbar und zwar in 2 Byte. Als Beispiel Hexerkennung: …….,0A,5A,65,07,….
Die Zahlen in Rot sind DIF und VIF zur Erkennung und die Zahlen in Blau sind die 2 Byte als 4Bit BCD. Ich brauche ja nur die Hexzahlen nehmen und Darstellen. Dies währe in meinem Beispiel ja 65,07 °C.
Leider funktioniert bei Loxone die Funktion /h Hexzahl darstellen nicht. Ich habe Loxone schon vor 6 Monaten angeschrieben und dies geschildert. Sie haben auch eingesehen das diese Funktion ein Bug hat. Kann mir hier vielleicht einer helfen diese Funktion mit PicoC oder anders zu lösen?
Es würde wohl auch gehen wenn ich den Empfangenen String per PicoC auslese und direkt als Hexzahlen rausgebe um ihn anschließend mit der Befehlserkennung rauszufiltern.
Ich hänge noch ein paar Dokus an damit man sich ein Bild machen kann.
Hier noch eine Antwort von Loxone. Dort hat es funktioniert, da Sie es direkt als Text eingegeben habe und nicht als richtiger String von RS232.
Auch davon habe ich ein Bild im Anhang. Deswegen bin ich auf PicoC gekommen.:
Hallo Herr .........,
ich habe in den vergangenen Tagen einige Dinge getestet, um an die gewünschten Daten aus den RS232 Protokoll heranzukommen.
Nachdem diverse Versuche des Umrechnens nicht hingehauen haben, habe ich noch nachfolgenden wenig smarte, aber effektive Methode zur Auswertung gefunden.
Der \. Operator! Dieser geht einfach durch den kompletten empfangenen Text und überspringt so viele Zeichen wie die Anzahl der Operatoren in der Befehlserkennung hat.
Zur Verdeutlichung habe ich im Anhang einen Screenshot meines Tests angehängt.
Vielen Dank!
Kommentar