diff options
author | Yves Fischer <yvesf-git@xapek.org> | 2016-08-14 19:25:26 +0200 |
---|---|---|
committer | Yves Fischer <yvesf-git@xapek.org> | 2016-08-14 19:25:26 +0200 |
commit | caae83f445935c06cd6aef36f283a4688675278a (patch) | |
tree | 5e63cbfd2877195430a8657dcd75f42b6a4d7110 /ebus-xml | |
download | ebus-caae83f445935c06cd6aef36f283a4688675278a.tar.gz ebus-caae83f445935c06cd6aef36f283a4688675278a.zip |
refactored ebus code
Diffstat (limited to 'ebus-xml')
-rw-r--r-- | ebus-xml/Makefile | 16 | ||||
-rw-r--r-- | ebus-xml/dist/2011-06-25/ebus.docbook.pdf | bin | 0 -> 152206 bytes | |||
-rw-r--r-- | ebus-xml/dist/2016-08-14/ebus.docbook.pdf | bin | 0 -> 87783 bytes | |||
-rw-r--r-- | ebus-xml/dist/2016-08-14/ebus.xml | 258 | ||||
-rw-r--r-- | ebus-xml/ebus-0.1.xsd | 158 | ||||
-rw-r--r-- | ebus-xml/ebus.docbook.xslt | 244 | ||||
-rw-r--r-- | ebus-xml/ebus.xml | 256 |
7 files changed, 932 insertions, 0 deletions
diff --git a/ebus-xml/Makefile b/ebus-xml/Makefile new file mode 100644 index 0000000..1a8f4fc --- /dev/null +++ b/ebus-xml/Makefile @@ -0,0 +1,16 @@ +TARGET_DIST=dist/$(shell date --rfc-3339=date) + +all: doc + +doc: + test -d build || mkdir build + xsltproc ebus.docbook.xslt ebus.xml > build/ebus.docbook.xml + dblatex -T db2latex build/ebus.docbook.xml + +dist: doc + test -d $(TARGET_DIST) || mkdir -p $(TARGET_DIST) + cp build/ebus.docbook.pdf $(TARGET_DIST) + cp ebus.xml $(TARGET_DIST) + +validate: + xmllint --noout --schema ebus-0.1.xsd ebus.xml diff --git a/ebus-xml/dist/2011-06-25/ebus.docbook.pdf b/ebus-xml/dist/2011-06-25/ebus.docbook.pdf Binary files differnew file mode 100644 index 0000000..819f85e --- /dev/null +++ b/ebus-xml/dist/2011-06-25/ebus.docbook.pdf diff --git a/ebus-xml/dist/2016-08-14/ebus.docbook.pdf b/ebus-xml/dist/2016-08-14/ebus.docbook.pdf Binary files differnew file mode 100644 index 0000000..dfba6fc --- /dev/null +++ b/ebus-xml/dist/2016-08-14/ebus.docbook.pdf diff --git a/ebus-xml/dist/2016-08-14/ebus.xml b/ebus-xml/dist/2016-08-14/ebus.xml new file mode 100644 index 0000000..39ebca8 --- /dev/null +++ b/ebus-xml/dist/2016-08-14/ebus.xml @@ -0,0 +1,258 @@ +<?xml version="1.0" standalone="yes"?> +<!-- Ebus Paketspezifikation. https://xapek.org/ --> +<ebus xmlns="http://xapek.org/ebus/0.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://xapek.org/ebus/0.1 ebus-0.1.xsd"> + <devices> + <device address="0" type="master" name="pcModem"> + <description lang="de">PC oder Modem</description> + <description lang="en">PC or Modem</description> + </device> + <device address="3" type="master" name="feuerungsautomat1"> + <description lang="de">Feuerungsautomat 1</description> + </device> + <device address="10" type="master" name="rcClockModel"> + <description lang="de">RC-Clock Model</description> + </device> + <device address="7" type="master" name="unknown"> + <description lang="de">Unbekannt</description> + </device> + <device address="16" type="master" name="heizkreisregler2"> + <description lang="de">Heizkreisregler 2</description> + </device> + <device address="17" type="master" name="busInterface1"> + <description lang="de">Bus Interface 1</description> + </device> + <device address="19" type="master" name="feuerungsautomat2"> + <description lang="de">Feuerungsautomat 2</description> + </device> + <device address="48" type="master" name="heizkreisregler1"> + <description lang="de">Heizkreisregler 1</description> + </device> + <device address="49" type="master" name="busInterface2"> + <description lang="de">Bus Interface 2</description> + </device> + <device address="51" type="master" name="feuerungsautomat3"> + <description lang="de">Feuerungsautomat 3</description> + </device> + <device address="112" type="master" name="heizkreisregler2"> + <description lang="de">Heizkreisregler 2</description> + </device> + <device address="113" type="master" name="heizkreisregler9"> + <description lang="de">Heizkreisregler 9</description> + </device> + <device address="115" type="master" name="feuerungsautomat4"> + <description lang="de">Feuerungsautomat 4</description> + </device> + <device address="241" type="master" name="heizkreisregler10"> + <description lang="de">Heizkreisregler 10</description> + </device> + <device address="80" type="slave" name="mischer1"> + <description lang="de">Mischer 1</description> + </device> + <device address="81" type="slave" name="mischer2"> + <description lang="de">Mischer 2</description> + </device> + <device address="144" type="slave" name="fernsteller1"> + <description lang="de">Raumgeräte/Fernsteller 1</description> + </device> + <device address="145" type="slave" name="fernsteller2"> + <description lang="de">Raumgeräte/Fernsteller 2</description> + </device> + <device address="240" type="master" name="heizkreisregler3"> + <description lang="de">Heizkreisregler 3</description> + </device> + <device address="240" type="master" name="feuerungsautomat5"> + <description lang="de">Feuerungsautomat 5</description> + </device> + <device address="254" type="broadcast" name="broadcast"> + <description lang="de">Broadcast-Adresse</description> + </device> + <device address="255" type="master" name="pc"> + <description lang="de">PC</description> + </device> + </devices> + <packets> + <packet primary="5" secondary="3" name="betriebsdatenRegler1"> + <description lang="de">Betriebsdaten des Feuerungsautomaten an den Regler Block1</description> + <fields> + <byte offset="3" name="stellgradKesselleistung"> + <description lang="de">Stellgrad Kesselleistung</description> + </byte> + <data1c offset="4" name="kesselTemperatur"> + <description lang="de">Kessel Temperatur</description> + </data1c> + <byte offset="5" name="ruecklaufTemperatur"> + <description lang="de">Rücklauf Temperatur</description> + </byte> + <byte offset="6" name="boilerTemperatur"> + <description lang="de">Boiler Temperatur</description> + </byte> + <data1b offset="7" name="aussenTemperatur"> + <description lang="de">Aussentemperatur</description> + </data1b> + </fields> + </packet> + <packet primary="5" secondary="7" + name="betriebsdatenFeuerungsautomat"> + <description lang="de">"Betriebsdaten des Reglers an den Feuerungsautomaten</description> + <fields> + <byteEnum offset="0" name="betriebszustand"> + <option value="0" name="brennerAbschalten"> + <description lang="de">Brenner Abschalten</description> + </option> + <option value="1" name="keineAktion"> + <description lang="de">Keine Aktion</description> + </option> + <option value="85" name="brauchwasserbereitung"> + <description lang="de">Brauchwasserbereitung</description> + </option> + <option value="170" name="heizbetrieb"> + <description lang="de">Heizbetrieb</description> + </option> + <option value="204" name="emissionskontrolle"> + <description lang="de">Emissionskontrolle</description> + </option> + <option value="221" name="tuevFunktion"> + <description lang="de">TÜV Funktion</description> + </option> + <option value="238" name="reglerStopp"> + <description lang="de">Regler Stopp</description> + </option> + <option value="102" name="brauchwasserReglerstopp"> + <description lang="de">Brauchwasserbereitung bei Reglerstoppfunktion</description> + </option> + <option value="187" name="brauchwasserHeizbetrieb"> + <description lang="de">Brauchwasserbereitung bei Heizbetrieb</description> + </option> + <option value="68" name="reglerstoppStufig"> + <description lang="de">Reglerstoppfunktion bei stufigem Betrieb</description> + </option> + </byteEnum> + <byteEnum offset="1" name="aktion"> + <option value="0" name="keineAktion"> + <description lang="de">Keine Aktion</description> + </option> + <option value="1" name="ausschaltenKesselpumpe"> + <description lang="de">Ausschalten Kesselpumpe</description> + </option> + <option value="2" name="einschaltenKesselpumpe"> + <description lang="de">Einschalten Kesselpumpe</description> + </option> + <option value="3" name="ausschaltenVariableVerbraucher"> + <description lang="de">Ausschalten variable Verbraucher</description> + </option> + <option value="4" name="einschaltenVariableVerbraucher"> + <description lang="de">Einschalten variable Verbraucher</description> + </option> + </byteEnum> + <data2c offset="2" name="kesselSollwertTemperatur"> + <description lang="de">Kessel Temperatur Sollwert</description> + </data2c> + <data2b offset="4" name="kesselSollwertDruck"> + <description lang="de">Kesseldruck Sollwert</description> + </data2b> + <data1c offset="6" name="stellgrad"> + <description lang="de">Stellgrad</description> + </data1c> + <data1c offset="7" name="brauchwasserSollwert"> + <description lang="de">Brauchwasser Sollwert</description> + </data1c> + </fields> + </packet> + + <packet primary="7" secondary="0" name="datumZeit"> + <description lang="de">Datum/Zeit Meldung eines eBus Master</description> + <fields> + <data2b offset="0" name="aussenTemperatur" /> + <bcd offset="2" name="sekunden" /> + <bcd offset="3" name="minuten" /><!-- FEHLER ab hier beim offset??? --> + <bcd offset="4" name="stunden" /> + <bcd offset="5" name="tag" /> + <bcd offset="6" name="monat" /> + <bcd offset="7" name="wochentag" /> + <bcd offset="8" name="jahr" /> + </fields> + </packet> + + <packet primary="8" secondary="0" name="sollwertuebertragungRegler"> + <description lang="de">Sollwertübertragung des Reglers an andere Regler</description> + <fields> + <data2b offset="0" name="TK_soll"> + <description lang="de">Kessel Sollwert in °C [1/256]</description> + </data2b> + <data2b offset="2" name="TA_ist"> + <description lang="de">Aussentemperatur in °C [1/256]</description> + </data2b> + <data1b offset="4" name="L_zwang"> + <description lang="de">Leistungszwang in Prozent</description> + </data1b> + <bit offset="5" name="Status"> + <description lang="de">Status</description> + </bit> + <data2b offset="6" name="TB_soll"> + <description lang="de">Brauchwassersollwert</description> + </data2b> + </fields> + </packet> + + <packet primary="3" secondary="8" name="brenstoffmengeLesen"> + <description lang="de">Gesamtbrennstoffmenge Lesen</description> + <fields /> + </packet> + + <!-- #x50, Kromschröder Spezial --> + <packet primary="80" secondary="20" name="vorlauftemperatur"> + <description lang="de">Reversed from http://www.mikrocontroller.net/topic/91164#1070401</description> + <fields> + <data2b offset="0" name="vorlauftemperaturIst"> + <description lang="de">Aktuelle Vorlauftemperatur + Mischerkreis</description> + </data2b> + <data2b offset="2" name="vorlauftemperaturSoll"> + <description lang="de">Soll Vorlaufteperatur + Mischerkreis</description> + </data2b> + </fields> + </packet> + + <packet primary="80" secondary="23" name="solarDaten"> + <description lang="de">Solar Daten</description> + <fields> + <bit offset="0" name="solarPumpe"> + <description lang="de">Betriebszustand Solarpumpe</description> + </bit> + <data2c offset="2" name="tempKollektor"> + <description lang="de">>Wassertemperatur am Kollektor</description> + </data2c> + <data2c offset="4" name="tempWarmwasserSolar"> + <description lang="de">Warmwassertemperatur am + Kollektor</description> + </data2c> + </fields> + </packet> + + <packet primary="80" secondary="24" name="solarDatenSumme"> + <description lang="de">Reversed siehe ebus-wiki</description> + <fields> + <data2b offset="0" name="aktuelleLeistung"> + <description lang="de">Aktuelle Solarleistung</description> + </data2b> + <word offset="2" name="tagesertragLow"> + <description lang="de">Tagesertrag low</description> + </word> + <word offset="4" name="tagesertragHigh"> + <description lang="de">Tagesertrag high * 1000</description> + </word> + <word offset="6" name="ertragssumme"> + <description lang="de">Ertragssumme</description> + </word> + <word offset="8" name="ertragssummeT"> + <description lang="de">Ertragssumme T * 1000</description> + </word> + <word offset="10" name="ertragssummeM"> + <description lang="de">Etragssumme M * 1000 * 1000</description> + </word> + </fields> + </packet> + </packets> +</ebus> diff --git a/ebus-xml/ebus-0.1.xsd b/ebus-xml/ebus-0.1.xsd new file mode 100644 index 0000000..4e96176 --- /dev/null +++ b/ebus-xml/ebus-0.1.xsd @@ -0,0 +1,158 @@ +<?xml version="1.0" encoding="UTF-8"?> +<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://xapek.org/ebus/0.1" + xmlns:tns="http://xapek.org/ebus/0.1" elementFormDefault="qualified"> + <element name="ebus"> + <complexType> + <sequence> + <element name="devices"> + <complexType> + <sequence minOccurs="0"> + <element name="device" type="tns:DEVICE" + maxOccurs="unbounded" /> + </sequence> + </complexType> + </element> + <element name="packets"> + <complexType> + <sequence minOccurs="0"> + <element name="packet" type="tns:PACKET" + maxOccurs="unbounded" /> + </sequence> + </complexType> + </element> + </sequence> + </complexType> + </element> + + <complexType name="DEVICE"> + <annotation> + <documentation xml:lang="en"> + Example: >device + address="#x10" type="master" + name="heizkreisregler1"<Heizkreisregler 2>/device< + </documentation> + </annotation> + <sequence> + <element name="description" type="tns:DESCRIPTION" + minOccurs="0" maxOccurs="unbounded" /> + </sequence> + <attribute name="address" type="short" use="required" /> + <attribute name="type" type="string" use="required" /> + <attribute name="name" type="string" use="required" /> + </complexType> + + <complexType name="PACKET"> + <annotation> + <documentation xml:lang="en">TODO</documentation> + </annotation> + <sequence> + <element name="description" type="tns:DESCRIPTION" + minOccurs="0" maxOccurs="unbounded" /> + <element name="fields" type="tns:FIELDS" minOccurs="1" + maxOccurs="1" /> + </sequence> + <attribute name="primary" type="short" use="required" /> + <attribute name="secondary" type="short" use="required" /> + <attribute name="name" type="string" use="required" /> + </complexType> + + <complexType name="DESCRIPTION"> + <simpleContent> + <extension base="string"> + <attribute name="lang" type="string" use="required" /> + </extension> + </simpleContent> + </complexType> + + <complexType name="FIELDS"> + <choice minOccurs="0" maxOccurs="unbounded"> + <element name="byte" type="tns:FIELD_BYTE" /> + <element name="data1b" type="tns:FIELD_DATA1B"></element> + <element name="data1c" type="tns:FIELD_DATA1C"></element> + <element name="bcd" type="tns:FIELD_BCD"></element> + <element name="data2b" type="tns:FIELD_DATA2B"></element> + <element name="data2c" type="tns:FIELD_DATA2C"></element> + <element name="word" type="tns:FIELD_WORD"></element> + <element name="bit" type="tns:FIELD_BIT"></element> + <element name="byteEnum" type="tns:FIELD_BYTE_ENUM" /> + </choice> + </complexType> + + <complexType name="FIELD_BASE_TYPE"> + <sequence> + <element name="description" type="tns:DESCRIPTION" + minOccurs="0" maxOccurs="unbounded" /> + </sequence> + <attribute name="offset" type="int" use="required" /> + <attribute name="name" type="string" use="required" /> + </complexType> + + + + <complexType name="FIELD_BYTE" final="#all"> + <complexContent> + <extension base="tns:FIELD_BASE_TYPE"></extension> + </complexContent> + </complexType> + + <complexType name="FIELD_DATA1B"> + <complexContent> + <extension base="tns:FIELD_BASE_TYPE"></extension> + </complexContent> + </complexType> + + <complexType name="FIELD_DATA1C"> + <complexContent> + <extension base="tns:FIELD_BASE_TYPE"></extension> + </complexContent> + </complexType> + + <complexType name="FIELD_BCD"> + <complexContent> + <extension base="tns:FIELD_BASE_TYPE"></extension> + </complexContent> + </complexType> + + <complexType name="FIELD_DATA2B"> + <complexContent> + <extension base="tns:FIELD_BASE_TYPE"></extension> + </complexContent> + </complexType> + + <complexType name="FIELD_DATA2C"> + <complexContent> + <extension base="tns:FIELD_BASE_TYPE"></extension> + </complexContent> + </complexType> + + <complexType name="FIELD_WORD"> + <complexContent> + <extension base="tns:FIELD_BASE_TYPE"></extension> + </complexContent> + </complexType> + + <complexType name="FIELD_BIT"> + <complexContent> + <extension base="tns:FIELD_BASE_TYPE"></extension> + </complexContent> + </complexType> + + <complexType name="FIELD_BYTE_ENUM" final="#all"> + <complexContent> + <extension base="tns:FIELD_BASE_TYPE"> + <sequence> + <element name="option" minOccurs="1" maxOccurs="unbounded"> + <complexType> + <sequence> + <element name="description" type="tns:DESCRIPTION" + minOccurs="0" maxOccurs="unbounded" /> + </sequence> + <attribute name="value" type="short" use="required"></attribute> + <attribute name="name" type="string" use="required"></attribute> + </complexType> + </element> + </sequence> + </extension> + </complexContent> + </complexType> +</schema> diff --git a/ebus-xml/ebus.docbook.xslt b/ebus-xml/ebus.docbook.xslt new file mode 100644 index 0000000..c6c80c5 --- /dev/null +++ b/ebus-xml/ebus.docbook.xslt @@ -0,0 +1,244 @@ +<?xml version="1.0" encoding="utf8"?> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:ebus="http://xapek.org/ebus/0.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:db="http://docbook.org/ns/docbook" + xsi:schemaLocation=" + http://xapek.org/ebus/0.1 ebus-0.1.xsd + http://docbook.org/ns/docbook http://docbook.org/xml/5.0/xsd/docbook.xsd" +> + <xsl:output method="xml" indent="yes"/> + + <xsl:template match="/"> + <db:book version="5.0" xml:lang="de"> + <db:info> + <db:title>Ebus Protokollbeschreibung</db:title> + <db:author> + <db:personname>Yves Fischer</db:personname> + <db:email>yvesf+git@xapek.org</db:email> + </db:author> + </db:info> + <db:chapter> + <db:title>Adressen</db:title> + <db:sect1> + <db:title>Master Adressen</db:title> + <xsl:call-template name="do_devices"> + <xsl:with-param name="type" select="'master'"/> + </xsl:call-template> + </db:sect1> + <db:sect1> + <db:title>Slave Adressen</db:title> + <xsl:call-template name="do_devices"> + <xsl:with-param name="type" select="'slave'"/> + </xsl:call-template> + </db:sect1> + <db:sect1> + <db:title>Broadcast Adressen</db:title> + <xsl:call-template name="do_devices"> + <xsl:with-param name="type" select="'broadcast'"/> + </xsl:call-template> + </db:sect1> + </db:chapter> + <db:chapter> + <db:title>Pakete</db:title> + + <db:informaltable pgwide="1"> + <db:tgroup cols="3"> + <db:colspec colnum="1" colname="c1" colwidth="5cm"/> + <db:colspec colnum="2" colname="c2" colwidth="1.8cm"/> + <db:colspec colnum="3" colname="c3"/> + <db:thead> + <db:row> + <db:entry>Packet</db:entry> + <db:entry>Prim./Sec. Address</db:entry> + <db:entry>Description</db:entry> + </db:row> + </db:thead> + <db:tbody> + <xsl:for-each select="ebus:ebus/ebus:packets/ebus:packet"> + <db:row> + <db:entry> + <xsl:element name="db:link"> + <xsl:attribute name="linkend"> + <xsl:value-of select="concat('link.packet.', @name)"/> + </xsl:attribute> + <xsl:value-of select="@name"/> + </xsl:element> + </db:entry> + <db:entry> + <db:computeroutput> + <xsl:value-of select="format-number(@primary, '00')"/> / + <xsl:value-of select="format-number(@secondary, '00')"/> + </db:computeroutput> + </db:entry> + <db:entry> + <xsl:for-each select="ebus:description"> + <db:para> + <db:emphasis><xsl:value-of select="@lang"/>: + </db:emphasis> + <xsl:value-of select="text()"/> + </db:para> + </xsl:for-each> + </db:entry> + </db:row> + </xsl:for-each> + </db:tbody> + </db:tgroup> + </db:informaltable> + <db:sect1> + <db:title>Fields</db:title> + <xsl:for-each select="ebus:ebus/ebus:packets/ebus:packet"> + <xsl:call-template name="do_packet"/> + </xsl:for-each> + </db:sect1> + </db:chapter> + </db:book> + </xsl:template> + + <xsl:template name="do_packet"> + <db:sect2> + <db:title> + <xsl:value-of select="@name"/> + </db:title> + <xsl:element name="db:anchor"> + <xsl:attribute name="id"> + <xsl:value-of select="concat('link.packet.', @name)"/> + </xsl:attribute> + </xsl:element> + + <db:informaltable pgwide="1"> + <db:tgroup cols="4"> + <db:colspec colname="c1"/> + <db:colspec colname="c2" colwidth=".8cm"/> + <db:colspec colname="c3" colwidth="1.5cm"/> + <db:colspec colname="c4"/> + <db:thead> + <db:row> + <db:entry>Name</db:entry> + <db:entry>Offset</db:entry> + <db:entry>Type</db:entry> + <db:entry>Description</db:entry> + </db:row> + </db:thead> + <db:tbody> + <xsl:for-each select="ebus:fields/*"> + <db:row> + <db:entry> + <xsl:value-of select="@name"/> + </db:entry> + <db:entry> + <xsl:value-of select="@offset"/> + </db:entry> + <db:entry> + <xsl:value-of select="name()"/> + </db:entry> + <db:entry> + <xsl:for-each select="ebus:description"> + <db:para> + <db:emphasis> + <xsl:value-of select="concat(@lang, ': ')"/> + </db:emphasis> + <xsl:value-of select="text()"/> + </db:para> + </xsl:for-each> + </db:entry> + </db:row> + + <xsl:if test="name() = 'byteEnum'"> + <db:row> + <db:entry namest="c1" nameend="c4"> + <xsl:call-template name="enuminfo"/> + </db:entry> + </db:row> + </xsl:if> + </xsl:for-each> + </db:tbody> + </db:tgroup> + </db:informaltable> + + <xsl:for-each select="ebus:fields/*"> + + </xsl:for-each> + </db:sect2> + </xsl:template> + + <xsl:template name="enuminfo"> + <db:informaltable pgwide="1"> + <db:tgroup cols="3"> + <db:colspec colname="c1"/> + <db:colspec colname="c2"/> + <db:colspec colname="c3"/> + <db:thead> + <db:row> + <db:entry>Code</db:entry> + <db:entry>Name</db:entry> + <db:entry>Description</db:entry> + </db:row> + </db:thead> + <db:tbody> + <xsl:for-each select="ebus:option"> + <db:row> + <db:entry> + <xsl:value-of select="@value"/> + </db:entry> + <db:entry> + <xsl:value-of select="@name"/> + </db:entry> + <db:entry> + <xsl:for-each select="ebus:description"> + <db:para> + <db:emphasis> + <xsl:value-of select="concat(@lang, ': ')"/> + </db:emphasis> + <xsl:value-of select="text()"/> + </db:para> + </xsl:for-each> + </db:entry> + </db:row> + </xsl:for-each> + </db:tbody> + </db:tgroup> + </db:informaltable> + <db:para/> + </xsl:template> + + <xsl:template name="do_devices"> + <xsl:param name="type"/> + <db:informaltable pgwide="1" frame="none"> + <db:tgroup cols="3"> + <db:colspec colname="c1"/> + <db:colspec colname="c2"/> + <db:colspec colname="c3"/> + <db:thead> + <db:row> + <db:entry>Gerät</db:entry> + <db:entry>Address</db:entry> + <db:entry>Description</db:entry> + </db:row> + </db:thead> + <db:tbody> + <xsl:for-each select="ebus:ebus/ebus:devices/ebus:device[@type=$type]"> + <db:row> + <db:entry> + <xsl:value-of select="@name"/> + </db:entry> + <db:entry> + <xsl:value-of select="@address"/> + </db:entry> + <db:entry> + <xsl:for-each select="ebus:description"> + <db:para> + <db:emphasis> + <xsl:value-of select="concat(@lang, ': ')"/> + </db:emphasis> + <xsl:value-of select="text()"/> + </db:para> + </xsl:for-each> + </db:entry> + </db:row> + </xsl:for-each> + </db:tbody> + </db:tgroup> + </db:informaltable> + </xsl:template> +</xsl:stylesheet>
\ No newline at end of file diff --git a/ebus-xml/ebus.xml b/ebus-xml/ebus.xml new file mode 100644 index 0000000..a4552ba --- /dev/null +++ b/ebus-xml/ebus.xml @@ -0,0 +1,256 @@ +<?xml version="1.0" standalone="yes"?> +<!-- Ebus Paketspezifikation. https://xapek.org/ --> +<ebus xmlns="http://xapek.org/ebus/0.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://xapek.org/ebus/0.1 ebus-0.1.xsd"> + <devices> + <device address="0" type="master" name="pcModem"> + <description lang="de">PC oder Modem</description> + <description lang="en">PC or Modem</description> + </device> + <device address="3" type="master" name="feuerungsautomat1"> + <description lang="de">Feuerungsautomat 1</description> + </device> + <device address="10" type="master" name="rcClockModel"> + <description lang="de">RC-Clock Model</description> + </device> + <device address="7" type="master" name="unknown"> + <description lang="de">Unbekannt</description> + </device> + <device address="16" type="master" name="heizkreisregler2"> + <description lang="de">Heizkreisregler 2</description> + </device> + <device address="17" type="master" name="busInterface1"> + <description lang="de">Bus Interface 1</description> + </device> + <device address="19" type="master" name="feuerungsautomat2"> + <description lang="de">Feuerungsautomat 2</description> + </device> + <device address="48" type="master" name="heizkreisregler1"> + <description lang="de">Heizkreisregler 1</description> + </device> + <device address="49" type="master" name="busInterface2"> + <description lang="de">Bus Interface 2</description> + </device> + <device address="51" type="master" name="feuerungsautomat3"> + <description lang="de">Feuerungsautomat 3</description> + </device> + <device address="112" type="master" name="heizkreisregler2"> + <description lang="de">Heizkreisregler 2</description> + </device> + <device address="113" type="master" name="heizkreisregler9"> + <description lang="de">Heizkreisregler 9</description> + </device> + <device address="115" type="master" name="feuerungsautomat4"> + <description lang="de">Feuerungsautomat 4</description> + </device> + <device address="241" type="master" name="heizkreisregler10"> + <description lang="de">Heizkreisregler 10</description> + </device> + <device address="80" type="slave" name="mischer1"> + <description lang="de">Mischer 1</description> + </device> + <device address="81" type="slave" name="mischer2"> + <description lang="de">Mischer 2</description> + </device> + <device address="144" type="slave" name="fernsteller1"> + <description lang="de">Raumgeräte/Fernsteller 1</description> + </device> + <device address="145" type="slave" name="fernsteller2"> + <description lang="de">Raumgeräte/Fernsteller 2</description> + </device> + <device address="240" type="master" name="heizkreisregler3"> + <description lang="de">Heizkreisregler 3</description> + </device> + <device address="240" type="master" name="feuerungsautomat5"> + <description lang="de">Feuerungsautomat 5</description> + </device> + <device address="254" type="broadcast" name="broadcast"> + <description lang="de">Broadcast-Adresse</description> + </device> + <device address="255" type="master" name="pc"> + <description lang="de">PC</description> + </device> + </devices> + <packets> + <packet primary="5" secondary="3" name="betriebsdatenRegler1"> + <description lang="de">Betriebsdaten des Feuerungsautomaten an den Regler Block1</description> + <fields> + <byte offset="3" name="stellgradKesselleistung"> + <description lang="de">Stellgrad Kesselleistung</description> + </byte> + <data1c offset="4" name="kesselTemperatur"> + <description lang="de">Kessel Temperatur</description> + </data1c> + <byte offset="5" name="ruecklaufTemperatur"> + <description lang="de">Rücklauf Temperatur</description> + </byte> + <byte offset="6" name="boilerTemperatur"> + <description lang="de">Boiler Temperatur</description> + </byte> + <data1b offset="7" name="aussenTemperatur"> + <description lang="de">Aussentemperatur</description> + </data1b> + </fields> + </packet> + <packet primary="5" secondary="7" name="betriebsdatenFeuerungsautomat"> + <description lang="de">"Betriebsdaten des Reglers an den Feuerungsautomaten</description> + <fields> + <byteEnum offset="0" name="betriebszustand"> + <option value="0" name="brennerAbschalten"> + <description lang="de">Brenner Abschalten</description> + </option> + <option value="1" name="keineAktion"> + <description lang="de">Keine Aktion</description> + </option> + <option value="85" name="brauchwasserbereitung"> + <description lang="de">Brauchwasserbereitung</description> + </option> + <option value="170" name="heizbetrieb"> + <description lang="de">Heizbetrieb</description> + </option> + <option value="204" name="emissionskontrolle"> + <description lang="de">Emissionskontrolle</description> + </option> + <option value="221" name="tuevFunktion"> + <description lang="de">TÜV Funktion</description> + </option> + <option value="238" name="reglerStopp"> + <description lang="de">Regler Stopp</description> + </option> + <option value="102" name="brauchwasserReglerstopp"> + <description lang="de">Brauchwasserbereitung bei Reglerstoppfunktion</description> + </option> + <option value="187" name="brauchwasserHeizbetrieb"> + <description lang="de">Brauchwasserbereitung bei Heizbetrieb</description> + </option> + <option value="68" name="reglerstoppStufig"> + <description lang="de">Reglerstoppfunktion bei stufigem Betrieb</description> + </option> + </byteEnum> + <byteEnum offset="1" name="aktion"> + <option value="0" name="keineAktion"> + <description lang="de">Keine Aktion</description> + </option> + <option value="1" name="ausschaltenKesselpumpe"> + <description lang="de">Ausschalten Kesselpumpe</description> + </option> + <option value="2" name="einschaltenKesselpumpe"> + <description lang="de">Einschalten Kesselpumpe</description> + </option> + <option value="3" name="ausschaltenVariableVerbraucher"> + <description lang="de">Ausschalten variable Verbraucher</description> + </option> + <option value="4" name="einschaltenVariableVerbraucher"> + <description lang="de">Einschalten variable Verbraucher</description> + </option> + </byteEnum> + <data2c offset="2" name="kesselSollwertTemperatur"> + <description lang="de">Kessel Temperatur Sollwert</description> + </data2c> + <data2b offset="4" name="kesselSollwertDruck"> + <description lang="de">Kesseldruck Sollwert</description> + </data2b> + <data1c offset="6" name="stellgrad"> + <description lang="de">Stellgrad</description> + </data1c> + <data1c offset="7" name="brauchwasserSollwert"> + <description lang="de">Brauchwasser Sollwert</description> + </data1c> + </fields> + </packet> + + <packet primary="7" secondary="0" name="datumZeit"> + <description lang="de">Datum/Zeit Meldung eines eBus Master</description> + <fields> + <data2b offset="0" name="aussenTemperatur" /> + <bcd offset="2" name="sekunden" /> + <bcd offset="3" name="minuten" /><!-- FEHLER ab hier beim offset??? --> + <bcd offset="4" name="stunden" /> + <bcd offset="5" name="tag" /> + <bcd offset="6" name="monat" /> + <bcd offset="7" name="wochentag" /> + <bcd offset="8" name="jahr" /> + </fields> + </packet> + + <packet primary="8" secondary="0" name="sollwertuebertragungRegler"> + <description lang="de">Sollwertübertragung des Reglers an andere Regler</description> + <fields> + <data2b offset="0" name="TK_soll"> + <description lang="de">Kessel Sollwert in °C [1/256]</description> + </data2b> + <data2b offset="2" name="TA_ist"> + <description lang="de">Aussentemperatur in °C [1/256]</description> + </data2b> + <data1b offset="4" name="L_zwang"> + <description lang="de">Leistungszwang in Prozent</description> + </data1b> + <bit offset="5" name="Status"> + <description lang="de">Status</description> + </bit> + <data2b offset="6" name="TB_soll"> + <description lang="de">Brauchwassersollwert</description> + </data2b> + </fields> + </packet> + + <packet primary="3" secondary="8" name="brenstoffmengeLesen"> + <description lang="de">Gesamtbrennstoffmenge Lesen</description> + <fields /> + </packet> + + <!-- #x50, Kromschröder Spezial --> + <packet primary="80" secondary="20" name="vorlauftemperatur"> + <description lang="de">see http://www.mikrocontroller.net/topic/91164</description> + <fields> + <data2b offset="0" name="vorlauftemperaturIst"> + <description lang="de">Aktuelle Vorlauftemperatur + Mischerkreis</description> + </data2b> + <data2b offset="2" name="vorlauftemperaturSoll"> + <description lang="de">Soll Vorlaufteperatur + Mischerkreis</description> + </data2b> + </fields> + </packet> + + <packet primary="80" secondary="23" name="solarDaten"> + <description lang="de">Solar Daten</description> + <fields> + <bit offset="0" name="solarPumpe"> + <description lang="de">Betriebszustand Solarpumpe</description> + </bit> + <data2c offset="2" name="tempKollektor"> + <description lang="de">Wassertemperatur am Kollektor</description> + </data2c> + <data2c offset="4" name="tempWarmwasserSolar"> + <description lang="de">Warmwassertemperatur am Kollektor</description> + </data2c> + </fields> + </packet> + + <packet primary="80" secondary="24" name="solarDatenSumme"> + <description lang="de">Reversed siehe ebus-wiki</description> + <fields> + <data2b offset="0" name="aktuelleLeistung"> + <description lang="de">Aktuelle Solarleistung</description> + </data2b> + <word offset="2" name="tagesertragLow"> + <description lang="de">Tagesertrag low</description> + </word> + <word offset="4" name="tagesertragHigh"> + <description lang="de">Tagesertrag high * 1000</description> + </word> + <word offset="6" name="ertragssumme"> + <description lang="de">Ertragssumme</description> + </word> + <word offset="8" name="ertragssummeT"> + <description lang="de">Ertragssumme T * 1000</description> + </word> + <word offset="10" name="ertragssummeM"> + <description lang="de">Etragssumme M * 1000 * 1000</description> + </word> + </fields> + </packet> + </packets> +</ebus> |