NEWS
UNSOLVED Fussbodenheizung
-
Hallo zusammen.
Ich fange gerade mit dem Thema erst an und habe mich gefragt, ob bei einer Fussbodenheizung eine Regelung wegen der Trägheit der Heizung überhaupt sinnvoll ist.
Danke für die Infos.
Gruss Alex
Gesendet von meinem Nexus 6P mit Tapatalk
-
Nein,
es wird keinerlei Energie sparen wenn man mal für ein paar Stunden aus dem Haus ist, die Aufheitsphase verbraucht dazu viel zu viel Energie.
eine eventuelle Nachtabsenkung wird sich ein bisschen rentieren aber die Sollte nicht mehr als 4K absenken.
Gruß Christian
-
Das ist aber generell so das die Aufheizphase viel Energie braucht, egal was für eine Art Heizung man verwendet.
Das es aber keine Energie spart kann man nicht sagen. Immerhin wird die (Fußboden-)Heizung bei erreichen der Temperatur zurück gefahren und bei unterschreiten wieder ein.
Gerade Wärmequellen die keine Herzfunktion haben über nehmen dann Quasi einen Teil des Heizens. Beispiele: Backofen, PC, (Licht), Sonneneinstrahlung
Außerdem Optimiert man den Verbrauch wenn man eine weitere Heizquelle nutzt wie z.B. einen Holzofen oder Infrarot.
Gesendet von meinem m8 mit Tapatalk
-
Ich danke euch für die Infos.
Welche Hardware kommt dafür Infrage? Habe bisher nur den Homematic Fussbodenheizung Aktor gesehen.
Gruss Alex
Gesendet von meinem Nexus 6P mit Tapatalk
-
Hier klinke ich mich mal ein
Ich nutze CONTROME http://www.controme.com
Abschalten macht sicherlich keinen Sinn. Aber ich habe mir die Temperaturen der einzelnen raumsensoren bereits gezogen für die Visualisierung. Leider weiß ich noch nicht wie ich Daten senden kann mit IOBROKER. Wenn ich das auch noch schaffen könnte dann wäre es möglich auch die Temperatur noch anzupassen, sollte sie mal nicht so stimmen … wobei dann wieder das Rhema Trägheit kommt ... ja ...
Das schöne ist, Controme hat eine API mit der man alles regeln kann ... http://support.controme.com/api/
Vielleicht kann mir ja jemand mal einen Schubs geben wie ich das schreiben mit IObroker in Controme realisieren kann ...
Vielleicht haben ja auch noch ein paar andere IOBroker's CONTROME am laufen und es lohnt sich einen Adapter zu machen
Viele Grüße,
Marc
-
Die Ventile für Fußbodenheizungen sind linear. Die Stellantriebe für die Ventile sind jedoch meistens einfache 2-Punkt-Steller. Das heißt, sie sind entweder (ganz) offen oder (ganz) geschlossen.
Die Ansteuerung erfolgt daher relativ einfach mit 12V oder 230V über ein Relais.
Intern arbeiten Sie meistens mit einer Wachsfüllung. Diese wird geschmolzen, dehnt sich aus und öffnet bzw. schließt dabei das Ventil.
Die Stellantriebe können dabei als NO (offen bei Aus) oder NC (geschlossen bei Aus) ausgeführt sein.
Daraus resultiert dann, dass der Regler als 2-Punkt-Regler ausgeführt werden muss https://de.wikipedia.org/wiki/Regler#Zweipunktregler
Unter Kenntnis der gesamten Vorgabe-Parameter (u.a. Vorlauf-Temperatur, Regelverzögerung, …) kann man dann auch den Regler (bzw. dessen Einstellung) passend parametrieren und optimieren (Regleranpassung). Das Stichwort hier heißt PWM https://de.wikipedia.org/wiki/Pulsweitenmodulation
Allerdings muss man dabei beachten, dass Änderungen der Vorgabe-Parameter (z.B. andere Vorlauftemperaturen, Außentemperatur, ...) zu einer Änderung des Regelverhaltens führen. Alternativ kann man natürlich auch dynamisch die Regler-Parameter ändern. Aber das ist dann schon die ganz hohe Kunst.
Bei Fußbodenheizungen hat man immer die Herausforderung, dass die Verzögerung sehr lange ist (vom Öffnen des Ventils bis zur Änderung der Temperatur). Das ist jedoch kein Grund, keinerlei Regelung aufzubauen. Auch hier gibt es immer eine Regelung.
Ich möchte nicht (mehr) in einer Wohnung leben, wo es keine Regelung der Heizkörper gibt. Denn dies würde bedeuten, dass es entweder zu heiß oder zu kalt, selten jedoch richtig temperiert ist.
-
Hallo,
ich klinke mich hier auch mal ein.
Ich habe eine Fußbodenheizung vor ca. 2 Jahren damals auf Homematic verwirklicht und bis heute läuft alles super.
Dazu habe ich im Wesentlichen die Wandregler (noch ohne IP) verwendet, da kann man eine Hysterese einstellen. Über diesen Wandregler werden 4 Relais geschaltet + 1 Relais für die Wasserpumpe. Sobald alle Ventile geschlossen sind, dann schaltet auch die Pumpe aus (das spart noch ein wenig Energie).
In der Summe ist es aber wichtig die Steuerung in der Homematic zu verwirklichen und nicht so sehr über den ioBroker. Die Homematic reagiert immer sofort, beim ioBroker hat man da systembedingt eine Latenzzeit von bis zu 30 Sekunden. Den ioBroker verwende ich eigentlich nur als Monitor und um die Temperatur der Thermostatregler einzustellen.
Inzwischen würde ich vermutlich auf die neuen IP-Regler zurückgreifen, die können die Stellglieder der Fußbodenheizung direkt ansteuern, dann spart man sich die Relais, die
a) teuer sind und
b) sich im Verteilerkasten befinden, dann spart man sich auch das Löten, da die Antenne der Relais aus dem Verteilerkasten herausgeführt werden muss, da sonst der Empfang zu schlecht ist.
Andreas
-
Hallo,
ich klinke mich hier auch mal ein.
Ich habe eine Fußbodenheizung vor ca. 2 Jahren damals auf Homematic verwirklicht und bis heute läuft alles super.
Dazu habe ich im Wesentlichen die Wandregler (noch ohne IP) verwendet, da kann man eine Hysterese einstellen. Über diesen Wandregler werden 4 Relais geschaltet + 1 Relais für die Wasserpumpe. Sobald alle Ventile geschlossen sind, dann schaltet auch die Pumpe aus (das spart noch ein wenig Energie).
In der Summe ist es aber wichtig die Steuerung in der Homematic zu verwirklichen und nicht so sehr über den ioBroker. Die Homematic reagiert immer sofort, beim ioBroker hat man da systembedingt eine Latenzzeit von bis zu 30 Sekunden. Den ioBroker verwende ich eigentlich nur als Monitor und um die Temperatur der Thermostatregler einzustellen.
Inzwischen würde ich vermutlich auf die neuen IP-Regler zurückgreifen, die können die Stellglieder der Fußbodenheizung direkt ansteuern, dann spart man sich die Relais, die
a) teuer sind und
b) sich im Verteilerkasten befinden, dann spart man sich auch das Löten, da die Antenne der Relais aus dem Verteilerkasten herausgeführt werden muss, da sonst der Empfang zu schlecht ist.
c) dem Duty Cycle kommt es auch zu Gute
Unabhängig gilt bei einer Fussbodenheizung immer wenig zu regeln. Ein Absenken der Temperatur von z.B. 22°C auf 16°C dan hat man dann schnell 24 Stunden und mehr vor sich bis dann wieder eine angenehme Raumtemeperatur erreicht wird. Eine Fußbodeneheizung insb. wenn Sie bei geringen Vorlauftemp. betrieben wird ist ein extrem träges System. Selbst bei einer Temp von 19°C auf 22°C dauert mehrere Stunden.
Andreas
-
Danke dir.
Gesendet von meinem Mi A2 Lite mit Tapatalk
-
Imho macht es grundsätzlich wenig Sinn ständig an den thermostaten rum zu stellen. Egal ob analog oder über hm.
Die Anschaffung der Hm Teile ist dafür auch sehr teuer. Dann reicht es eigentlich ein paar Thermometer zu haben.
Einziger Sinn macht es nur wenn die Therme den Fußboden als Puffer nehmen kann wenn zum Beispiel eine Pv Anlage dran hängt. Ist bei mir so, da kann ich bei pv Überschuss die Vorgabe entsprechend überheizen. Und genau da brauche ich die Möglichkeit der HM, weil die analogen Thermostate sonst zu machen würden. Da haben die Firmen einfach mal nicht weiter gedacht.
Das muss aber jeder selbst entscheiden, ist ja auch immer etwas Spaß dabei.
Aber 1000€ auszugeben um die Wärmepumpe durcheinander zu bringen macht keinen Sinn.
Einziger Raum wäre der wo ein Kamin steht, denn da wird der Boden für mehrere Stunden kalt bleiben und kann auch wider kosten das aufzuheizen.
Stell lieber die Zirkulation Pumpe ab wenn du sie nicht brauchst. Das kostet auch Geld das Wasser nachzuheizen.
-
Wäre ja nicht so das die Suche hier helfen würde ;-))
viewtopic.php?f=21&t=10111 … nur so als Beispiel
-
@meicker Womit bekommst du die Werte aus Controme in den iobroker? Das wäre für mich interessant. Werte setzen brauche ich eher nicht.
Gruß
Jens
-
@chesterw83 @meicker Hallo in die Runde - das würde mich auch sehr interessieren.
Grüße
-
Ich habe es so gemacht - Mit Hilfe damals Wenn Du den Link hinter const aufrufst bekommst Du die Daten als JSON. Eigentlich hab ich alles nützliche drin ...
const request = require('request'); const link_kueche = 'http://192.168.1.xx/get/json/v1/1/temps/1/'; const link_schlafzimmer = 'http://192.168.1.xx/get/json/v1/1/temps/2/'; const link_wohnzimmer = 'http://192.168.1.xx/get/json/v1/1/temps/3/'; const link_abstellkammer = 'http://192.168.1.xx/get/json/v1/1/temps/4/'; const link_badezimmer = 'http://192.168.1.xx/get/json/v1/1/temps/5/'; const link_flur = 'http://192.168.1.xx/get/json/v1/1/temps/6/'; const link_arbeitszimmer = 'http://192.168.1.xx/get/json/v1/1/temps/7/'; const link_esszimmer = 'http://192.168.1.xx/get/json/v1/1/temps/8/'; const link_hkv = 'http://192.168.1.xx/get/json/v1/1/temps/9/'; const link_vsensor1 = 'http://192.168.1.xx/get/json/v1/1/temps/10/'; // Datenpunkte erzeugen //Küche createState('Controme.kueche.frt_temp', 0, {type: "number", unit: '°C'}); createState('Controme.kueche.rl_temp', 0, {type: "number", unit: '°C'}); createState('Controme.kueche.frt_akt', 0, {type: "string", unit: ''}); createState('Controme.kueche.rl_akt', 0, {type: "string", unit: ''}); createState('Controme.kueche.solltemperatur', 0, {type: "number", unit: '°C'}); //Schlafzimmer createState('Controme.schlafzimmer.frt_temp', 0, {type: "number", unit: '°C'}); createState('Controme.schlafzimmer.rl_temp', 0, {type: "number", unit: '°C'}); createState('Controme.schlafzimmer.frt_akt', 0, {type: "string", unit: ''}); createState('Controme.schlafzimmer.rl_akt', 0, {type: "string", unit: ''}); createState('Controme.schlafzimmer.solltemperatur', 0, {type: "number", unit: '°C'}); createState('Controme.schlafzimmer.totaloffset', 0, {type: "number", unit: '°C'}); //Wohnzimmer createState('Controme.wohnzimmer.frt_temp', 0, {type: "number", unit: '°C'}); createState('Controme.wohnzimmer.balkon_rl_temp', 0, {type: "number", unit: '°C'}); createState('Controme.wohnzimmer.mitte_rl_temp', 0, {type: "number", unit: '°C'}); createState('Controme.wohnzimmer.frt_akt', 0, {type: 'string', unit: ''}); createState('Controme.wohnzimmer.rl_akt', 0, {type: 'string', unit: ''}); createState('Controme.wohnzimmer.solltemperatur', 0, {type: "number", unit: '°C'}); createState('Controme.wohnzimmer.totaloffset', 0, {type: "number", unit: '°C'}); //Abstellkammer createState('Controme.abstellkammer.frt_temp', 0, {type: 'number', unit: '°C'}); createState('Controme.abstellkammer.rl_temp', 0, {type: 'number', unit: '°C'}); createState('Controme.abstellkammer.frt_akt', 0, {type: 'string', unit: ''}); createState('Controme.abstellkammer.rl_akt', 0, {type: 'string', unit: ''}); createState('Controme.abstellkammer.solltemperatur', 0, {type: "number", unit: '°C'}); //Badezimmer createState('Controme.badezimmer.frt_temp', 0, {type: 'number', unit: '°C'}); createState('Controme.badezimmer.rl_temp', 0, {type: 'number', unit: '°C'}); createState('Controme.badezimmer.frt_akt', 0, {type: 'string', unit: ''}); createState('Controme.badezimmer.rl_akt', 0, {type: 'string', unit: ''}); createState('Controme.badezimmer.solltemperatur', 0, {type: "number", unit: '°C'}); //Flur createState('Controme.flur.frt_temp', 0, {type: 'number', unit: '°C'}); createState('Controme.flur.rl_temp', 0, {type: 'number', unit: '°C'}); createState('Controme.flur.frt_akt', 0, {type: 'string', unit: ''}); createState('Controme.flur.rl_akt', 0, {type: 'string', unit: ''}); createState('Controme.flur.solltemperatur', 0, {type: "number", unit: '°C'}); //Arbeitszimmer createState('Controme.arbeitszimmer.frt_temp', 0, {type: 'number', unit: '°C'}); createState('Controme.arbeitszimmer.rl_temp', 0, {type: 'number', unit: '°C'}); createState('Controme.arbeitszimmer.frt_akt', 0, {type: 'string', unit: ''}); createState('Controme.arbeitszimmer.rl_akt', 0, {type: 'string', unit: ''}); createState('Controme.arbeitszimmer.solltemperatur', 0, {type: "number", unit: '°C'}); createState('Controme.arbeitszimmer.totaloffset', 0, {type: "number", unit: '°C'}); //Esszimmer createState('Controme.esszimmer.frt_temp', 0, {type: 'number', unit: '°C'}); createState('Controme.esszimmer.rl_temp', 0, {type: 'number', unit: '°C'}); createState('Controme.esszimmer.frt_akt', 0, {type: 'string', unit: ''}); createState('Controme.esszimmer.rl_akt', 0, {type: 'string', unit: ''}); createState('Controme.esszimmer.solltemperatur', 0, {type: "number", unit: '°C'}); //HKV createState('Controme.hkv.vl_temp', 0, {type: 'number', unit: '°C'}); createState('Controme.hkv.rl_temp', 0, {type: 'number', unit: '°C'}); createState('Controme.hkv.vl_akt', 0, {type: 'string', unit: ''}); createState('Controme.hkv.rl_akt', 0, {type: 'string', unit: ''}); //Virtueller Sensor createState('Controme.wohnung.vsensor1_temp', 0, {type: 'number', unit: '°C'}); function controme_kueche() { request(link_kueche, function(error,response, body) { if(error) log('Fehler request: ' + error, 'error'); else if(body.indexOf('html') == -1) { log(body); var sensoren = JSON.parse(body)[0].sensoren; var solltemp = JSON.parse(body)[0]; var rl_temp = sensoren[0].wert; setState('Controme.kueche.rl_temp', Math.round(10*rl_temp)/10, true); var frt_temp = sensoren[1].wert.Temperatur; setState('Controme.kueche.frt_temp', Math.round(10*frt_temp)/10, true); var rl_akt = sensoren[0].letzte_uebertragung; setState('Controme.kueche.rl_akt', rl_akt, true); var frt_akt = sensoren[1].letzte_uebertragung; setState('Controme.kueche.frt_akt', frt_akt, true); var soll = solltemp.solltemperatur; setState('Controme.kueche.solltemperatur', Math.round(10*soll)/10, true); } }); } function controme_schlafzimmer() { request(link_schlafzimmer, function(error,response, body) { if(error) log('Fehler request: ' + error, 'error'); else if(body.indexOf('html') == -1) { log(body); var sensoren = JSON.parse(body)[0].sensoren; var solltemp = JSON.parse(body)[0]; var rl_temp = sensoren[0].wert; setState('Controme.schlafzimmer.rl_temp', Math.round(10*rl_temp)/10, true); var frt_temp = sensoren[1].wert.Temperatur; setState('Controme.schlafzimmer.frt_temp', Math.round(10*frt_temp)/10, true); var rl_akt = sensoren[0].letzte_uebertragung; setState('Controme.schlafzimmer.rl_akt', rl_akt, true); var frt_akt = sensoren[1].letzte_uebertragung; setState('Controme.schlafzimmer.frt_akt', frt_akt, true); var offset = solltemp.total_offset; setState('Controme.schlafzimmer.totaloffset', offset, true); var soll = solltemp.solltemperatur + solltemp.total_offset; setState('Controme.schlafzimmer.solltemperatur', Math.round(10*soll)/10, true); } }); } function controme_wohnzimmer() { request(link_wohnzimmer, function(error,response, body) { if(error) log('Fehler request: ' + error, 'error'); else if(body.indexOf('html') == -1) { log(body); var sensoren = JSON.parse(body)[0].sensoren; var solltemp = JSON.parse(body)[0]; var rl_temp = sensoren[0].wert; setState('Controme.wohnzimmer.balkon_rl_temp', Math.round(10*rl_temp)/10, true); var rl_temp1 = sensoren[1].wert; setState('Controme.wohnzimmer.mitte_rl_temp', Math.round(10*rl_temp1)/10, true); var frt_temp = sensoren[2].wert.Temperatur; setState('Controme.wohnzimmer.frt_temp', Math.round(10*frt_temp)/10, true); var rl_akt = sensoren[0].letzte_uebertragung; setState('Controme.wohnzimmer.rl_akt', rl_akt, true); var frt_akt = sensoren[1].letzte_uebertragung; setState('Controme.wohnzimmer.frt_akt', frt_akt, true); var offset = solltemp.total_offset; setState('Controme.wohnzimmer.totaloffset', offset, true); var soll = solltemp.solltemperatur + solltemp.total_offset; setState('Controme.wohnzimmer.solltemperatur', Math.round(10*soll)/10, true); } }); } function controme_abstellkammer() { request(link_abstellkammer, function(error,response, body) { if(error) log('Fehler request: ' + error, 'error'); else if(body.indexOf('html') == -1) { log(body); var sensoren = JSON.parse(body)[0].sensoren; var solltemp = JSON.parse(body)[0]; var rl_temp = sensoren[0].wert; setState('Controme.abstellkammer.rl_temp', Math.round(10*rl_temp)/10, true); var frt_temp = sensoren[1].wert; setState('Controme.abstellkammer.frt_temp', Math.round(10*frt_temp)/10, true); var rl_akt = sensoren[0].letzte_uebertragung; setState('Controme.abstellkammer.rl_akt', rl_akt, true); var frt_akt = sensoren[1].letzte_uebertragung; setState('Controme.abstellkammer.frt_akt', frt_akt, true); var soll = solltemp.solltemperatur; setState('Controme.abstellkammer.solltemperatur', Math.round(10*soll)/10, true); } }); } function controme_badezimmer() { request(link_badezimmer, function(error,response, body) { if(error) log('Fehler request: ' + error, 'error'); else if(body.indexOf('html') == -1) { log(body); var sensoren = JSON.parse(body)[0].sensoren; var solltemp = JSON.parse(body)[0]; var rl_temp = sensoren[0].wert; setState('Controme.badezimmer.rl_temp', Math.round(10*rl_temp)/10, true); var frt_temp = sensoren[1].wert.Temperatur; setState('Controme.badezimmer.frt_temp', Math.round(10*frt_temp)/10, true); var rl_akt = sensoren[0].letzte_uebertragung; setState('Controme.badezimmer.rl_akt', rl_akt, true); var frt_akt = sensoren[1].letzte_uebertragung; setState('Controme.badezimmer.frt_akt', frt_akt, true); var soll = solltemp.solltemperatur; setState('Controme.badezimmer.solltemperatur', Math.round(10*soll)/10, true); } }); } function controme_flur() { request(link_flur, function(error,response, body) { if(error) log('Fehler request: ' + error, 'error'); else if(body.indexOf('html') == -1) { log(body); var sensoren = JSON.parse(body)[0].sensoren; var solltemp = JSON.parse(body)[0]; var rl_temp = sensoren[0].wert; setState('Controme.flur.rl_temp', Math.round(10*rl_temp)/10, true); var frt_temp = sensoren[1].wert.Temperatur; setState('Controme.flur.frt_temp', Math.round(10*frt_temp)/10, true); var rl_akt = sensoren[0].letzte_uebertragung; setState('Controme.flur.rl_akt', rl_akt, true); var frt_akt = sensoren[1].letzte_uebertragung; setState('Controme.flur.frt_akt', frt_akt, true); var soll = solltemp.solltemperatur; setState('Controme.flur.solltemperatur', Math.round(10*soll)/10, true); } }); } function controme_arbeitszimmer() { request(link_arbeitszimmer, function(error,response, body) { if(error) log('Fehler request: ' + error, 'error'); else if(body.indexOf('html') == -1) { log(body); var sensoren = JSON.parse(body)[0].sensoren; var solltemp = JSON.parse(body)[0]; var rl_temp = sensoren[0].wert; setState('Controme.arbeitszimmer.rl_temp', Math.round(10*rl_temp)/10, true); var frt_temp = sensoren[1].wert.Temperatur; setState('Controme.arbeitszimmer.frt_temp', Math.round(10*frt_temp)/10, true); var rl_akt = sensoren[0].letzte_uebertragung; setState('Controme.arbeitszimmer.rl_akt', rl_akt, true); var frt_akt = sensoren[1].letzte_uebertragung; setState('Controme.arbeitszimmer.frt_akt', frt_akt, true); //var soll = solltemp.solltemperatur; //setState('Controme.arbeitszimmer.solltemperatur', Math.round(10*soll)/10, true); var offset = solltemp.total_offset; setState('Controme.arbeitszimmer.totaloffset', offset, true); var soll = solltemp.solltemperatur + solltemp.total_offset; setState('Controme.arbeitszimmer.solltemperatur', Math.round(10*soll)/10, true); } }); } function controme_esszimmer() { request(link_esszimmer, function(error,response, body) { if(error) log('Fehler request: ' + error, 'error'); else if(body.indexOf('html') == -1) { log(body); var sensoren = JSON.parse(body)[0].sensoren; var solltemp = JSON.parse(body)[0]; var rl_temp = sensoren[0].wert; setState('Controme.esszimmer.rl_temp', Math.round(10*rl_temp)/10, true); var frt_temp = sensoren[1].wert.Temperatur; setState('Controme.esszimmer.frt_temp', Math.round(10*frt_temp)/10, true); var rl_akt = sensoren[0].letzte_uebertragung; setState('Controme.esszimmer.rl_akt', rl_akt, true); var frt_akt = sensoren[1].letzte_uebertragung; setState('Controme.esszimmer.frt_akt', frt_akt, true); var soll = solltemp.solltemperatur; setState('Controme.esszimmer.solltemperatur', Math.round(10*soll)/10, true); } }); } function controme_hkv() { request(link_hkv, function(error,response, body) { if(error) log('Fehler request: ' + error, 'error'); else if(body.indexOf('html') == -1) { log(body); var sensoren = JSON.parse(body)[0].sensoren; var vl_temp = sensoren[0].wert; setState('Controme.hkv.vl_temp', Math.round(10*vl_temp)/10, true); var rl_temp = sensoren[1].wert; setState('Controme.hkv.rl_temp', Math.round(10*rl_temp)/10, true); var vl_akt = sensoren[0].letzte_uebertragung; setState('Controme.hkv.vl_akt', vl_akt, true); var rl_akt = sensoren[1].letzte_uebertragung; setState('Controme.hkv.rl_akt', rl_akt, true); } }); } function controme_vsensor1() { request(link_vsensor1, function(error,response, body) { if(error) log('Fehler request: ' + error, 'error'); else if(body.indexOf('html') == -1) { log(body); var sensoren = JSON.parse(body)[0].sensoren; var vsensor_temp = sensoren[0].wert; setState('Controme.wohnung.vsensor1_temp', Math.round(10*vsensor_temp)/10, true); } }); } function alledaten() { controme_kueche(); controme_schlafzimmer(); controme_wohnzimmer(); controme_abstellkammer(); controme_badezimmer(); controme_flur(); controme_arbeitszimmer(); controme_esszimmer(); controme_hkv(); controme_vsensor1(); } schedule('*/1 * * * *', alledaten); // alle 15 Minuten