Skip to content
This repository has been archived by the owner on Dec 30, 2018. It is now read-only.

eBus Parser Config

csowada edited this page Sep 25, 2014 · 2 revisions

Beispiel

Telegramme parsen

[
	{
		"comment":	"[OK] Betriebsdaten des Feuerungsautomaten an den Regler - Block 1",
		"filter":	"?? ?? 05 03 08 01 .*",
		"debug": 2,
		
		"values": {
			"status_auto_stroker":	{"type": "byte", "pos":7, "label": "Statusanzeige"},
			"state_ldw":			{"type": "bit", "pos":8, "bit": 0, "label": "LDW"},
			"state_gdw":			{"type": "bit", "pos":8, "bit": 1, "label": "GDW"},
			"state_ws":				{"type": "bit", "pos":8, "bit": 2, "label": "WS"},
			"state_flame":			{"type": "bit", "pos":8, "bit": 3, "label": "Flame"},
			"state_valve1":			{"type": "bit", "pos":8, "bit": 4, "label": "Valve1"},
			"state_valve2":			{"type": "bit", "pos":8, "bit": 5, "label": "Valve2"},
			"state_uwp":			{"type": "bit", "pos":8, "bit": 6, "label": "UWP"},
			"state_alarm":			{"type": "bit", "pos":8, "bit": 7, "label": "Alarm"},
			"adjusting_vessel":		{"type": "uchar", "pos":9, "label": "Stellgrad MIN-MAX Kesselleistung in %"},
			"temp_vessel": 			{"type": "data1c", "pos":10, "label": "Kesseltemperatur"},
			"temp_return": 			{"type": "uchar", "pos":11, "label": "Rücklauftemperatur"},
			"temp_boiler": 			{"type": "uchar", "pos":12, "label": "Boilertemperatur"},
			"temp_outdoor": 		{"type": "char", "pos":13, "label": "Außentemperatur", "undefined":"0xF"}
		}
	},
	
	{
		"comment":	"[OK] Datum/Zeitmeldung eines eBUS Masters",
		"filter":	"?? ?? 07 00 09 .*",
		
		"values": {
			"temp_outdoor":			{"type": "data2b", "pos":6, "label": "Außentemperatur"},
			"time_sec":				{"type": "bcd", "pos":8, "label": "Zeit Sek."},
			"time_min":				{"type": "bcd", "pos":9, "label": "Zeit Min"},
			"time_hour":			{"type": "bcd", "pos":10, "label": "Zeit Stunde"},
			
			"date_day":				{"type": "bcd", "pos":11, "label": "Zeit Stunde"},
			"date_month":			{"type": "bcd", "pos":12, "label": "Zeit Stunde"},
			"date_year":			{"type": "bcd", "pos":14, "label": "Zeit Stunde", "debug": 1}
		},
		"computed_values": {
			"time":					{"type": "script", "script": "time_hour + ':' + time_hour + ':' + time_sec", "label": "Aktuelle Zeit"},
			"date":					{"type": "script", "script":	"date_year + '-' + date_month + '-' + date_year", "label": "Aktuelles Datum"}
		}
	},
]

1. Ebene

Eintrag Beschreibung
comment Hier können Kommentare und hinweise angegeben werden. Da JSON keine Kommentare im Quelltext erlaubt, kann dies hierzu genutzt werden.
filter Hier wird RegEx verwendet um passende Einträge zu einem Telegramm zu finden. Der Platzhalter ?? wird durch [A-Z0-9]{2} ersetzt.
debug Hier kann für eine einzelne Konfiguration das debugging aktiviert werden.
values Das ist ein Array mit den verschieden Werten eines Telegramms, siehe 2. Ebene.
computed_values Hier können nach den ``values```noch weitere Werte anhand der Daten berechnet werden, siehe 2. Ebene.

2. Ebene

Eintrag Beschreibung
type data2b, data2c, data1c, byte, bit, bcd, word, char, uchar und script(nur für computed_values)
pos Position an der der Typ zu finden ist, es wird mit dem Index 1 gestartet
bit Beim Typ bit wird hier die Bit Position mitz Index 0 angegeben.
label Eine Klartextbeschreibung des Eintrags
script Hier kann das Ergebnis in JavaScript noch weiter verarbeitet werden. Man kann durch die Variable thisValue oder die ID auf den Wert zugreifen. Bei Verwendung in computed_values stehen alle Werte anhand der ID aus values zur Verfügung. Bitte an die kodierung des Zeichens " denken.
debug Hier kann für diesen Eintrag noch spezielles Debugging aktiviert werden.