www.mikrocontroller.net

Sparmatic Heizungsthermostate

Dieser Artikel sammelt Informationen zu den elektronischen Heizkörperthermostaten der Reihe "Sparmatic" (≙ "Thermy"). Eine Übersicht über verschiedene Modelle enthält der Artikel Heizungsthermostat.

Hersteller: Eurotronic

Inhaltsverzeichnis

[Bearbeiten] Forenthreads

Die in diesem Artikel gesammelten Informationen stammen aus folgenden Threads:


[Bearbeiten] Bezugsquellen und Preis

  • Baumarkt
  • Pollin
  • Aldi ("Thermy") - ca. €15
  • zeitweise auch in Lebensmittel-Ketten, wie Lidl, NP...

[Bearbeiten] Hardware

  • Controller: ATmega169(P)V, 16kBytes Flash, 1kByte SRAM, 512Byte EEPROM
  • Display: LCD mit 4x 14-Segmentanzeige, Bargraph und Symbolen
  • Uhrenquarz 32768Hz
  • Tasten und/oder Drehgeber
  • Motor und Getriebe zum Stellen des Heizkörperventils
  • Impulsgeber im / am Getriebe und Messung der Stromaufnahme des Motors
  • Temperatursensor NTC 100k @25°C
  • Comet: Pads für LEDs und Vorwiderstände zur LCD-Hintergrundbeleuchtung

[Bearbeiten] Modelle

Den Sparmatic gibt es in verschiedenen Ausführungen. Für Informationen in diesem Thread kann man die genannten Thermostate anhand der Beschaltung des Controllers in zwei Kategorien einteilen:

  1. Sparmatic Zero alt
  2. Sparmatic Zero neu, Comet, Thermy


[Bearbeiten] Basic

[Bearbeiten] Zero

Der Sparmatic Zero hat gleich zwei Versionen:

[Bearbeiten] Alt

Die alte Version ist mit Schrauben zu öffnen und hat hinter der Batterie einen Pin-Header für den JTAG des Controllers.

[Bearbeiten] Neu

Die neue Version hingegen ist mit Plastiknasen so verschlossen, dass er nach dem Öffnen nur mit Hilfsmitteln wieder fest verschließbar ist. Unter den Batterien sieht man jeweils hinter den Batteriekontakten 6 Testpads (2x3 Anordnung). Die Pads auf der Seite des "+" Batteriekontaktes enthalten dabei den JTAG des Controllers, die andere Seite unter anderem den ISP.

[Bearbeiten] Comet / Thermy

Der Sparmatic Comet hat nur drei Tasten, dafür einen zusätzlichen Drehimpulsgeber. Hiervon existieren baugleiche(?) Modelle, z.B. der bei Aldi verkaufte "Thermy".

[Bearbeiten] Sparmatic Zero v1

Dieser wurde bereits ausführlich im Forum diskutiert. Im folgenden Thread wurde eine alternative Firmware entwickelt: http://www.mikrocontroller.net/topic/160462 ("Alternative Firmware für Sparmatic Zero Heizungsthermostat")

Siehe auch http://www.mikrocontroller.net/topic/153235 ("Preisgünstiger Heizungsregler bei Praktiker").

[Bearbeiten] Sparmatic Zero v2 / Comet / Thermy

Die Entwicklung läuft noch. Aktuelle Informationen finden sich im Forum: http://www.mikrocontroller.net/topic/237375 ("Entwicklungen und Forschung um den Sparmatic Comet / Zero v2 Heizungsthermostat")

[Bearbeiten] Schaltpläne und Platinenaufnahmen

[Bearbeiten] Comet / Thermy

(Leopold B.): REV.0.1 COMET

Thermy (11/2011): REV.0.0 REG

Weitere Bilder: [1]

[Bearbeiten] Zero v2

(vorläufig) REV.0.0 REGZ

[Bearbeiten] Display

tabellarische Darstellung der einzelnen 14-Segment-Module:

Initialisierung des LCD Controllers wie in der Originalfirmware (Leopold B.):

LCDCRB = (1<<LCDCS) | (0<<LCD2B)
         | (1<<LCDMUX1) | (1<<LCDMUX0)
         | (1<<LCDPM2) | (1<<LCDPM1) | (1<<LCDPM0);
/*
      // Das LCD wird im asynchronen mit der Frequenz
      // des Quarzes TOSC1 = 32.768Hz als LCD Clock betrieben.
      (1<<LCDCS)Modus (LCDCS-Bit=1)
      // 1/3 bias is used                                               
      |(0<<LCD2B)
      // 1/4 Duty; COM0:3;
      |(1<<LCDMUX1) | (1<<LCDMUX0)
      // SEG0:24
      |(1<<LCDPM2) | (1<<LCDPM1) | (1<<LCDPM0);
*/
 
LCDFRR = (0<<LCDPS2)|(0<<LCDPS1)|(0<<LCDPS0)
         |(0<<LCDCD2)|(0<<LCDCD1)|(1<<LCDCD0);
/*
      (0<<LCDPS2)|(0<<LCDPS1)|(0<<LCDPS0)    // N = 16
      |(0<<LCDCD2)|(0<<LCDCD1)|(1<<LCDCD0);  // D = 2
      // ergo f(frame) = 128Hz
*/
 
LCDCCR = (1<<LCDDC2)|(0<<LCDDC1)|(0<<LCDDC0)
         |(/*config.lcd_contrast*/ 10 << LCDCC0);
/*
      // 575 µs
      (1<<LCDDC2)|(0<<LCDDC1)|(0<<LCDDC0)
      // Set the initial LCD contrast level
      |(config.lcd_contrast << LCDCC0);
*/
 
LCDCRA = (1<<LCDEN)|(1<<LCDAB)|(0<<LCDIE)|(0<<LCDBL);
/*
      (1<<LCDEN)    // Enable LCD
      |(1<<LCDAB)   // Low Power Waveform
      |(0<<LCDIE)   // disable Interrupt
      |(0<<LCDBL);  // No Blanking
*/

C-Routinen zur Ansteuerung der Segmente: http://www.mikrocontroller.net/topic/160462#1946692

[Bearbeiten] Tasten und Encoder

  • 3 Tasten (Menu / OK / Zeit)
  • 1 Encoder zum Einstellen der Temperatur/Werte (+/-)

[Bearbeiten] Versorgungsspannung

  • zwei Alkalibatterien (1,5 V) AA / Mignon / LR6
  • Erkennung des Ausfalls der Versorgung mittels: ____

[Bearbeiten] Stellmotor

[Bearbeiten] Motor und Getriebe

Gleichstrommotor mit etwa 1V Anlaufspannung. Leerlauf-Stromaufnahme: 20mA bei 3.2V, maximale Stromaufnahme: 120mA bei 3.2V und Stillstand.

Das Getriebe besteht aus 6 Stirnrädern und einer Trapezgewindestellschraube, die den Stössel des Heizkörperventils betätigt.

[Bearbeiten] Positionserkennung

Reflex-Lichtschranke, die auf das erste Getriebe-Stirnrad ausgerichtet ist. Dieses Stirnrad ist mit Reflektionsmarken oder Reflektionszapfen und Lücken ausgestattet. Durch Ausbleiben der Impulse bei Fahren an einen mechanischen Anschlag wird die innere Endposition festgestellt (Ventil voll geöffnet). Die äußere Endposition (Ventil voll geschlossen) wird durch den Ventilkopf bestimmt und liegt maximal etwa 380 "0/1"-Flanken von der inneren Endposition entfernt. Sie wird nicht durch einen mechanischen Anschlag begrenzt. Beim Fahren über die äußere Endposition (wenn der Thermostat nicht auf dem Ventilkopf sitzt) besteht die Gefahr, dass die Stellschraube aus dem Getriebe herausfällt.

[Bearbeiten] Stromaufnahme

An ADC2 (PF2) kann die Stromaufnahme des Motors gemessen werden. Der Shunt besitzt 2,2Ω, der maximale Spannungsabfall ist durch eine parallele Diode begrenzt. Leopold B. hat mal eine Stellfahrt oszillographiert:

[Bearbeiten] Programmieradapter

Eine Mini-B USB Buchse führt einige ISP Signale. Es ist keine USB-Schnittstelle; sie ist mit einem speziellen Adapter (und der original Firmware und PC-Software) zur Parametrierung vorgesehen. Die Standardbelegung der USB-Steckverbindung (http://de.wikipedia.org/wiki/USB#Farbkodierung_und_Pinouts, http://pinouts.ru/Slots/USB_pinout.shtml) ist jedoch nicht vollständig, so dass fertige USB-Kabel nicht ohne zusätzliche Arbeit zur Verbindung geeignet sind. Siehe Beiträge:

Auch bei Steckern als Einzelteil ist ein benötigter Kontakt nicht herausgeführt, so dass der Stecker auf jeden Fall bearbeitet werden muss.

[Bearbeiten] Pinbelegung

Nummerierung des Steckers, die Buchsen in den Schaltplänen oben sind ggf. andersherum beziffert.

1 VCC red   VCC
2 D-  white SCK
3 D+  green MOSI
4 ID  NC    MISO
5 GND black GND

Siehe auch http://www.mikrocontroller.net/topic/153235#2167058.

[Bearbeiten] ISP

Der AVR ISP ist wie folgt belegt (Anschluss auf der Platine, Ansicht von oben):

Bild:avr-isp-pinout.png

[Bearbeiten] Reset

Beim Zero ein Pad auf der Rückseite des PCBs, per Kontaktfeder zu erreichen.

  • PrgSteck2.jpg

[Bearbeiten] Funkmodul

Kabellose Steuerung per Funk mittels Funkmodul über SPI (RFM12). Huckepackplatine (Eagle) siehe Beitrag: http://www.mikrocontroller.net/topic/160462#2000152 und http://www.mikrocontroller.net/topic/153235#1584210

[Bearbeiten] Firmware

[Bearbeiten] Original

[Bearbeiten] V. X

[Bearbeiten] Features
[Bearbeiten] Bugs

[Bearbeiten] Alternativ

[Bearbeiten] travelrec

Alle Informationen aus dem ersten Post aus http://www.mikrocontroller.net/topic/160462. Änderungen noch nicht berücksichtigt!

[Bearbeiten] Fuses

Siehe Screenshots: http://www.mikrocontroller.net/topic/160462#1526589

[Bearbeiten] ISP-Verbindung

Beim ersten Verbinden mittels AVR-Studio oder einer anderen IDE sollte die ISP-Frequenz nicht höher als 20kHz sein, nach dem Aufbringen der neuen Firmware kann mit 100kHz weitergearbeitet werden. Der Programmer muß targetseitig auf 2.7V eingestellt werden können.

[Bearbeiten] Changelog
[Bearbeiten] Bedienung

Nach dem Flashen der neuen Firmware bzw. nach dem Einlegen der Batterien wird im Display "<<<<" angezeigt und der Ventilstößel fährt voll auf. Nach dem Anfahren des oberen Anschlags stoppt der Motor und "Open" wird angezeigt. Jetzt kann der Thermostat auf den Ventilkopf aufgeschraubt werden. Danach muß die mittlere Taste gedrückt werden. Jetzt fährt der Ventilstößel zu und stellt zuerst den äußeren, dann den inneren Anschlag des Heizkörperventils fest. Danach geht das Gerät in den Normalmodus, wobei eine fest eingestellte Komforttemperatur angewählt wird.

Um die Komforttemperatur umzuprogrammieren, drückt man 1x kurz auf die PROG-Taste. Das Sonnensymbol blinkt und mit der + oder - Taste kann der Wert in 0.5°C-Schritten verändert werden. Nach einem weiteren Druck auf die PROG-Taste kann man die Absenktemperatur umprogrammieren, wobei das Mond-Symbol blinkt. Wird über 10 Sekunden keine Taste gedrückt, werden die Einstellungen übernommen. Mit einem weiteren Druck auf die PROG-Taste gelangt man in den Programmiermodus für die Timer. Das Anzeigesymbol "PROG" erscheint. Es sind pro Wochentag 2 Timer mit jeweils Komfort- und Absenktemperatur vorhanden. Zwischenzeitlich blinkt kurz Px.x, wobei das linke x für den Wochentag 1->Montag bis 7->Sonntag und das rechte x für den ersten bzw. zweiten Timer für diesen Tag steht. Jeder weitere Druck auf die PROG-Taste schaltet einen Timer weiter. Nach den Timern folgt die Jahres-, Monats-, Tages-, Stunden- und Minuteneinstellung. Die Zeiteinstellung kann man jederzeit schnell über einen langen Druck >3sek. auf die PROG-Taste erreichen. Gespeichert werden alle Werte nach Rückkehr in den Normalmodus über fortwährendes Drücken der PROG-Taste oder mindestens 10-sekündiges Nichtdrücken irgendeiner Taste. Im Normalmodus kann man jederzeit mit der + oder - Taste die aktuelle Solltemperatur in 0.5°C-Schritten verändern. Mit der AUTO-Taste schaltet man zwischen Automatik (Anzeige "AUTO") oder manuellem Modus (Anzeige "MANU") um. Im manuellen Modus werden die eingestellten Timer ignoriert und die momentan eingestellte Solltemperatur beibehalten. Im Automatikmodus werden die programmierten Solltemperaturen gemäß den Timereinstellungen angefahren. Über die mittlere Taste kann jederzeit zwischen Komfort- und Absenktemperatur umgeschaltet werden, wenn man beispielsweise vor Ablauf eines Timers das Haus verläßt oder früher heimkehrt oder um im manuellen Modus die Solltemperatur direkt umzuschalten. Ein langer Druck auf die mittlere Taste aktiviert die Fenster-Offen-Funktion, die die Solltemperatur für 10 Minuten auf 12°C herabsetzt und danach den voreingestellten Wert wieder aufruft. Ein langer Druck auf die AUTO-Taste aktiviert den Debug-Modus, der mit einem langen Druck auf die AUTO-Taste wieder verlassen wird. Ein gleichzeitiger, langer Druck auf + und - führt eine erneute Ventilvermessung durch, wobei alle laufenden Einstellungen erhalten bleiben. Werden die Batterien leer, informiert ein 8-sekündliches, kurzes Aufblinken der Anzeige "batt" über diesen Zustand. Sind die Batterien am Ende, wird das Ventil definiert auf eine Position um etwa 30% Öffnung gefahren, um Einfrieren oder Überheizen zu verhindern. Zur Wiederaufnahme der Funktion sind dann frische Batterien einzulegen.


[Bearbeiten] Unterschiede zur Herstellerfirmware

Die wichtigsten Unterschiede der Alternativ-Firmware gegenüber des Originals sind:

[Bearbeiten] Unterstützt
  • Der Sparmatic Zero läuft mit AA-Batterien und -Akkus.
  • Die Umschaltung von Komfort- und Spartemperaur ist jederzeit durch einen einzigen Knopfdruck möglich.
  • Die Adaptierfunktion reißt bei vollen Batterien nicht unter Umständen das Gerät vom Ventilkopf (!).
  • Die Adaptierfunktion benötigt nur einen Durchlauf Offen -> Geschlossen.
  • Beim Batteriewechsel öffnet der Ventilstößel und verbleibt in der Offen-Stellung, bis eine Taste gedrückt wird, dies erleichtert die Wiedermontage auf dem Ventilkopf.
  • Statt der Soll-Temperatur werden im Normalzustand die Ist-Temperatur und die aktuelle Zeit angezeigt.
  • Die Fenster-Offen-Funktion ist nicht mehr automatisch, sondern manuell auszulösen - bei der Origialfirmware war diese Funktion zu empfindlich und löste mitunter willkürlich aus.
  • Batterie "fast leer"-Warnung, gelegenliches Blinken von "batt"
  • Batterie "leer"-Anzeige mit definierter Ventilposition, permanente Anzeige von "batt", keine weitere Funkion möglich
  • leicht geänderte Tastenbelegung und Menüführung
[Bearbeiten] Nicht unterstützt

Von der Originalfirmware unterstütze, hier aber (noch) nicht implementierte Funktionen:

  • 2 statt 4 Timerblöcke pro Tag
  • Keine Urlaubs-Funktion
  • Keine Blockprogrammierung Werktag / Wochenende bei den Timern
  • Kein Tastenschutz (Kindersicherung)
  • Keine Programmierbarkeit mit dem Sparmatic-USB-Stick

[Bearbeiten] tnework

[Bearbeiten] Xs

C

[Bearbeiten] Features
[Bearbeiten] Hardware
[Bearbeiten] Display
[Bearbeiten] Encoder/Tasten
[Bearbeiten] Temperatursensor
[Bearbeiten] Motoransteuerung und -strommessung
[Bearbeiten] Batterieerkennung

Bei allen Sparmatic-Modellen ist eine Batterie-Entnahme-Erkennung eingebaut. Diese ermöglicht es dem Controller, zu erkennen, ob die Batterien gerade entnommen wurden. Mit hoher Wahrscheinlichkeit wird dies in der Original-Firmware dazu benutzt, die aktuelle Zeit und das Datum im EEPROM abzuspeichern, bevor der Strom ausgeht. In der alternativen Firmware wird dieses Feature bislang nicht verwendet. Es ist aber für eine neue Version eingeplant. Um das Schaltsignal auswerten zu können, welches bei allen Reglern an Pin E0 anliegt, müssen im Sleep-Mode (PowerSave) des Controllers beide Motorsteuerpins und der Lichtschrankenversorgungspin auf 'Eingang, kein Pull-Up' geschaltet werden. Im Fall einer Batterieentnahme wechselt der Pegel an E0 von logisch 0 auf logisch 1. Der 100µF-Elko liefert dann noch für etwa 2 Sekunden Strom (Controller im PowerSave), bis die Spannung dann den kritischen Wert von 1.8V unterschreitet.

[Bearbeiten] Funkmodul
[Bearbeiten] Benutzerschnittstelle / Bedienung
[Bearbeiten] Regelung
[Bearbeiten] Zeitsteuerung
[Bearbeiten] Vernetzung

Funkmodul

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net