Buderus Logamatic Web KM200 - Reloaded

Wie anders?

Bei mir sehen die genauso aus wie bei Gerd.
Nur das bei mir die „Doppeleinträge“ nicht vorhanden sind.
Bei mir gibt es nur Einträge mit Datum.

Ich war der Hoffnung, dass Buderus die Codes bei den unterschiedlichen Steuerung gleich macht?
Ich mein ja ein BC10 ist ein BC10 und ein RC35 ein RC35 oder nicht?

Aber einen Absender „AA0“ kennt meine Steuerung nicht.
Was habt Ihr den für Steuerungstypen, das Skript muss dann wohl ein bisschen erweitert werden :smiley:
Bisschen Schreibarbeit für meine Sekretärin :slight_smile:

Meine Fehlermeldungen:


Service: /notifications
stdClass Object
(
    [id] => /notifications
    [type] => errorList
    [recordable] => 0
    [writeable] => 0
    [values] => Array
        (
            [0] => stdClass Object
                (
                    [cat] => L
                    [act] => H
                    [dcd] => 6L
                    [ccd] => 514
                    [orig] => 75
                    [t] => 2015-03-19T00:54:00
                )

            [1] => stdClass Object
                (
                    [cat] => L
                    [act] => H
                    [dcd] => 6U
                    [ccd] => 511
                    [orig] => 75
                    [t] => 2015-03-13T07:17:00
                )

            [2] => stdClass Object
                (
                    [cat] => L
                    [act] => H
                    [dcd] => 6U
                    [ccd] => 511
                    [orig] => 75
                    [t] => 2014-12-17T10:23:00
                )

            [3] => stdClass Object
                (
                    [cat] => L
                    [act] => H
                    [dcd] => 6L
                    [ccd] => 512
                    [orig] => 75
                    [t] => 2012-02-10T06:10:00
                )

            [4] => stdClass Object
                (
                    [cat] => L
                    [act] => H
                    [dcd] => 6L
                    [ccd] => 514
                    [orig] => 75
                    [t] => 2012-01-16T06:10:00
                )

            [5] => stdClass Object
                (
                    [cat] => L
                    [act] => H
                    [dcd] => 6U
                    [ccd] => 511
                    [orig] => 75
                    [t] => 2011-11-29T06:14:00
                )

            [6] => stdClass Object
                (
                    [cat] => L
                    [act] => H
                    [dcd] => 6L
                    [ccd] => 512
                    [orig] => 75
                    [t] => 2011-11-24T06:10:00
                )

            [7] => stdClass Object
                (
                    [cat] => L
                    [act] => H
                    [dcd] => 6L
                    [ccd] => 548
                    [orig] => 75
                    [t] => 2011-11-23T06:10:00
                )

            [8] => stdClass Object
                (
                    [cat] => B
                    [act] => H
                    [dcd] => 6L
                    [ccd] => 517
                    [orig] => 75
                    [t] => 2015-05-05T06:02:00
                )

            [9] => stdClass Object
                (
                    [cat] => B
                    [act] => H
                    [dcd] => 6U
                    [ccd] => 511
                    [orig] => 75
                    [t] => 2015-05-04T06:04:00
                )

            [10] => stdClass Object
                (
                    [cat] => B
                    [act] => H
                    [dcd] => 6U
                    [ccd] => 511
                    [orig] => 75
                    [t] => 2015-05-04T06:03:00
                )

            [11] => stdClass Object
                (
                    [cat] => B
                    [act] => H
                    [dcd] => 6L
                    [ccd] => 516
                    [orig] => 75
                    [t] => 2015-05-04T06:02:00
                )

            [12] => stdClass Object
                (
                    [cat] => B
                    [act] => H
                    [dcd] => 6U
                    [ccd] => 511
                    [orig] => 75
                    [t] => 2015-05-03T06:03:00
                )

            [13] => stdClass Object
                (
                    [cat] => A
                    [act] => H
                    [dcd] => A01
                    [ccd] => 810
                    [orig] => 8
                    [t] => 2015-04-28T19:00:00
                )

            [14] => stdClass Object
                (
                    [cat] => A
                    [act] => H
                    [dcd] => A01
                    [ccd] => 810
                    [orig] => 8
                    [t] => 2015-04-14T19:00:00
                )

            [15] => stdClass Object
                (
                    [cat] => A
                    [act] => H
                    [dcd] => A01
                    [ccd] => 810
                    [orig] => 8
                    [t] => 2015-04-02T19:43:00
                )

            [16] => stdClass Object
                (
                    [cat] => A
                    [act] => H
                    [dcd] => A01
                    [ccd] => 810
                    [orig] => 8
                    [t] => 2015-04-01T19:50:00
                )

        )

)


Was das [orig] aussagt habe ich noch nicht herausgefunden,
bei [act] gehe ich mal davon aus das dies aussagen soll ob „historischer Fehler“ oder gerade anstehender Fehler.
Das kann ich aber erst am WE ausprobieren, wenn ich wieder zu Hause bin.
Dann mal die Heizung ein bisschen mit Fehlern bombardieren :smiley:

Gruß
Manfred

Sorry, nur andere Fehlermeldungen, die Du noch nicht berücksichtig hast.

Hier ist auch ne schöne Sammlung.

Hier mal meine Codes:

stdClass Object
(
[id] => /notifications
[type] => errorList
[recordable] => 0
[writeable] => 0
[values] => Array
(
[0] => stdClass Object
(
[cat] => B
[act] => H
[dcd] => 6A
[ccd] => 504
[orig] => 118
[t] => 2013-09-12T18:00:00
)

        [1] => stdClass Object
            (
                [cat] => B
                [act] => H
                [dcd] => 6A
                [ccd] => 504
                [orig] => 118
                [t] => 2013-08-05T19:57:00
            )
        [2] => stdClass Object
            (
                [cat] => B
                [act] => H
                [dcd] => 6A
                [ccd] => 504
                [orig] => 118
                [t] => 2013-08-04T18:00:00
            )
        [3] => stdClass Object
            (
                [cat] => A
                [act] => H
                [dcd] => A01
                [ccd] => 810
                [orig] => 8
                [t] => 2013-09-12T19:59:00
            )
        [4] => stdClass Object
            (
                [cat] => A
                [act] => H
                [dcd] => Ad1
                [ccd] => 818
                [orig] => 112
                [t] => 2013-09-12T18:30:00
            )
        [5] => stdClass Object
            (
                [cat] => A
                [act] => H
                [dcd] => Ad1
                [ccd] => 818
                [orig] => 112
                [t] => 2013-08-04T18:32:00
            )
        [6] => stdClass Object
            (
                [cat] => A
                [act] => H
                [dcd] => A01
                [ccd] => 800
                [orig] => 8
                [t] => 2012-06-05T20:49:00
            )
    )

)

Bin gerade am tippen :rolleyes:

Musste feststellen, dass es zwischen BC10, BC20, BC25, BC40 und BC100 doch so einige Unterschiede gibt :smiley:
Mal sehen wie ich das unter einen Hut bekomme, da Buderus zwischen ÖL und Gas auch noch unterschiede macht :eek:

Aber wie sage ich immer, „alles wird gut“ :cool:

Gruß
Manfred

Sodi,
Habe jetzt mal „Tante G“ ausgiebig beansprucht und alles zusammengetragen was ich an Störmeldungen finden konnte.
Nun hab ich mal das Funktion/Skript ein bisschen modifiziert.

Die Funktion verlangt nun einen Parameter.
Ist eigentlich nur für die Kosmetik, damit in der Tabelle der richtige Basiscontroller „BC“ angezeigt wird.
BC10, BC20, BC25, BC40 oder BC100, je nach dem welchen ihr bei euch eingebaut habt.

Und dann halt nochmal bisschen testen :cool:

@ Gerd:
Kannst DU mal bei Dir in der Servicedoku nachlesen was dieses „AA0“ sein soll, ich kann dazu nirgendwo
Information auftreiben.


// Funktion Fehlerspeicher auslesen
// ---------------------------------
function ReadFaultHistory($bc){
// Meldungsarray
$message = array("dcd" => array($bc => 'Brennersteuerung',
										  "A01" => 'Allgemeine EMS-Funktion',
										  "A02" => 'Brennersteuerung',
										  "A11" => 'Raumcontroller',
										  "A12" => 'Weichenmodul',
										  "A18" => 'Raumcontroller',
										  "A21" => 'Raumcontroller Heizkreis 1',
										  "A22" => 'Raumcontroller Heizkreis 2',
										  "A23" => 'Raumcontroller Heizkreis 3',
										  "A24" => 'Raumcontroller Heizkreis 4',
										  "A31" => 'Mischermodul Heizkreis 1',
										  "A32" => 'Mischermodul Heizkreis 2',
										  "A33" => 'Mischermodul Heizkreis 3',
										  "A34" => 'Mischermodul Heizkreis 4',
										  "A51" => 'Solarmodul',
										  "Ad1" => 'SAFe/Heizkessel',
										  "EE" => ' Interner Fehler am SAFe'),
					  "cat" => array("B" => array('B', 'blockierender Fehler, läuft nach Fehlerbehebung selbsttätig weiter'),
					  					  "L" => array('V', 'verriegelnder Fehler, muss nach Fehlerbehebung manuell entriegelt werden'),
										  "A" => array('A', 'Anlagenfehler (im Raumcontroller protokoliert)'),
										  "H" => array('H', 'Servicemeldung (Wartungsmeldung)'),
										  "W" => array('W', 'Wartungsmeldung'),
										  "S" => array('S', 'Systemfehler'),
										  "BC" => array('BC', 'Betriebscode')),
					  $bc => array("200" => 'Gerät im Heizbetrieb',
					  					"201" => 'Gerät im Warmwasserbetrieb',
					  					"202" => 'Anlage im Schaltoptimierungsprogramm',
					  					"203" => 'Die Anlage befindet sich in Betriebsbereitschaft, keine Wärmeanforderung',
										"204" => 'Die aktuelle Kesselwassertemperatur ist höher als die Sollkesselwassertemperatur',
										"205" => 'Der Kessel wartet auf Luftströmung',
										"207" => 'Der Druck des Heizungswassers ist keiner 0,2bar bei Wandkesseln oder kleiner 0,6bar bei GB312',
										"208" => 'Abgastest wird durchgeführt',
										"209" => 'Kessel in Betrieb und im Servicemode',
										"210" => 'Das Abgasthermostat hat angesprochen',
										"211" => 'Der UBA verzeichnet keine Verbindung zu ungenutzten Kontakten 78 und 50.',
										"212" => 'Wasserströmung - Temperaturanstieg Sicherheits- Vorlaufsensor',
										"213" => 'Wasserströmung - Temperaturdifferenz zwischen Vorlauf- und Rücklauf',
										"214" => 'Lufttransport - das Gebläse wird während der Sicherheitszeit abgeschaltet',
										"215" => 'Lufttransport - das Gebläse dreht zu schnell',
										"216" => 'Lufttransport - das Gebläse dreht nicht schnell genug',
										"217" => 'Lufttransport - kein Lufttransport nach x Minuten',
										"218" => 'Temperatur am Vorlaufsensor ist größer als 105°C',
										"219" => 'Temperatur am Sicherheitssensor größer als 95°C',
										"220" => 'Sicherheitsensor Kurzschluss, oder wärmer als 130°C',
										"221" => 'Sicherheitsensor loser KOntakt oder defekt',
										"222" => 'Vorlaufsensor Kurzschluss',
										"223" => 'Vorlaufsensor loser Kontakt oder defekt',
										"224" => 'Systemfehler - UBA keine Verbindung zu Kontakten 22 und 50',
										"225" => 'Temperatur zwisch Vorlauf- und Sicherheitsensor zu groß',
										"226" => 'Kennzeichnung für Handterminal',
										"227" => 'Keine Ionisationsmeldung nach der Zündung (4 Versuche)',
										"228" => 'Ionisationsmeldung trotz nicht vorhandener FLamme',
										"229" => 'Flamme während des Brennerbetriebes ausgefallen',
										"230" => 'Fehler Regelventil',
										"231" => 'Fehler NEtzspannung',
										"232" => 'externer Schaltkontakt hat angesprochen',
										"233" => 'KIM oder UBA defekt',
										"234" => 'Spule oder Anschlusskabel der Gasarmatur defekt',
										"235" => 'KIM oder UBA defekt',
										"237" => 'KIM oder UBA3 defekt, oder Kurzschluss Anschlusskabel Gasarmatur',
										"238" => 'UBA ist defekt',
										"239" => 'KIM oder UBA3 defekt, oder Kurzschluss Anschlusskabel Gasarmatur',
										"240" => 'Kurzschluss an Rücklaufsensor',
										"241" => 'Rücklaufsensor loser Kontakt oder defekt',
										"242" => 'UBA oder KIM defekt',
										"243" => 'UBA oder KIM defekt',
										"244" => 'UBA oder KIM defekt',
										"245" => 'UBA oder KIM defekt',
										"246" => 'UBA oder KIM defekt',
										"247" => 'UBA oder KIM defekt',
										"248" => 'UBA oder KIM defekt',
										"249" => 'UBA oder KIM defekt',
										"250" => 'UBA oder KIM defekt',
										"251" => 'UBA oder KIM defekt',
										"252" => 'UBA oder KIM defekt',
										"253" => 'UBA oder KIM defekt',
										"254" => 'UBA oder KIM defekt',
										"255" => 'UBA oder KIM defekt',
										"256" => 'UBA oder KIM defekt',
										"257" => 'UBA oder KIM defekt',
										"258" => 'UBA oder KIM defekt',
										"259" => 'UBA oder KIM defekt',
										"260" => 'Kein Temperaturanstieg nach Brennerstart oder Temperaturunterschied zwischen Vorlaufsensor und Sicherheitssensor',
										"261" => 'Zeitfehler bei erster Sicherheitszeit',
										"262" => 'UBA oder KIM defekt',
										"263" => 'UBA oder KIM defekt',
										"264" => 'Lufttransport - der Lufttransport ist während der Betriebsphase ausgefallen',
										"265" => 'Der Heizkessel befindet sich in Betriebsbereitschaft, Wärmebedarf ist vorhanden, es wird jedoch zuviel Energie geliefert',
										"266" => 'Die Umwälzpumpe konnte während des Pumpentests keine Druckerhöhung von 50mbar erzeugen',
										"267" => 'UBA defekt',
										"268" => 'Der Relaistest wurde in der Fachkundenebene der Bedieneinheit RC3x aktiviert',
										"269" => 'Glühzünder zu lange eingeschalten',
										"270" => 'Der Heizkessel wird hochgefahren',
										"271" => 'Temperaturunterschied zwischen Vorlaufsensor und Sicherheitssensor',
										"272" => 'UBA defekt',
										"273" => 'Lufttransport - Brenner und Gebläse waren 24h ununterbrochen in Betrieb',
										"275" => 'UBA im Testmode',
										"276" => 'Die Temperatur am Vorlauf ist höher als 95°C',
										"277" => 'Die Temperatur am Sicherheitssensor ist größer als 95°C',
										"278" => 'Sensortest fehlgeschlagen',
										"279" => 'UBA oder KIM defekt',
										"280" => 'Zeitfehler bei Wiederanlaufversuch',
										"281" => 'Die Umwälzpumpe erzeugt keinen Druckunterschied',
										"282" => 'Wasserströmung - keine Drehzahlrückmeldung der Umwälzpumpe',
										"283" => 'Der Brenner wird gestartet',
										"284" => 'Die Gasarmatur wird geöffnet, 1. Sicherheitszeit',
										"285" => 'Die Temperatur am Rücklaufsensor ist größer als 95°C',
										"286" => 'Temperatur Rücklaufsensor zu hoch',
										"287" => 'UBA oder KIM defekt',
										"288" => 'UBA hat keinen Kontakt zum Wasserdrucksensor',
										"289" => 'Kurzschluss EIngang Wasserdrucksensor',
										"290" => 'UBA defekt',
										"305" => 'Der Kessel kann vorrübergehend nach Warmwasser-Vorrang nicht starten',
										"306" => 'Ionisationsmessung nach Schließen des Gasventils',
										"307" => 'Wasserströmung - Die Umwälzpumpe ist blockiert',
										"308" => 'Wasserströmung - Die Umwälzpumpe dreht ohne Widerstand',
										"328" => 'Unterbrechnung der Spannungsversorgung',
										"329" => 'Die Umwälzpumpe konnte während des Pumpentests keine Druckerhöhung von 50mbar erzeugen',
										"332" => 'Temperatur am Vorlaufsensor über 110°C',
										"333" => 'Der Kessel hat wegen kurzzeitg zu geringem Wasserdruck abgeschalten',
										"338" => 'Der Kessel musste nach 6 Starts abbrechen',
										"500" => 'Keine Spannung Sicherheitsrelais',
										"501" => 'Sicherheitsrelais hängt',
										"502" => 'Keine Spannungsversorgung Brennstoffrelais 1',
										"503" => 'Brennstoffrelais 1 hängt',
										"504" => 'Brennerstörung Nicht-EMS-Brenner',
										"505" => 'Innerhalb von 30 min wurde am STB kein Temperaturanstieg festgestellt',
										"506" => 'Temperaturanstieg am STB zu schnell',
										"507" => 'STB-Test erfolgreich durchgeführt',
										"508" => 'Zu hoher Flammfühler-Strom',
										"509" => 'Eingang Flammenfühler defekt',
										"510" => 'Fremdlicht Vorbelüftung',
										"511" => 'Keine Flamme innerhalb der Sicherheitszeit',
										"512" => 'Flammenabriss innerhalb der Sicherheitszeit',
										"513" => 'Flammenabriss innerhalb der Nachzündzeit',
										"514" => 'Flammenabriss innerhalb der Stabilisierungszeit',
										"515" => 'Flammenabriss in Betrieb 1. + 2. Stufe',
										"516" => 'Flammenabriss Umschaltung 1. Stufe',
										"517" => 'Flammenabriss in Betrieb 1. Stufe',
										"518" => 'Flammenabriss Umschaltung 1. + 2. Stufe',
										"519" => 'Flammensignal nach Brennerabschaltung',
										"520" => 'Vorlauf-STB',
										"521" => 'Temperaturdifferenz im Kesselvorlauffühler zu groß',
										"522" => 'Kesselvorlauffühler defekt',
										"523" => 'Kesselvorlauffühler defekt (Kabelbruch)',
										"524" => 'Kesselvorlauffühler defekt (Kurzschluss)',
  									   "525" => 'Abags-STB',
										"526" => 'Temperaturdifferenz im Abgastemperaturfühler zu groß',
										"527" => 'Abgastemperaturfühler defekt',
										"529" => 'Abgastemperaturfühler defekt (Kurzschluss)',
										"528" => 'Abgastemperaturfühler defekt (Kabelbruch)',
										"530" => 'Abgastemperatur zu hoch',
										"531" => 'Wassermangel',
										"532" => 'Netzspannung zeitweilig zu gering',
										"534" => 'Kein Gasdruck, oder Abgasdruckbegrenzer hat geschaltet',
										"535" => 'Lufttemperatur zu hoch',
										"536" => 'Falsche Anbringung Lufttemperatur-/Abgastemperaturfühler',
										"537" => 'Keine Drehzahlrückmeldung',
										"538" => 'Brennergebläse zu langsam',
										"540" => 'Brennergebläse zu schnell',
										"542" => 'Kommunikation mit SAFe unvollständig',
										"543" => 'Keine Kommunikation mit SAFe',
										"547" => 'BIM-Programmierung',
										"548" => 'Zuviele Wiederholungen (Brennerstarts)',
										"549" => 'Sicherheitskette hat geöffnet',
										"550" => 'Unterspannung',
										"551" => 'Spannungsunterbrechung',
									 	"552" => 'Zu viele Entstörungen über Schnittstelle',
										"553" => 'Zu viele Flammenabrisse',
										"554" => 'Fehler EEPROM',
										"555" => 'Hauptflamme zu früh',
										"557" => 'Flammenabriss bei Hauptgas ein',
										"558" => 'Keine Bildung der Hauptflamme',
										"559" => 'Luftdruckschalter hängt',
										"560" => 'Luftdruckschalter offen',
										"561" => 'Spannungsunterbrechung während Brennerstart',
										"562" => 'Abgasaustrittssicherung zu hohe Temperatur',
										"563" => 'Abgasaustrittssicherung zu häufig',
										"564" => 'Temperaturanstieg Kesselfühler zu schnell',
										"565" => 'Differenz Vorlauf zu Rücklauf zu groß',
										"566" => 'Rücklauftemperatur kleiner -5°C (Unterbrechnung)',
										"567" => 'Rücklauftemperatur größer 150°C (Kurzschluss)',
										"568" => 'Wasserdrucksensor Kabelbruch',
										"569" => 'Wasserdrucksensor Kurzschluss',
										"570" => 'Zuviele Entriegelungen über Schnittsteller',
										"571" => 'Zuviele Wiederanläufe trotz Entriegelung',
										"572" => 'externe Sperrung aktiv',
										"573" => 'Vorlauftemperaturfühler Unterbrechnung',
										"574" => 'Vorlauftemperaturfühler Kurzschluss',
										"575" => 'Vorlauf-ISTB',
										"576" => 'Ionisation innerhalb der Vorbelüftung größer 0,9 µA',
										"577" => 'Keine Flamme innerhalb der Sicherheitszeit',
										"579" => 'kein Gasruck',
										"580" => 'Magnetventil 1 undicht',
										"581" => 'Magnetventil 2 undicht',
										"582" => 'Keine Kommunikation mit UM10',
										"583" => 'UM10 externe Verriegelung aktiv',
										"584" => 'UM10 keine Rückmeldung',
										"585" => 'Kein UM10',
										"586" => 'SAFe alter Softwarestand',
										"587" => 'Flammenabriss, Stabilisierung/Teillast',
										"588" => 'Mehr als ein UM10 im System',
										"589" => 'Die Klemme 15/16 am BRM10 hat die Brennerschleife unterbrochen',
										"590" => 'Druckschalter hat während des Betriebes geöffnet',
										"591" => 'Abgasklappe öffnet nicht innerhalb von 30 sec',
										"592" => 'Abgasklappe dauerhaft geöffnet',
										"593" => 'Brücke am Eingang Küchenlüfter (Dunstabzugshaube) fehlt',
										"594" => 'NTC anstelle Kodierbrücken angeschlossen',
										"601" => 'Zu hohe Abweichung Kesselwasser/STB-Fühler',
										"602" => 'Zu hohe Unterschiede Abgastemperaturmessung',
										"603" => 'A/D Wandler arbeitet nicht schnell genug',
										"604" => 'Referenzspannung des 2. µC innerhalb ungültiger Grenzen',
										"605" => 'Referenzspannung des 1. µC innerhalb ungültiger Grenzen',
										"606" => 'Fühlertest 2. µC fehlgeschlagen',
										"607" => '1. µC hat in 10s keine Fühlertest durchgeführt',
										"608" => '1. µC und 2. µC unterschiedlichen Vorlauftemperaturen',
										"609" => '1. µC und 2. µC unterschiedlichen Abgastemperaturen',
										"610" => 'der 2. µC hat verriegelt',
										"611" => 'der 2. µC hat einen anderen Zustand als der 1. µC',
										"612" => 'zu hohe Abweichungen Rücklauftemperatur',
										"613" => 'zu hohe Abweichungen Vorlauftemperatur',
										"620" => 'der 2. µC kommuniziert nicht mit dem 1. µC',
										"621" => 'bei der Kommunikation mit dem 2. µC treten CRC-Fehler auf',
										"622" => 'der 2. µC arbeitet in einem anderen Zeitschlitz als der 1 µC',
										"623" => 'nach einem Power-Up kommuniziert der 2. µC nicht mit den 1. µC',
										"625" => 'schwankendes Flammensignal',
										"626" => 'Elektrodenspannung flasch',
										"627" => 'Eingang ionisationsstrom defekt',
										"630" => 'Interner Fehler SAFe',
										"631" => 'Interner Fehler SAFe',
										"640" => 'Interner Fehler SAFe',
										"641" => 'Interner Fehler SAFe',
										"650" => 'Statezahl zu hoch',
										"651" => 'Falsches BIM',
										"652" => 'BIM CRC-Fehler erkannt',
										"653" => 'Verriegelung kann sich nicht gemekrt werden',
										"654" => 'kein EEPROM',
										"655" => 'Verriegelung nicht lesbar',
										"656" => 'Verriegelung nicht schreibbar',
										"657" => 'Verriegelungskennung ungültig',
										"658" => 'Verriegelung CRC-Fehler',
										"659" => 'EEPROM defekt',
										"660" => 'BIM Kommunikation gestört',
										"661" => 'BIM-CRC-Fehler',
										"662" => 'kein BIM',
										"690" =>'Relais im UM10 schaltet nicht nach Vorgabe',
										"691" => 'Rückmeldung vom UM10, obwohl das Relais nicht angesteuert wird',
										"692" => 'Interner Fehler',
										"693" => 'Interner Fehler',
										"694" => 'Interner Fehler',
										"695" => 'Interner Fehler',
										"696" => 'Interner Fehler',
										"697" => 'Interner Fehler',
										"698" => 'Interner Fehler',
										"699" => 'Interner Fehler',
										"XXX" => 'Interner Fehler'),
					  "A01" => array("800" => 'Außenfühler ist defekt',
										  "808" => 'Warmwassserfühler 1 ist defekt',
										  "809" => 'Warmwasserfühler 2 ist defekt',
										  "810" => 'Warmwasser bleibt kalt',
										  "811" => 'Thermische Desinfektion wurde abgebrochen',
										  "816" => 'Keine Kommunikations mit UBA/MC10, DBA, UBA-H3 oder MCM10',
										  "828" => 'Wasserdruckseonsor ist defekt'),
					  "A02" => array("816" => 'Keine Kommunikation mit BC10'),
					  "A03" => array("816" => 'Keine Kommunikation zwischen LM10/IUM und UBA-H3'),
					  "A11" => array("801" => 'Interner Laufzeitfehler im Raumcontroller',
										  "802" => 'Uhrzeit noch nicht eingestellt',
										  "803" => 'Datum noch nicht eingestellt',
										  "804" => 'Interner Fehler (EEPROM-Fehler)',
										  "805" => 'Werte über die Schnittstellre liegen außerhalb der definierten Grenzwerte',
										  "806" => 'Raumtemperaturfühler defekt',
										  "816" => 'Keine Kommunikation mit RC35',
										  "821" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 1',
										  "822" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 2',
										  "823" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 1',
										  "824" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 2',
										  "826" => 'Raumtemperaturfühler für Heizkreis 1 defekt',
										  "827" => 'Raumtemperaturfühler für Heizkreis 2 defekt',
										  "828" => 'Wasserdrucksensor defekt',
										  "829" => 'Raumcontroller ohne Heizkreis',
										  "1004" => 'Systemkonfiguration nicht bestätigt',
										  "1010" => 'Keine Kommunikation über Bus-Verbindung EMS plus',
										  "1037" => 'Außenfühler ist defekt',
										  "1038" => 'Zeit/Datum ungültiger Wert',
										  "3061" => 'Keine Kommunikation mit Mischermodul Heizkreis 1',
										  "3062" => 'Keine Kommunikation mit Mischermodul Heizkreis 2',
										  "3063" => 'Keine Kommunikation mit Mischermodul Heizkreis 3',
										  "3064" => 'Keine Kommunikation mit Mischermodul Heizkreis 4',
										  "3091" => 'Raumtemperaturfühler defekt Heizkreis 1',
										  "3092" => 'Raumtemperaturfühler defekt Heizkreis 2',
										  "3033" => 'Raumtemperaturfühler defekt Heizkreis 3',
										  "3094" => 'Raumtemperaturfühler defekt Heizkreis 4',
										  "6004" => 'Keine Kommunikation Solarmodul'),
					  "A12" => array("815" => 'Fühler Weichenmodul defekt',
										  "816" => 'Keine Kommunikation mit Weichenmodul'),
					  "A18" => array("825" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System'),
					  "A21" => array("806" => 'Raumtemperaturfühler für Heizkreis 1 defekt',
										  "816" => 'Keine Kommunikation mit Bedieneinheit Heizkreis 1',
										  "829" => 'Raumcontroller ohne Heizkreis',
										  "830" => 'Schwache Batterie Bedieneinheit Funk Heizkreis 1',
										  "839" => 'Keine Funkkommunikation mit Bedieneinheit Heizkreis 1 - Funkstörung',
										  "842" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 1',
										  "843" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 1',
										  "1001" => 'Keine BUS-Verbindung zwischen RC300 und RC100/200 Heizkreis 1'),
					  "A22" => array("806" => 'Raumtemperaturfühler für Heizkreis 2 defekt',
										  "816" => 'Keine Kommunikation mit Bedieneinheit Heizkreis 2',
										  "829" => 'Raumcontroller ohne Heizkreis',
										  "830" => 'Schwache Batterie Bedieneinheit Funk Heizkreis 2',
										  "839" => 'Keine Funkkommunikation mit Bedieneinheit Heizkreis 2 - Funkstörung',
										  "842" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 2',
										  "843" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 2',
										  "1001" => 'Keine BUS-Verbindung zwischen RC300 und RC100/200 Heizkreis 2'),
					  "A23" => array("806" => 'Raumtemperaturfühler für Heizkreis 3 defekt',
										  "816" => 'Keine Kommunikation mit Bedieneinheit Heizkreis 3',
										  "829" => 'Raumcontroller ohne Heizkreis',
										  "830" => 'Schwache Batterie Bedieneinheit Funk Heizkreis 3',
										  "839" => 'Keine Funkkommunikation mit Bedieneinheit Heizkreis 3 - Funkstörung',
										  "842" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 3',
										  "843" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 3',
										  "1001" => 'Keine BUS-Verbindung zwischen RC300 und RC100/200 Heizkreis 3'),
					  "A24" => array("806" => 'Raumtemperaturfühler für Heizkreis 4 defekt',
										  "816" => 'Keine Kommunikation mit Bedieneinheit Heizkreis 4',
										  "829" => 'Raumcontroller ohne Heizkreis',
										  "830" => 'Schwache Batterie Bedieneinheit Funk Heizkreis 4',
										  "839" => 'Keine Funkkommunikation mit Bedieneinheit Heizkreis 4 - Funkstörung',
										  "842" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 4',
										  "843" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 4',
										  "1001" => 'Keine BUS-Verbindung zwischen RC300 und RC100/200 Heizkreis 4'),
					  "A31" => array("807" => 'Vorlauffühler Heizkreis 1 defekt',
										  "816" => 'Keine Kommunikation mit Heizkreis 1 Mischermodul',
										  "3021" => 'Vorlauffühler Heizkreis 1 defekt'),
					  "A32" => array("807" => 'Vorlauffühler Heizkreis 2 defekt',
										  "816" => 'Keine Kommunikation mit Heizkreis 2 Mischermodul',
										  "3022" => 'Vorlauffühler Heizkreis 2 defekt'),
					  "A33" => array("807" => 'Vorlauffühler Heizkreis 2 defekt',
										  "816" => 'Keine Kommunikation mit Heizkreis 2 Mischermodul',
										  "3023" => 'Vorlauffühler Heizkreis 3 defekt'),
					  "A34" => array("807" => 'Vorlauffühler Heizkreis 3 defekt',
										  "816" => 'Keine Kommunikation mit Heizkreis 4 Mischermodul',
										  "3024" => 'Vorlauffühler Heizkreis 4 defekt'),
					  "A41" => array("4051" => 'Thermische Desinfektion misslungen, Warmwassersystem 1'),
					  "A42" => array("4052" => 'Thermische Desinfektion misslungen, Warmwassersystem 2'),
					  "A51" => array("812" => 'Einstellungen Solar falsch',
										  "813" => 'Kollektorfühler defekt',
										  "814" => 'Warmwasserspeicher und Kollektorfühler defekt',
										  "816" => 'Solarmodul - SM10 nicht vorhanden, bzw. keine Kommunikation',
										  "6021" => 'Kollektorfühler defekt',
										  "6022" => 'Speichertemperaturfühler unten defekt'),
					  "A61" => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 1',
										  "1037" => 'Außentemperaturfühler defekt Heizkreis 1',
										  "1081" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System',
										  "3091" => 'Raumtemperaturfühler defekt Heizkreis 1'),
					  "A62" => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 2',
										  "1037" => 'Außentemperaturfühler defekt Heizkreis 2',
										  "1082" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System',
										  "3092" => 'Raumtemperaturfühler defekt Heizkreis 2'),
					  "A63" => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 3',
										  "1033" => 'Außentemperaturfühler defekt Heizkreis 3',
										  "1081" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System',
										  "3093" => 'Raumtemperaturfühler defekt Heizkreis 3'),
					  "A64" => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis41',
										  "1037" => 'Außentemperaturfühler defekt Heizkreis 4',
										  "1084" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System',
										  "3094" => 'Raumtemperaturfühler defekt Heizkreis 4'),
					  "Ad1" => array("817" => 'Lufttemperatursensor defekt',
										  "818" => 'Heizkessel bleibt kalt',
										  "819" => 'Dauersignal vom Brennstoffvorwärmer',
										  "820" => 'Brennstoff zu kalt'),
					  "H" => array("1" => 'Abgastemperatur zu hoch',
										"2" => 'Brennergebläse zu langsam',
										"3" => 'Betriebsstunden abgelaufen',
										"4" => 'Niedriger Flammenfühler-Strom',
										"5" => 'Hoher Zündverzug',
										"6" => 'Häufiger Flammenabriss',
										"7" => 'Wasserdruck zu niedrig',
										"8" => 'Eingestelltes Wartungsdatum wurde erreicht',
										"9" => 'Falsche Pumpe angeschlossen',
										"10" => 'Hoher Flammenstron',
										"11" => 'Unrealistische Werte vom SLS-Fühler (Schichtladesensor)',
										"12" => 'Defekt am Speichersensor'),
					  "H07" => array("1017" => 'Wasserdruck der Anlage zu niedrig'));
					  
// *****************************************************************************

// Fehlerspeicher auslesen
	$data = km200_GetData('/notifications');

		$buffer = array();   // Zwischenspeicher für Tabellenaufbau

	// Tabellenkopf erstellen
		$content = '<table border="1" rules="groups">
							<colgroup>
    							<col width="20">
    							<col width="55">
    							<col width="450">
    							<col width="150">
  							</colgroup>
							<thead>
								<tr align="center" valign="middle" height="50">
									<th colspan="4">Anlagenfehlerspeicher</th>
								</tr>
								<tr height="36">
									<th align="center" valign="middle">Art</th>
									<th align="center" valign="middle">FC</th>
									<th align="left" valign="middle">Meldung</th>
									<th align="left" valign="middle">Datum / Zeit</th>
								</tr>
							</thead>';

	foreach($data->values as $data){
		if(array_key_exists($data->dcd, $message['dcd'])){
			$dcd = $data->dcd;
			}
		else{
		   $dcd = $bc;
		   }

	// Tabelle mit den Werten füllen
	   if(end($buffer) != $dcd){
         $content .= '</tbody>';
         }

      if(array_key_exists('t', $data)){   // wenn kein Datum, dann keine Ausgabe
   		if(end($buffer) == $dcd){
 				$content .= '<tr height="30">
									<td align="center" valign="middle">'.$message['cat'][$data->cat][0].'</td>
									<td align="center" valign="middle">'.$data->ccd.'</td>';
									if($dcd == "BC10"){
										$content .= '<td align="left" valign="middle">'.$data->dcd.' - '.$message[$dcd][$data->ccd].'</td>';
										}
									else{
								   	$content .= '<td align="left" valign="middle">'.$message[$dcd][$data->ccd].'</td>';
								   	}
				$content .=	'<td align="left" valign="middle">'.substr($data->t, 8, -9).".".substr($data->t, 5, -12).".".substr($data->t, 0, -15).", ".substr($data->t, 11, -6).":".substr($data->t, 14, -3).'</td></tr>';
    			}
			else{
				$content .= '<tbody>
									<tr align="left" valign="middle" height="50">
										<th colspan="4">'.$dcd.' - '.$message['dcd'][$dcd].'</th>
									</tr>
									<tr height="30">
										<td align="center" valign="middle">'.$message['cat'][$data->cat][0].'</td>
										<td align="center" valign="middle">'.$data->ccd.'</td>';
									if($dcd == "BC10"){
										$content .= '<td align="left" valign="middle">'.$data->dcd.' - '.$message[$dcd][$data->ccd].'</td>';
										}
									else{
								   	$content .= '<td align="left" valign="middle">'.$message[$dcd][$data->ccd].'</td>';
								   	}
				$content .=	'<td align="left" valign="middle">'.substr($data->t, 8, -9).".".substr($data->t, 5, -12).".".substr($data->t, 0, -15).", ".substr($data->t, 11, -6).":".substr($data->t, 14, -3).'</td></tr>';
				}
			}

   	$buffer[] = $dcd;
		}

		$content .= '</tbody>
					 	<tr align="left" valign="middle" height="20">
					 		<td colspan="4"></td></tr>
					 	<tr align="left" valign="middle" height="20"><td></td>
					 		<td colspan="3">'.$message['cat']['B'][0].' ..... '.$message['cat']['B'][1].'</td></tr>
						<tr align="left" valign="middle" height="20"><td></td>
					 		<td colspan="3">'.$message['cat']['L'][0].' ..... '.$message['cat']['L'][1].'</td></tr>
					 	<tr align="left" valign="middle" height="20"><td></td>
					 		<td colspan="3">'.$message['cat']['A'][0].' ..... '.$message['cat']['A'][1].'</td></tr>
					 	<tr align="left" valign="middle" height="20"><td></td>
       			 		<td colspan="3">'.$message['cat']['H'][0].' ..... '.$message['cat']['H'][1].'</td></tr>
					 	<tr align="left" valign="middle" height="20"><td></td>
       			 		<td colspan="3">'.$message['cat']['W'][0].' ..... '.$message['cat']['W'][1].'</td></tr>
					 	<tr align="left" valign="middle" height="20"><td></td>
       			 		<td colspan="3">'.$message['cat']['S'][0].' ..... '.$message['cat']['S'][1].'</td></tr>
					 	<tr align="left" valign="middle" height="20"><td></td>
       			 		<td colspan="3">'.$message['cat']['BC'][0].' ..... '.$message['cat']['BC'][1].'</td></tr>
					 	<tr align="left" valign="middle" height="20">
					 		<td colspan="4"></td></tr>
  					 	<tbody>
					 	<tr align="right" valign="bottom" height="40">
							<td colspan="4">Stand: '.date("d.m.Y, H:i").'</td></tr>
						</tbody>
					 	</table>';

	return $content;
	}

PS.: Rechtschreibfehler dürft Ihr behalten, habe schon genug davon :smiley:

Hallo Manfred,

leider finde ich auch nichts zu AA0. :confused:

Momentan habe ich noch diese Meldung.
Notice: Undefined offset: 800 in C:\IP-Symcon\scripts\10934.ips.php on line 435

Vielen Dank für deine Mühe

Gerd

Ja, die Meldung kommt daher, dass wir noch nicht wissen was dieses AA0 ist.
Welche Anlage hast Du den?

Moin…

Okay, ausgeführt… und er gibt nur eine „1“ aus.

Mehr ist dort nicht zu sehen. Kann es sein, dass ich über die App erst eine Freigabe über „Einstellungen->Benachrichtigung“ geben muss? Ich hab die Karre komplett nach außen gesperrt, damit da nicht unfreiwillig n Update kommt und dann nix mehr geht.

Servus,

Nur eine „1“ sonst nichts?
Welche Anlagenkonfiguration hast Du den? und wie alt ist Deine Anlage?

Möglich das Dein Fehlerspeicher leer ist?

Gruß
Manfred

Weil ich durch Manfreds Skript nun wieder an meine Heizung gegangen bin, habe ich das mal auf meinem OSX-IPS getestet und bekomme ein „Fatal error: Call to undefined function mcrypt_decrypt()“
Gibt es das nicht mehr in der PHP-Version des OSX-IPS?

Nachtrag: Ich hab die Frage mal nach hierausgelagert und @paresy hat die Lösung gefunden.

Habe die Funktion (die nun ziemlich erwachsen geworden ist)
ein bisschen modifiziert (was meine PHP-Kenntnisse und Tante G halt so hergeben) :smiley:

In den ersten Zeilen muss nun unter Umständen ein bisschen angepasst werden.
Im Fall von Gerd müsste er dann bei $A01 eben die „AA0“ eintragen usw.
Diese Info habe ich im FHEM-Forum aufgetrieben.

Das Skript „sollte“ jetzt fehlende Definitionen bei den Typen sowie bei den Fehlermeldungen erkennen und
diese extra ausgeben, damit man diese mit Hilfe des Raumcontrollers vergleichen und anpassen kann.

Alles gefunden:

Typ und/oder Meldungsnummer nicht gefunden:

Fehler_2.jpg


// Funktion Fehlerspeicher auslesen
// ---------------------------------
function ReadFaultHistory(){
// Definition der Typen
// ---------------------
	$BC = "BC10";
	$A01 = "A01";  // AA0
	$A02 = "A02";
	$A03 = "A03";
	$A11 = "A11";
	$A12 = "A12";  // AA1
	$A18 = "A18";
	$A21 = "A21";
	$A22 = "A22";
	$A23 = "A23";
	$A24 = "A24";
	$A31 = "A31";
	$A32 = "A32";
	$A33 = "A33";
	$A34 = "A34";
	$A41 = "A41";
	$A42 = "A42";
	$A51 = "A51";
	$A61 = "A61";
	$A62 = "A62";
	$A63 = "A63";
	$A64 = "A64";
	$Ad1 = "Ad1";
	$EE = "EE";
	$H = "H";


// Array mit den Meldungen
// ------------------------
$message = array("dcd" => array($BC => 'Brennersteuerung',
										  $A01 => 'Allgemeine EMS-Funktion',
										  $A02 => 'Brennersteuerung',
										  $A03 => 'keine Ahnung',
										  $A11 => 'Raumcontroller',
										  $A12 => 'Weichenmodul',
										  $A18 => 'Raumcontroller',
										  $A21 => 'Raumcontroller Heizkreis 1',
										  $A22 => 'Raumcontroller Heizkreis 2',
										  $A23 => 'Raumcontroller Heizkreis 3',
										  $A24 => 'Raumcontroller Heizkreis 4',
										  $A31 => 'Mischermodul Heizkreis 1',
										  $A32 => 'Mischermodul Heizkreis 2',
										  $A33 => 'Mischermodul Heizkreis 3',
										  $A34 => 'Mischermodul Heizkreis 4',
										  $A41 => 'keine Ahnung',
										  $A42 => 'keine Ahnung',
										  $A51 => 'Solarmodul',
										  $A61 => 'Heizkreis 1',
										  $A62 => 'Heizkreis 2',
										  $A63 => 'Heizkreis 3',
										  $A64 => 'Heizkreis 4',
										  $Ad1 => 'SAFe/Heizkessel',
										  $EE => 'Interner Fehler am SAFe',
										  $H => 'Wartungsmeldungen'),
					  "cat" => array("B" => array('B', 'blockierender Fehler, läuft nach Fehlerbehebung selbsttätig weiter'),
					  					  "L" => array('V', 'verriegelnder Fehler, muss nach Fehlerbehebung manuell entriegelt werden'),
										  "A" => array('A', 'Anlagenfehler (im Raumcontroller protokoliert)'),
										  "H" => array('H', 'Servicemeldung (Wartungsmeldung)'),
										  "W" => array('W', 'Wartungsmeldung'),
										  "S" => array('S', 'Systemfehler'),
										  "BC" => array('BC', 'Betriebscode')),
					  $BC => array("200" => 'Gerät im Heizbetrieb',
					  					"201" => 'Gerät im Warmwasserbetrieb',
					  					"202" => 'Anlage im Schaltoptimierungsprogramm',
					  					"203" => 'Die Anlage befindet sich in Betriebsbereitschaft, keine Wärmeanforderung',
										"204" => 'Die aktuelle Kesselwassertemperatur ist höher als die Sollkesselwassertemperatur',
										"205" => 'Der Kessel wartet auf Luftströmung',
										"207" => 'Der Druck des Heizungswassers ist keiner 0,2bar bei Wandkesseln oder kleiner 0,6bar bei GB312',
										"208" => 'Abgastest wird durchgeführt',
										"209" => 'Kessel in Betrieb und im Servicemode',
										"210" => 'Das Abgasthermostat hat angesprochen',
										"211" => 'Der UBA verzeichnet keine Verbindung zu ungenutzten Kontakten 78 und 50.',
										"212" => 'Wasserströmung - Temperaturanstieg Sicherheits- Vorlaufsensor',
										"213" => 'Wasserströmung - Temperaturdifferenz zwischen Vorlauf- und Rücklauf',
										"214" => 'Lufttransport - das Gebläse wird während der Sicherheitszeit abgeschaltet',
										"215" => 'Lufttransport - das Gebläse dreht zu schnell',
										"216" => 'Lufttransport - das Gebläse dreht nicht schnell genug',
										"217" => 'Lufttransport - kein Lufttransport nach x Minuten',
										"218" => 'Temperatur am Vorlaufsensor ist größer als 105°C',
										"219" => 'Temperatur am Sicherheitssensor größer als 95°C',
										"220" => 'Sicherheitsensor Kurzschluss, oder wärmer als 130°C',
										"221" => 'Sicherheitsensor loser KOntakt oder defekt',
										"222" => 'Vorlaufsensor Kurzschluss',
										"223" => 'Vorlaufsensor loser Kontakt oder defekt',
										"224" => 'Systemfehler - UBA keine Verbindung zu Kontakten 22 und 50',
										"225" => 'Temperatur zwisch Vorlauf- und Sicherheitsensor zu groß',
										"226" => 'Kennzeichnung für Handterminal',
										"227" => 'Keine Ionisationsmeldung nach der Zündung (4 Versuche)',
										"228" => 'Ionisationsmeldung trotz nicht vorhandener FLamme',
										"229" => 'Flamme während des Brennerbetriebes ausgefallen',
										"230" => 'Fehler Regelventil',
										"231" => 'Fehler NEtzspannung',
										"232" => 'externer Schaltkontakt hat angesprochen',
										"233" => 'KIM oder UBA defekt',
										"234" => 'Spule oder Anschlusskabel der Gasarmatur defekt',
										"235" => 'KIM oder UBA defekt',
										"237" => 'KIM oder UBA3 defekt, oder Kurzschluss Anschlusskabel Gasarmatur',
										"238" => 'UBA ist defekt',
										"239" => 'KIM oder UBA3 defekt, oder Kurzschluss Anschlusskabel Gasarmatur',
										"240" => 'Kurzschluss an Rücklaufsensor',
										"241" => 'Rücklaufsensor loser Kontakt oder defekt',
										"242" => 'UBA oder KIM defekt',
										"243" => 'UBA oder KIM defekt',
										"244" => 'UBA oder KIM defekt',
										"245" => 'UBA oder KIM defekt',
										"246" => 'UBA oder KIM defekt',
										"247" => 'UBA oder KIM defekt',
										"248" => 'UBA oder KIM defekt',
										"249" => 'UBA oder KIM defekt',
										"250" => 'UBA oder KIM defekt',
										"251" => 'UBA oder KIM defekt',
										"252" => 'UBA oder KIM defekt',
										"253" => 'UBA oder KIM defekt',
										"254" => 'UBA oder KIM defekt',
										"255" => 'UBA oder KIM defekt',
										"256" => 'UBA oder KIM defekt',
										"257" => 'UBA oder KIM defekt',
										"258" => 'UBA oder KIM defekt',
										"259" => 'UBA oder KIM defekt',
										"260" => 'Kein Temperaturanstieg nach Brennerstart oder Temperaturunterschied zwischen Vorlaufsensor und Sicherheitssensor',
										"261" => 'Zeitfehler bei erster Sicherheitszeit',
										"262" => 'UBA oder KIM defekt',
										"263" => 'UBA oder KIM defekt',
										"264" => 'Lufttransport - der Lufttransport ist während der Betriebsphase ausgefallen',
										"265" => 'Der Heizkessel befindet sich in Betriebsbereitschaft, Wärmebedarf ist vorhanden, es wird jedoch zuviel Energie geliefert',
										"266" => 'Die Umwälzpumpe konnte während des Pumpentests keine Druckerhöhung von 50mbar erzeugen',
										"267" => 'UBA defekt',
										"268" => 'Der Relaistest wurde in der Fachkundenebene der Bedieneinheit RC3x aktiviert',
										"269" => 'Glühzünder zu lange eingeschalten',
										"270" => 'Der Heizkessel wird hochgefahren',
										"271" => 'Temperaturunterschied zwischen Vorlaufsensor und Sicherheitssensor',
										"272" => 'UBA defekt',
										"273" => 'Lufttransport - Brenner und Gebläse waren 24h ununterbrochen in Betrieb',
										"275" => 'UBA im Testmode',
										"276" => 'Die Temperatur am Vorlauf ist höher als 95°C',
										"277" => 'Die Temperatur am Sicherheitssensor ist größer als 95°C',
										"278" => 'Sensortest fehlgeschlagen',
										"279" => 'UBA oder KIM defekt',
										"280" => 'Zeitfehler bei Wiederanlaufversuch',
										"281" => 'Die Umwälzpumpe erzeugt keinen Druckunterschied',
										"282" => 'Wasserströmung - keine Drehzahlrückmeldung der Umwälzpumpe',
										"283" => 'Der Brenner wird gestartet',
										"284" => 'Die Gasarmatur wird geöffnet, 1. Sicherheitszeit',
										"285" => 'Die Temperatur am Rücklaufsensor ist größer als 95°C',
										"286" => 'Temperatur Rücklaufsensor zu hoch',
										"287" => 'UBA oder KIM defekt',
										"288" => 'UBA hat keinen Kontakt zum Wasserdrucksensor',
										"289" => 'Kurzschluss EIngang Wasserdrucksensor',
										"290" => 'UBA defekt',
										"305" => 'Der Kessel kann vorrübergehend nach Warmwasser-Vorrang nicht starten',
										"306" => 'Ionisationsmessung nach Schließen des Gasventils',
										"307" => 'Wasserströmung - Die Umwälzpumpe ist blockiert',
										"308" => 'Wasserströmung - Die Umwälzpumpe dreht ohne Widerstand',
										"328" => 'Unterbrechnung der Spannungsversorgung',
										"329" => 'Die Umwälzpumpe konnte während des Pumpentests keine Druckerhöhung von 50mbar erzeugen',
										"332" => 'Temperatur am Vorlaufsensor über 110°C',
										"333" => 'Der Kessel hat wegen kurzzeitg zu geringem Wasserdruck abgeschalten',
										"338" => 'Der Kessel musste nach 6 Starts abbrechen',
										"500" => 'Keine Spannung Sicherheitsrelais',
										"501" => 'Sicherheitsrelais hängt',
										"502" => 'Keine Spannungsversorgung Brennstoffrelais 1',
										"503" => 'Brennstoffrelais 1 hängt',
										"504" => 'Brennerstörung Nicht-EMS-Brenner',
										"505" => 'Innerhalb von 30 min wurde am STB kein Temperaturanstieg festgestellt',
										"506" => 'Temperaturanstieg am STB zu schnell',
										"507" => 'STB-Test erfolgreich durchgeführt',
										"508" => 'Zu hoher Flammfühler-Strom',
										"509" => 'Eingang Flammenfühler defekt',
										"510" => 'Fremdlicht Vorbelüftung',
										"511" => 'Keine Flamme innerhalb der Sicherheitszeit',
										"512" => 'Flammenabriss innerhalb der Sicherheitszeit',
										"513" => 'Flammenabriss innerhalb der Nachzündzeit',
										"514" => 'Flammenabriss innerhalb der Stabilisierungszeit',
										"515" => 'Flammenabriss in Betrieb 1. + 2. Stufe',
										"516" => 'Flammenabriss Umschaltung 1. Stufe',
										"517" => 'Flammenabriss in Betrieb 1. Stufe',
										"518" => 'Flammenabriss Umschaltung 1. + 2. Stufe',
										"519" => 'Flammensignal nach Brennerabschaltung',
										"520" => 'Vorlauf-STB',
										"521" => 'Temperaturdifferenz im Kesselvorlauffühler zu groß',
										"522" => 'Kesselvorlauffühler defekt',
										"523" => 'Kesselvorlauffühler defekt (Kabelbruch)',
										"524" => 'Kesselvorlauffühler defekt (Kurzschluss)',
  									   "525" => 'Abags-STB',
										"526" => 'Temperaturdifferenz im Abgastemperaturfühler zu groß',
										"527" => 'Abgastemperaturfühler defekt',
										"529" => 'Abgastemperaturfühler defekt (Kurzschluss)',
										"528" => 'Abgastemperaturfühler defekt (Kabelbruch)',
										"530" => 'Abgastemperatur zu hoch',
										"531" => 'Wassermangel',
										"532" => 'Netzspannung zeitweilig zu gering',
										"534" => 'Kein Gasdruck, oder Abgasdruckbegrenzer hat geschaltet',
										"535" => 'Lufttemperatur zu hoch',
										"536" => 'Falsche Anbringung Lufttemperatur-/Abgastemperaturfühler',
										"537" => 'Keine Drehzahlrückmeldung',
										"538" => 'Brennergebläse zu langsam',
										"540" => 'Brennergebläse zu schnell',
										"542" => 'Kommunikation mit SAFe unvollständig',
										"543" => 'Keine Kommunikation mit SAFe',
										"547" => 'BIM-Programmierung',
										"548" => 'Zuviele Wiederholungen (Brennerstarts)',
										"549" => 'Sicherheitskette hat geöffnet',
										"550" => 'Unterspannung',
										"551" => 'Spannungsunterbrechung',
									 	"552" => 'Zu viele Entstörungen über Schnittstelle',
										"553" => 'Zu viele Flammenabrisse',
										"554" => 'Fehler EEPROM',
										"555" => 'Hauptflamme zu früh',
										"557" => 'Flammenabriss bei Hauptgas ein',
										"558" => 'Keine Bildung der Hauptflamme',
										"559" => 'Luftdruckschalter hängt',
										"560" => 'Luftdruckschalter offen',
										"561" => 'Spannungsunterbrechung während Brennerstart',
										"562" => 'Abgasaustrittssicherung zu hohe Temperatur',
										"563" => 'Abgasaustrittssicherung zu häufig',
										"564" => 'Temperaturanstieg Kesselfühler zu schnell',
										"565" => 'Differenz Vorlauf zu Rücklauf zu groß',
										"566" => 'Rücklauftemperatur kleiner -5°C (Unterbrechnung)',
										"567" => 'Rücklauftemperatur größer 150°C (Kurzschluss)',
										"568" => 'Wasserdrucksensor Kabelbruch',
										"569" => 'Wasserdrucksensor Kurzschluss',
										"570" => 'Zuviele Entriegelungen über Schnittsteller',
										"571" => 'Zuviele Wiederanläufe trotz Entriegelung',
										"572" => 'externe Sperrung aktiv',
										"573" => 'Vorlauftemperaturfühler Unterbrechnung',
										"574" => 'Vorlauftemperaturfühler Kurzschluss',
										"575" => 'Vorlauf-ISTB',
										"576" => 'Ionisation innerhalb der Vorbelüftung größer 0,9 µA',
										"577" => 'Keine Flamme innerhalb der Sicherheitszeit',
										"579" => 'kein Gasruck',
										"580" => 'Magnetventil 1 undicht',
										"581" => 'Magnetventil 2 undicht',
										"582" => 'Keine Kommunikation mit UM10',
										"583" => 'UM10 externe Verriegelung aktiv',
										"584" => 'UM10 keine Rückmeldung',
										"585" => 'Kein UM10',
										"586" => 'SAFe alter Softwarestand',
										"587" => 'Flammenabriss, Stabilisierung/Teillast',
										"588" => 'Mehr als ein UM10 im System',
										"589" => 'Die Klemme 15/16 am BRM10 hat die Brennerschleife unterbrochen',
										"590" => 'Druckschalter hat während des Betriebes geöffnet',
										"591" => 'Abgasklappe öffnet nicht innerhalb von 30 sec',
										"592" => 'Abgasklappe dauerhaft geöffnet',
										"593" => 'Brücke am Eingang Küchenlüfter (Dunstabzugshaube) fehlt',
										"594" => 'NTC anstelle Kodierbrücken angeschlossen',
										"601" => 'Zu hohe Abweichung Kesselwasser/STB-Fühler',
										"602" => 'Zu hohe Unterschiede Abgastemperaturmessung',
										"603" => 'A/D Wandler arbeitet nicht schnell genug',
										"604" => 'Referenzspannung des 2. µC innerhalb ungültiger Grenzen',
										"605" => 'Referenzspannung des 1. µC innerhalb ungültiger Grenzen',
										"606" => 'Fühlertest 2. µC fehlgeschlagen',
										"607" => '1. µC hat in 10s keine Fühlertest durchgeführt',
										"608" => '1. µC und 2. µC unterschiedlichen Vorlauftemperaturen',
										"609" => '1. µC und 2. µC unterschiedlichen Abgastemperaturen',
										"610" => 'der 2. µC hat verriegelt',
										"611" => 'der 2. µC hat einen anderen Zustand als der 1. µC',
										"612" => 'zu hohe Abweichungen Rücklauftemperatur',
										"613" => 'zu hohe Abweichungen Vorlauftemperatur',
										"620" => 'der 2. µC kommuniziert nicht mit dem 1. µC',
										"621" => 'bei der Kommunikation mit dem 2. µC treten CRC-Fehler auf',
										"622" => 'der 2. µC arbeitet in einem anderen Zeitschlitz als der 1 µC',
										"623" => 'nach einem Power-Up kommuniziert der 2. µC nicht mit den 1. µC',
										"625" => 'schwankendes Flammensignal',
										"626" => 'Elektrodenspannung flasch',
										"627" => 'Eingang ionisationsstrom defekt',
										"630" => 'Interner Fehler SAFe',
										"631" => 'Interner Fehler SAFe',
										"640" => 'Interner Fehler SAFe',
										"641" => 'Interner Fehler SAFe',
										"650" => 'Statezahl zu hoch',
										"651" => 'Falsches BIM',
										"652" => 'BIM CRC-Fehler erkannt',
										"653" => 'Verriegelung kann sich nicht gemekrt werden',
										"654" => 'kein EEPROM',
										"655" => 'Verriegelung nicht lesbar',
										"656" => 'Verriegelung nicht schreibbar',
										"657" => 'Verriegelungskennung ungültig',
										"658" => 'Verriegelung CRC-Fehler',
										"659" => 'EEPROM defekt',
										"660" => 'BIM Kommunikation gestört',
										"661" => 'BIM-CRC-Fehler',
										"662" => 'kein BIM',
										"690" =>'Relais im UM10 schaltet nicht nach Vorgabe',
										"691" => 'Rückmeldung vom UM10, obwohl das Relais nicht angesteuert wird',
										"692" => 'Interner Fehler',
										"693" => 'Interner Fehler',
										"694" => 'Interner Fehler',
										"695" => 'Interner Fehler',
										"696" => 'Interner Fehler',
										"697" => 'Interner Fehler',
										"698" => 'Interner Fehler',
										"699" => 'Interner Fehler',
										"XXX" => 'Interner Fehler'),
					  $A01 => array("800" => 'Außenfühler ist defekt',
										 "808" => 'Warmwassserfühler 1 ist defekt',
										 "809" => 'Warmwasserfühler 2 ist defekt',
										 "810" => 'Warmwasser bleibt kalt',
										 "811" => 'Thermische Desinfektion wurde abgebrochen',
										 "816" => 'Keine Kommunikations mit UBA/MC10, DBA, UBA-H3 oder MCM10',
										 "828" => 'Wasserdruckseonsor ist defekt'),
					  $A02 => array("816" => 'Keine Kommunikation mit BC10'),
					  $A03 => array("816" => 'Keine Kommunikation zwischen LM10/IUM und UBA-H3'),
					  $A11 => array("801" => 'Interner Laufzeitfehler im Raumcontroller',
										 "802" => 'Uhrzeit noch nicht eingestellt',
										 "803" => 'Datum noch nicht eingestellt',
										 "804" => 'Interner Fehler (EEPROM-Fehler)',
										 "805" => 'Werte über die Schnittstellre liegen außerhalb der definierten Grenzwerte',
										 "806" => 'Raumtemperaturfühler defekt',
										 "816" => 'Keine Kommunikation mit RC35',
										 "821" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 1',
										 "822" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 2',
										 "823" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 1',
										 "824" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 2',
										 "826" => 'Raumtemperaturfühler für Heizkreis 1 defekt',
										 "827" => 'Raumtemperaturfühler für Heizkreis 2 defekt',
										 "828" => 'Wasserdrucksensor defekt',
										 "829" => 'Raumcontroller ohne Heizkreis',
										 "1004" => 'Systemkonfiguration nicht bestätigt',
										 "1010" => 'Keine Kommunikation über Bus-Verbindung EMS plus',
										 "1037" => 'Außenfühler ist defekt',
										 "1038" => 'Zeit/Datum ungültiger Wert',
										 "3061" => 'Keine Kommunikation mit Mischermodul Heizkreis 1',
										 "3062" => 'Keine Kommunikation mit Mischermodul Heizkreis 2',
										 "3063" => 'Keine Kommunikation mit Mischermodul Heizkreis 3',
										 "3064" => 'Keine Kommunikation mit Mischermodul Heizkreis 4',
										 "3091" => 'Raumtemperaturfühler defekt Heizkreis 1',
										 "3092" => 'Raumtemperaturfühler defekt Heizkreis 2',
										 "3033" => 'Raumtemperaturfühler defekt Heizkreis 3',
										 "3094" => 'Raumtemperaturfühler defekt Heizkreis 4',
										 "6004" => 'Keine Kommunikation Solarmodul'),
					  $A12 => array("815" => 'Fühler Weichenmodul defekt',
										 "816" => 'Keine Kommunikation mit Weichenmodul'),
					  $A18 => array("825" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System'),
					  $A21 => array("806" => 'Raumtemperaturfühler für Heizkreis 1 defekt',
										 "816" => 'Keine Kommunikation mit Bedieneinheit Heizkreis 1',
										 "829" => 'Raumcontroller ohne Heizkreis',
										 "830" => 'Schwache Batterie Bedieneinheit Funk Heizkreis 1',
										 "839" => 'Keine Funkkommunikation mit Bedieneinheit Heizkreis 1 - Funkstörung',
										 "842" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 1',
										 "843" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 1',
										 "1001" => 'Keine BUS-Verbindung zwischen RC300 und RC100/200 Heizkreis 1'),
					  $A22 => array("806" => 'Raumtemperaturfühler für Heizkreis 2 defekt',
										 "816" => 'Keine Kommunikation mit Bedieneinheit Heizkreis 2',
										 "829" => 'Raumcontroller ohne Heizkreis',
										 "830" => 'Schwache Batterie Bedieneinheit Funk Heizkreis 2',
										 "839" => 'Keine Funkkommunikation mit Bedieneinheit Heizkreis 2 - Funkstörung',
										 "842" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 2',
										 "843" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 2',
										 "1001" => 'Keine BUS-Verbindung zwischen RC300 und RC100/200 Heizkreis 2'),
					  $A23 => array("806" => 'Raumtemperaturfühler für Heizkreis 3 defekt',
										 "816" => 'Keine Kommunikation mit Bedieneinheit Heizkreis 3',
										 "829" => 'Raumcontroller ohne Heizkreis',
										 "830" => 'Schwache Batterie Bedieneinheit Funk Heizkreis 3',
										 "839" => 'Keine Funkkommunikation mit Bedieneinheit Heizkreis 3 - Funkstörung',
										 "842" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 3',
										 "843" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 3',
										 "1001" => 'Keine BUS-Verbindung zwischen RC300 und RC100/200 Heizkreis 3'),
					  $A24 => array("806" => 'Raumtemperaturfühler für Heizkreis 4 defekt',
										 "816" => 'Keine Kommunikation mit Bedieneinheit Heizkreis 4',
										 "829" => 'Raumcontroller ohne Heizkreis',
										 "830" => 'Schwache Batterie Bedieneinheit Funk Heizkreis 4',
										 "839" => 'Keine Funkkommunikation mit Bedieneinheit Heizkreis 4 - Funkstörung',
										 "842" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 4',
										 "843" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 4',
										 "1001" => 'Keine BUS-Verbindung zwischen RC300 und RC100/200 Heizkreis 4'),
					  $A31 => array("807" => 'Vorlauffühler Heizkreis 1 defekt',
										 "816" => 'Keine Kommunikation mit Heizkreis 1 Mischermodul',
										 "3021" => 'Vorlauffühler Heizkreis 1 defekt'),
					  $A32 => array("807" => 'Vorlauffühler Heizkreis 2 defekt',
										 "816" => 'Keine Kommunikation mit Heizkreis 2 Mischermodul',
										 "3022" => 'Vorlauffühler Heizkreis 2 defekt'),
					  $A33 => array("807" => 'Vorlauffühler Heizkreis 2 defekt',
										 "816" => 'Keine Kommunikation mit Heizkreis 2 Mischermodul',
										 "3023" => 'Vorlauffühler Heizkreis 3 defekt'),
					  $A34 => array("807" => 'Vorlauffühler Heizkreis 3 defekt',
										 "816" => 'Keine Kommunikation mit Heizkreis 4 Mischermodul',
										 "3024" => 'Vorlauffühler Heizkreis 4 defekt'),
					  $A41 => array("4051" => 'Thermische Desinfektion misslungen, Warmwassersystem 1'),
					  $A42 => array("4052" => 'Thermische Desinfektion misslungen, Warmwassersystem 2'),
					  $A51 => array("812" => 'Einstellungen Solar falsch',
										 "813" => 'Kollektorfühler defekt',
										 "814" => 'Warmwasserspeicher und Kollektorfühler defekt',
										 "816" => 'Solarmodul - SM10 nicht vorhanden, bzw. keine Kommunikation',
										 "6021" => 'Kollektorfühler defekt',
										 "6022" => 'Speichertemperaturfühler unten defekt'),
					  $A61 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 1',
										 "1037" => 'Außentemperaturfühler defekt Heizkreis 1',
										 "1081" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System',
										 "3091" => 'Raumtemperaturfühler defekt Heizkreis 1'),
					  $A62 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 2',
										 "1037" => 'Außentemperaturfühler defekt Heizkreis 2',
										 "1082" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System',
										 "3092" => 'Raumtemperaturfühler defekt Heizkreis 2'),
					  $A63 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 3',
										 "1033" => 'Außentemperaturfühler defekt Heizkreis 3',
										 "1081" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System',
										 "3093" => 'Raumtemperaturfühler defekt Heizkreis 3'),
					  $A64 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis41',
										 "1037" => 'Außentemperaturfühler defekt Heizkreis 4',
										 "1084" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System',
										 "3094" => 'Raumtemperaturfühler defekt Heizkreis 4'),
					  $Ad1 => array("817" => 'Lufttemperatursensor defekt',
										 "818" => 'Heizkessel bleibt kalt',
										 "819" => 'Dauersignal vom Brennstoffvorwärmer',
										 "820" => 'Brennstoff zu kalt'),
					  $H => array("1" => 'Abgastemperatur zu hoch',
									  "2" => 'Brennergebläse zu langsam',
									  "3" => 'Betriebsstunden abgelaufen',
									  "4" => 'Niedriger Flammenfühler-Strom',
									  "5" => 'Hoher Zündverzug',
									  "6" => 'Häufiger Flammenabriss',
									  "7" => 'Wasserdruck zu niedrig',
									  "8" => 'Eingestelltes Wartungsdatum wurde erreicht',
									  "9" => 'Falsche Pumpe angeschlossen',
									  "10" => 'Hoher Flammenstron',
									  "11" => 'Unrealistische Werte vom SLS-Fühler (Schichtladesensor)',
									  "12" => 'Defekt am Speichersensor',
					  				  "1017" => 'Wasserdruck der Anlage zu niedrig'));

// *****************************************************************************

// Fehlerspeicher auslesen
	$data = km200_GetData('/notifications');

		$buffer = array();   	// Zwischenspeicher für Tabellenaufbau
		$nomsgcache = array();  // Zwischenspeicher für nicht vorhandene Meldungen

	// Tabellenkopf erstellen
		$content = '<table border="1" rules="groups">
							<colgroup>
    							<col width="20">
    							<col width="55">
    							<col width="450">
    							<col width="150">
  							</colgroup>
							<thead>
								<tr align="center" valign="middle" height="50">
									<th colspan="4">Anlagenfehlerspeicher</th>
								</tr>
							</thead>';

	foreach($data->values as $data){
	$nomsg = false;
	   // wenn Typ und Meldungsnummer vorhanden
		if(array_key_exists($data->dcd, $message['dcd']) == true and array_key_exists($data->ccd, $message[$data->dcd]) == true){
			$dcd = $data->dcd;
			}
		// wenn der Typ der Basiscontroller ist
		elseif(ctype_digit($data->dcd[0])){
		   $dcd = $BC;
		   }
		// wenn entweder Typ oder Meldungsnummer nicht vorhanden sind
		elseif(array_key_exists($data->dcd, $message['dcd']) == false or array_key_exists($data->ccd, $message[$data->dcd]) == false){
		   if(array_key_exists('t', $data)){
				$nomsgcache[] = array($data->dcd, $data->ccd, $data->t);
				}
			else{
			   $nomsgcache[] = array($data->dcd, $data->ccd, "kein Zeitstempel");
				}
			$nomsg = true;
			}
			
	// Tabelle mit den Werten füllen
	   if(end($buffer) != $dcd){
         $content .= '</tbody>';
         }

      if(array_key_exists('t', $data) and $nomsg != true){   // wenn kein Datum, dann keine Ausgabe
   		if(end($buffer) == $dcd){
 				$content .= '<tr height="30">
									<td align="center" valign="middle">'.$message['cat'][$data->cat][0].'</td>
									<td align="center" valign="middle">'.$data->ccd.'</td>';
									if($dcd == $BC){
										$content .= '<td align="left" valign="middle">'.$data->dcd.' - '.$message[$dcd][$data->ccd].'</td>';
										}
									else{
								   	$content .= '<td align="left" valign="middle">'.$message[$dcd][$data->ccd].'</td>';
								   	}
				$content .=	'<td align="left" valign="middle">'.substr($data->t, 8, -9).".".substr($data->t, 5, -12).".".substr($data->t, 0, -15).", ".substr($data->t, 11, -6).":".substr($data->t, 14, -3).'</td></tr>';
    			}
			else{
				$content .= '<tbody>
									<tr align="left" valign="bottom" height="50">
										<th colspan="4">'.$dcd.' - '.$message['dcd'][$dcd].'</th>
									</tr>
                        </tbody>
                        <tbody>
									<tr height="30">
										<td align="center" valign="middle">'.$message['cat'][$data->cat][0].'</td>
										<td align="center" valign="middle">'.$data->ccd.'</td>';
									if($dcd == $BC){
										$content .= '<td align="left" valign="middle">'.$data->dcd.' - '.$message[$dcd][$data->ccd].'</td>';
										}
									else{
								   	$content .= '<td align="left" valign="middle">'.$message[$dcd][$data->ccd].'</td>';
								   	}
				$content .=	'<td align="left" valign="middle">'.substr($data->t, 8, -9).".".substr($data->t, 5, -12).".".substr($data->t, 0, -15).", ".substr($data->t, 11, -6).":".substr($data->t, 14, -3).'</td></tr>';
				}
			}

   	$buffer[] = $dcd;
		}
		if($nomsgcache){
		   $content .= '</tbody>
                      <tbody>
								<tr align="left" valign="bottom" height="45">
									<th colspan="4">Unbekannte Meldungen</th>
								</tr>
							  </tbody>
							  <tbody>';

         foreach($nomsgcache as $value){
				$content .=	'<tr height="25">
									<td align="center" valign="middle">'.$value[0].'</td>
									<td align="center" valign="middle">'.$value[1].'</td>
									<td align="left" valign="middle">'.substr($value[2], 8, -9).".".substr($value[2], 5, -12).".".substr($value[2], 0, -15).", ".substr($value[2], 11, -6).":".substr($value[2], 14, -3).'</td>
									<td></td>
								</tr>';
				}
			$content .=	'</tbody>';
			}
		else{
		   $content .= '</tbody>';
		   }
		   
		$content .= '<tr align="left" valign="middle" height="20">
					 		<td colspan="4"></td></tr>
					 	<tr align="left" valign="middle" height="20"><td></td>
					 		<td colspan="3">'.$message['cat']['B'][0].' ..... '.$message['cat']['B'][1].'</td></tr>
						<tr align="left" valign="middle" height="20"><td></td>
					 		<td colspan="3">'.$message['cat']['L'][0].' ..... '.$message['cat']['L'][1].'</td></tr>
					 	<tr align="left" valign="middle" height="20"><td></td>
					 		<td colspan="3">'.$message['cat']['A'][0].' ..... '.$message['cat']['A'][1].'</td></tr>
					 	<tr align="left" valign="middle" height="20"><td></td>
       			 		<td colspan="3">'.$message['cat']['H'][0].' ..... '.$message['cat']['H'][1].'</td></tr>
					 	<tr align="left" valign="middle" height="20"><td></td>
       			 		<td colspan="3">'.$message['cat']['W'][0].' ..... '.$message['cat']['W'][1].'</td></tr>
					 	<tr align="left" valign="middle" height="20"><td></td>
       			 		<td colspan="3">'.$message['cat']['S'][0].' ..... '.$message['cat']['S'][1].'</td></tr>
					 	<tr align="left" valign="middle" height="20"><td></td>
       			 		<td colspan="3">'.$message['cat']['BC'][0].' ..... '.$message['cat']['BC'][1].'</td></tr>
					 	<tr align="left" valign="middle" height="20">
					 		<td colspan="4"></td></tr>
  					 	<tbody>
					 	<tr align="right" valign="bottom" height="40">
							<td colspan="4">Stand: '.date("d.m.Y, H:i").'</td></tr>
						</tbody>
					 	</table>';

	return $content;
	}

Ich hoffe, das dies nun nicht wieder nur bei mir funktioniert :eek:

Vielen Dank für’s testen.

Gruß
Manfred

So habe nun wieder ein bisschen rumgebastelt.
Aus der anfänglich kleinen Funktion wurde nun ein Skript.

Fehlerskript.jpg

[ol]
[li] Instanz anlegen
[/li][li] Skript anlegen -> Inhalt kopieren.
[/li][li] Parameter für den Verbindungsaufbau zum KM200 eintragen.
[/li] (Da ich nicht weiß wie Ihr das bei euch macht, habe ich meine einfach mal gelassen).
[li] Zeit für die zyklische Abfrage eintragen
[/li][li] Definitionen der Typen kontrollieren (falls erforderlich)
[/li][li] Skript ausführen
[/li][/ol]

Das Skript legt nun ein paar Variablen an:

[ul]
[li]String Variable für die Anzeige im Webfront
[/li][li]Bool Variable für neue Meldung vorhanden
[/li][li]String Variable als Speicher für die Meldungen um auf neue Meldungen auswerten zu können
[/li][/ul]

Habe das jetzt x-mal durchgespielt.
Es sollten theoretisch keine Skript-Fehlermeldungen mehr kommen wenn irgendetwas nicht gefunden wird.
Stattdessen sollte das nun in der Tabelle unter „unbekannte Meldungen“ abgelegt werden.
So zumindest die Hoffnung :smiley:


<?
// *****************************************************************************
// *****************************************************************************

// Parameter Verbindung
// ---------------------
	require_once( "SYS_Daten.ips.php" );   // Datenpool

	$id = 32599 /*[System\Skripte\Buderus KM200\KM200 Key-Generator]*/;
	$ip = AUT_KM200;
	$u_pass = KM_PRIVAT;
	$g_pass = KM_GATEWAY;

// *****************************************************************************

// Funktionen aufrufen
// --------------------
	require_once( "KM200_Verbindung.ips.php" ); // KM200 Gateway

// *****************************************************************************
// Intervall für die Abfrage in Minuten
	$time = 2;
	
// *****************************************************************************

// Definition der Typen
// ---------------------
	$BC = "BC10";  // Basiscontroller
	$A01 = "A01";  // AA0
	$A02 = "A02";
	$A03 = "A03";
	$A11 = "A11";
	$A12 = "A12";  // AA1
	$A18 = "A18";
	$A21 = "A21";
	$A22 = "A22";
	$A23 = "A23";
	$A24 = "A24";
	$A31 = "A31";
	$A32 = "A32";
	$A33 = "A33";
	$A34 = "A34";
	$A41 = "A41";
	$A42 = "A42";
	$A51 = "A51";
	$A61 = "A61";
	$A62 = "A62";
	$A63 = "A63";
	$A64 = "A64";
	$Ad1 = "Ad1";
	$EE = "EE";
	$H = "H";

// *****************************************************************************

// Array mit den Meldungen
// ------------------------
$message = array("dcd" => array($BC => 'Brennersteuerung',
										  $A01 => 'Allgemeine EMS-Funktion',
										  $A02 => 'Brennersteuerung',
										  $A03 => 'keine Ahnung',
										  $A11 => 'Raumcontroller',
										  $A12 => 'Weichenmodul',
										  $A18 => 'Raumcontroller',
										  $A21 => 'Raumcontroller Heizkreis 1',
										  $A22 => 'Raumcontroller Heizkreis 2',
										  $A23 => 'Raumcontroller Heizkreis 3',
										  $A24 => 'Raumcontroller Heizkreis 4',
										  $A31 => 'Mischermodul Heizkreis 1',
										  $A32 => 'Mischermodul Heizkreis 2',
										  $A33 => 'Mischermodul Heizkreis 3',
										  $A34 => 'Mischermodul Heizkreis 4',
										  $A41 => 'keine Ahnung',
										  $A42 => 'keine Ahnung',
										  $A51 => 'Solarmodul',
										  $A61 => 'Heizkreis 1',
										  $A62 => 'Heizkreis 2',
										  $A63 => 'Heizkreis 3',
										  $A64 => 'Heizkreis 4',
										  $Ad1 => 'SAFe/Heizkessel',
										  $EE => 'Interner Fehler am SAFe',
										  $H => 'Wartungsmeldungen'),
					  "cat" => array("B" => array('B', 'blockierender Fehler, läuft nach Fehlerbehebung selbsttätig weiter'),
					  					  "L" => array('V', 'verriegelnder Fehler, muss nach Fehlerbehebung manuell entriegelt werden'),
										  "A" => array('A', 'Anlagenfehler (im Raumcontroller protokoliert)'),
										  "H" => array('H', 'Servicemeldung (Wartungsmeldung)'),
										  "W" => array('W', 'Wartungsmeldung'),
										  "S" => array('S', 'Systemfehler'),
										  "BC" => array('BC', 'Betriebscode')),
					  $BC => array("200" => 'Gerät im Heizbetrieb',
					  					"201" => 'Gerät im Warmwasserbetrieb',
					  					"202" => 'Anlage im Schaltoptimierungsprogramm',
					  					"203" => 'Die Anlage befindet sich in Betriebsbereitschaft, keine Wärmeanforderung',
										"204" => 'Die aktuelle Kesselwassertemperatur ist höher als die Sollkesselwassertemperatur',
										"205" => 'Der Kessel wartet auf Luftströmung',
										"207" => 'Der Druck des Heizungswassers ist keiner 0,2bar bei Wandkesseln oder kleiner 0,6bar bei GB312',
										"208" => 'Abgastest wird durchgeführt',
										"209" => 'Kessel in Betrieb und im Servicemode',
										"210" => 'Das Abgasthermostat hat angesprochen',
										"211" => 'Der UBA verzeichnet keine Verbindung zu ungenutzten Kontakten 78 und 50.',
										"212" => 'Wasserströmung - Temperaturanstieg Sicherheits- Vorlaufsensor',
										"213" => 'Wasserströmung - Temperaturdifferenz zwischen Vorlauf- und Rücklauf',
										"214" => 'Lufttransport - das Gebläse wird während der Sicherheitszeit abgeschaltet',
										"215" => 'Lufttransport - das Gebläse dreht zu schnell',
										"216" => 'Lufttransport - das Gebläse dreht nicht schnell genug',
										"217" => 'Lufttransport - kein Lufttransport nach x Minuten',
										"218" => 'Temperatur am Vorlaufsensor ist größer als 105°C',
										"219" => 'Temperatur am Sicherheitssensor größer als 95°C',
										"220" => 'Sicherheitsensor Kurzschluss, oder wärmer als 130°C',
										"221" => 'Sicherheitsensor loser KOntakt oder defekt',
										"222" => 'Vorlaufsensor Kurzschluss',
										"223" => 'Vorlaufsensor loser Kontakt oder defekt',
										"224" => 'Systemfehler - UBA keine Verbindung zu Kontakten 22 und 50',
										"225" => 'Temperatur zwisch Vorlauf- und Sicherheitsensor zu groß',
										"226" => 'Kennzeichnung für Handterminal',
										"227" => 'Keine Ionisationsmeldung nach der Zündung (4 Versuche)',
										"228" => 'Ionisationsmeldung trotz nicht vorhandener FLamme',
										"229" => 'Flamme während des Brennerbetriebes ausgefallen',
										"230" => 'Fehler Regelventil',
										"231" => 'Fehler NEtzspannung',
										"232" => 'externer Schaltkontakt hat angesprochen',
										"233" => 'KIM oder UBA defekt',
										"234" => 'Spule oder Anschlusskabel der Gasarmatur defekt',
										"235" => 'KIM oder UBA defekt',
										"237" => 'KIM oder UBA3 defekt, oder Kurzschluss Anschlusskabel Gasarmatur',
										"238" => 'UBA ist defekt',
										"239" => 'KIM oder UBA3 defekt, oder Kurzschluss Anschlusskabel Gasarmatur',
										"240" => 'Kurzschluss an Rücklaufsensor',
										"241" => 'Rücklaufsensor loser Kontakt oder defekt',
										"242" => 'UBA oder KIM defekt',
										"243" => 'UBA oder KIM defekt',
										"244" => 'UBA oder KIM defekt',
										"245" => 'UBA oder KIM defekt',
										"246" => 'UBA oder KIM defekt',
										"247" => 'UBA oder KIM defekt',
										"248" => 'UBA oder KIM defekt',
										"249" => 'UBA oder KIM defekt',
										"250" => 'UBA oder KIM defekt',
										"251" => 'UBA oder KIM defekt',
										"252" => 'UBA oder KIM defekt',
										"253" => 'UBA oder KIM defekt',
										"254" => 'UBA oder KIM defekt',
										"255" => 'UBA oder KIM defekt',
										"256" => 'UBA oder KIM defekt',
										"257" => 'UBA oder KIM defekt',
										"258" => 'UBA oder KIM defekt',
										"259" => 'UBA oder KIM defekt',
										"260" => 'Kein Temperaturanstieg nach Brennerstart oder Temperaturunterschied zwischen Vorlaufsensor und Sicherheitssensor',
										"261" => 'Zeitfehler bei erster Sicherheitszeit',
										"262" => 'UBA oder KIM defekt',
										"263" => 'UBA oder KIM defekt',
										"264" => 'Lufttransport - der Lufttransport ist während der Betriebsphase ausgefallen',
										"265" => 'Der Heizkessel befindet sich in Betriebsbereitschaft, Wärmebedarf ist vorhanden, es wird jedoch zuviel Energie geliefert',
										"266" => 'Die Umwälzpumpe konnte während des Pumpentests keine Druckerhöhung von 50mbar erzeugen',
										"267" => 'UBA defekt',
										"268" => 'Der Relaistest wurde in der Fachkundenebene der Bedieneinheit RC3x aktiviert',
										"269" => 'Glühzünder zu lange eingeschalten',
										"270" => 'Der Heizkessel wird hochgefahren',
										"271" => 'Temperaturunterschied zwischen Vorlaufsensor und Sicherheitssensor',
										"272" => 'UBA defekt',
										"273" => 'Lufttransport - Brenner und Gebläse waren 24h ununterbrochen in Betrieb',
										"275" => 'UBA im Testmode',
										"276" => 'Die Temperatur am Vorlauf ist höher als 95°C',
										"277" => 'Die Temperatur am Sicherheitssensor ist größer als 95°C',
										"278" => 'Sensortest fehlgeschlagen',
										"279" => 'UBA oder KIM defekt',
										"280" => 'Zeitfehler bei Wiederanlaufversuch',
										"281" => 'Die Umwälzpumpe erzeugt keinen Druckunterschied',
										"282" => 'Wasserströmung - keine Drehzahlrückmeldung der Umwälzpumpe',
										"283" => 'Der Brenner wird gestartet',
										"284" => 'Die Gasarmatur wird geöffnet, 1. Sicherheitszeit',
										"285" => 'Die Temperatur am Rücklaufsensor ist größer als 95°C',
										"286" => 'Temperatur Rücklaufsensor zu hoch',
										"287" => 'UBA oder KIM defekt',
										"288" => 'UBA hat keinen Kontakt zum Wasserdrucksensor',
										"289" => 'Kurzschluss EIngang Wasserdrucksensor',
										"290" => 'UBA defekt',
										"305" => 'Der Kessel kann vorrübergehend nach Warmwasser-Vorrang nicht starten',
										"306" => 'Ionisationsmessung nach Schließen des Gasventils',
										"307" => 'Wasserströmung - Die Umwälzpumpe ist blockiert',
										"308" => 'Wasserströmung - Die Umwälzpumpe dreht ohne Widerstand',
										"328" => 'Unterbrechnung der Spannungsversorgung',
										"329" => 'Die Umwälzpumpe konnte während des Pumpentests keine Druckerhöhung von 50mbar erzeugen',
										"332" => 'Temperatur am Vorlaufsensor über 110°C',
										"333" => 'Der Kessel hat wegen kurzzeitg zu geringem Wasserdruck abgeschalten',
										"338" => 'Der Kessel musste nach 6 Starts abbrechen',
										"500" => 'Keine Spannung Sicherheitsrelais',
										"501" => 'Sicherheitsrelais hängt',
										"502" => 'Keine Spannungsversorgung Brennstoffrelais 1',
										"503" => 'Brennstoffrelais 1 hängt',
										"504" => 'Brennerstörung Nicht-EMS-Brenner',
										"505" => 'Innerhalb von 30 min wurde am STB kein Temperaturanstieg festgestellt',
										"506" => 'Temperaturanstieg am STB zu schnell',
										"507" => 'STB-Test erfolgreich durchgeführt',
										"508" => 'Zu hoher Flammfühler-Strom',
										"509" => 'Eingang Flammenfühler defekt',
										"510" => 'Fremdlicht Vorbelüftung',
										"511" => 'Keine Flamme innerhalb der Sicherheitszeit',
										"512" => 'Flammenabriss innerhalb der Sicherheitszeit',
										"513" => 'Flammenabriss innerhalb der Nachzündzeit',
										"514" => 'Flammenabriss innerhalb der Stabilisierungszeit',
										"515" => 'Flammenabriss in Betrieb 1. + 2. Stufe',
										"516" => 'Flammenabriss Umschaltung 1. Stufe',
										"517" => 'Flammenabriss in Betrieb 1. Stufe',
										"518" => 'Flammenabriss Umschaltung 1. + 2. Stufe',
										"519" => 'Flammensignal nach Brennerabschaltung',
										"520" => 'Vorlauf-STB',
										"521" => 'Temperaturdifferenz im Kesselvorlauffühler zu groß',
										"522" => 'Kesselvorlauffühler defekt',
										"523" => 'Kesselvorlauffühler defekt (Kabelbruch)',
										"524" => 'Kesselvorlauffühler defekt (Kurzschluss)',
  									   "525" => 'Abags-STB',
										"526" => 'Temperaturdifferenz im Abgastemperaturfühler zu groß',
										"527" => 'Abgastemperaturfühler defekt',
										"529" => 'Abgastemperaturfühler defekt (Kurzschluss)',
										"528" => 'Abgastemperaturfühler defekt (Kabelbruch)',
										"530" => 'Abgastemperatur zu hoch',
										"531" => 'Wassermangel',
										"532" => 'Netzspannung zeitweilig zu gering',
										"534" => 'Kein Gasdruck, oder Abgasdruckbegrenzer hat geschaltet',
										"535" => 'Lufttemperatur zu hoch',
										"536" => 'Falsche Anbringung Lufttemperatur-/Abgastemperaturfühler',
										"537" => 'Keine Drehzahlrückmeldung',
										"538" => 'Brennergebläse zu langsam',
										"540" => 'Brennergebläse zu schnell',
										"542" => 'Kommunikation mit SAFe unvollständig',
										"543" => 'Keine Kommunikation mit SAFe',
										"547" => 'BIM-Programmierung',
										"548" => 'Zuviele Wiederholungen (Brennerstarts)',
										"549" => 'Sicherheitskette hat geöffnet',
										"550" => 'Unterspannung',
										"551" => 'Spannungsunterbrechung',
									 	"552" => 'Zu viele Entstörungen über Schnittstelle',
										"553" => 'Zu viele Flammenabrisse',
										"554" => 'Fehler EEPROM',
										"555" => 'Hauptflamme zu früh',
										"557" => 'Flammenabriss bei Hauptgas ein',
										"558" => 'Keine Bildung der Hauptflamme',
										"559" => 'Luftdruckschalter hängt',
										"560" => 'Luftdruckschalter offen',
										"561" => 'Spannungsunterbrechung während Brennerstart',
										"562" => 'Abgasaustrittssicherung zu hohe Temperatur',
										"563" => 'Abgasaustrittssicherung zu häufig',
										"564" => 'Temperaturanstieg Kesselfühler zu schnell',
										"565" => 'Differenz Vorlauf zu Rücklauf zu groß',
										"566" => 'Rücklauftemperatur kleiner -5°C (Unterbrechnung)',
										"567" => 'Rücklauftemperatur größer 150°C (Kurzschluss)',
										"568" => 'Wasserdrucksensor Kabelbruch',
										"569" => 'Wasserdrucksensor Kurzschluss',
										"570" => 'Zuviele Entriegelungen über Schnittsteller',
										"571" => 'Zuviele Wiederanläufe trotz Entriegelung',
										"572" => 'externe Sperrung aktiv',
										"573" => 'Vorlauftemperaturfühler Unterbrechnung',
										"574" => 'Vorlauftemperaturfühler Kurzschluss',
										"575" => 'Vorlauf-ISTB',
										"576" => 'Ionisation innerhalb der Vorbelüftung größer 0,9 µA',
										"577" => 'Keine Flamme innerhalb der Sicherheitszeit',
										"579" => 'kein Gasruck',
										"580" => 'Magnetventil 1 undicht',
										"581" => 'Magnetventil 2 undicht',
										"582" => 'Keine Kommunikation mit UM10',
										"583" => 'UM10 externe Verriegelung aktiv',
										"584" => 'UM10 keine Rückmeldung',
										"585" => 'Kein UM10',
										"586" => 'SAFe alter Softwarestand',
										"587" => 'Flammenabriss, Stabilisierung/Teillast',
										"588" => 'Mehr als ein UM10 im System',
										"589" => 'Die Klemme 15/16 am BRM10 hat die Brennerschleife unterbrochen',
										"590" => 'Druckschalter hat während des Betriebes geöffnet',
										"591" => 'Abgasklappe öffnet nicht innerhalb von 30 sec',
										"592" => 'Abgasklappe dauerhaft geöffnet',
										"593" => 'Brücke am Eingang Küchenlüfter (Dunstabzugshaube) fehlt',
										"594" => 'NTC anstelle Kodierbrücken angeschlossen',
										"601" => 'Zu hohe Abweichung Kesselwasser/STB-Fühler',
										"602" => 'Zu hohe Unterschiede Abgastemperaturmessung',
										"603" => 'A/D Wandler arbeitet nicht schnell genug',
										"604" => 'Referenzspannung des 2. µC innerhalb ungültiger Grenzen',
										"605" => 'Referenzspannung des 1. µC innerhalb ungültiger Grenzen',
										"606" => 'Fühlertest 2. µC fehlgeschlagen',
										"607" => '1. µC hat in 10s keine Fühlertest durchgeführt',
										"608" => '1. µC und 2. µC unterschiedlichen Vorlauftemperaturen',
										"609" => '1. µC und 2. µC unterschiedlichen Abgastemperaturen',
										"610" => 'der 2. µC hat verriegelt',
										"611" => 'der 2. µC hat einen anderen Zustand als der 1. µC',
										"612" => 'zu hohe Abweichungen Rücklauftemperatur',
										"613" => 'zu hohe Abweichungen Vorlauftemperatur',
										"620" => 'der 2. µC kommuniziert nicht mit dem 1. µC',
										"621" => 'bei der Kommunikation mit dem 2. µC treten CRC-Fehler auf',
										"622" => 'der 2. µC arbeitet in einem anderen Zeitschlitz als der 1 µC',
										"623" => 'nach einem Power-Up kommuniziert der 2. µC nicht mit den 1. µC',
										"625" => 'schwankendes Flammensignal',
										"626" => 'Elektrodenspannung flasch',
										"627" => 'Eingang ionisationsstrom defekt',
										"630" => 'Interner Fehler SAFe',
										"631" => 'Interner Fehler SAFe',
										"640" => 'Interner Fehler SAFe',
										"641" => 'Interner Fehler SAFe',
										"650" => 'Statezahl zu hoch',
										"651" => 'Falsches BIM',
										"652" => 'BIM CRC-Fehler erkannt',
										"653" => 'Verriegelung kann sich nicht gemekrt werden',
										"654" => 'kein EEPROM',
										"655" => 'Verriegelung nicht lesbar',
										"656" => 'Verriegelung nicht schreibbar',
										"657" => 'Verriegelungskennung ungültig',
										"658" => 'Verriegelung CRC-Fehler',
										"659" => 'EEPROM defekt',
										"660" => 'BIM Kommunikation gestört',
										"661" => 'BIM-CRC-Fehler',
										"662" => 'kein BIM',
										"690" =>'Relais im UM10 schaltet nicht nach Vorgabe',
										"691" => 'Rückmeldung vom UM10, obwohl das Relais nicht angesteuert wird',
										"692" => 'Interner Fehler',
										"693" => 'Interner Fehler',
										"694" => 'Interner Fehler',
										"695" => 'Interner Fehler',
										"696" => 'Interner Fehler',
										"697" => 'Interner Fehler',
										"698" => 'Interner Fehler',
										"699" => 'Interner Fehler',
										"XXX" => 'Interner Fehler'),
					  $A01 => array("800" => 'Außenfühler ist defekt',
										 "808" => 'Warmwassserfühler 1 ist defekt',
										 "809" => 'Warmwasserfühler 2 ist defekt',
										 "810" => 'Warmwasser bleibt kalt',
										 "811" => 'Thermische Desinfektion wurde abgebrochen',
										 "816" => 'Keine Kommunikations mit UBA/MC10, DBA, UBA-H3 oder MCM10',
										 "828" => 'Wasserdruckseonsor ist defekt'),
					  $A02 => array("816" => 'Keine Kommunikation mit BC10'),
					  $A03 => array("816" => 'Keine Kommunikation zwischen LM10/IUM und UBA-H3'),
					  $A11 => array("801" => 'Interner Laufzeitfehler im Raumcontroller',
										 "802" => 'Uhrzeit noch nicht eingestellt',
										 "803" => 'Datum noch nicht eingestellt',
										 "804" => 'Interner Fehler (EEPROM-Fehler)',
										 "805" => 'Werte über die Schnittstellre liegen außerhalb der definierten Grenzwerte',
										 "806" => 'Raumtemperaturfühler defekt',
										 "816" => 'Keine Kommunikation mit RC35',
										 "821" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 1',
										 "822" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 2',
										 "823" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 1',
										 "824" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 2',
										 "826" => 'Raumtemperaturfühler für Heizkreis 1 defekt',
										 "827" => 'Raumtemperaturfühler für Heizkreis 2 defekt',
										 "828" => 'Wasserdrucksensor defekt',
										 "829" => 'Raumcontroller ohne Heizkreis',
										 "1004" => 'Systemkonfiguration nicht bestätigt',
										 "1010" => 'Keine Kommunikation über Bus-Verbindung EMS plus',
										 "1037" => 'Außenfühler ist defekt',
										 "1038" => 'Zeit/Datum ungültiger Wert',
										 "3061" => 'Keine Kommunikation mit Mischermodul Heizkreis 1',
										 "3062" => 'Keine Kommunikation mit Mischermodul Heizkreis 2',
										 "3063" => 'Keine Kommunikation mit Mischermodul Heizkreis 3',
										 "3064" => 'Keine Kommunikation mit Mischermodul Heizkreis 4',
										 "3091" => 'Raumtemperaturfühler defekt Heizkreis 1',
										 "3092" => 'Raumtemperaturfühler defekt Heizkreis 2',
										 "3033" => 'Raumtemperaturfühler defekt Heizkreis 3',
										 "3094" => 'Raumtemperaturfühler defekt Heizkreis 4',
										 "6004" => 'Keine Kommunikation Solarmodul'),
					  $A12 => array("815" => 'Fühler Weichenmodul defekt',
										 "816" => 'Keine Kommunikation mit Weichenmodul'),
					  $A18 => array("825" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System'),
					  $A21 => array("806" => 'Raumtemperaturfühler für Heizkreis 1 defekt',
										 "816" => 'Keine Kommunikation mit Bedieneinheit Heizkreis 1',
										 "829" => 'Raumcontroller ohne Heizkreis',
										 "830" => 'Schwache Batterie Bedieneinheit Funk Heizkreis 1',
										 "839" => 'Keine Funkkommunikation mit Bedieneinheit Heizkreis 1 - Funkstörung',
										 "842" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 1',
										 "843" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 1',
										 "1001" => 'Keine BUS-Verbindung zwischen RC300 und RC100/200 Heizkreis 1'),
					  $A22 => array("806" => 'Raumtemperaturfühler für Heizkreis 2 defekt',
										 "816" => 'Keine Kommunikation mit Bedieneinheit Heizkreis 2',
										 "829" => 'Raumcontroller ohne Heizkreis',
										 "830" => 'Schwache Batterie Bedieneinheit Funk Heizkreis 2',
										 "839" => 'Keine Funkkommunikation mit Bedieneinheit Heizkreis 2 - Funkstörung',
										 "842" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 2',
										 "843" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 2',
										 "1001" => 'Keine BUS-Verbindung zwischen RC300 und RC100/200 Heizkreis 2'),
					  $A23 => array("806" => 'Raumtemperaturfühler für Heizkreis 3 defekt',
										 "816" => 'Keine Kommunikation mit Bedieneinheit Heizkreis 3',
										 "829" => 'Raumcontroller ohne Heizkreis',
										 "830" => 'Schwache Batterie Bedieneinheit Funk Heizkreis 3',
										 "839" => 'Keine Funkkommunikation mit Bedieneinheit Heizkreis 3 - Funkstörung',
										 "842" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 3',
										 "843" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 3',
										 "1001" => 'Keine BUS-Verbindung zwischen RC300 und RC100/200 Heizkreis 3'),
					  $A24 => array("806" => 'Raumtemperaturfühler für Heizkreis 4 defekt',
										 "816" => 'Keine Kommunikation mit Bedieneinheit Heizkreis 4',
										 "829" => 'Raumcontroller ohne Heizkreis',
										 "830" => 'Schwache Batterie Bedieneinheit Funk Heizkreis 4',
										 "839" => 'Keine Funkkommunikation mit Bedieneinheit Heizkreis 4 - Funkstörung',
										 "842" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 4',
										 "843" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 4',
										 "1001" => 'Keine BUS-Verbindung zwischen RC300 und RC100/200 Heizkreis 4'),
					  $A31 => array("807" => 'Vorlauffühler Heizkreis 1 defekt',
										 "816" => 'Keine Kommunikation mit Heizkreis 1 Mischermodul',
										 "3021" => 'Vorlauffühler Heizkreis 1 defekt'),
					  $A32 => array("807" => 'Vorlauffühler Heizkreis 2 defekt',
										 "816" => 'Keine Kommunikation mit Heizkreis 2 Mischermodul',
										 "3022" => 'Vorlauffühler Heizkreis 2 defekt'),
					  $A33 => array("807" => 'Vorlauffühler Heizkreis 2 defekt',
										 "816" => 'Keine Kommunikation mit Heizkreis 2 Mischermodul',
										 "3023" => 'Vorlauffühler Heizkreis 3 defekt'),
					  $A34 => array("807" => 'Vorlauffühler Heizkreis 3 defekt',
										 "816" => 'Keine Kommunikation mit Heizkreis 4 Mischermodul',
										 "3024" => 'Vorlauffühler Heizkreis 4 defekt'),
					  $A41 => array("4051" => 'Thermische Desinfektion misslungen, Warmwassersystem 1'),
					  $A42 => array("4052" => 'Thermische Desinfektion misslungen, Warmwassersystem 2'),
					  $A51 => array("812" => 'Einstellungen Solar falsch',
										 "813" => 'Kollektorfühler defekt',
										 "814" => 'Warmwasserspeicher und Kollektorfühler defekt',
										 "816" => 'Solarmodul - SM10 nicht vorhanden, bzw. keine Kommunikation',
										 "6021" => 'Kollektorfühler defekt',
										 "6022" => 'Speichertemperaturfühler unten defekt'),
					  $A61 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 1',
										 "1037" => 'Außentemperaturfühler defekt Heizkreis 1',
										 "1081" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System',
										 "3091" => 'Raumtemperaturfühler defekt Heizkreis 1'),
					  $A62 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 2',
										 "1037" => 'Außentemperaturfühler defekt Heizkreis 2',
										 "1082" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System',
										 "3092" => 'Raumtemperaturfühler defekt Heizkreis 2'),
					  $A63 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 3',
										 "1033" => 'Außentemperaturfühler defekt Heizkreis 3',
										 "1081" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System',
										 "3093" => 'Raumtemperaturfühler defekt Heizkreis 3'),
					  $A64 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis41',
										 "1037" => 'Außentemperaturfühler defekt Heizkreis 4',
										 "1084" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System',
										 "3094" => 'Raumtemperaturfühler defekt Heizkreis 4'),
					  $Ad1 => array("817" => 'Lufttemperatursensor defekt',
										 "818" => 'Heizkessel bleibt kalt',
										 "819" => 'Dauersignal vom Brennstoffvorwärmer',
										 "820" => 'Brennstoff zu kalt'),
					  $H => array("1" => 'Abgastemperatur zu hoch',
									  "2" => 'Brennergebläse zu langsam',
									  "3" => 'Betriebsstunden abgelaufen',
									  "4" => 'Niedriger Flammenfühler-Strom',
									  "5" => 'Hoher Zündverzug',
									  "6" => 'Häufiger Flammenabriss',
									  "7" => 'Wasserdruck zu niedrig',
									  "8" => 'Eingestelltes Wartungsdatum wurde erreicht',
									  "9" => 'Falsche Pumpe angeschlossen',
									  "10" => 'Hoher Flammenstron',
									  "11" => 'Unrealistische Werte vom SLS-Fühler (Schichtladesensor)',
									  "12" => 'Defekt am Speichersensor',
					  				  "1017" => 'Wasserdruck der Anlage zu niedrig'));

// *****************************************************************************
// *****************************************************************************


// Installation
// -----------------------------------------------------------------------------
	if($_IPS['SENDER'] == "Execute"){
	   $parentID = IPS_GetParent($_IPS['SELF']);

	   // Skriptposition setzen
	   IPS_SetPosition($_IPS['SELF'], 99);
	   
		// Variablen erstellen
		CreateVariableByName($parentID, "Fehlerspeicher", 3, 1, "~HTMLBox");
		CreateVariableByname($parentID, "neue Meldung", 0, 2);
		CreateVariableByName($parentID, "MsgBuffer", 3, 3, "~String");

		// erste Meldungen in Speicher ablegen
      	$data = km200_GetData('/notifications');
			$num = 0;
         	foreach($data->values as $data){
   				$msgbuffer[$num] = $data;
      			$num++;
      			}
      	SetValue(IPS_GetVariableIDByName("MsgBuffer", $parentID), json_encode($msgbuffer));
      
      // zyklisches Event anlegen
   	$eid = @IPS_GetEventIDByName("TimerEvent", $_IPS['SELF']);
   	if($eid === false){
			$eid = IPS_CreateEvent(1);
				IPS_SetEventCyclic($eid, 0, 0, 0, 0, 2, $time); //Jeden Tag alle X Minuten
				IPS_SetParent($eid, $_IPS['SELF']);
				IPS_SetName($eid, "TimerEvent");
				IPS_SetEventActive($eid, true);
			}
			
		return;
	   }

// *****************************************************************************
// *****************************************************************************


// Fehlerspeicher auslesen
	$data = km200_GetData('/notifications');

		$buffer = array();   	// Zwischenspeicher für Tabellenaufbau
		$nomsgbuffer = array(); // Zwischenspeicher für nicht vorhandene Meldungen
		$num = 0;
		
	// Tabellenkopf erstellen
		$content = '<table border="1" rules="groups">
							<colgroup>
    							<col width="20">
    							<col width="55">
    							<col width="450">
    							<col width="150">
  							</colgroup>
							<thead>
								<tr align="center" valign="middle" height="50">
									<th colspan="4">Anlagenfehlerspeicher</th>
								</tr>
							</thead>';

// Daten auswerten
	foreach($data->values as $data){
	$nomsg = false;
	// Meldungen in Speicher ablegen für Vergleich
   	$msgbuffer[$num] = $data;
      $num++;

	   // wenn Typ und Meldungsnummer vorhanden
		if(array_key_exists($data->dcd, $message['dcd']) == true and array_key_exists($data->ccd, $message[$data->dcd]) == true){
			$dcd = $data->dcd;
			}
			
		// wenn der Typ der Basiscontroller ist
		elseif(ctype_digit($data->dcd[0]) == true and array_key_exists($data->ccd, $message[$BC]) == true){
		   $dcd = $BC;
		   }
		   
		// wenn entweder Typ oder Meldungsnummer nicht vorhanden sind
		elseif(array_key_exists($data->dcd, $message['dcd']) == false or array_key_exists($data->ccd, $message[$data->dcd]) == false){
		   if(array_key_exists('t', $data)){
				$nomsgbuffer[] = array($data->dcd, $data->ccd, $data->t);
				}
			else{
			   $nomsgbuffer[] = array($data->dcd, $data->ccd, "kein Zeitstempel");
				}
			$nomsg = true;
			//$dcd = "";
			}


	// Tabelle mit den Werten füllen
	   if($nomsg != true){
	   	if(end($buffer) != $dcd){
         	$content .= '</tbody>';
         	}
			}

      if(array_key_exists('t', $data) and $nomsg != true){   // wenn kein Datum, dann keine Ausgabe
   		if(end($buffer) == $dcd){
 				$content .= '<tr height="30">
									<td align="center" valign="middle">'.$message['cat'][$data->cat][0].'</td>
									<td align="center" valign="middle">'.$data->ccd.'</td>';
									if($dcd == $BC){
										$content .= '<td align="left" valign="middle">'.$data->dcd.' - '.$message[$dcd][$data->ccd].'</td>';
										}
									else{
								   	$content .= '<td align="left" valign="middle">'.$message[$dcd][$data->ccd].'</td>';
								   	}
				$content .=	'<td align="left" valign="middle">'.substr($data->t, 8, -9).".".substr($data->t, 5, -12).".".substr($data->t, 0, -15).", ".substr($data->t, 11, -6).":".substr($data->t, 14, -3).'</td></tr>';
    			}
			else{
				$content .= '<tbody>
									<tr align="left" valign="bottom" height="50">
										<th colspan="4">'.$dcd.' - '.$message['dcd'][$dcd].'</th>
									</tr>
                        </tbody>
                        <tbody>
									<tr height="30">
										<td align="center" valign="middle">'.$message['cat'][$data->cat][0].'</td>
										<td align="center" valign="middle">'.$data->ccd.'</td>';
									if($dcd == $BC){
										$content .= '<td align="left" valign="middle">'.$data->dcd.' - '.$message[$dcd][$data->ccd].'</td>';
										}
									else{
								   	$content .= '<td align="left" valign="middle">'.$message[$dcd][$data->ccd].'</td>';
								   	}
				$content .=	'<td align="left" valign="middle">'.substr($data->t, 8, -9).".".substr($data->t, 5, -12).".".substr($data->t, 0, -15).", ".substr($data->t, 11, -6).":".substr($data->t, 14, -3).'</td></tr>';
				}
			}

      if($nomsg != true){
   		$buffer[] = $dcd;
   		}
		}
		
		if($nomsgbuffer){
		   $content .= '</tbody>
                      <tbody>
								<tr align="left" valign="bottom" height="45">
									<th colspan="4">Unbekannte Meldungen</th>
								</tr>
							  </tbody>
							  <tbody>';

         foreach($nomsgbuffer as $value){
				$content .=	'<tr height="25">
									<td align="center" valign="middle">'.$value[0].'</td>
									<td align="center" valign="middle">'.$value[1].'</td>
									<td align="left" valign="middle">'.substr($value[2], 8, -9).".".substr($value[2], 5, -12).".".substr($value[2], 0, -15).", ".substr($value[2], 11, -6).":".substr($value[2], 14, -3).'</td>
									<td></td>
								</tr>';
				}
			$content .=	'</tbody>';
			}
		else{
		   $content .= '</tbody>';
		   }

		$content .= '<tr align="left" valign="middle" height="20">
					 		<td colspan="4"></td></tr>
					 	<tr align="left" valign="middle" height="20"><td></td>
					 		<td colspan="3">'.$message['cat']['B'][0].' ..... '.$message['cat']['B'][1].'</td></tr>
						<tr align="left" valign="middle" height="20"><td></td>
					 		<td colspan="3">'.$message['cat']['L'][0].' ..... '.$message['cat']['L'][1].'</td></tr>
					 	<tr align="left" valign="middle" height="20"><td></td>
					 		<td colspan="3">'.$message['cat']['A'][0].' ..... '.$message['cat']['A'][1].'</td></tr>
					 	<tr align="left" valign="middle" height="20"><td></td>
       			 		<td colspan="3">'.$message['cat']['H'][0].' ..... '.$message['cat']['H'][1].'</td></tr>
					 	<tr align="left" valign="middle" height="20"><td></td>
       			 		<td colspan="3">'.$message['cat']['W'][0].' ..... '.$message['cat']['W'][1].'</td></tr>
					 	<tr align="left" valign="middle" height="20"><td></td>
       			 		<td colspan="3">'.$message['cat']['S'][0].' ..... '.$message['cat']['S'][1].'</td></tr>
					 	<tr align="left" valign="middle" height="20"><td></td>
       			 		<td colspan="3">'.$message['cat']['BC'][0].' ..... '.$message['cat']['BC'][1].'</td></tr>
					 	<tr align="left" valign="middle" height="20">
					 		<td colspan="4"></td></tr>
  					 	<tbody>
					 	<tr align="right" valign="bottom" height="40">
							<td colspan="4">Stand: '.date("d.m.Y, H:i").'</td></tr>
						</tbody>
					 	</table>';


	// neue Meldung vorhanden auswerten
		$parentID = IPS_GetParent($_IPS['SELF']);
		$msgbufferID = @IPS_GetVariableIDByName("MsgBuffer", $parentID);
		$msgold = @json_decode(GetValue($msgbufferID));

		if(count($msgbuffer) > count($msgold)){
	   	$varID = @IPS_GetVariableIDByName("neue Meldung", $parentID);
	   	if(GetValue($varID) != true){
	   		SetValue($varID, true);
	   		}
	   	}
		else{
	   	$varID = @IPS_GetVariableIDByName("neue Meldung", $parentID);
	   	if(GetValue($varID) != false){
	   		SetValue($varID, false);
	   		
	   		}
	   	}


// Variablen schreiben
	SetValue(IPS_GetVariableIDByName("Fehlerspeicher", $parentID), $content);
	SetValue(IPS_GetVariableIDByName("MsgBuffer", $parentID), json_encode($msgbuffer));

// *****************************************************************************
// *****************************************************************************


	function CreateVariableByName($id, $name, $type, $pos, $profile = ""){
		global $IPS_SELF;
   	$vid = @IPS_GetVariableIDByName($name, $id);
   	if($vid === false){
   		$vid = IPS_CreateVariable($type);
      	IPS_SetParent($vid, $id);
      	IPS_SetName($vid, $name);
      	IPS_SetPosition($vid, $pos);
      	if($profile !== ""){IPS_SetVariableCustomProfile($vid, $profile);}
    		}
    	return $vid;
		}
	
// *****************************************************************************
// *****************************************************************************

?>

Heute wird ein schöner Tag, Zeit wieder an die Arbeit zu gehen.

Danke für’s testen,
Grüße
Manfred

Tolle Arbeit. Danke.

Danke Manni!
Tolle Arbeit, funktioniert gut.

Leider passt die Enumeration noch nicht überall.
So bekomme ich unter unbekannte Meldungen z.B. noch „H05“ und „A5L“.

Den Typen „H“ gibt es nämlich laut Servicedoku nicht. Die heißen gleich H01 H02 usw
http://de.documents.buderus.com/download/pdf/file/6720809288.pdf

Warum es bei mir A5L und nicht 5L heißt, weiß ich noch nicht.

Muss mir das nochmal in Ruhe anschauen, fehlt derzeit die Zeit zu. Die Liste laut Servicedoku komplett zu vervollständingen, wird noch viel Fleißarbeit puh

Hallo ika,

Feine Sache :smiley:
Gehe jetzt mal davon aus, dass Du eine etwas neuere Anlage in Betrieb hast …

Interessant ist jetzt nur die Tatsache das Deine Anlage eine „A5L“ ausgibt, aber in der Servicedoku
das nicht vorkommt.

Die Meldungen habe ich jetzt fast alle ergänzt.
Für das andere Problem habe mir jetzt auch schon etwas überlegt, für ausgiebige Tests gebe ich das dann an Dich weiter, da meine Anlage das alles nicht hergibt. Dauert aber noch ein bisschen.

Kannst Du mir mal einen Auszug Deines Fehlerspeichers mit print_r einstellen, damit ich sehe wie das bei Dir aufgebaut wird.

Besen Dank,
Gruß
Manfred

N’abend

Habe jetzt nochmal ein bisschen am Skript gefeilt.
Ist alt bekanntes dabei und die eine oder andere neue Kleinigkeit.

Da die Meldungen mittlerweile auf ca. 1100 gestiegen sind habe ich mich nun dazu entschlossen,
diese in einem separaten Skript abzulegen, zwecks der Übersicht.

Habe mich gestern auch ausführlich mit meinem Heizungsbauer unterhalten.
Woher und wofür dieses „führende A“ sein soll, konnte er mir aber auch nicht erklären.
Ich führe das jetzt einfach mal auf „besondere“ Anlagenkonfiguration zurück.
Oder einfach neu, mein BC10 und RC35 sind nun doch schon mehr als 4 Jahre alt :smiley:

So nun zurück zum Skript:

Installation:

[ul]
[li]Instanz anlegen
[/li][li]Meldungsskript anlegen und Inhalt kopieren
[/li]ggf. Definitionen anpassen
[li]Auswerteskript anlegen und Inhalt kopieren
[/li]Einstellungen anpassen
[li]Variablen werden automatisch angelegt
[/li][/ul]

[ATTACH=CONFIG]29495[/ATTACH]

[ATTACH=CONFIG]29496[/ATTACH]

1. Skript für die Auswertung der Daten:

[ul]
[li]In dem Skript sind die Daten für die Verbindung zum KM200 einzutragen
[/li]Eure Daten sind hier einzutragen, so wie Ihr euch mit dem KM200 verbindet.
Meine Daten sind nur als Beispiel angegeben

[li]ganz wichtig der „include“ für das 2. Skript mit den Meldungen
[/li]
[li]die Namen der Variablen können definiert werden
[/li]
[li]weiters kann man Variablen aktivieren/deaktivieren
[/li]aktuelle Meldungen
Meldungen die aktuell an der Anlage anstehen werden in eine Stringvariable geschrieben und
eine Boolvariable wird auf true gesetzt. (ich sende mir so die Meldungstexte per Pushover auf’s Handy).
Wenn keine aktiven Meldungen mehr vorhanden sind, wird die Strinvariable geleert und die Boolvariable auf false gesetzt.

neue Meldungen
Anzahl Meldungen vor Abfrage wird mit der Anzahl Meldungen nach der Abfrage verglichen.
Ist die ANzahl gestiegen, wird eine Boolvariable auf true gesetzt.
Beim nächsten Zyklus wird diese dann wieder auf false gesetzt, wenn keine neuen Meldungen dazugekommen sind.

[li]und zu guter letzt kann man am Aussehen der Tabelle noch ein bisschen schrauben
[/li][LIST]
[li]Titel der Tabelle
[/li][li]Begriffserklärung ein/ausblenden
[/li][li]Aktualisierungszeile ein/ausblenden
[/li][li]aktuelle Meldungen farblich hervorheben ja/nein - mit Farbangabe
[/li][li]Spaltenbreiten und Zeilenhöhen
[/li][/ul]
[li]
[/li][/LIST]

[HR][/HR]

Update

[ul]
[li]Meldunstyp „M“ eingefügt
[/li]zusätzliche Abfrage ob Meldungstyp bekannt, wenn nicht wird der Meldungstyp mit !U ausgegeben,
damit das Skript keinen Fehler mehr erzeugt.

[li]Begrifferklärung erweitert
[/li]
[li]Meldungen H01 … H26 eingefügt
[/li][/ul]

Beide Skripte müssen aktualisiert werden
Um Tests wird gebeten.

Gruß und Dank
Manfred

[HR][/HR]

Update 12.05.15

[ul]
[li]array_key_exists wieder rein …strtoupper eingefügt :smiley:
[/li]
[li]Ausgabe ob Fehlerspeicher leer ist eingefügt
[/li]
[li]Bereinigtes Meldungsskript von Boui eingefügt – Danke dafür.
[/li][/ul]

[ATTACH=CONFIG]29529[/ATTACH]

Beide Skripte müssen aktualisiert werden
Um Tests wird gebeten.

Gruß und Dank
Manfred

[HR][/HR]

Update: 13.05.15

[ul]
[li]Fehlerkorrektur bei der Auswertung ob Meldungen im Speicher vorhanden sind, oder nicht.
[/li][li]ein paar Rechtschreibfehler gefunden
[/li][/ul]

[HR][/HR]

Update: 20.05.15
Änderungen am Abfrageskript durchgeführt (das 1. Skript).

[ul]
[li]Fehlerkorrektur bei der Anzeige der Tabelle (stellenweise kein Rahmen vorhanden).
[/li][li]Änderung der Abfrage und Auswertung der Service/Wartungsmeldungen (die „H“-Meldungen)
[/li][li]Fehlerkorrektur bei der Anzeige von aktuellen Meldungen (wurde nicht bei allen Zeilen korrekt angezeigt).
[/li][/ul]

Bitte um ein paar Freiwillige Tester :slight_smile:

Besten Dank,
Gruß
Manfred

[HR][/HR]


<?
// *****************************************************************************
// *****************************************************************************
//
//
//                     Auswerteskript für Störmeldungen
//                        vom Buderus KM200-Gateway
//                 ----------------------------------------
//
//
//  Dieses Skript funktioniert nur, wenn dass dafür benötigte
//  Meldungsskript durch "include" eingefügt wird (unter "Funktionen aufrufen")
//
// *****************************************************************************
// *****************************************************************************


// Parameter Verbindung
// ---------------------
	require_once( "SYS_Daten.ips.php" );   // Datenpool

	$id = 32599 /*[System\Skripte\Buderus KM200\KM200 Key-Generator]*/;
	$ip = AUT_KM200;
	$u_pass = KM_PRIVAT;
	$g_pass = KM_GATEWAY;

// *****************************************************************************


// Funktionen aufrufen
// --------------------
	include ( "KM200_Verbindung.ips.php" ); 			// KM200 Verbindung zum Gateway
   include ( "KM200_Buderus_Meldungen.ips.php" );  // Skript mit den Meldungen

// *****************************************************************************


// Parameter für Interval, Variablen und Tabellendarstellung
// ----------------------------------------------------------
// Intervall für die Abfrage in Minuten
	$time = 2;

// Variablendeklaration
// ---------------------
	$VARmsghist = "Meldungsspeicher";   		// Name: Variable (String) für Meldungsanzeige

	$nomsgText = "keine Meldungen im Speicher vorhanden"; // Angabe des Textes welcher angezeigt werden soll, wenn keine Meldungen vorhanden sind
	
	$msgactshow = true;		              		// Parameter: aktuelle Meldungen in Variable schreiben ja/nein
	$VARmsgactstring = "aktuelle Meldungen";	// Name: Variable (String) zum speichern der aktuellen Meldungen
	$VARmsgactbool = "aktive Meldungen";  		// Name: Variable (bool) aktuelle Meldungen vorhanden

	$msgnewshow = true;      		        		// Parameter: Benachrichtigung bei neuen Meldungen ja/nein
	$VARmsgnew = "neue Meldungen";   			// Name: Variable (bool) für Benachrichtigung neue Meldungen

// Einstellungen Tabelle
// ----------------------
   // Allgemeine Einstellungen der Tabelle
	$title = "Anlagen Meldungsspeicher";   // Überschrift der Tabelle
	$legend = true;	// Begriffserklärung einblenden ja/nein
	$refresh = true;	// Datum/Uhrzeit der Aktualisierung einblenden ja/nein

	// Kennzeichnung aktuell anstehender Meldungen
	$act = true;   // aktuelle anstehende Meldungen farblich hervorheben ja/nein
	$bg = "blue";  // Hintergrundfarbe für die Meldungszeile

	// Breite der Spalten
	$col1 = "20";  // 1. Spalte - Meldungssart
	$col2 = "55";  // 2. Spalte - Meldungsnummer
	$col3 = "450"; // 3. Spalte - Meldungstext
	$col4 = "150"; // 4. Spalte - Datum/Uhrzeit

	// Zeilenhöhen
	$h1 = "60";   	// Titelzeile
	$h2 = "50";   	// Titel Meldungsblock
	$h3 = "30";   	// Meldungen
   $h4 = "45";		// Titel unbekannte Meldungen
   $h5 = "25";    // Meldungszeile unbekannte Meldungen
   $h6 = "20";    // Begrifferklärungen
   $h7 = "40";    // Datum/Uhrzeit letzte Aktualisierung

// *****************************************************************************
// *****************************************************************************


	$parentID = IPS_GetParent($_IPS['SELF']);

// *****************************************************************************


// Installationteil für Variablen und TimerEvent
// -----------------------------------------------------------------------------
	if($_IPS['SENDER'] == "Execute"){
     // Skriptposition setzen
	   IPS_SetPosition($_IPS['SELF'], 99);

	// Variablen erstellen
		CreateVariableByName($parentID, $VARmsghist, 3, 1, "~HTMLBox");
		if($msgnewshow == true){
		   CreateVariableByName($parentID, "MsgBuffer", 3, 5, "~String");
			CreateVariableByname($parentID, $VARmsgnew, 0, 2);
			}
		else{
         DeleteVariableByname($parentID, "MsgBuffer");
         DeleteVariableByname($parentID, $VARmsgnew);
         }

		if($msgactshow == true){
		   CreateVariableByname($parentID, $VARmsgactbool, 0, 3);
			CreateVariableByname($parentID, $VARmsgactstring, 3, 4, "~String");
			}
		else{
         DeleteVariableByname($parentID, $VARmsgactbool);
         DeleteVariableByname($parentID, $VARmsgactstring);
         }

	// zyklisches Event anlegen
   	$eid = @IPS_GetEventIDByName("TimerEvent", $_IPS['SELF']);
   	if($eid === false){
			$eid = IPS_CreateEvent(1);
				IPS_SetEventCyclic($eid, 0, 0, 0, 0, 2, $time); //Jeden Tag alle X Minuten
				IPS_SetParent($eid, $_IPS['SELF']);
				IPS_SetName($eid, "TimerEvent");
				IPS_SetEventActive($eid, true);
			}

		IPS_RunScript($_IPS['SELF']);
	   }

// *****************************************************************************
// *****************************************************************************


// Skriptteil zur Auswertung der Daten
// -----------------------------------------------------------------------------

// Meldungsspeicher auslesen
	$data = km200_GetData('/notifications');

		$buffer = array();   	// Zwischenspeicher für Tabellenaufbau
		$msgbuffer = array();   // Zwischenspeicher für Meldungssortierung
		$msgactbuffer = "";     // Zwischenspeicher für aktuelle Meldungen

		$nomsg = false;
		$msgact = false;
		$num = 0;

// -----------------------------------------------------------------------------

// Tabellenkopf erstellen
	$content = '<table border="1" rules="groups">
						<colgroup>
   						<col width="'.$col1.'">
   						<col width="'.$col2.'">
   						<col width="'.$col3.'">
   						<col width="'.$col4.'">
  						</colgroup>
						<thead>
							<tr align="center" valign="middle" height="'.$h1.'">
								<th colspan="4">'.$title.'</th>
							</tr>
						</thead>';
						
// -----------------------------------------------------------------------------

// Überprüfen ob Meldungen vorhanden
	if(isset($data->values) == false){
		$nomsg = true;
		$content .= '<tbody>
						<tr align="center" valign="middle" height="'.$h3.'">
				 				<td colspan="4"></td>
							</tr>
							<tr align="center" valign="middle" height="'.$h3.'">
				 				<td colspan="4">'.$nomsgText.'</td>
							</tr>
							<tr align="center" valign="middle" height="'.$h3.'">
				 				<td colspan="4"></td>
							</tr>
						</tbody>';
						}
   else{
   
// -----------------------------------------------------------------------------

// Wenn Meldungen vorhanden, beginn mit der Auswertung
	foreach($data->values as $data){
	   $data->dcd = strtoupper($data->dcd);
		$data->cat = strtoupper($data->cat);

	// wenn Typ und Meldungsnummer vorhanden
		if(array_key_exists($data->dcd, $DCD) == true and array_key_exists($data->ccd, $message[$data->dcd]) == true){
         $msgbuffer[$data->dcd][] = $data;
			}

	// wenn der Typ Wartungsmeldungen sind
		elseif($data->dcd[0] == "H" and strlen($data->dcd) == 3 and array_key_exists($data->dcd, $message['H']) == true){
		   $msgbuffer['H'][] = $data;
		   }
		   
	// wenn der Typ der Basiscontroller ist
		elseif(array_key_exists($data->dcd, $DCD) == false and array_key_exists($data->ccd, $message[$BC]) == true){
		   $msgbuffer['0'.$BC][] = $data;
		   }

	// wenn entweder Typ oder Meldungsnummer nicht vorhanden sind
		elseif(array_key_exists($data->dcd, $DCD) == false or array_key_exists($data->ccd, $message[$data->dcd]) == false){
	      $msgbuffer['Z'][] = $data;
			}
 		}

// Meldungen sortieren
	ksort($msgbuffer, SORT_STRING);

// Meldungen in Speicher ablegen für Vergleich (neue Meldungen vorhanden, oder nicht)
	if($msgnewshow == true){
  		$msgcmp[$num] = $msgbuffer;
     	$num++;
     	}

// -----------------------------------------------------------------------------

// Daten auswerten
	foreach($msgbuffer as $key => $msgarray){
		foreach($msgarray as $data){
			if($key == '0'.$BC){
				$dcd = $BC;
				}
			elseif($key == 'H'){
				$dcd = 'H';
				}
			else{
				$dcd = $data->dcd;
				}
				
			if($key != 'Z'){  // unbekannte Meldung oder nicht
			// Tabelle mit den Werten füllen
   			if(end($buffer) != $dcd){
        			$content .= '</tbody>';
        			}

      		if(array_key_exists('t', $data)){   // wenn kein Datum, dann keine Ausgabe
   				if(end($buffer) == $dcd){
						if($data->act == "A" and $act == true){
							$content .= '<tr style="line-height: '.$h3.'px; background-color:'.$bg.';">';
							}
						else{
			   			$content .= '<tr style="line-height: '.$h3.'px;">';
			   			}
			   			
 		               if(array_key_exists($data->cat, $CAT)){
						 		$content .= '<td align="center" valign="middle">'.$CAT[$data->cat][0].'</td>';
						 		}
							else{
							   $content .= '<td align="center" valign="middle">'.$CAT['!U'][0].'</td>';
							   }

							if($dcd == 'H'){
								$content .= '<td align="center" valign="middle">'.$data->dcd.'</td>';
								}
							else{
						   	$content .= '<td align="center" valign="middle">'.$data->ccd.'</td>';
						   	}

							if($dcd == $BC){
								$content .= '<td align="left" valign="middle">'.$data->dcd.' - '.$message[$dcd][$data->ccd].'</td>';
								}
							elseif($dcd == 'H'){
				   			$content .= '<td align="left" valign="middle">'.$message[$dcd][$data->dcd].'</td>';
				   			}
							else{
				   			$content .= '<td align="left" valign="middle">'.$message[$dcd][$data->ccd].'</td>';
				   			}

						$content .=	'<td align="left" valign="middle">'.substr($data->t, 8, -9).".".substr($data->t, 5, -12).".".substr($data->t, 0, -15).", ".substr($data->t, 11, -6).":".substr($data->t, 14, -3).'</td></tr>';
    					}
					else{
						$content .= '<tbody>
											<tr align="left" valign="bottom" height="'.$h2.'">';
											
											if($dcd == "H"){
												$content .= '<th colspan="4">H, M, W - '.$DCD[$dcd].'</th>';
												}
											else{
											   $content .= '<th colspan="4">'.$dcd.' - '.$DCD[$dcd].'</th>';
											   }

						$content .= '</tr></tbody><tbody>';

						if($data->act == "A" and $act == true){
							$content .= '<tr style="line-height: '.$h3.'px; background-color:'.$bg.';">';
							}
						else{
			   			$content .= '<tr style="line-height: '.$h3.'px;">';
			   			}

						if(array_key_exists($data->cat, $CAT)){
							$content .= '<td align="center" valign="middle">'.$CAT[$data->cat][0].'</td>';
							}
						else{
						   $content .= '<td align="center" valign="middle">'.$CAT['!U'][0].'</td>';
						   }
						   
						if($dcd == 'H'){
							$content .= '<td align="center" valign="middle">'.$data->dcd.'</td>';
							}
						else{
						   $content .= '<td align="center" valign="middle">'.$data->ccd.'</td>';
						   }
						   			if($dcd == $BC){
									 		$content .= '<td align="left" valign="middle">'.$data->dcd.' - '.$message[$dcd][$data->ccd].'</td>';
									 		}
								 	 	elseif($dcd == 'H'){
								  	 		$content .= '<td align="left" valign="middle">'.$message[$dcd][$data->dcd].'</td>';
								  	 		}
								 	 	else{
								  	 		$content .= '<td align="left" valign="middle">'.$message[$dcd][$data->ccd].'</td>';
								  	 		}
								  	 		
						$content .=	'<td align="left" valign="middle">'.substr($data->t, 8, -9).".".substr($data->t, 5, -12).".".substr($data->t, 0, -15).", ".substr($data->t, 11, -6).":".substr($data->t, 14, -3).'</td></tr>';
						}
					}

			// auswerten ob aktuell anstehende Meldungen vorhanden
				if($msgactshow == true and $data->act == "A"){
				   if($dcd == 'H'){
				   	$msgactbuffer .= $data->dcd.' - '.$message[$dcd][$data->dcd].';';
				   	}
					else{
					   $msgactbuffer .= $data->dcd.' / '.$data->ccd.' - '.$message[$dcd][$data->ccd].';';
					   }
					$msgact = true;
	   			}

  				$buffer[] = $dcd;
				}
			}
		}
	}
	
// auswerten ob unbekannte Meldungen vorhanden
	if(array_key_exists('Z', $msgbuffer)){
	   $content .= '</tbody>
                      <tbody>
								<tr align="left" valign="bottom" height="'.$h4.'">
									<th colspan="4">Unbekannte Meldungen</th>
								</tr>
							  </tbody>
							  <tbody>';

		foreach($msgbuffer['Z'] as $data){
        	if($data->act == "A"){
				$content .= '<tr style="line-height: '.$h5.'px; background-color:'.$bg.';">';
				}
			else{
		   	$content .= '<tr style="line-height: '.$h5.'px;">';
		   	}

			$content .=	'<td align="center" valign="middle">'.$data->dcd.'</td>
							 <td align="center" valign="middle">'.$data->ccd.'</td>';

			if(array_key_exists('t', $data)){
				$content .= '<td align="left" valign="middle">'.substr($data->t, 8, -9).".".substr($data->t, 5, -12).".".substr($data->t, 0, -15).", ".substr($data->t, 11, -6).":".substr($data->t, 14, -3).'</td>';
				}
			else{
			   $content .= '<td align="left" valign="middle">kein Zeitstempel</td>';
			   }

			$content .= '<td></td></tr>';
			}

		$content .=	'</tbody>';
		}
	else{
	   $content .= '</tbody>';
	   }

// Begriffserklärungen in Tabelle einfügen
	if($legend == true and $nomsg == false){
		$content .= '<tr align="left" valign="middle" height="20">
				 			<td colspan="4"></td></tr>
				 		 <tr align="left" valign="middle" height="'.$h6.'"><td colspan="1"></td>
				 			<td colspan="1">'.$CAT['B'][0].'</td>
				 			<td colspan="2">'.$CAT['B'][1].'</td>
						 </tr>
				 		 <tr align="left" valign="middle" height="'.$h6.'"><td colspan="1"></td>
				 			<td colspan="1">'.$CAT['L'][0].'</td>
				 			<td colspan="2">'.$CAT['L'][1].'</td>
						 </tr>
				 		 <tr align="left" valign="middle" height="'.$h6.'"><td colspan="1"></td>
				 			<td colspan="1">'.$CAT['H'][0].'</td>
				 			<td colspan="2">'.$CAT['H'][1].'</td>
						 </tr>
				 		 <tr align="left" valign="middle" height="'.$h6.'"><td colspan="1"></td>
				 			<td colspan="1">'.$CAT['M'][0].', '.$CAT['W'][0].'</td>
				 			<td colspan="2">'.$CAT['M'][1].'</td>
						 </tr>
				 		 <tr align="left" valign="middle" height="'.$h6.'"><td colspan="1"></td>
				 			<td colspan="1">'.$CAT['S'][0].'</td>
				 			<td colspan="2">'.$CAT['S'][1].'</td>
						 </tr>
				 		 <tr align="left" valign="middle" height="'.$h6.'"><td colspan="1"></td>
				 			<td colspan="1">'.$CAT['A'][0].', '.$CAT['BC'][0].'</td>
				 			<td colspan="2">'.$CAT['A'][1].'</td>
						 </tr>
				 		 <tr align="left" valign="middle" height="'.$h6.'"><td colspan="1"></td>
				 			<td colspan="1">'.$CAT['!U'][0].'</td>
				 			<td colspan="2">'.$CAT['!U'][1].'</td>
						 </tr>
				 		 <tr align="left" valign="middle" height="20">
				 			<td colspan="4"></td>
						 </tr>';
				 		}

// Aktualisierungsteil in Tabelle einfügen
	if($refresh){
  		$content .= '<tbody>
			 		 	 <tr align="right" valign="bottom" height="'.$h7.'">
							 <td colspan="4">Stand: '.date("d.m.Y, H:i").'</td></tr>
					 	 </tbody>';
					 	 }

	$content .= '</table>';


// Meldungstabelle in Variable schreiben
	SetValue(IPS_GetVariableIDByName($VARmsghist, $parentID), $content);


// neue Meldung vorhanden auswerten und Variable schreiben
	if($msgnewshow == true and $nomsg == false){
		$msgbufferID = IPS_GetVariableIDByName("MsgBuffer", $parentID);
		$msgold = json_decode(GetValue($msgbufferID));

		if(count($msgcmp) > count($msgold)){
	   	SetValueNew($VARmsgnew, $parentID, true);
	   	}
		else{
	   	SetValueNew($VARmsgnew, $parentID, false);
	   	}

      SetValue(IPS_GetVariableIDByName("MsgBuffer", $parentID), json_encode($msgbuffer));
		}


// Variable schreiben für aktuell anstehende Meldungen
	if($msgactshow == true and $nomsg == false){
		if($msgact == true){
			SetValueNew($VARmsgactbool, $parentID, true);
			SetValueNew($VARmsgactstring, $parentID, substr($msgactbuffer, 0, -1));
   		}
		else{
	   	SetValueNew($VARmsgactbool, $parentID, false);
	   	SetValueNew($VARmsgactstring, $parentID, "");
	   	}
		}

// *****************************************************************************
// *****************************************************************************


// Hilfsfunktionen
// ----------------

	function CreateVariableByName($id, $name, $type, $pos, $profile = ""){
		global $IPS_SELF;
   	$vid = @IPS_GetVariableIDByName($name, $id);
   	if($vid === false){
   		$vid = IPS_CreateVariable($type);
      	IPS_SetParent($vid, $id);
      	IPS_SetName($vid, $name);
      	IPS_SetPosition($vid, $pos);
      	if($profile !== ""){IPS_SetVariableCustomProfile($vid, $profile);}
    		}
    	return $vid;
		}


	function DeleteVariableByName($id, $name){
		global $IPS_SELF;
   	$vid = @IPS_GetVariableIDByName($name, $id);
   	if($vid == true){
      	IPS_DeleteVariable($vid);
      	}
		}

	function SetValueNew($name, $id, $newvalue){
	   $vid = @IPS_GetVariableIDByName($name, $id);
	   $oldvalue = GetValue($vid);

		if($newvalue != $oldvalue){
	      SetValue($vid, $newvalue);
	      }
		}
		
// *****************************************************************************
// *****************************************************************************

?>


2. Skript mit den Meldungen und Definitionen
hat sich nicht viel daran geändert, außer die Größe :eek:

  • [li]Definition der Typen
    [/li]hier können die Typen definiert werden „A01“ oder „AA0“ etc.
    ist jetzt ein bisschen mehr, da alles für 8 Heizkreise ausgelegt ist


    [li]Störungsauslöser (DCD)
    [/li]bei einigen war ich mir nicht sicher, darum habe ich mal das rein geschrieben
    was ich mir so gedacht habe :rolleyes:


    [li]Fehlerarten (CAT)
    [/li]hier können die Fehlerarten definiert werden (blockierend, verriegelnd etc.)


    [li]das Array mit allen mir bis jetzt bekannten Meldungen
    [/li]erklärt sich von selbst
    könnte sein, dass ich hier der eine oder andere Rechtschreibfehler eingeschlichen hat :smiley:

<?  
// *****************************************************************************  
// *****************************************************************************  
//  
//  
//                     Störmeldungen und Definitionen  
//                       zum Buderus KM200-Gateway  
//                 ----------------------------------------  
//  
//  Dieses Skript muss im Auswerteskript mit "include" eingefügt werden  
//  
// *****************************************************************************  
// *****************************************************************************  


// Definition der Typen  
// ---------------------  
    $BC = "BC10";  // Basiscontroller  
    $A01 = "A01";  // AA0  
    $A02 = "A02";  
    $A03 = "A03";  
    $A11 = "A11";  
    $A12 = "A12";  // AA1  
    $A16 = "A16";  
    $A18 = "A18";  
    $A21 = "A21";  
    $A22 = "A22";  
    $A23 = "A23";  
    $A24 = "A24";  
    $A25 = "A25";  
    $A26 = "A26";  
    $A27 = "A27";  
    $A28 = "A28";  
    $A31 = "A31";  
    $A32 = "A32";  
    $A33 = "A33";  
    $A34 = "A34";  
    $A35 = "A35";  
    $A36 = "A36";  
    $A37 = "A37";  
    $A38 = "A38";  
    $A41 = "A41";  
    $A42 = "A42";  
    $A51 = "A51";  
    $A52 = "A52";  
    $A61 = "A61";  
    $A62 = "A62";  
    $A63 = "A63";  
    $A64 = "A64";  
    $A65 = "A65";  
    $A66 = "A66";  
    $A67 = "A67";  
    $A68 = "A68";  
    $A71 = "A71";  
    $A72 = "A72";  
    $A73 = "A73";  
    $A74 = "A74";  
    $A75 = "A75";  
    $A76 = "A76";  
    $A77 = "A77";  
    $A78 = "A78";  
    $AD1 = "AD1";  
    $AD2 = "AD2";  
    $AD3 = "AD3";  
    $AD4 = "AD4";  
    $AD5 = "AD5";  
    $AD6 = "AD6";  
    $AD7 = "AD7";  
    $AD8 = "AD8";  
    $AE1 = "AE1";  
    $AE2 = "AE2";  
    $AE3 = "AE3";  
    $AE4 = "AE4";  
    $AE5 = "AE5";  
    $AE6 = "AE6";  
    $AE7 = "AE7";  
    $AE8 = "AE8";  
    $H = "H";  

// -----------------------------------------------------------------------------  

// Array mit den Störungsauslösern  
// --------------------------------  
$DCD = array($BC => 'Brennersteuerung',  
                 $A01 => 'Allgemeine EMS-Funktion',  
                 $A02 => 'Brennersteuerung',  
                 $A03 => 'Brennersteuerung',  
                 $A11 => 'Raumcontroller',  
                 $A12 => 'Weichenmodul',  
                 $A16 => 'hydraulische Weiche',  
                 $A18 => 'Raumcontroller',  
                 $A21 => 'Raumcontroller Heizkreis 1',  
                 $A22 => 'Raumcontroller Heizkreis 2',  
                 $A23 => 'Raumcontroller Heizkreis 3',  
                 $A24 => 'Raumcontroller Heizkreis 4',  
                 $A25 => 'Raumcontroller Heizkreis 5',  
                 $A26 => 'Raumcontroller Heizkreis 6',  
                 $A27 => 'Raumcontroller Heizkreis 7',  
                 $A28 => 'Raumcontroller Heizkreis 8',  
                 $A31 => 'Mischermodul Heizkreis 1',  
                 $A32 => 'Mischermodul Heizkreis 2',  
                 $A33 => 'Mischermodul Heizkreis 3',  
                 $A34 => 'Mischermodul Heizkreis 4',  
                 $A35 => 'Mischermodul Heizkreis 5',  
                 $A36 => 'Mischermodul Heizkreis 6',  
                 $A37 => 'Mischermodul Heizkreis 7',  
                 $A38 => 'Mischermodul Heizkreis 8',  
                 $A41 => 'Warmwasser System 1',  
                 $A42 => 'Warmwasser System 2',  
                 $A51 => 'Solarmodul',  
                 $A52 => 'Solarmodul',  
                 $A61 => 'Raumcontroller Heizkreis 1',  
                 $A62 => 'Raumcontroller Heizkreis 2',  
                 $A63 => 'Raumcontroller Heizkreis 3',  
                 $A64 => 'Raumcontroller Heizkreis 4',  
                 $A65 => 'Raumcontroller Heizkreis 5',  
                 $A66 => 'Raumcontroller Heizkreis 6',  
                 $A67 => 'Raumcontroller Heizkreis 7',  
                 $A68 => 'Raumcontroller Heizkreis 8',  
                 $A71 => 'Raumcontroller Heizkreis 1',  
                 $A72 => 'Raumcontroller Heizkreis 2',  
                 $A73 => 'Raumcontroller Heizkreis 3',  
                 $A74 => 'Raumcontroller Heizkreis 4',  
                 $A75 => 'Raumcontroller Heizkreis 5',  
                 $A76 => 'Raumcontroller Heizkreis 6',  
                 $A77 => 'Raumcontroller Heizkreis 7',  
                 $A78 => 'Raumcontroller Heizkreis 8',  
                 $AD1 => 'SAFe/Heizkessel',  
                 $AD2 => 'SAFe/Heizkessel',  
                 $AD3 => 'SAFe/Heizkessel',  
                 $AD4 => 'SAFe/Heizkessel',  
                 $AD5 => 'SAFe/Heizkessel',  
                 $AD6 => 'SAFe/Heizkessel',  
                 $AD7 => 'SAFe/Heizkessel',  
                 $AD8 => 'SAFe/Heizkessel',  
                 $AE1 => 'SAFe/Heizkessel',  
                 $AE2 => 'SAFe/Heizkessel',  
                 $AE3 => 'SAFe/Heizkessel',  
                 $AE4 => 'SAFe/Heizkessel',  
                 $AE5 => 'SAFe/Heizkessel',  
                 $AE6 => 'SAFe/Heizkessel',  
                 $AE7 => 'SAFe/Heizkessel',  
                 $AE8 => 'SAFe/Heizkessel',  
                 $H => 'Servicemeldungen');  

// -----------------------------------------------------------------------------  
              
// Array mit den Fehlerarten  
// --------------------------  
$CAT = array("B" => array('B', 'blockierender Fehler, läuft nach Fehlerbehebung selbsttätig weiter'),  
                 "L" => array('V', 'verriegelnder Fehler, muss nach Fehlerbehebung manuell entriegelt werden'),  
                 "H" => array('H', 'Servicemeldung'),  
                 "M" => array('M', 'Serviceanzeige - Wartung'),  
                 "W" => array('W', 'Serviceanzeige - Wartung'),  
                 "S" => array('S', 'Systemfehler'),  
                 "A" => array('A', 'Anlagenfehler'),  
                 "BC" => array('BC', 'Anlagenfehler'),  
                 "!U" => array('!U', 'unbekannter Meldungstyp'));  

// *****************************************************************************  


// Meldungsarray Beginn  
// ---------------------  
$message = array(  


// Array mit den Fehlermeldungen der Basiscontroller  
// --------------------------------------------------  
$BC => array("-" => 'Zu geringer Durchfluss durch den Wärmeerzeuger',  
                 "0" => 'Rücklauftemperaturfühler defekt (Kabelbruch)',  
                 "1" => 'Störung Warmwassertemperaturfühler',  
                 "2" => 'Speichertemperaturfühler defekt',  
                 "3" => 'Störung Außentemperaturfühler',  
                 "9" => 'Speichertemperaturfühler 2 defekt',  
                 "10" => 'Störung Speicherlade-Temperaturfühler 2',  
                 "15" => 'Externer Vorlauftemperaturfühler hydraulische Weiche defekt',  
                 "16" => 'Kaltwassereinlauftemperaturfühler defekt',  
                 "17" => 'Abgastemperaturfühler an der Strömungssicherung defekt',  
                 "18" => 'Gebläse bleibt stehen oder Differenzdruckschalter öffnet während Brennerbetrieb',  
                 "19" => 'Brenner vorübergehend ausgeschaltet (Vorlauftemperatur steigt zu schnell)',  
                 "20" => 'Gebläse läuft nicht an, oder Differenzdruckschalter schließt nicht bei Gebläseanlauf',  
                 "21" => 'Vorlauftemperaturfühler im Wärmeerzeuger defekt',  
                 "22" => 'Externer Wächter ausgelöst, kein Heizbetrieb möglich',  
                 "23" => 'Differenzdruckschalter öffnet nicht bei stehendem Gebläse',  
                 "24" => 'Abgasaustritt aus Strömungssicherung',  
                 "26" => 'Abgastemperaturfühler in der Brennkammer defekt',  
                 "27" => 'Abgasaustritt aus der Brennkammer',  
                 "28" => 'Temperaturfühler am Brenner defekt',  
                 "29" => 'Brenner vorübergehend ausgeschaltet, auf Grund zu hoher Temperatur am Brenner',  
                 "31" => 'Kodierstecker defekt oder ungültig',  
                 "32" => 'Kodierstecker defekt oder ungültig',  
                 "33" => 'Heizung wegen Trockenlauf der Pumpe ausgeschaltet',  
                 "37" => 'Rücklauftemperaturfühler defekt',  
                 "43" => 'Regelventil öffnet nicht im Betrieb',  
                 "45" => 'Keine Kommunikation mit vorhandenem CAN-BUS-Modul',  
                 "46" => 'Falsche BUS-Konfiguration',  
                 "50" => 'Abgasaustritt aus der Brennkammer, Heizgerät verriegelt',  
                 "51" => 'Interne Störung Wärmeerzeuger',  
                 "52" => 'Flammensignal erkannt, obwohl keine Gasfreigabe erfolgt ist, Wärmeerzeuger verriegelt',  
                 "53" => 'Undichtigkeit an Sicherheitsventilen erkannt, Wärmeerzeuger verriegelt',  
                 "54" => 'Entstörtaste gedrückt oder interne Störung, Wärmeerzeuger verriegelt',  
                 "55" => 'Sicherheitsabschaltung Brenner durch Sicherheitstemperaturbegrenzer',  
                 "57" => 'Abgasaustritt aus Strömungssicherung',  
                 "61" => 'Störung der Buskommunikation',  
                 "65" => 'Außentemperaturfühler defekt',  
                 "66" => 'Schichtladespeicher-Temperaturfühler 3 Störung',  
                 "67" => 'Interner Fehler',  
                 "68" => 'Unzulässiger Anschluss Außentemperaturfühler',  
                 "69" => 'Zusätzlicher Gradient-Fühler defekt',  
                 "70" => 'Vorlauftemperaturfühler gemischter Heizkreis defekt',  
                 "71" => 'Gebläse läuft nicht an',  
                 "73" => 'Mischer defekt',  
                 "74" => 'Temperaturfühler Bufferspeicher defekt',  
                 "76" => 'Geregelte Pumpe wurde nicht erkannt',  
                 "84" => 'Rücklauftemperaturfühler defekt (Kabelbruch)',  
                 "85" => 'Rücklauftemperaturfühler defekt (Kurzschluss)',  
                 "86" => 'Vorlauftemperaturfühler defekt (Kabelbruch)',  
                 "87" => 'Vorlauftemperaturfühler defekt (Kurzschluss)',  
                 "88" => 'Höhere Rücklauftemperatur als Vorlauftemperatur',  
             "89" => 'Vorlauf- oder Rücklauftemperatur außerhalb zulässigen Bereichs',  
             "90" => 'Außentemperaturfühler defekt',  
             "91" => 'Störung Außeneinheit / Wasserdurchfluss gestört',  
                 "200" => 'Wärmeerzeuger im Heizbetrieb',  
                 "201" => 'Wärmeerzeuger im Warmwasserbetrieb',  
                 "202" => 'Wärmeerzeuger im Schaltoptimierungsprogramm',  
                 "203" => 'Wärmeerzeuger befindet sich in Betriebsbereitschaft, keine Wärmeanforderung',  
                 "204" => 'Die aktuelle Heizwassertemperatur des Wärmeerzeugers ist höher als der Sollwert',  
                 "205" => 'Wärmeerzeuger wartet auf Luftströmung',  
                 "207" => 'Betriebsdruck zu niedrig',  
                 "208" => 'Abgastest wird durchgeführt',  
                 "209" => 'Wärmeerzeuger in Betrieb und im Servicemode',  
                 "210" => 'Das Abgasthermostat hat angesprochen',  
                 "211" => 'Installation Geräteelektronik fehlerhaft',  
                 "212" => 'Temperaturanstieg Sicherheits- Vorlaufsensor',  
                 "213" => 'Temperaturdifferenz zwischen Vorlauf und Rücklauf',  
                 "214" => 'Das Gebläse wird während der Sicherheitszeit abgeschaltet',  
                 "215" => 'Das Gebläse dreht zu schnell',  
                 "216" => 'Das Gebläse dreht nicht schnell genug',  
                 "217" => 'Kein Lufttransport nach mehreren Minuten',  
                 "218" => 'Temperatur am Kesselvorlaufsensor ist größer als 105°C',  
                 "219" => 'Temperatur am Sicherheitssensor größer als 95°C',  
                 "220" => 'Sicherheitsensor Kurzschluss, oder wärmer als 130°C',  
                 "221" => 'Sicherheitsensor loser Kontakt oder defekt',  
                 "222" => 'Vorlaufsensor Kurzschluss',  
                 "223" => 'Vorlaufsensor loser Kontakt oder defekt',  
                 "224" => 'Systemfehler - UBA keine Verbindung zu Kontakten 22 und 50',  
                 "225" => 'Temperatur zwischen Vorlauf- und Sicherheitsensor zu groß',  
                 "226" => 'Kennzeichnung für Handterminal',  
                 "227" => 'Kein Flammensignal nach Zündung',  
                 "228" => 'Flammensignal trotz nicht vorhandener Flamme',  
                 "229" => 'Flamme während des Brennerbetriebes ausgefallen',  
                 "230" => 'Fehler Regelventil',  
                 "231" => 'Fehler Netzspannung',  
                 "232" => 'Wärmeerzeuger durch externen Schaltkontakt verriegelt',  
                 "233" => 'KIM oder UBA defekt',  
                 "234" => 'Elektrische Störung der Gasarmatur',  
                 "235" => 'Versionskonflikt Geräteelektronik (UBA/KIM)',  
                 "237" => 'Systemstörung - Geräteelektronik defekt (UBA/KIM)',  
                 "238" => 'Geräteelektronik UBA ist defekt',  
                 "239" => 'Systemstörung Geräteelektronik defekt (KIM/UBA3)',  
                 "240" => 'Rücklaufsensor defekt (Kurzschluss)',  
                 "241" => 'Rücklaufsensor defekt (Drahtbruch)',  
                 "242" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "243" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "244" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "245" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "246" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "247" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "248" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "249" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "250" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "251" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "252" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "253" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "254" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "255" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "256" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "257" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "258" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "259" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "260" => 'Kein Temperaturanstieg nach Brennerstart',  
                 "261" => 'Zeitfehler bei erster Sicherheitszeit',  
                 "262" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "263" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "264" => 'Der Lufttransport ist während der Betriebsphase ausgefallen',  
                 "265" => 'Der Heizkessel befindet sich in Betriebsbereitschaft, Wärmebedarf ist vorhanden, es wird jedoch zuviel Energie geliefert',  
                 "266" => 'Pumpendruckerhöhung zu niedrig',  
                 "267" => 'Systemstörung - UBA defekt',  
                 "268" => 'Der Relaistest wurde aktiviert',  
                 "269" => 'Flammenüberwachung - Glühzünder zu lange eingeschaltet',  
                 "270" => 'Wärmeerzeuger wird hochgefahren',  
                 "271" => 'Temperaturunterschied zwischen Vorlaufsensor und Sicherheitssensor',  
                 "272" => 'Systemstörung - UBA defekt',  
                 "273" => 'Betriebsunterbrechnung - Brenner und Gebläse',  
                 "275" => 'Geräteelektronik im Testmode',  
                 "276" => 'Die Temperatur am Vorlauf ist höher als 95°C',  
                 "277" => 'Die Temperatur am Sicherheitssensor ist größer als 95°C',  
                 "278" => 'Sensortest fehlgeschlagen',  
                 "279" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "280" => 'Zeitfehler bei Wiederanlaufversuch',  
                 "281" => 'Pumpendruckerhöhung zu niedrig',  
                 "282" => 'Keine Drehzahlrückmeldung der Kesselpumpe',  
                 "283" => 'Der Brenner wird gestartet',  
                 "284" => 'Die Gasarmatur wird geöffnet, 1. Sicherheitszeit',  
                 "285" => 'Die Temperatur am Rücklaufsensor ist größer als 95°C',  
                 "286" => 'Temperatur Rücklaufsensor zu hoch',  
                 "287" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "288" => 'Wasserdrucksensor defekt (Drahtbruch)',  
                 "289" => 'Wasserdrucksensordefekt (Kurzschluss)',  
                 "290" => 'Systemstörung Geräteelektronik (KIM/UBA)',  
                 "305" => 'Der Kessel kann vorübergehend nach Warmwasser-Vorrang nicht starten',  
                 "306" => 'Flammensignal nach Schließen der Brennstoffversorgung',  
                 "307" => 'Die Kesselpumpe ist blockiert',  
                 "308" => 'Die Kesselpumpe dreht ohne Widerstand',  
                 "309" => 'Heiz- und Wärmebetrieb parallel',  
                 "310" => 'Keine Kommunikation mit dem EMS-Wärmeerzeuger',  
                 "311" => 'Alle Wärmeerzeuger verriegelt',  
                 "312" => 'Alle Wärmeerzeuger blockiert',  
                 "313" => 'Wärmeerzeuger gesperrt oder blockiert',  
                 "323" => 'Störung BUS-Konfiguration',  
                 "328" => 'Unterbrechnung der Spannungsversorgung',  
                 "329" => 'Pumpendruckerhöhung zu niedrig',  
                 "332" => 'Temperatur am Kesselvorlaufsensor über 110°C',  
                 "333" => 'Der Kessel hat wegen kurzzeitg zu geringem Wasserdruck abgeschaltet',  
                 "338" => 'Zuviele erfolglose Brennerstartversuche',  
                 "341" => 'Temperaturanstieg Wärmeerzeugertemperatur zu schnell',  
                 "342" => 'Temperaturanstieg Warmwasserbetrieb zu schnell',  
                 "350" => 'Vorlauftemperaturfühler defekt (Kurzschluss)',  
                 "351" => 'Vorlauftemperaturfühler defekt (Drahtbruch)',  
                 "357" => 'Entlüftungsprogramm',  
                 "358" => 'Entlüftungsprogramm',  
                 "359" => 'Temperatur am Warmwasser-Temperaturfühler zu hoch',  
                 "364" => 'Magnetventil EV2 undicht',  
                 "365" => 'Magnetventil EV1 undicht',  
               "470" => 'Keine Kommunikation mit dem Systemregler',  
                 "471" => 'Vorlaufphase Pumpe in der Inneneinheit',  
                 "472" => 'Vorheizphase der Wärmepumpe',  
                 "473" => 'Wärmepumpe in Betrieb',  
                 "474" => 'Pumpe Hybrid-Manager: Nachlaufphase',  
                 "475" => 'Wärmepumpe im Enteisungsmodus / Abtaumodus',  
                 "476" => 'Wärmepumpe im Störungsmodus',  
                 "477" => 'Nur EMS-Wärmeerzeuger in Betrieb',  
                 "478" => 'Wärmepumpe blokiert, mehr als 4 Starts pro Stunde',  
                 "479" => 'Störung Strömungsschalter Wärmepumpe während Selbsttest',  
                 "480" => 'Differenztemperatur außerhalb des zulässigen Bereichs',  
                 "481" => 'Wärmepumpe läuft bei blockiertem Heizkessel',  
                 "482" => 'Wärmepumpe arbeitet im Servicemodus',  
                 "500" => 'Keine Spannung Sicherheitsrelais',  
                 "501" => 'Sicherheitsrelais hängt',  
                 "502" => 'Keine Spannungsversorgung Brennstoffrelais 1',  
                 "503" => 'Brennstoffrelais 1 hängt',  
                 "504" => 'Brennerstörung Nicht-EMS-Brenner',  
                 "505" => 'Innerhalb von 30 min wurde am STB kein Temperaturanstieg festgestellt',  
                 "506" => 'Temperaturanstieg am STB zu schnell',  
                 "507" => 'STB-Test erfolgreich durchgeführt',  
                 "508" => 'Zu hoher Flammfühler-Strom',  
                 "509" => 'Eingang Flammenfühler defekt',  
                 "510" => 'Fremdlicht Vorbelüftung',  
                 "511" => 'Keine Flamme innerhalb der Sicherheitszeit',  
                 "512" => 'Flammenabriss innerhalb der Sicherheitszeit',  
                 "513" => 'Flammenabriss innerhalb der Nachzündzeit',  
                 "514" => 'Flammenabriss innerhalb der Stabilisierungszeit',  
                 "515" => 'Flammenabriss in Betrieb 1. + 2. Stufe',  
                 "516" => 'Flammenabriss Umschaltung 1. Stufe',  
                 "517" => 'Flammenabriss in Betrieb 1. Stufe',  
                 "518" => 'Flammenabriss Umschaltung 1. + 2. Stufe',  
                 "519" => 'Flammensignal nach Brennerabschaltung',  
                 "520" => 'Vorlauftemperatur hat den maximal zulässigen Wert überschritten (STB)',  
                 "521" => 'Temperaturdifferenz zwischen den Kesselvorlauffühlern zu groß',  
                 "522" => 'Kesselvorlauffühler defekt',  
                 "523" => 'Kesselvorlauffühler defekt (Kabelbruch)',  
                 "524" => 'Kesselvorlauffühler defekt (Kurzschluss)',  
                   "525" => 'Abgastemperatur zu hoch',  
                 "526" => 'Temperaturdifferenz im Abgastemperaturfühler zu groß',  
                 "527" => 'Abgastemperaturfühler defekt',  
                 "528" => 'Abgastemperaturfühler defekt (Kabelbruch)',  
                 "529" => 'Abgastemperaturfühler defekt (Kurzschluss)',  
                 "530" => 'Abgastemperatur zu hoch (STB)',  
                 "531" => 'Wassermangel im Wärmeerzeuger',  
                 "532" => 'Netzspannung zeitweilig zu gering',  
                 "533" => 'Regelung des Wärmeerzeugers hat wasserseitig falsche Durchströmung erkannt',  
                 "534" => 'Kein Gasdruck, oder Abgasdruckbegrenzer hat geschaltet',  
                 "535" => 'Lufttemperatur zu hoch',  
                 "536" => 'Falsche Anbringung Lufttemperatur-/Abgastemperaturfühler',  
                 "537" => 'Keine Drehzahlrückmeldung vom Gebläse',  
                 "538" => 'Gebläse zu langsam',  
                 "539" => 'Gebläsedrehzahl außerhalb des zulässigen Bereichs',  
                 "540" => 'Gebläse zu schnell',  
                 "542" => 'Kommunikation mit Geräteelektronik (SAFe) unvollständig',  
                 "543" => 'Keine Kommunikation mit Geräteelektronik (SAFe)',  
                 "547" => 'Systemstörung Kodierstecker',  
                 "548" => 'Zuviele Wiederholungen (Brennerstarts)',  
                 "549" => 'Sicherheitskette hat geöffnet',  
                 "550" => 'Unterspannung',  
                 "551" => 'Spannungsunterbrechung',  
                 "552" => 'Zu viele Entstörungen über Schnittstelle',  
                 "553" => 'Zu viele Flammenabrisse',  
                 "554" => 'Systemstörung Geräteelektronik (Fehler EEPROM)',  
                 "555" => 'Flammenabriss innerhalb Stabilisierung Zündgas',  
                 "556" => 'Hauptflamme zu früh',  
                 "557" => 'Flammenabriss bei Hauptgas ein',  
                 "558" => 'Keine Bildung der Hauptflamme',  
                 "559" => 'Luftdruckschalter hängt',  
                 "560" => 'Luftdruckschalter offen',  
                 "561" => 'Spannungsunterbrechung während Brennerstart',  
                 "562" => 'Abgasaustrittssicherung zu hohe Temperatur',  
                 "563" => 'Abgasaustrittssicherung zu häufig',  
                 "564" => 'Temperaturanstieg Wärmeerzeugertemperatur zu schnell',  
                 "565" => 'Differenz Vorlauf zu Rücklauf zu groß',  
                 "566" => 'Rücklauftemperatur kleiner -5°C (Unterbrechnung)',  
                 "567" => 'Rücklauftemperatur größer 150°C (Kurzschluss)',  
                 "568" => 'Wasserdrucksensor defekt (Kabelbruch)',  
                 "569" => 'Wasserdrucksensor defekt (Kurzschluss)',  
                 "570" => 'Zuviele Entriegelungen über Schnittstelle',  
                 "571" => 'Zuviele Wiederanläufe trotz Entriegelung',  
                 "572" => 'externe Sperrung aktiv (Klemme EV)',  
                 "573" => 'SAFe unzulässige Werte vom Vorlauftemperaturfühler',  
                 "574" => 'SAFe unzulässige Werte vom Rücklauftemperaturfühler',  
                 "575" => 'Kesselvorlauftemperatur hat maximal zulässigen Wert überschritten (Vorlauf-ISTB)',  
                 "576" => 'Flammensignal während der Vorbelüftung',  
                 "577" => 'Keine Flamme innerhalb der Sicherheitszeit',  
                 "579" => 'kein Gasruck',  
                 "580" => 'Magnetventil 1 undicht',  
                 "581" => 'Magnetventil 2 undicht',  
                 "582" => 'Keine Kommunikation mit Umschaltmodul',  
                 "583" => 'Umschaltmodul externe Verriegelung aktiv',  
                 "584" => 'Umschaltmodul keine Rückmeldung',  
                 "585" => 'Umschaltmodul nicht vorhanden',  
                 "586" => 'Geräteelektronik alter Softwarestand',  
                 "587" => 'Flammenabriss, Stabilisierung Teillast',  
                 "588" => 'Mehr als ein Umschaltmodul im System',  
                 "589" => 'Wärmeerzeuger durch externen Kontakt verriegelt (Klemme 15/16 am BRM10)',  
                 "590" => 'Druckschalter hat während des Betriebes geöffnet',  
                 "591" => 'Abgasklappe öffnet nicht innerhalb von 30 sec',  
                 "592" => 'Abgasklappe dauerhaft geöffnet',  
                 "593" => 'Brücke am Eingang Küchenlüfter (Dunstabzugshaube) fehlt',  
                 "594" => 'Temperaturfühler anstelle Kodierbrücken angeschlossen',  
                 "601" => 'Zu hohe Abweichung Kesselwasser/STB-Fühler',  
                 "602" => 'Zu hohe Unterschiede Abgastemperaturmessung',  
                 "603" => 'Systemstörung: A/D Wandler arbeitet nicht schnell genug',  
                 "604" => 'Systemstörung: Referenzspannung des 2. µC innerhalb ungültiger Grenzen',  
                 "605" => 'Systemstörung: Referenzspannung des 1. µC innerhalb ungültiger Grenzen',  
                 "606" => 'Systemstörung: Fühlertest 2. µC fehlgeschlagen',  
                 "607" => 'Systemstörung: 1. µC hat in 10s keinen Fühlertest durchgeführt',  
                 "608" => 'Systemstörung: 1. µC und 2. µC unterschiedlichen Vorlauftemperaturen',  
                 "609" => 'Systemstörung: 1. µC und 2. µC unterschiedlichen Abgastemperaturen',  
                 "610" => 'Systemstörung: der 2. µC hat verriegelt',  
                 "611" => 'Systemstörung: der 2. µC hat einen anderen Zustand als der 1. µC',  
                 "612" => 'Systemstörung: zu hohe Abweichungen Rücklauftemperatur',  
                 "613" => 'Systemstörung: zu hohe Abweichungen Vorlauftemperatur',  
                 "620" => 'Systemstörung: der 2. µC kommuniziert nicht mit dem 1. µC',  
                 "621" => 'Systemstörung: bei der Kommunikation mit dem 2. µC treten CRC-Fehler auf',  
                 "622" => 'Systemstörung: der 2. µC arbeitet in einem anderen Zeitschlitz als der 1 µC',  
                 "623" => 'Systemstörung: nach einem Power-Up kommuniziert der 2. µC nicht mit dem 1. µC',  
                 "625" => 'Systemstörung: schwankendes Flammensignal',  
                 "626" => 'Systemstörung: Elektrodenspannung falsch',  
                 "627" => 'Systemstörung: Eingang Ionisationsstrom defekt',  
                 "630" => 'Systemstörung: Interner Fehler SAFe',  
                 "631" => 'Systemstörung: Interner Fehler SAFe',  
                 "640" => 'Systemstörung: Interner Fehler SAFe',  
                 "641" => 'Systemstörung: Interner Fehler SAFe',  
                 "650" => 'Systemstörung: Statezahl zu hoch',  
                 "651" => 'Systemstörung: Falsches BIM',  
                 "652" => 'Systemstörung: BIM CRC-Fehler erkannt',  
                 "653" => 'Systemstörung: Verriegelung kann sich nicht gemerkt werden',  
                 "654" => 'Systemstörung: kein EEPROM',  
                 "655" => 'Systemstörung: Verriegelung nicht lesbar',  
                 "656" => 'Systemstörung: Verriegelung nicht schreibbar',  
                 "657" => 'Systemstörung: Verriegelungskennung ungültig',  
                 "658" => 'Systemstörung: Verriegelung CRC-Fehler',  
                 "659" => 'Systemstörung: EEPROM defekt',  
                 "660" => 'Systemstörung: Kodierstecker Kommunikation gestört',  
                 "661" => 'Systemstörung: Kodierstecker',  
                 "662" => 'Systemstörung: Kodierstecker kann nicht gelesen werden',  
                 "690" => 'Relais im Umschaltmodul schaltet nicht nach Vorgabe',  
                 "691" => 'Rückmeldung vom Umschaltmodul, obwohl das Relais nicht angesteuert wird',  
                 "692" => 'Systemstörung',  
                 "693" => 'Systemstörung',  
                 "694" => 'Systemstörung',  
                 "695" => 'Systemstörung',  
                 "696" => 'Systemstörung',  
                 "697" => 'Systemstörung',  
                 "698" => 'Systemstörung',  
                 "699" => 'Systemstörung',  
                 "700" => 'Werksauslieferungszustand',  
                 "1011" => 'Abgastemperatur zu hoch',  
                 "1012" => 'Gebläse läuft nicht korrekt',  
                 "1013" => 'Betriebsstunden abgelaufen',  
                 "1014" => 'Niedriger Flammenfühler-Strom',  
                 "1015" => 'Hoher Zündverzug',  
                 "1016" => 'Häufiger Flammenabriss',  
                 "1017" => 'Wasserdruck zu niedrig',  
                 "1018" => 'Eingestelltes Wartungsdatum wurde erreicht',  
                 "1019" => 'Falscher Pumpentyp erkannt',  
                 "1020" => 'Hoher Flammenstrom',  
                 "1021" => 'Temperaturfühler des Schichtladespeichers defekt',  
                 "1022" => 'Speichertemperaturfüher defekt',  
                 "1023" => 'Maximale Betriebsdauer einschließlich Standby-Zeit ist erreicht',  
                 "1024" => 'Keine Kommunikation zwischen Wärmeerzeuger und Fernbedienung',  
                 "1025" => 'Rücklauftemperaturfühler defekt',  
                 "1026" => 'Speichertemperaturfühler Korrektur zu hoch',  
                 "1027" => 'Speichertemperaturfühler defekt (Solarmodul)',  
                 "1028" => 'Temperaturfühler 3-Wege-Mischer defekt',  
                 "1029" => '3-Wege-Ventil Mischer defekt',  
                 "1060" => 'Zu viele Startversuche des Kompressors, Wärmepumpe deaktiviert',  
                 "1061" => 'Zu viele Betriebsabbrüche ausgelöst durch Kältemitteldruck, Wärmepumpe deaktiviert',  
                 "1062" => 'Zu viele Startversuche des Gebläses, Wärmepumpe deaktiviert',  
                 "1063" => 'Zu viele Betriebsabrüche, ausgelöst durch Probleme in der Luftzufuhr',  
                 "1064" => 'Wärmepumpentemperaturfühler defekt',  
                 "1065" => 'Wasserdruckfühler defekt',  
                 "1066" => 'Verbrennung (ÖL-Luft-Verhältnis) nicht optimal',  
                 "2000" => 'keine Spannung Zündtraforelais',  
                 "2001" => 'keine Spannung Zündtraforelais',  
                 "2002" => 'keine Spannung Heizpatronenrelais',  
                 "2003" => 'keine Spannung Heizpatronenrelais',  
                 "2004" => 'Interner Fehler SAFe',  
                 "2005" => 'Mischraumtemperaturfühler defekt (Drahbruch)',  
                 "2006" => 'Mischraumtemperaturfühler defekt (Kurzschluss)',  
                 "2007" => 'Interner Fehler SAFe/BCI',  
                 "2008" => 'Interner Fehler SAFe/BCI',  
                 "2009" => 'Differenz zwischen Mischraumtemperaturfühler 1 und 2 zu groß',  
                 "2011" => 'Interner Fehler SAFe/BCI',  
                 "2012" => 'Interner Fehler SAFe/BCI',  
                 "2013" => 'Interner Fehler SAFe',  
                 "2014" => 'Interner Fehler SAFe/BCI',  
                 "2015" => 'Interner Fehler SAFe/BCI',  
                 "2016" => 'Interner Fehler SAFe/BCI',  
                 "2017" => 'Interner Fehler SAFe',  
                 "2018" => 'Interner Fehler SAFe',  
                 "2019" => 'Interner Fehler SAFe',  
                 "2020" => 'Interner Fehler SAFe',  
                 "2021" => 'Interner Fehler SAFe',  
                 "2022" => 'Interner Fehler SAFe',  
                 "2023" => 'Fühler Heizpatrone defekt (Kurzschluss)',  
                 "2024" => 'Interner Fehler SAFe',  
                 "2025" => 'Interner Fehler SAFe',  
                 "2026" => 'Interner Fehler SAFe',  
                 "2027" => 'Interner Fehler SAFe',  
                 "2028" => 'Interner Fehler SAFe',  
                 "2029" => 'Interner Fehler SAFe',  
                 "2030" => 'Interner Fehler SAFe',  
                 "2031" => 'Interner Fehler SAFe',  
                 "2032" => 'Interner Fehler SAFe',  
                 "2033" => 'Interner Fehler SAFe',  
                 "2034" => 'Interner Fehler SAFe',  
                 "2035" => 'Luftklappenstellung entspricht nicht dem Sollwert',  
                 "2036" => 'Gebläsedrehzahl entspricht nicht dem Sollwert',  
                 "2037" => 'Startdrehzahl am Gebläse nicht erreicht',  
                 "2038" => 'Solltemperatur im Mischraum nicht erreicht',  
                 "2039" => 'Fremdlicht im Feuerraum während Vorbelüftung erkannt',  
                 "2040" => 'Interner Fehler SAFe',  
                 "2041" => 'Fremdlicht im Feuerraum während Nachbelüftung erkannt',  
                 "2042" => 'Heizpatronentemperatur zu hoch',  
                 "2043" => 'Mischraumtemperatur zu niedrig oder zu hoch',  
                 "2044" => 'Interner Fehler SAFe',  
                 "2045" => 'Interner Fehler SAFe/BCI',  
                 "2046" => 'Mindestdrehzahl Gebläse unterschritten',  
                 "2047" => 'Interner Fehler SAFe/BCI',  
                 "2048" => 'Interner Fehler SAFe',  
                 "2049" => 'Interner Fehler SAFe',  
             "2050" => 'Falschdurchströmung des Kessels',  
             "2051" => 'Interner Fehler',  
             "2052" => 'Maximale Einschaltdauer Zündtrafo überschritten',  
             "2053" => 'Interner Fehler SAFe/BCI',  
             "2054" => 'Interner Fehler SAFe',  
             "2055" => 'Interner Fehler SAFe/BCI',  
             "2056" => 'Interner Fehler SAFe/BCI',  
             "2057" => 'Interner Fehler SAFe/BCI',  
             "2058" => 'Interner Fehler SAFe',  
             "2059" => 'Interner Fehler SAFe',  
             "2060" => 'Interner Fehler SAFe',  
             "2061" => 'Interner Fehler SAFe',  
             "2062" => 'Interner Fehler SAFe',  
             "2063" => 'Interner Fehler SAFe',  
             "2064" => 'Interner Fehler SAFe',  
             "2065" => 'Interner Fehler SAFe',  
             "2066" => 'Interner Fehler SAFe',  
             "2067" => 'Interner Fehler SAFe',  
             "2068" => 'Interner Fehler SAFe',  
             "2069" => 'Interner Fehler SAFe',  
             "2070" => 'Interner Fehler SAFe',  
             "2071" => 'Interner Fehler SAFe',  
             "2072" => 'Interner Fehler SAFe',  
             "2073" => 'Interner Fehler SAFe',  
             "2074" => 'Interner Fehler SAFe',  
             "2075" => 'Interner Fehler SAFe',  
             "2076" => 'Interner Fehler SAFe',  
             "2077" => 'Interner Fehler SAFe',  
             "2078" => 'Interner Fehler SAFe',  
             "2079" => 'Interner Fehler SAFe',  
             "2080" => 'Interner Fehler SAFe',  
             "2081" => 'Interner Fehler SAFe',  
             "2082" => 'Interner Fehler SAFe',  
             "2083" => 'Positionskalibrierung Luftklappe fehlgeschlagen',  
             "2084" => 'Interner Fehler SAFe',  
             "2085" => 'Interner Fehler SAFe',  
             "2086" => 'Interner Fehler SAFe',  
             "2087" => 'Interner Fehler SAFe',  
             "2088" => 'Interner Fehler SAFe',  
             "2089" => 'Interner Fehler SAFe',  
             "2090" => 'Temperaturanstieg der Heizpatrone zu gering',  
             "2091" => 'Stellklappe schließt schwergängig',  
             "2092" => 'Interner Fehler SAFe',  
             "2093" => 'Interner Fehler SAFe',  
             "2094" => 'Interner Fehler SAFe',  
             "2095" => 'Interner Fehler SAFe',  
             "2096" => 'Interner Fehler SAFe',  
             "2097" => 'Interner Fehler SAFe',  
             "2098" => 'Interner Fehler SAFe',  
             "2099" => 'Interner Fehler SAFe',  
                 "2100" => 'Kurzschluss Mischraumtemperaturfühler',  
                 "2101" => 'Interner Fehler SAFe',  
                 "2102" => 'Interner Fehler SAFe',  
                 "2103" => 'Interner Fehler SAFe',  
                 "2104" => 'Interner Fehler SAFe',  
                 "2105" => 'Interner Fehler SAFe',  
                 "2106" => 'Interner Fehler SAFe',  
                 "2107" => 'Interner Fehler SAFe',  
                 "2108" => 'Interner Fehler SAFe',  
                 "2109" => 'Interner Fehler SAFe',  
                 "2110" => 'Interner Fehler SAFe',  
                 "2111" => 'Interner Fehler SAFe',  
             "2112" => 'Heizpatrone kühlt nach Abschaltung nicht ab',  
             "2113" => 'Interner Fehler',  
             "2114" => 'Schwergängiges Gebläse',  
             "2115" => 'Interner Fehler SAFe',  
             "2116" => 'Interner Fehler SAFe',  
             "2117" => 'Interner Fehler SAFe',  
             "2118" => 'Interner Fehler SAFe',  
             "2119" => 'Interner Fehler SAFe',  
             "2120" => 'Interner Fehler SAFe',  
             "2121" => 'Interner Fehler SAFe',  
             "2122" => 'Interner Fehler SAFe',  
             "2123" => 'Interner Fehler SAFe',  
             "2124" => 'Interner Fehler SAFe',  
                 "2500" => 'keine Wärmeanforderung',  
                 "2501" => 'Wärmeanforderung wegen Frostschutz',  
                 "2502" => 'Wärmeanforderung wegen Notbetrieb',  
                 "2503" => 'Wärmeanforderung wegen Abgastest',  
                 "2504" => 'Wärmeanforderung wegen Relaistest',  
                 "2505" => 'Wärmeanforderung blockiert wegen Antipendel',  
                 "2506" => 'Wärmeanforderung wegen Heizbetrieb',  
                 "2507" => 'Wärmeanforderung wegen Warmwasserbetrieb',  
                 "2508" => 'Wärmeanforderung wegen Warmwasser/Heizbetrieb',  
                 "2509" => 'Interner Status',  
                 "2510" => 'Wärmeanforderung blockiert weil 24h vorbei',  
                 "2511" => 'Wärmeanforderung blockiert weil GPA nicht kalibriert',  
                 "2512" => 'Wärmeanforderung blockiert auf Grund einer Leistungsbegrenzung',  
                 "2513" => 'Wärmeanforderung blockiert auf Grund von Temperaturdifferenz',  
                 "2514" => 'Wärmeanforderung blockiert wegen Umschaltmodul',  
                 "2515" => 'Wärmeanforderung blockiert weil Kessel warm genug',  
                 "2517" => 'Vorbelüftung',  
                 "2518" => 'Warten Mischraumtemperatur',  
                 "2519" => 'Flamme bilden',  
                 "2520" => 'Flamme stabilisieren',  
                 "2521" => 'Stabilisieren Wärmetauscher',  
                 "2522" => 'Warten Aufheizung Wärmetauscher',  
                 "2523" => 'Umschaltphase (von Start auf Stationär)',  
                 "2524" => 'Nachfackelkontrolle aus Startphase',  
                 "2525" => 'Nachfackelkontrolle aus Stationärbetrieb',  
                 "2526" => 'Nachbelüftung aus Startphase',  
                 "2527" => 'Nachbelüftung aus Stationärbetrieb',  
                 "2528" => 'Gebläse aus',  
                 "2529" => 'Sicherheitsrelais aus',  
                 "2530" => 'Interner Status',  
                 "2531" => 'Wärmeanforderung blockiert weil Mischraum zu kalt',  
                 "XXX" => 'Interner Fehler'),  
                   

// Array mit den Fehlermeldungen "Allgemeine EMS-Funktionen  
// ---------------------------------------------------------  
$A01 => array("800" => 'Außenfühler ist defekt',  
                  "808" => 'Warmwassserfühler 1 ist defekt',  
                  "809" => 'Warmwasserfühler 2 ist defekt',  
                  "810" => 'Warmwasser bleibt kalt',  
                  "811" => 'Thermische Desinfektion wurde abgebrochen',  
                  "815" => 'Temperaturfühler hydraulische Weiche defekt',  
                  "816" => 'Keine Kommunikation mit Geräteelektronik',  
                  "817" => 'Lufttemperaturfühler defekt',  
                  "818" => 'Wärmeerzeuger bleibt kalt',  
                  "819" => 'Ölvorwärmer meldet Dauersignal',  
                  "820" => 'Öl-Betriebstemperatur wird nicht erreicht',  
                  "828" => 'Wasserdruckseonsor ist defekt',  
                  "845" => 'Hydraulische Konfiguration wird nicht unterstützt',  
                  "3818" => 'Keine Kommunikation zwischen LM10/IUM und UBA-H3'),  


// Array mit den Fehlermeldungen A02 "Brennersteuerung"  
// -----------------------------------------------------  
$A02 => array("816" => 'Keine Kommunikation mit Geräteelektronik'),  


// Array mit den Fehlermeldungen A03 "Brennersteuerung"  
// -----------------------------------------------------  
$A03 => array("816" => 'Keine Kommunikation zwischen LM10/IUM und UBA-H3'),  


// Array mit den Fehlermeldungen A11 "Raumcontroller"  
// ---------------------------------------------------  
$A11 => array("801" => 'Interner Laufzeitfehler im Raumcontroller',  
                  "802" => 'Uhrzeit noch nicht eingestellt',  
                  "803" => 'Datum noch nicht eingestellt',  
                  "804" => 'Interner Fehler (EEPROM-Fehler)',  
                  "805" => 'Werte über die Schnittstelle liegen außerhalb der definierten Grenzwerte',  
                  "806" => 'Raumtemperaturfühler defekt',  
                  "816" => 'Keine Kommunikation mit RC35',  
                  "821" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 1',  
                  "822" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 2',  
                  "823" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 1',  
                  "824" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 2',  
                  "825" => 'Zwei Master Bedieneinheiten im System',  
                  "826" => 'Raumtemperaturfühler für Heizkreis 1 defekt',  
                  "827" => 'Raumtemperaturfühler für Heizkreis 2 defekt',  
                  "828" => 'Wasserdrucksensor defekt',  
                  "829" => 'Raumcontroller ohne Heizkreis',  
                  "1000" => 'Systemkonfiguration nicht bestätigt',  
                  "1004" => 'Systemkonfiguration nicht bestätigt',  
                  "1010" => 'Keine Kommunikation über Bus-Verbindung EMS plus',  
                  "1030" => 'Interner Fehler',  
                  "1033" => 'Interner Fehler',  
                  "1034" => 'Interner Fehler',  
                  "1035" => 'Interner Fehler',  
                  "1036" => 'Interner Fehler',  
                  "1037" => 'Außenfühler ist defekt',  
                  "1038" => 'Zeit/Datum ungültiger Wert',  
                  "1039" => 'Wärmeerzeuger nicht für Estrichtrocknung mit ungemischten Heizkreisen geeignet',  
                  "1040" => 'Estrichtrocknung mit ungemischten Heizkreisen nur mit Gesamtanlage möglich',  
                  "1041" => 'Spannungsausfall während Estrichtrocknung',  
                  "1042" => 'Interner Fehler',  
                  "1051" => 'Keine Kommunikation Modul externer Raumtemperaturfühler Heizkreis 1',  
                  "1052" => 'Keine Kommunikation Modul externer Raumtemperaturfühler Heizkreis 2',  
                  "1053" => 'Keine Kommunikation Modul externer Raumtemperaturfühler Heizkreis 3',  
                  "1054" => 'Keine Kommunikation Modul externer Raumtemperaturfühler Heizkreis 4',  
                  "1055" => 'Keine Kommunikation Modul externer Raumtemperaturfühler Heizkreis 5',  
                  "1056" => 'Keine Kommunikation Modul externer Raumtemperaturfühler Heizkreis 6',  
                  "1057" => 'Keine Kommunikation Modul externer Raumtemperaturfühler Heizkreis 7',  
                  "1058" => 'Keine Kommunikation Modul externer Raumtemperaturfühler Heizkreis 8',  
                  "3001" => 'Konfigurationsfehler: Modul externer Raumtemperaturfühler Heizkreis 1',  
                  "3002" => 'Konfigurationsfehler: Modul externer Raumtemperaturfühler Heizkreis 2',  
                  "3003" => 'Konfigurationsfehler: Modul externer Raumtemperaturfühler Heizkreis 3',  
                  "3004" => 'Konfigurationsfehler: Modul externer Raumtemperaturfühler Heizkreis 4',  
                  "3005" => 'Konfigurationsfehler: Modul externer Raumtemperaturfühler Heizkreis 5',  
                  "3006" => 'Konfigurationsfehler: Modul externer Raumtemperaturfühler Heizkreis 6',  
                  "3007" => 'Konfigurationsfehler: Modul externer Raumtemperaturfühler Heizkreis 7',  
                  "3008" => 'Konfigurationsfehler: Modul externer Raumtemperaturfühler Heizkreis 8',  
                  "3011" => 'Konfigurationsfehler: Mischermodul nicht verwendet Heizkreis 1',  
                  "3012" => 'Konfigurationsfehler: Mischermodul nicht verwendet Heizkreis 2',  
                  "3013" => 'Konfigurationsfehler: Mischermodul nicht verwendet Heizkreis 3',  
                  "3014" => 'Konfigurationsfehler: Mischermodul nicht verwendet Heizkreis 4',  
                  "3015" => 'Konfigurationsfehler: Mischermodul nicht verwendet Heizkreis 5',  
                  "3016" => 'Konfigurationsfehler: Mischermodul nicht verwendet Heizkreis 6',  
                  "3017" => 'Konfigurationsfehler: Mischermodul nicht verwendet Heizkreis 7',  
                  "3018" => 'Konfigurationsfehler: Mischermodul nicht verwendet Heizkreis 8',  
               "3061" => 'Keine Kommunikation mit Mischermodul Heizkreis 1',  
                  "3062" => 'Keine Kommunikation mit Mischermodul Heizkreis 2',  
                  "3063" => 'Keine Kommunikation mit Mischermodul Heizkreis 3',  
                  "3064" => 'Keine Kommunikation mit Mischermodul Heizkreis 4',  
               "3065" => 'Keine Kommunikation mit Mischermodul Heizkreis 5',  
                  "3066" => 'Keine Kommunikation mit Mischermodul Heizkreis 6',  
                  "3067" => 'Keine Kommunikation mit Mischermodul Heizkreis 7',  
                  "3068" => 'Keine Kommunikation mit Mischermodul Heizkreis 8',  
               "3071" => 'Keine Kommunikation mit Fernbedienung Heizkreis 1',  
                  "3072" => 'Keine Kommunikation mit Fernbedienung Heizkreis 2',  
                  "3073" => 'Keine Kommunikation mit Fernbedienung Heizkreis 3',  
                  "3074" => 'Keine Kommunikation mit Fernbedienung Heizkreis 4',  
               "3075" => 'Keine Kommunikation mit Fernbedienung Heizkreis 5',  
                  "3076" => 'Keine Kommunikation mit Fernbedienung Heizkreis 6',  
                  "3077" => 'Keine Kommunikation mit Fernbedienung Heizkreis 7',  
                  "3078" => 'Keine Kommunikation mit Fernbedienung Heizkreis 8',  
                  "3081" => 'Konfigurationsfehler: Fernbedienung nicht verwendet Heizkreis 1',  
                  "3082" => 'Konfigurationsfehler: Fernbedienung nicht verwendet Heizkreis 2',  
                  "3083" => 'Konfigurationsfehler: Fernbedienung nicht verwendet Heizkreis 3',  
                  "3084" => 'Konfigurationsfehler: Fernbedienung nicht verwendet Heizkreis 4',  
                  "3085" => 'Konfigurationsfehler: Fernbedienung nicht verwendet Heizkreis 5',  
                  "3086" => 'Konfigurationsfehler: Fernbedienung nicht verwendet Heizkreis 6',  
                  "3087" => 'Konfigurationsfehler: Fernbedienung nicht verwendet Heizkreis 7',  
                  "3088" => 'Konfigurationsfehler: Fernbedienung nicht verwendet Heizkreis 8',  
                  "3091" => 'Raumtemperaturfühler defekt Heizkreis 1',  
                  "3092" => 'Raumtemperaturfühler defekt Heizkreis 2',  
                  "3093" => 'Raumtemperaturfühler defekt Heizkreis 3',  
                  "3094" => 'Raumtemperaturfühler defekt Heizkreis 4',  
                  "3095" => 'Raumtemperaturfühler defekt Heizkreis 5',  
                  "3096" => 'Raumtemperaturfühler defekt Heizkreis 6',  
                  "3097" => 'Raumtemperaturfühler defekt Heizkreis 7',  
                  "3098" => 'Raumtemperaturfühler defekt Heizkreis 8',  
                  "3111" => 'Konfigurationsfehler: falsche Fernbedienung Heizkreis 1',  
                  "3112" => 'Konfigurationsfehler: falsche Fernbedienung Heizkreis 2',  
                  "3113" => 'Konfigurationsfehler: falsche Fernbedienung Heizkreis 3',  
                  "3114" => 'Konfigurationsfehler: falsche Fernbedienung Heizkreis 4',  
                  "3115" => 'Konfigurationsfehler: falsche Fernbedienung Heizkreis 5',  
                  "3116" => 'Konfigurationsfehler: falsche Fernbedienung Heizkreis 6',  
                  "3117" => 'Konfigurationsfehler: falsche Fernbedienung Heizkreis 7',  
                  "3118" => 'Konfigurationsfehler: falsche Fernbedienung Heizkreis 8',  
                  "4001" => 'Konfigurationsfehler: Warmwasser',  
                  "4011" => 'Keine Kommunikation Warmwasser System 1',  
                  "4012" => 'Keine Kommunikation Warmwasser System 2',  
                  "4021" => 'Konfigurationsfehler: Modul Warmwasser System 1 nicht verwendet',  
                  "4022" => 'Konfigurationsfehler: Modul Warmwasser System 2 nicht verwendet',  
                  "6001" => 'Konfigurationsfehler: Solarmodul nicht verwendet',  
                  "6004" => 'Keine Kommunikation Solarmodul'),  


// Array mit den Fehlermeldungen A12 "Weichenmodul"  
// -------------------------------------------------  
$A12 => array("815" => 'Fühler Weichenmodul defekt',  
                   "816" => 'Keine Kommunikation mit Weichenmodul'),  


// Array mit den Fehlermeldungen A16 "hydraulische Weiche"  
// --------------------------------------------------------  
$A16 => array("815" => 'Fühler hydraulische Weiche defekt',  
                  "816" => 'Keine Kommunikation mit Pumpeneffizienzmodul'),  
                    

// Array mit den Fehlermeldungen A18 "Raumcontroller"  
// --------------------------------------------------  
$A18 => array("825" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System'),  


// Array mit den Fehlermeldungen A21 "Raumcontroller Heizkreis 1"  
// ---------------------------------------------------------------  
$A21 => array("806" => 'Raumtemperaturfühler für Heizkreis 1 defekt',  
                  "816" => 'Keine Kommunikation mit Bedieneinheit Heizkreis 1',  
                  "829" => 'Raumcontroller ohne Heizkreis (Heizkreis 1)',  
                  "830" => 'Schwache Batterie Bedieneinheit Funk Heizkreis 1',  
                  "839" => 'Keine Funkkommunikation mit Bedieneinheit Heizkreis 1 - Funkstörung',  
                  "842" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 1',  
                  "843" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 1',  
                  "1001" => 'Keine Kommunikation zwischen Systemregler und Fernbedienung Heizkreis 1',  
                  "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 1',  
                  "1030" => 'Interner Datenfehler Heizkreis 1',  
                  "1033" => 'Interner Datenfehler Heizkreis 1',  
                  "1034" => 'Interner Datenfehler Heizkreis 1',  
                  "1035" => 'Interner Datenfehler Heizkreis 1',  
                  "1036" => 'Interner Datenfehler Heizkreis 1',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 1',  
                  "1042" => 'Interner Fehler: Zugriff auf Uhrenbaustein blockiert Heizkreis 1',  
                  "3141" => 'Feuchtigkeitsfühler defekt Heizkreis 1'),  


// Array mit den Fehlermeldungen A22 "Raumcontroller Heizkreis 2"  
// ---------------------------------------------------------------  
$A22 => array("806" => 'Raumtemperaturfühler für Heizkreis 2 defekt',  
                  "816" => 'Keine Kommunikation mit Bedieneinheit Heizkreis 2',  
                  "829" => 'Raumcontroller ohne Heizkreis (Heizkreis 2)',  
                  "830" => 'Schwache Batterie Bedieneinheit Funk Heizkreis 2',  
                  "839" => 'Keine Funkkommunikation mit Bedieneinheit Heizkreis 2 - Funkstörung',  
                  "842" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 2',  
                  "843" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 2',  
                  "1001" => 'Keine Kommunikation zwischen Systemregler und Fernbedienung Heizkreis 2',  
                  "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 2',  
                  "1030" => 'Interner Datenfehler Heizkreis 2',  
                  "1033" => 'Interner Datenfehler Heizkreis 2',  
                  "1034" => 'Interner Datenfehler Heizkreis 2',  
                  "1035" => 'Interner Datenfehler Heizkreis 2',  
                  "1036" => 'Interner Datenfehler Heizkreis 2',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 2',  
                  "1042" => 'Interner Fehler: Zugriff auf Uhrenbaustein blockiert Heizkreis 2',  
                  "3142" => 'Feuchtigkeitsfühler defekt Heizkreis 2'),  


// Array mit den Fehlermeldungen A23 "Raumcontroller Heizkreis 3"  
// ---------------------------------------------------------------  
$A23 => array("806" => 'Raumtemperaturfühler für Heizkreis 3 defekt',  
                  "816" => 'Keine Kommunikation mit Bedieneinheit Heizkreis 3',  
                  "829" => 'Raumcontroller ohne Heizkreis (Heizkreis 3)',  
                  "830" => 'Schwache Batterie Bedieneinheit Funk Heizkreis 3',  
                  "839" => 'Keine Funkkommunikation mit Bedieneinheit Heizkreis 3 - Funkstörung',  
                  "842" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 3',  
                  "843" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 3',  
                  "1001" => 'Keine Kommunikation zwischen Systemregler und Fernbedienung Heizkreis 3',  
                  "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 3',  
                  "1030" => 'Interner Datenfehler Heizkreis 3',  
                  "1033" => 'Interner Datenfehler Heizkreis 3',  
                  "1034" => 'Interner Datenfehler Heizkreis 3',  
                  "1035" => 'Interner Datenfehler Heizkreis 3',  
                  "1036" => 'Interner Datenfehler Heizkreis 3',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 2',  
                  "1042" => 'Interner Fehler: Zugriff auf Uhrenbaustein blockiert Heizkreis 3',  
                  "3143" => 'Feuchtigkeitsfühler defekt Heizkreis 3'),  


// Array mit den Fehlermeldungen A24 "Raumcontroller Heizkreis 4"  
// ---------------------------------------------------------------  
$A24 => array("806" => 'Raumtemperaturfühler für Heizkreis 4 defekt',  
                  "816" => 'Keine Kommunikation mit Bedieneinheit Heizkreis 4',  
                  "829" => 'Raumcontroller ohne Heizkreis (Heizkreis 4)',  
                  "830" => 'Schwache Batterie Bedieneinheit Funk Heizkreis 4',  
                  "839" => 'Keine Funkkommunikation mit Bedieneinheit Heizkreis 4 - Funkstörung',  
                  "842" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 4',  
                  "843" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 4',  
                  "1001" => 'Keine Kommunikation zwischen Systemregler und Fernbedienung Heizkreis 4',  
                  "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 4',  
                  "1030" => 'Interner Datenfehler Heizkreis 4',  
                  "1033" => 'Interner Datenfehler Heizkreis 4',  
                  "1034" => 'Interner Datenfehler Heizkreis 4',  
                  "1035" => 'Interner Datenfehler Heizkreis 4',  
                  "1036" => 'Interner Datenfehler Heizkreis 4',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 4',  
                  "1042" => 'Interner Fehler: Zugriff auf Uhrenbaustein blockiert Heizkreis 4',  
                  "3144" => 'Feuchtigkeitsfühler defekt Heizkreis 4'),  


// Array mit den Fehlermeldungen A25 "Raumcontroller Heizkreis 5"  
// ---------------------------------------------------------------  
$A25 => array("806" => 'Raumtemperaturfühler für Heizkreis 5 defekt',  
                  "816" => 'Keine Kommunikation mit Bedieneinheit Heizkreis 5',  
                  "829" => 'Raumcontroller ohne Heizkreis (Heizkreis 5)',  
                  "830" => 'Schwache Batterie Bedieneinheit Funk Heizkreis 5',  
                  "839" => 'Keine Funkkommunikation mit Bedieneinheit Heizkreis 5 - Funkstörung',  
                  "842" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 5',  
                  "843" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 5',  
                  "1001" => 'Keine Kommunikation zwischen Systemregler und Fernbedienung Heizkreis 5',  
                  "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 5',  
                  "1030" => 'Interner Datenfehler Heizkreis 5',  
                  "1033" => 'Interner Datenfehler Heizkreis 5',  
                  "1034" => 'Interner Datenfehler Heizkreis 5',  
                  "1035" => 'Interner Datenfehler Heizkreis 5',  
                  "1036" => 'Interner Datenfehler Heizkreis 5',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 5',  
                  "1042" => 'Interner Fehler: Zugriff auf Uhrenbaustein blockiert Heizkreis 5',  
                  "3145" => 'Feuchtigkeitsfühler defekt Heizkreis 5'),  


// Array mit den Fehlermeldungen A26 "Raumcontroller Heizkreis 6"  
// ---------------------------------------------------------------  
$A26 => array("806" => 'Raumtemperaturfühler für Heizkreis 6 defekt',  
                  "816" => 'Keine Kommunikation mit Bedieneinheit Heizkreis 6',  
                  "829" => 'Raumcontroller ohne Heizkreis (Heizkreis 6)',  
                  "830" => 'Schwache Batterie Bedieneinheit Funk Heizkreis 6',  
                  "839" => 'Keine Funkkommunikation mit Bedieneinheit Heizkreis 6 - Funkstörung',  
                  "842" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 6',  
                  "843" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 6',  
                  "1001" => 'Keine Kommunikation zwischen Systemregler und Fernbedienung Heizkreis 6',  
                  "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 6',  
                  "1030" => 'Interner Datenfehler Heizkreis 6',  
                  "1033" => 'Interner Datenfehler Heizkreis 6',  
                  "1034" => 'Interner Datenfehler Heizkreis 6',  
                  "1035" => 'Interner Datenfehler Heizkreis 6',  
                  "1036" => 'Interner Datenfehler Heizkreis 6',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 6',  
                  "1042" => 'Interner Fehler: Zugriff auf Uhrenbaustein blockiert Heizkreis 6',  
                  "3146" => 'Feuchtigkeitsfühler defekt Heizkreis 6'),  


// Array mit den Fehlermeldungen A27 "Raumcontroller Heizkreis 7"  
// ---------------------------------------------------------------  
$A27 => array("806" => 'Raumtemperaturfühler für Heizkreis 7 defekt',  
                  "816" => 'Keine Kommunikation mit Bedieneinheit Heizkreis 7',  
                  "829" => 'Raumcontroller ohne Heizkreis (Heizkreis 7)',  
                  "830" => 'Schwache Batterie Bedieneinheit Funk Heizkreis 7',  
                  "839" => 'Keine Funkkommunikation mit Bedieneinheit Heizkreis 7 - Funkstörung',  
                  "842" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 7',  
                  "843" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 7',  
                  "1001" => 'Keine Kommunikation zwischen Systemregler und Fernbedienung Heizkreis 7',  
                  "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 7',  
                  "1030" => 'Interner Datenfehler Heizkreis 7',  
                  "1033" => 'Interner Datenfehler Heizkreis 7',  
                  "1034" => 'Interner Datenfehler Heizkreis 7',  
                  "1035" => 'Interner Datenfehler Heizkreis 7',  
                  "1036" => 'Interner Datenfehler Heizkreis 7',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 7',  
                  "1042" => 'Interner Fehler: Zugriff auf Uhrenbaustein blockiert Heizkreis 7',  
                  "3147" => 'Feuchtigkeitsfühler defekt Heizkreis 7'),  


// Array mit den Fehlermeldungen A28 "Raumcontroller Heizkreis 8"  
// ---------------------------------------------------------------  
$A28 => array("806" => 'Raumtemperaturfühler für Heizkreis 8 defekt',  
                  "816" => 'Keine Kommunikation mit Bedieneinheit Heizkreis 4',  
                  "829" => 'Raumcontroller ohne Heizkreis (Heizkreis 8)',  
                  "830" => 'Schwache Batterie Bedieneinheit Funk Heizkreis 8',  
                  "839" => 'Keine Funkkommunikation mit Bedieneinheit Heizkreis 8 - Funkstörung',  
                  "842" => 'Frostschutz gewählt, aber keine Fernbedienung Heizkreis 8',  
                  "843" => 'Raumregelung gewählt, aber keine Fernbedienung Heizkreis 8',  
                  "1001" => 'Keine Kommunikation zwischen Systemregler und Fernbedienung Heizkreis 8',  
                  "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 8',  
                  "1030" => 'Interner Datenfehler Heizkreis 8',  
                  "1033" => 'Interner Datenfehler Heizkreis 8',  
                  "1034" => 'Interner Datenfehler Heizkreis 8',  
                  "1035" => 'Interner Datenfehler Heizkreis 8',  
                  "1036" => 'Interner Datenfehler Heizkreis 8',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 8',  
                  "1042" => 'Interner Fehler: Zugriff auf Uhrenbaustein blockiert Heizkreis 8',  
                  "3148" => 'Feuchtigkeitsfühler defekt Heizkreis 8'),  


// Array mit den Fehlermeldungen A31 "Mischermodul Heizkreis 1"  
// -------------------------------------------------------------  
$A31 => array("807" => 'Vorlauffühler Heizkreis 1 defekt',  
                  "816" => 'Keine Kommunikation mit Heizkreis 1 Mischermodul',  
                  "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 1',  
                  "1030" => 'Interner Datenfehler Heizkreis 1',  
                  "1035" => 'Interner Datenfehler Heizkreis 1',  
                  "1036" => 'Interner Datenfehler Heizkreis 1',  
                  "1038" => 'Interner Datenfehler Heizkreis 1',  
                  "3021" => 'Vorlauffühler Heizkreis 1 defekt',  
                  "3051" => 'Konfigurationsfehler: Vorlauftemperaturfühler nicht verwendet Heizkreis 1',  
                  "3101" => 'Keine Kommunikation zwischen Bedieneinheit und Mischermodul Heizkreis 1',  
                  "3121" => 'Temperaturbegrenzung ausgelöst Heizkreis 1'),  


// Array mit den Fehlermeldungen A32 "Mischermodul Heizkreis 2"  
// -------------------------------------------------------------  
$A32 => array("807" => 'Vorlauffühler Heizkreis 2 defekt',  
                  "816" => 'Keine Kommunikation mit Heizkreis 2 Mischermodul',  
                  "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 2',  
                  "1030" => 'Interner Datenfehler Heizkreis 2',  
                  "1035" => 'Interner Datenfehler Heizkreis 2',  
                  "1036" => 'Interner Datenfehler Heizkreis 2',  
                  "1038" => 'Interner Datenfehler Heizkreis 2',  
                  "3022" => 'Vorlauffühler Heizkreis 2 defekt',  
                  "3052" => 'Konfigurationsfehler: Vorlauftemperaturfühler nicht verwendet Heizkreis 2',  
                  "3102" => 'Keine Kommunikation zwischen Bedieneinheit und Mischermodul Heizkreis 2',  
                  "3122" => 'Temperaturbegrenzung ausgelöst Heizkreis 2'),  


// Array mit den Fehlermeldungen A33 "Mischermodul Heizkreis 3"  
// -------------------------------------------------------------  
$A33 => array("807" => 'Vorlauffühler Heizkreis 3 defekt',  
                  "816" => 'Keine Kommunikation mit Heizkreis 3 Mischermodul',  
                  "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 3',  
                  "1030" => 'Interner Datenfehler Heizkreis 3',  
                  "1035" => 'Interner Datenfehler Heizkreis 3',  
                  "1036" => 'Interner Datenfehler Heizkreis 3',  
                  "1038" => 'Interner Datenfehler Heizkreis 3',  
                  "3023" => 'Vorlauffühler Heizkreis 3 defekt',  
                  "3053" => 'Konfigurationsfehler: Vorlauftemperaturfühler nicht verwendet Heizkreis 3',  
                  "3103" => 'Keine Kommunikation zwischen Bedieneinheit und Mischermodul Heizkreis 3',  
                  "3123" => 'Temperaturbegrenzung ausgelöst Heizkreis 3'),  


// Array mit den Fehlermeldungen A34 "Mischermodul Heizkreis 4"  
// -------------------------------------------------------------  
$A34 => array("807" => 'Vorlauffühler Heizkreis 4 defekt',  
                  "816" => 'Keine Kommunikation mit Heizkreis 4 Mischermodul',  
                  "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 4',  
                  "1030" => 'Interner Datenfehler Heizkreis 4',  
                  "1035" => 'Interner Datenfehler Heizkreis 4',  
                  "1036" => 'Interner Datenfehler Heizkreis 4',  
                  "1038" => 'Interner Datenfehler Heizkreis 4',  
                  "3024" => 'Vorlauffühler Heizkreis 4 defekt',  
                  "3054" => 'Konfigurationsfehler: Vorlauftemperaturfühler nicht verwendet Heizkreis 4',  
                  "3104" => 'Keine Kommunikation zwischen Bedieneinheit und Mischermodul Heizkreis 4',  
                  "3124" => 'Temperaturbegrenzung ausgelöst Heizkreis 4'),  


// Array mit den Fehlermeldungen A35 "Mischermodul Heizkreis 5"  
// -------------------------------------------------------------  
$A35 => array("807" => 'Vorlauffühler Heizkreis 5 defekt',  
                  "816" => 'Keine Kommunikation mit Heizkreis 5 Mischermodul',  
                  "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 5',  
                  "1030" => 'Interner Datenfehler Heizkreis 5',  
                  "1035" => 'Interner Datenfehler Heizkreis 5',  
                  "1036" => 'Interner Datenfehler Heizkreis 5',  
                  "1038" => 'Interner Datenfehler Heizkreis 5',  
                  "3025" => 'Vorlauffühler Heizkreis 5 defekt',  
                  "3055" => 'Konfigurationsfehler: Vorlauftemperaturfühler nicht verwendet Heizkreis 5',  
                  "3105" => 'Keine Kommunikation zwischen Bedieneinheit und Mischermodul Heizkreis 5',  
                  "3125" => 'Temperaturbegrenzung ausgelöst Heizkreis 5'),  


// Array mit den Fehlermeldungen A36 "Mischermodul Heizkreis 6"  
// -------------------------------------------------------------  
$A36 => array("807" => 'Vorlauffühler Heizkreis 6 defekt',  
                  "816" => 'Keine Kommunikation mit Heizkreis 6 Mischermodul',  
                  "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 6',  
                  "1030" => 'Interner Datenfehler Heizkreis 6',  
                  "1035" => 'Interner Datenfehler Heizkreis 6',  
                  "1036" => 'Interner Datenfehler Heizkreis 6',  
                  "1038" => 'Interner Datenfehler Heizkreis 6',  
                  "3026" => 'Vorlauffühler Heizkreis 6 defekt',  
                  "3056" => 'Konfigurationsfehler: Vorlauftemperaturfühler nicht verwendet Heizkreis 6',  
                  "3106" => 'Keine Kommunikation zwischen Bedieneinheit und Mischermodul Heizkreis 6',  
                  "3126" => 'Temperaturbegrenzung ausgelöst Heizkreis 6'),  


// Array mit den Fehlermeldungen A37 "Mischermodul Heizkreis 7"  
// -------------------------------------------------------------  
$A37 => array("807" => 'Vorlauffühler Heizkreis 7 defekt',  
                  "816" => 'Keine Kommunikation mit Heizkreis 7 Mischermodul',  
                  "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 7',  
                  "1030" => 'Interner Datenfehler Heizkreis 7',  
                  "1035" => 'Interner Datenfehler Heizkreis 7',  
                  "1036" => 'Interner Datenfehler Heizkreis 7',  
                  "1038" => 'Interner Datenfehler Heizkreis 7',  
                  "3027" => 'Vorlauffühler Heizkreis 7 defekt',  
                  "3057" => 'Konfigurationsfehler: Vorlauftemperaturfühler nicht verwendet Heizkreis 7',  
                  "3107" => 'Keine Kommunikation zwischen Bedieneinheit und Mischermodul Heizkreis 7',  
                  "3127" => 'Temperaturbegrenzung ausgelöst Heizkreis 7'),  


// Array mit den Fehlermeldungen A38 "Mischermodul Heizkreis 8"  
// -------------------------------------------------------------  
$A38 => array("807" => 'Vorlauffühler Heizkreis 8 defekt',  
                  "816" => 'Keine Kommunikation mit Heizkreis 8 Mischermodul',  
                  "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 8',  
                  "1030" => 'Interner Datenfehler Heizkreis 8',  
                  "1035" => 'Interner Datenfehler Heizkreis 8',  
                  "1036" => 'Interner Datenfehler Heizkreis 8',  
                  "1038" => 'Interner Datenfehler Heizkreis 8',  
                  "3028" => 'Vorlauffühler Heizkreis 8 defekt',  
                  "3058" => 'Konfigurationsfehler: Vorlauftemperaturfühler nicht verwendet Heizkreis 8',  
                  "3108" => 'Keine Kommunikation zwischen Bedieneinheit und Mischermodul Heizkreis 8',  
                  "3128" => 'Temperaturbegrenzung ausgelöst Heizkreis 8'),  


// Array mit den Fehlermeldungen A41 "Warmwassersystem 1"  
// -------------------------------------------------------  
$A41 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Warmwassersystem 1',  
                  "1030" => 'Interner Datenfehler Warmwassersystem 1',  
                  "1036" => 'Interner Datenfehler Warmwassersystem 1',  
                  "1038" => 'Zeit/Datum ungültiger Wert Warmwassersystem 1',  
                  "4031" => 'Warmwassertemperaturfühler defekt Warmwassersystem 1',  
                  "4051" => 'Thermische Desinfektion misslungen, Warmwassersystem 1',  
                  "4061" => 'Warmwasser Solltemperatur nicht erreicht Warmwassersystem 1',  
                  "4082" => 'Tägliches Aufheizen abgebrochen Warmwassersystem 1',  
                  "6002" => 'Solarmodul tägliches Aufheizen abgebrochen',  
                  "6008" => 'Solarmodul tägliches Aufheizen abgebrochen Warmwassersystem 1'),  


// Array mit den Fehlermeldungen A42 "Warmwassersystem 2"  
// -------------------------------------------------------  
$A42 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Warmwassersystem 2',  
                  "1030" => 'Interner Datenfehler Warmwassersystem 2',  
                  "1036" => 'Interner Datenfehler Warmwassersystem 2',  
                  "1038" => 'Zeit/Datum ungültiger Wert Warmwassersystem 2',  
                  "4031" => 'Warmwassertemperaturfühler defekt Warmwassersystem 2',  
                  "4051" => 'Thermische Desinfektion misslungen, Warmwassersystem 2',  
                  "4061" => 'Warmwasser Solltemperatur nicht erreicht Warmwassersystem 2',  
                  "4082" => 'Tägliches Aufheizen abgebrochen Warmwassersystem 2',  
                  "6008" => 'Solarmodul tägliches Aufheizen abgebrochen Warmwassersystem 2'),  


// Array mit den Fehlermeldungen A51 "Solarmodul"  
// -----------------------------------------------  
$A51 => array("812" => 'Einstellungen Solar falsch',  
                  "813" => 'Kollektorfühler 1 defekt',  
                  "814" => 'Speichertemperaturfühler unten defekt',  
                  "816" => 'Keine Kommunikation mit Solarmodul',  
                  "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus',  
                  "1030" => 'Interner Datenfehler',  
                  "1035" => 'Interner Datenfehler',  
                  "1036" => 'Interner Datenfehler',  
                  "1038" => 'Zeit/Datum ungültiger Wert',  
                  "6005" => 'Konfigurationsfehler: Solarmodul',  
                  "6006" => 'Keine Kommunikation mit Erweiterungsmodul',  
                  "6007" => 'Konfigurationsfehler: Erweiterungsmodul',  
                  "6011" => 'Temperaturfühler Speicher Mitte defekt',  
                  "6012" => 'Temperaturfühler Speicher oben defekt',  
                  "6013" => 'Temperaturfühler Rücklauf defekt',  
                  "6014" => 'Temperaturfühler Kollektor 2 defekt',  
                  "6015" => 'Temperaturfühler Speicher unten defekt',  
                  "6016" => 'Temperaturfühler Speicher 3 Mitte defekt',  
                  "6017" => 'Temperaturfühler Speicher 2 unten defekt',  
                  "6018" => 'Temperaturfühler Speicher 2 Mitte defekt',  
                  "6019" => 'Temperaturfühler externer Wärmetauscher defekt',  
                  "6020" => 'Temperaturfühler thermische Desinfektion defekt',  
                  "6021" => 'Temperaturfühler Kollektor 1 defekt',  
                  "6022" => 'Temperaturfühler Speicher 1 unten defekt',  
                  "6023" => 'Solarpumpe blockiert oder Luft im System',  
                  "6024" => 'Pumpe Umladung blockiert oder Luft im System',  
                  "6025" => 'Solarpumpe 2 blockiert oder Luft im System',  
                  "6026" => 'Pumpe externer Wärmetauscher blockiert oder Luft im System',  
                  "6027" => 'Pumpe thermische Desinfektion blockiert',  
                  "6028" => 'Solarpumpe blockiert oder Luft im System',  
                  "6029" => 'Mischer-Temperaturfühler defekt',  
                  "6032" => 'Zu hoher Massenstrom im Solarkreis des 1. Kollektorfeldes',  
                  "6033" => 'Zu niedriger Massenstrom im Solarkreis des 1. Kollektorfeldes',  
                  "6034" => 'Zu hoher Massenstrom im Solarkreis des 2. Kollektorfeldes',  
                  "6035" => 'Zu niedriger Massenstrom im Solarkreis des 3. Kollektorfeldes',  
                  "6036" => 'Temperaturfühler am Solarspeicher 1 defekt',  
                  "6042" => 'Thermische Desinfektion abgebrochen',  
                  "6043" => 'Kein Signal der Volumenstrom-Messeinrichtung des Wärmemengenzählers',  
                  "6044" => 'Vorlauftemperaturfühler des Wärmemengenzählers defekt',  
                  "6045" => 'Rücklauftemperaturfühler des Wärmemengenzählers defekt',  
                  "6046" => 'Wärmequellen-Temperaturfühler für freien Temperaturdifferenregler defekt',  
                  "6047" => 'Wärmequellen-Temperaturfühler für freien Temperaturdifferenregler defekt',  
                  "6048" => 'Pumpe für Umladung mit Wärmetauscher blockiert',  
                  "6049" => 'Temperaturfühler Speicher oben defekt',  
                  "6050" => 'Temperaturfühler Speicher 3 unten defekt'),  


// Array mit den Fehlermeldungen A52 "Solarmodul"  
// -----------------------------------------------  
$A52 => array("1036" => 'Interner Datenfehler',  
                  "6010" => 'Keine Kommunikation mit Hauptmodul'),  


// Array mit den Fehlermeldungen A61 "Raumcontroller Heizkreis 1"  
// ---------------------------------------------------------------  
$A61 => array("1005" => 'Systemkonfiguration nicht bestätigt Heizkreis 1',  
              "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 1',  
              "1030" => 'Interner Datenfehler Heizkreis 1',  
              "1033" => 'Interner Datenfehler Heizkreis 1',  
              "1034" => 'Interner Datenfehler Heizkreis 1',  
              "1035" => 'Interner Datenfehler Heizkreis 1',  
              "1036" => 'Interner Datenfehler Heizkreis 1',  
                  "1037" => 'Außentemperaturfühler defekt Heizkreis 1',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 1',  
                  "1042" => 'Interner Fehler: Zugriff auf Uhrenbaustein blockiert Keizkreis 1',  
                  "1051" => 'Keine Kommunikation Modul externer Raumtemperaturfühler Heizkreis 1',  
                  "1081" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System Heizkreis 1',  
                  "3001" => 'Konfigurationsfehler: Modul externer Raumtemperaturfühler nicht verwendet Heizkreis 1',  
                  "3011" => 'Konfigurationsfehler: Mischermodul nicht verwendet Heizkreis 1',  
                  "3061" => 'Keine Kommunikation mit Mischermodul Heizkreis 1',  
                  "3091" => 'Raumtemperaturfühler defekt Heizkreis 1',  
                  "6001" => 'Konfigurationsfehler: Solarmodul nicht verwendet'),  


// Array mit den Fehlermeldungen A62 "Raumcontroller Heizkreis 2"  
// ---------------------------------------------------------------  
$A62 => array("1005" => 'Systemkonfiguration nicht bestätigt Heizkreis 2',  
              "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 2',  
              "1030" => 'Interner Datenfehler Heizkreis 2',  
              "1033" => 'Interner Datenfehler Heizkreis 2',  
              "1034" => 'Interner Datenfehler Heizkreis 2',  
              "1035" => 'Interner Datenfehler Heizkreis 2',  
              "1036" => 'Interner Datenfehler Heizkreis 2',  
                  "1037" => 'Außentemperaturfühler defekt Heizkreis 2',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 2',  
                  "1042" => 'Interner Fehler: Zugriff auf Uhrenbaustein blockiert Keizkreis 2',  
                  "1051" => 'Keine Kommunikation Modul externer Raumtemperaturfühler Heizkreis 2',  
                  "1081" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System Heizkreis 2',  
                  "3001" => 'Konfigurationsfehler: Modul externer Raumtemperaturfühler nicht verwendet Heizkreis 2',  
                  "3011" => 'Konfigurationsfehler: Mischermodul nicht verwendet Heizkreis 2',  
                  "3061" => 'Keine Kommunikation mit Mischermodul Heizkreis 2',  
                  "3091" => 'Raumtemperaturfühler defekt Heizkreis 2',  
                  "6001" => 'Konfigurationsfehler: Solarmodul nicht verwendet'),  


// Array mit den Fehlermeldungen A63 "Raumcontroller Heizkreis 3"  
// ---------------------------------------------------------------  
$A63 => array("1005" => 'Systemkonfiguration nicht bestätigt Heizkreis 3',  
              "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 3',  
              "1030" => 'Interner Datenfehler Heizkreis 3',  
              "1033" => 'Interner Datenfehler Heizkreis 3',  
              "1034" => 'Interner Datenfehler Heizkreis 3',  
              "1035" => 'Interner Datenfehler Heizkreis 3',  
              "1036" => 'Interner Datenfehler Heizkreis 3',  
                  "1037" => 'Außentemperaturfühler defekt Heizkreis 3',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 3',  
                  "1042" => 'Interner Fehler: Zugriff auf Uhrenbaustein blockiert Keizkreis 3',  
                  "1051" => 'Keine Kommunikation Modul externer Raumtemperaturfühler Heizkreis 3',  
                  "1081" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System Heizkreis 3',  
                  "3001" => 'Konfigurationsfehler: Modul externer Raumtemperaturfühler nicht verwendet Heizkreis 3',  
                  "3011" => 'Konfigurationsfehler: Mischermodul nicht verwendet Heizkreis 3',  
                  "3061" => 'Keine Kommunikation mit Mischermodul Heizkreis 3',  
                  "3091" => 'Raumtemperaturfühler defekt Heizkreis 3',  
                  "6001" => 'Konfigurationsfehler: Solarmodul nicht verwendet'),  


// Array mit den Fehlermeldungen A64 "Raumcontroller Heizkreis 4"  
// ---------------------------------------------------------------  
$A64 => array("1005" => 'Systemkonfiguration nicht bestätigt Heizkreis 4',  
              "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 4',  
              "1030" => 'Interner Datenfehler Heizkreis 4',  
              "1033" => 'Interner Datenfehler Heizkreis 4',  
              "1034" => 'Interner Datenfehler Heizkreis 4',  
              "1035" => 'Interner Datenfehler Heizkreis 4',  
              "1036" => 'Interner Datenfehler Heizkreis 4',  
                  "1037" => 'Außentemperaturfühler defekt Heizkreis 4',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 4',  
                  "1042" => 'Interner Fehler: Zugriff auf Uhrenbaustein blockiert Keizkreis 4',  
                  "1051" => 'Keine Kommunikation Modul externer Raumtemperaturfühler Heizkreis 4',  
                  "1081" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System Heizkreis 4',  
                  "3001" => 'Konfigurationsfehler: Modul externer Raumtemperaturfühler nicht verwendet Heizkreis 4',  
                  "3011" => 'Konfigurationsfehler: Mischermodul nicht verwendet Heizkreis 4',  
                  "3061" => 'Keine Kommunikation mit Mischermodul Heizkreis 4',  
                  "3091" => 'Raumtemperaturfühler defekt Heizkreis 4',  
                  "6001" => 'Konfigurationsfehler: Solarmodul nicht verwendet'),  


// Array mit den Fehlermeldungen A65 "Raumcontroller Heizkreis 5"  
// ---------------------------------------------------------------  
$A65 => array("1005" => 'Systemkonfiguration nicht bestätigt Heizkreis 5',  
              "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 5',  
              "1030" => 'Interner Datenfehler Heizkreis 5',  
              "1033" => 'Interner Datenfehler Heizkreis 5',  
              "1034" => 'Interner Datenfehler Heizkreis 5',  
              "1035" => 'Interner Datenfehler Heizkreis 5',  
              "1036" => 'Interner Datenfehler Heizkreis 5',  
                  "1037" => 'Außentemperaturfühler defekt Heizkreis 5',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 5',  
                  "1042" => 'Interner Fehler: Zugriff auf Uhrenbaustein blockiert Keizkreis 5',  
                  "1051" => 'Keine Kommunikation Modul externer Raumtemperaturfühler Heizkreis 5',  
                  "1081" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System Heizkreis 5',  
                  "3001" => 'Konfigurationsfehler: Modul externer Raumtemperaturfühler nicht verwendet Heizkreis 5',  
                  "3011" => 'Konfigurationsfehler: Mischermodul nicht verwendet Heizkreis 5',  
                  "3061" => 'Keine Kommunikation mit Mischermodul Heizkreis 5',  
                  "3091" => 'Raumtemperaturfühler defekt Heizkreis 5',  
                  "6001" => 'Konfigurationsfehler: Solarmodul nicht verwendet'),  


// Array mit den Fehlermeldungen A66 "Raumcontroller Heizkreis 6"  
// ---------------------------------------------------------------  
$A66 => array("1005" => 'Systemkonfiguration nicht bestätigt Heizkreis 6',  
              "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 6',  
              "1030" => 'Interner Datenfehler Heizkreis 6',  
              "1033" => 'Interner Datenfehler Heizkreis 6',  
              "1034" => 'Interner Datenfehler Heizkreis 6',  
              "1035" => 'Interner Datenfehler Heizkreis 6',  
              "1036" => 'Interner Datenfehler Heizkreis 6',  
                  "1037" => 'Außentemperaturfühler defekt Heizkreis 6',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 6',  
                  "1042" => 'Interner Fehler: Zugriff auf Uhrenbaustein blockiert Keizkreis 6',  
                  "1051" => 'Keine Kommunikation Modul externer Raumtemperaturfühler Heizkreis 6',  
                  "1081" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System Heizkreis 6',  
                  "3001" => 'Konfigurationsfehler: Modul externer Raumtemperaturfühler nicht verwendet Heizkreis 6',  
                  "3011" => 'Konfigurationsfehler: Mischermodul nicht verwendet Heizkreis 6',  
                  "3061" => 'Keine Kommunikation mit Mischermodul Heizkreis 6',  
                  "3091" => 'Raumtemperaturfühler defekt Heizkreis 6',  
                  "6001" => 'Konfigurationsfehler: Solarmodul nicht verwendet'),  


// Array mit den Fehlermeldungen A67 "Raumcontroller Heizkreis 7"  
// ---------------------------------------------------------------  
$A67 => array("1005" => 'Systemkonfiguration nicht bestätigt Heizkreis 7',  
              "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 7',  
              "1030" => 'Interner Datenfehler Heizkreis 7',  
              "1033" => 'Interner Datenfehler Heizkreis 7',  
              "1034" => 'Interner Datenfehler Heizkreis 7',  
              "1035" => 'Interner Datenfehler Heizkreis 7',  
              "1036" => 'Interner Datenfehler Heizkreis 7',  
                  "1037" => 'Außentemperaturfühler defekt Heizkreis 7',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 7',  
                  "1042" => 'Interner Fehler: Zugriff auf Uhrenbaustein blockiert Keizkreis 7',  
                  "1051" => 'Keine Kommunikation Modul externer Raumtemperaturfühler Heizkreis 7',  
                  "1081" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System Heizkreis 7',  
                  "3001" => 'Konfigurationsfehler: Modul externer Raumtemperaturfühler nicht verwendet Heizkreis 7',  
                  "3011" => 'Konfigurationsfehler: Mischermodul nicht verwendet Heizkreis 7',  
                  "3061" => 'Keine Kommunikation mit Mischermodul Heizkreis 7',  
                  "3091" => 'Raumtemperaturfühler defekt Heizkreis 7',  
                  "6001" => 'Konfigurationsfehler: Solarmodul nicht verwendet'),  


// Array mit den Fehlermeldungen A68 "Raumcontroller Heizkreis 8"  
// ---------------------------------------------------------------  
$A68 => array("1005" => 'Systemkonfiguration nicht bestätigt Heizkreis 8',  
              "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 8',  
              "1030" => 'Interner Datenfehler Heizkreis 8',  
              "1033" => 'Interner Datenfehler Heizkreis 8',  
              "1034" => 'Interner Datenfehler Heizkreis 8',  
              "1035" => 'Interner Datenfehler Heizkreis 8',  
              "1036" => 'Interner Datenfehler Heizkreis 8',  
                  "1037" => 'Außentemperaturfühler defekt Heizkreis 8',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 8',  
                  "1042" => 'Interner Fehler: Zugriff auf Uhrenbaustein blockiert Keizkreis 8',  
                  "1058" => 'Keine Kommunikation Modul externer Raumtemperaturfühler Heizkreis 8',  
                  "1088" => 'Adressenkonflikt -> zwei Master-Bedieneinheiten im System Heizkreis 8',  
                  "3008" => 'Konfigurationsfehler: Modul externer Raumtemperaturfühler nicht verwendet Heizkreis 8',  
                  "3018" => 'Konfigurationsfehler: Mischermodul nicht verwendet Heizkreis 8',  
                  "3068" => 'Keine Kommunikation mit Mischermodul Heizkreis 8',  
                  "3098" => 'Raumtemperaturfühler defekt Heizkreis 8',  
                  "6001" => 'Konfigurationsfehler: Solarmodul nicht verwendet'),  


// Array mit den Fehlermeldungen A71 "Raumcontroller Heizkreis 1"  
// ---------------------------------------------------------------  
$A71 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 1',  
              "1030" => 'Interner Datenfehler Heizkreis 1',  
              "1035" => 'Interner Datenfehler Heizkreis 1',  
              "1036" => 'Interner Datenfehler Heizkreis 1',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 1'),  


// Array mit den Fehlermeldungen A72 "Raumcontroller Heizkreis 2"  
// ---------------------------------------------------------------  
$A72 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 2',  
              "1030" => 'Interner Datenfehler Heizkreis 2',  
              "1035" => 'Interner Datenfehler Heizkreis 2',  
              "1036" => 'Interner Datenfehler Heizkreis 2',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 2'),  


// Array mit den Fehlermeldungen A73 "Raumcontroller Heizkreis 3"  
// ---------------------------------------------------------------  
$A73 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 3',  
              "1030" => 'Interner Datenfehler Heizkreis 3',  
              "1035" => 'Interner Datenfehler Heizkreis 3',  
              "1036" => 'Interner Datenfehler Heizkreis 3',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 3'),  


// Array mit den Fehlermeldungen A74 "Raumcontroller Heizkreis 4"  
// ---------------------------------------------------------------  
$A74 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 4',  
              "1030" => 'Interner Datenfehler Heizkreis 4',  
              "1035" => 'Interner Datenfehler Heizkreis 4',  
              "1036" => 'Interner Datenfehler Heizkreis 4',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 4'),  


// Array mit den Fehlermeldungen A75 "Raumcontroller Heizkreis 5"  
// ---------------------------------------------------------------  
$A75 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 5',  
              "1030" => 'Interner Datenfehler Heizkreis 5',  
              "1035" => 'Interner Datenfehler Heizkreis 5',  
              "1036" => 'Interner Datenfehler Heizkreis 5',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 5'),  


// Array mit den Fehlermeldungen A76 "Raumcontroller Heizkreis 6"  
// ---------------------------------------------------------------  
$A76 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 6',  
              "1030" => 'Interner Datenfehler Heizkreis 6',  
              "1035" => 'Interner Datenfehler Heizkreis 6',  
              "1036" => 'Interner Datenfehler Heizkreis 6',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 6'),  


// Array mit den Fehlermeldungen A77 "Raumcontroller Heizkreis 7"  
// ---------------------------------------------------------------  
$A77 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 7',  
              "1030" => 'Interner Datenfehler Heizkreis 7',  
              "1035" => 'Interner Datenfehler Heizkreis 7',  
              "1036" => 'Interner Datenfehler Heizkreis 7',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 7'),  


// Array mit den Fehlermeldungen A78 "Raumcontroller Heizkreis 8"  
// ---------------------------------------------------------------  
$A78 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 8',  
              "1030" => 'Interner Datenfehler Heizkreis 8',  
              "1035" => 'Interner Datenfehler Heizkreis 8',  
              "1036" => 'Interner Datenfehler Heizkreis 8',  
                  "1038" => 'Zeit/Datum ungültiger Wert Heizkreis 8'),  


// Array mit den Fehlermeldungen AD1 "hydraulische Weiche Heizkreis 1"  
// --------------------------------------------------------------------  
$AD1 => array("815" => 'Temperaturfühler hydraulische Weiche defekt',  
              "817" => 'Lufttemperatursensor defekt',  
                  "818" => 'Wärmeerzeuger bleibt kalt',  
                  "819" => 'Dauersignal vom Brennstoffvorwärmer',  
                  "820" => 'Brennstoff zu kalt',  
                  "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 1',  
              "1030" => 'Interner Datenfehler Heizkreis 1'),  


// Array mit den Fehlermeldungen AD2 "hydraulische Weiche Heizkreis 2"  
// --------------------------------------------------------------------  
$AD2 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 2',  
              "1030" => 'Interner Datenfehler Heizkreis 2'),  


// Array mit den Fehlermeldungen AD3 "hydraulische Weiche Heizkreis 3"  
// --------------------------------------------------------------------  
$AD3 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 3',  
              "1030" => 'Interner Datenfehler Heizkreis 3'),  


// Array mit den Fehlermeldungen AD4 "hydraulische Weiche Heizkreis 4"  
// --------------------------------------------------------------------  
$AD4 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 4',  
              "1030" => 'Interner Datenfehler Heizkreis 4'),  


// Array mit den Fehlermeldungen AD5 "hydraulische Weiche Heizkreis 5"  
// --------------------------------------------------------------------  
$AD5 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 5',  
              "1030" => 'Interner Datenfehler Heizkreis 5'),  


// Array mit den Fehlermeldungen AD6 "hydraulische Weiche Heizkreis 6"  
// --------------------------------------------------------------------  
$AD6 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 6',  
              "1030" => 'Interner Datenfehler Heizkreis 6'),  


// Array mit den Fehlermeldungen AD7 "hydraulische Weiche Heizkreis 7"  
// --------------------------------------------------------------------  
$AD7 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 7',  
              "1030" => 'Interner Datenfehler Heizkreis 7'),  


// Array mit den Fehlermeldungen AD8 "hydraulische Weiche Heizkreis 8"  
// --------------------------------------------------------------------  
$AD8 => array("1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 8',  
             "1030" => 'Interner Datenfehler Heizkreis 8'),  


// Array mit den Fehlermeldungen AE1 "hydraulische Weiche Heizkreis 1"  
// --------------------------------------------------------------------  
$AE1 => array("815" => 'Temperaturfühler hydraulische Weiche defekt Heizkreis 1',  
              "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 1',  
              "1030" => 'Interner Datenfehler Heizkreis 1'),  


// Array mit den Fehlermeldungen AE2 "hydraulische Weiche Heizkreis 2"  
// --------------------------------------------------------------------  
$AE2 => array("815" => 'Temperaturfühler hydraulische Weiche defekt Heizkreis 2',  
              "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 2',  
              "1030" => 'Interner Datenfehler Heizkreis 2'),  


// Array mit den Fehlermeldungen AE3 "hydraulische Weiche Heizkreis 3"  
// --------------------------------------------------------------------  
$AE3 => array("815" => 'Temperaturfühler hydraulische Weiche defekt Heizkreis 3',  
              "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 3',  
              "1030" => 'Interner Datenfehler Heizkreis 3'),  


// Array mit den Fehlermeldungen AE4 "hydraulische Weiche Heizkreis 4"  
// --------------------------------------------------------------------  
$AE4 => array("815" => 'Temperaturfühler hydraulische Weiche defekt Heizkreis 4',  
              "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 4',  
              "1030" => 'Interner Datenfehler Heizkreis 4'),  


// Array mit den Fehlermeldungen AE5 "hydraulische Weiche Heizkreis 5"  
// --------------------------------------------------------------------  
$AE5 => array("815" => 'Temperaturfühler hydraulische Weiche defekt Heizkreis 5',  
              "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 5',  
              "1030" => 'Interner Datenfehler Heizkreis 5'),  


// Array mit den Fehlermeldungen AE6 "hydraulische Weiche Heizkreis 6"  
// --------------------------------------------------------------------  
$AE6 => array("815" => 'Temperaturfühler hydraulische Weiche defekt Heizkreis 6',  
              "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 6',  
              "1030" => 'Interner Datenfehler Heizkreis 6'),  


// Array mit den Fehlermeldungen AE7 "hydraulische Weiche Heizkreis 7"  
// --------------------------------------------------------------------  
$AE7 => array("815" => 'Temperaturfühler hydraulische Weiche defekt Heizkreis 7',  
              "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 17',  
              "1030" => 'Interner Datenfehler Heizkreis 7'),  


// Array mit den Fehlermeldungen AE8 "hydraulische Weiche Heizkreis 8"  
// --------------------------------------------------------------------  
$AE8 => array("815" => 'Temperaturfühler hydraulische Weiche defekt Heizkreis 8',  
              "1010" => 'Keine Kommunikation über BUS-Verbindung EMS plus Heizkreis 8',  
              "1030" => 'Interner Datenfehler Heizkreis 8'),  


// Array mit den Fehlermeldungen HXX "Servicemeldungen"  
// --------------------------------------------------------------------  
$H => array("H01" => 'Abgastemperatur zu hoch',  
                "H02" => 'Gebläse läuft nicht korrekt',  
                "H03" => 'Betriebsstunden abgelaufen',  
                "H04" => 'Niedriger Flammenfühler-Strom',  
                "H05" => 'Hoher Zündverzug',  
                "H06" => 'Häufiger Flammenabriss',  
                "H07" => 'Wasserdruck zu niedrig',  
                "H08" => 'Eingestelltes Wartungsdatum wurde erreicht',  
                "H09" => 'Falscher Pumpentyp erkannt',  
                "H10" => 'Hoher Flammenstrom',  
                "H11" => 'Temperaturfühler des Schichtladespeichers defekt',  
                "H12" => 'Speichertemperaturfühler defekt',  
                "H13" => 'Maximale Betriebsdauer einschließlich Standby-Zeit ist erreicht',  
                "H14" => 'Keine Kommunikation zwischen Wärmeerzeuger und Fernbedienung',  
                "H15" => 'Rücklauftemperaturfühler defekt',  
                "H16" => 'Speichertemperaturfühler Korrektur zu hoch',  
                "H17" => 'Speichertemperaturfühler defekt (Solarmodul)',  
                "H18" => 'Temperaturfühler 3-Wege-Mischer defekt',  
                "H19" => '3-Wege-Ventil Mischer defekt',  
                "H20" => 'Zu viele Startversuche des Kompressors, Wärmepumpe deaktiviert',  
                "H21" => 'Zu viele Betriebsabbrüche ausgelöst durch Kältemitteldruck, Wärmepumpe deaktiviert',  
                "H22" => 'Zu viele Startversuche des Gebläses, Wärmepumpe deaktiviert',  
                "H23" => 'Zu viele Betriebsabrüche, ausgelöst durch Probleme in der Luftzufuhr',  
                "H24" => 'Wärmepumpentemperaturfühler defekt',  
                "H25" => 'Wasserdruckfühler defekt',  
                "H26" => 'Verbrennung (ÖL-Luft-Verhältnis) nicht optimal')  
                
                
// Meldungsarray Ende  
// -------------------  
    );  

// *****************************************************************************  
// *****************************************************************************  

?>

Mit der Bitte um ein paar Tests gebe ich das nun an Euch weiter.
Vor allem an die Kollegen mit dem „führenden A“ :slight_smile:

Gruß
Manfred

PS.: Für die H01 etc. Sache bräuchte ich mal einen Auszug des Speicherarrays, da es bei mir keine gibt.

Hi manni,

Respekt, du steckst ja immer noch ne Menge Arbeit in den Feinschliff. Super!

Woher das führende A kommt, ist mir immer noch ein Rätsel.
Besondere Anlagenkonfiguration hab ich nicht; BC10 mit RC30, Baujahr ca. 2008; daran ein KM200v2.

Die H01 H02 usw Sache ist auch in der Servicedoku so beschrieben, die ich im vorigen Post verlinkt habe.
Ferner gibt es noch die CAT „M“ - weshalb das Skript bei mir derzeit auf einen undefined index läuft.

Nachfolgend meine nofitications-Ausgabe:


stdClass Object
(
    [id] => /notifications
    [type] => errorList
    [recordable] => 0
    [writeable] => 0
    [values] => Array
        (
            [0] => stdClass Object
                (
                    [cat] => L
                    [act] => H
                    [dcd] => 6L
                    [ccd] => 548
                    [orig] => 75
                    [t] => 2010-01-10T16:25:00
                )

            [1] => stdClass Object
                (
                    [cat] => L
                    [act] => H
                    [dcd] => 6L
                    [ccd] => 548
                    [orig] => 75
                    [t] => 2010-01-10T16:11:00
                )

            [2] => stdClass Object
                (
                    [cat] => L
                    [act] => H
                    [dcd] => 6L
                    [ccd] => 548
                    [orig] => 75
                    [t] => 2010-01-09T17:07:00
                )

            [3] => stdClass Object
                (
                    [cat] => L
                    [act] => H
                    [dcd] => 6Y
                    [ccd] => 510
                    [orig] => 75
                    [t] => 2004-05-06T14:58:00
                )

            [4] => stdClass Object
                (
                    [cat] => B
                    [act] => H
                    [dcd] => 6U
                    [ccd] => 511
                    [orig] => 75
                    [t] => 2000-01-01T00:05:00
                )

            [5] => stdClass Object
                (
                    [cat] => B
                    [act] => H
                    [dcd] => 6U
                    [ccd] => 511
                    [orig] => 75
                    [t] => 2000-01-01T00:04:00
                )

            [6] => stdClass Object
                (
                    [cat] => B
                    [act] => H
                    [dcd] => 6U
                    [ccd] => 511
                    [orig] => 75
                    [t] => 2010-01-10T16:24:00
                )

            [7] => stdClass Object
                (
                    [cat] => B
                    [act] => H
                    [dcd] => 6U
                    [ccd] => 511
                    [orig] => 75
                    [t] => 2010-01-10T16:22:00
                )

            [8] => stdClass Object
                (
                    [cat] => B
                    [act] => H
                    [dcd] => 6U
                    [ccd] => 511
                    [orig] => 75
                    [t] => 2010-01-10T16:20:00
                )

            [9] => stdClass Object
                (
                    [cat] => A
                    [act] => H
                    [dcd] => AA0
                    [ccd] => 800
                    [orig] => 8
                    [t] => 2000-01-01T00:02:00
                )

            [10] => stdClass Object
                (
                    [cat] => A
                    [act] => H
                    [dcd] => AA0
                    [ccd] => 808
                    [orig] => 8
                    [t] => 2000-01-01T00:02:00
                )

            [11] => stdClass Object
                (
                    [cat] => A
                    [act] => H
                    [dcd] => A5L
                    [ccd] => 543
                    [orig] => 112
                    [t] => 2000-01-01T00:01:00
                )

            [12] => stdClass Object
                (
                    [cat] => A
                    [act] => H
                    [dcd] => AA0
                    [ccd] => 810
                    [orig] => 8
                    [t] => 2013-08-17T19:59:00
                )

            [13] => stdClass Object
                (
                    [cat] => M
                    [act] => A
                    [dcd] => H05
                    [ccd] => 16
                    [orig] => 0
                    [t] => 2015-04-06T16:29:00
                )

        )

)


Das neue Skript sieht auch wieder super aus! Allerdings wird mein „H05“ jetzt nichtmehr unter unbekannte Meldungen abgelegt, sondern fälschlicherweise als „Kaltwasserfühler defekt“ angezeigt (sollte „hoher Zündverzug“ sein)

Alles kloa,

Bin dran, den Rest bekommen wir jetzt auch noch zusammen :smiley:

Also eines ist mir jetzt ersichtlich:
Woher das A am Anfang kommt wissen wir nicht, aber warum ausgerechnet die eine Meldung
A5L heißt kann ich dir jetzt sagen.
Weil die CAT A ist.
Wird als Anlagenfehler ausgegeben darum auch das AA0 bei Dir.
Anlagenfehler kommen bei Dir immer mit einem extra A :slight_smile:

Die anderen Fehler vom BC kommen ganz normal.

Interressant …

CAT „M“ könnte ich jetzt als Wartungsmeldung interpretieren?

Das mit den H Meldungen ist echt Mist.
Lt. Servicedoku sollte das die Fehlernummer 1015 sein und nicht 16 :eek:
Mal schaun was ich da machen kann.

Gruß
Manfred

Hallo Manni

Ich bin der Author, der bei den fhem Kollegen ebenfalls an den Modulen schreibt.

Im Augenblick beiße ich mir die Zähne an dem schreiben der „switchPrograms“ aus.

Hast du schon irgendwelche Fortschritte erzielen können?

Danke für die Info.

Hallo Manni,
vielen Dank für deine Arbeit.

Ich versuche mich gerade daran und finde einfach das folgende Script nicht. Wo krieg ich das den her?

// Parameter Verbindung
// ---------------------
    require_once( "SYS_Daten.ips.php" );   // Datenpool

Servus Rainer,

Das ist mein Skript in dem ich alle IP-Adressen, Benutzernamen, Passwörter etc. definiert habe.
Das kannst Du nicht finden, mein’s kriegst Du nicht :smiley:

Hinter AUT_KM200 verbirgt sich die IP vom KM200, die 192.168.10.166
Hinter KM_PRIVAT das Password für das KM200 welches man selbst definiert
Hinter KM_GATEWAY das Password auf dem Aufkleber


// Parameter Verbindung
// ---------------------
    $id = 32599 /*[System\Skripte\Buderus KM200\KM200 Key-Generator]*/; //wenn mit dem Modul gearbeitet wird.
    $ip = 192.168.10.166;
    $u_pass = meinPasswort;
    $g_pass = xxxx-xxxx-xxxx-xxxx;

Habe ich vergessen in der Beschreibung mit anzugeben sorry.
Gleich mal nachtragen.

Bei Parameter Verbindung musst Du das so eintragen wie Du das KM200 abfrägst.

Gruß
Manfred