Fußbodenheizung - Steuerung/Infrarotheizung-Steuerung

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Xel66
Beiträge: 14165
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 585 Mal
Danksagung erhalten: 1500 Mal

Re: Fußbodenheizung - Steuerung/IR-Heizung-Steuerung

Beitrag von Xel66 » 03.01.2018, 11:48

ich sage nur das es mit einer PWM BESSER erledigt wird, als mit Bimetall oder Wandthermostat allein. Und wenn man nur Homematic Komponenten allein einsetzen will (nicht HMIP, nicht CUXD etc),
geht das halt nur per Script.[/quote]
PWM geht logischerweise nur per Script oder eben FAL. In warum sollte eine simple Steuerung, bei der ein Bimetall oder auch direktverknüpftes Wandthermostat reichen würde, durch Dein Script verbessert werden?
twoxx hat geschrieben: Dann werde doch mal konkret.
Beschreib ein Szenario beispielsweise bei einer Fußbodenheizung in welchem ein Stellantrieb NC mit ERR eingesetzt wird und bei welchem meine Homematic-Steuerung NICHT eingesetzt werden kann.
Das habe ich zwar schon mehrfach gemacht, aber noch mal zum Mitmeißeln. Deine Lösung kann in vielen Szenarien eingesetzt werden, ist aber in einer großen Anzahl von Installationen (bei denen der Heizungsbauer seinen Job gut getan hat) überflüssig und treibt den Installations- und Konfiguratinsaufwand hoch. In Systemen mit niedriger Vorlauftemperatur, wie es bei allen Wärmepumpenanlagen der Fall ist, kann/wird eine eine PWM-Steuerung den Energieverbrauch in die Höhe treiben. Und wenn keine PWM wie im beschiebenen Szenario zum Einsatz kommt, dann ist eine Steuerung mit PWM-Implementation schlichtweg überflüssig.

Gruß Xel66
Zuletzt geändert von Xel66 am 03.01.2018, 12:16, insgesamt 1-mal geändert.
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

twoxx
Beiträge: 534
Registriert: 16.03.2015, 18:57
Hat sich bedankt: 1 Mal
Danksagung erhalten: 26 Mal

Re: Fußbodenheizung - Steuerung/IR-Heizung-Steuerung

Beitrag von twoxx » 03.01.2018, 11:54

Xel66 hat geschrieben:
twoxx hat geschrieben: Dann werde doch mal konkret.
Beschreib ein Szenario beispielsweise bei einer Fußbodenheizung in welchem ein Stellantrieb NC mit ERR eingesetzt wird und bei welchem meine Homematic-Steuerung NICHT eingesetzt werden kann.
Das habe ich zwar schon mehrfach gemacht, aber noch mal zum Mitmeißeln. Deine Lösung kann in vielen Szenarien eingesetzt werden, ist aber in einer großen Anzahl von Installationen (bei denen der Heizungsbauer seinen Job gut getan hat) überflüssig und treibt den Installations- und Konfiguratinsaufwand hoch. In Systemen mit niedriger Vorlauftemperatur, wie es bei allen Wärmepumpenanlagen der Fall ist, kann/wird eine eine PWM-Steuerung den Energieverbrauch in die Höhe treiben. Und wenn keine PWM wie im beschiebenen Szenario zum Einsatz kommt, dann ist eine Steuerung mit PWM-Implementation schlichtweg überflüssig.

Gruß Xel66
Ich habe nicht gefragt für welche Szenarien DU meine Lösung als ÜBERFLÜSSIG siehst. Denn was Du als überflüssig ansiehst oder nicht, ist Deine eigene Sache und hat nichts mit der Zur-Verfügung-Stellung meiner Lösung hier im Forum zu tun. Es dürfen hier auch Lösungen angeboten werden die DU als überflüssig ansiehst.

Ich habe gefragt für welche Szenarien einer FBH mit ERR die von mir entwickelte Homematic-Lösung nicht eingesetzt werden kann.
- Charly - Raspymatic mit Redmatic, 420 Systemvariablen, 440 Programmen, 101 Direktverknüpfungen, 121 Geräten
- CCU3- Raspymatic mit Redmatic und Verbindung zur PV-Anlage/Wechselrichter
- Charly - Raspymatic mit Redmatic und Sprachsteuerung per Alexa

Xel66
Beiträge: 14165
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 585 Mal
Danksagung erhalten: 1500 Mal

Re: Fußbodenheizung - Steuerung/IR-Heizung-Steuerung

Beitrag von Xel66 » 03.01.2018, 12:27

twoxx hat geschrieben:Ich habe gefragt für welche Szenarien einer FBH mit ERR die von mir entwickelte Homematic-Lösung nicht eingesetzt werden kann.
Es geht nicht um's können, sondern um den unnötigen und überflüssigen Einsatz einer Scriptlösung in Anwendungsszenarien, die einer solchen Lösung nicht bedürfen. Und eine PWM-Steuerung kann sogar den Energieverbrauch erhöhen.

Ich kann auch zum Briefkasten um die Häuserecke mit dem Auto fahren, weil es geht. Ich kann aber auch die 50 Meter zu Fuß gehen. Der Effekt ist gleich (der Brief eingeworfen), aber der Zeit- und Energieeinsatz unnötig hoch. Und genau so ist es bei einem unreflektierten Einsatz Deiner Lösung. Der Aufwand ist gegenüber der direktverknüpften Standardlösung im beschriebenen Szenario hoch und der Effekt null bis sogar potenziell negativ. Spätestens dann, wenn ein unbedarfter Anwender anfängt, an der Vorlauftemperatur zu drehen, weil es durch die PWM-Pausen nicht mehr ausreichend warm wird.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

twoxx
Beiträge: 534
Registriert: 16.03.2015, 18:57
Hat sich bedankt: 1 Mal
Danksagung erhalten: 26 Mal

Re: Fußbodenheizung - Steuerung/IR-Heizung-Steuerung

Beitrag von twoxx » 03.01.2018, 12:56

Xel66 hat geschrieben:
twoxx hat geschrieben:Ich habe gefragt für welche Szenarien einer FBH mit ERR die von mir entwickelte Homematic-Lösung nicht eingesetzt werden kann.
Es geht nicht um's können, sondern um den unnötigen und überflüssigen Einsatz einer Scriptlösung in Anwendungsszenarien, die einer solchen Lösung nicht bedürfen. Und eine PWM-Steuerung kann sogar den Energieverbrauch erhöhen.

Ich kann auch zum Briefkasten um die Häuserecke mit dem Auto fahren, weil es geht. Ich kann aber auch die 50 Meter zu Fuß gehen. Der Effekt ist gleich (der Brief eingeworfen), aber der Zeit- und Energieeinsatz unnötig hoch. Und genau so ist es bei einem unreflektierten Einsatz Deiner Lösung. Der Aufwand ist gegenüber der direktverknüpften Standardlösung im beschriebenen Szenario hoch und der Effekt null bis sogar potenziell negativ. Spätestens dann, wenn ein unbedarfter Anwender anfängt, an der Vorlauftemperatur zu drehen, weil es durch die PWM-Pausen nicht mehr ausreichend warm wird.

Gruß Xel66
Nochmal: Was DU persönlich als überflüssig oder unnötig empfindest ist DEINE Sache.
Meine Arbeit hier als überflüssig darzustellen ist unangebracht. In diesem Forum geht es um die Darstellung von technischen Lösungen und jeder muß für sich selbst entscheiden
was für ihn sinnvoll ist oder nicht. Da Du meine Lösung selbst nicht ausprobiert hast, kannst Du auch nichts dazu sagen welchen Effekt meine Homematic-Lösung TATSÄCHLICH hat.
Allein schon Deine Aussage das es durch die PWM Pausen nicht ausreichend warm werden kann und dann vielleicht automatisch an der Vorlauftemperatur gedreht wird zeigt, das Du Dich
mit meiner Lösung nicht ausreichend beschäftigt hast. Auf der ersten Seite meines Threads wird genau beschrieben, wie die Parameter meiner Lösung in solchen Fällen und anderen Fällen anzupassen sind OHNE an der Vorlauftemperatur zu schrauben. Und jemand der meine Lösung umgesetzt hat, hat mit Sicherheit auch die erste Seite des Threads gelesen und kennt damit die Einstellungsmöglichkeiten der Parameter. Du unterstellst immer noch, das es sich bei meiner Lösung um eine Variante der PWM handelt, die Dir bekannt ist. Meine Arbeit beinhaltet jedoch noch weitere Faktoren, die Du offensichtlich nicht kennst und die sich Dir wahrscheinlich erschließen würden, wenn Du meine Arbeit ausprobiert hättest.

In meinem Thread und in diesem Forum hat jeder die Möglichkeit Fragen zu stellen und so etwaige Wissenslücken zu schliessen, um das jeweilige Projekt für SICH SELBST SINNVOLL umzusetzen.
Und das kann in vielen Fällen davon abweichen was DU als sinnvoll ansiehst.
Auch "unbedarfte Anwender" (wie Du es nennst) haben die Möglichkeit durch Fragen etwaige Wissenslücken zu schliessen. Und dabei sind sie nicht allein von Dir abhängig und von dem was Du als sinnvoll ansiehst.
- Charly - Raspymatic mit Redmatic, 420 Systemvariablen, 440 Programmen, 101 Direktverknüpfungen, 121 Geräten
- CCU3- Raspymatic mit Redmatic und Verbindung zur PV-Anlage/Wechselrichter
- Charly - Raspymatic mit Redmatic und Sprachsteuerung per Alexa

Xel66
Beiträge: 14165
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 585 Mal
Danksagung erhalten: 1500 Mal

Re: Fußbodenheizung - Steuerung/IR-Heizung-Steuerung

Beitrag von Xel66 » 03.01.2018, 14:07

twoxx hat geschrieben:Meine Arbeit hier als überflüssig darzustellen ist unangebracht.
Du verstehst mich hier vorsätzlich mis. Es geht nicht darum, Deine Arbeit niederzumachen. Das liegt mir fern. Es geht mir um den technischen Hintergrund. Deine Umsetzung ist recht gut gemacht und gedacht, aber eben nicht die Lösung für alle Anforderungen.

Das ist ähnlich dem Thread bezügöich der Scriptsteuerung der Heizkörperthermostate. Letztenendes hat diese Script nur die von Hersteller im den aktuellen Geräten bereits implementierte Profilsteuerung nachgebaut. Das Script hatte mit den alten Wandthermostaten seinen Anwendungszweck. Bei den neuen war es schlichtweg überflüssig, wurde aber trotzdem mit Zähnen und Klauen verteidigt. Neueinsteiger, die eben erfahrungsgemäß meist sowohl die Anfängerthreads, sowie das GUI-Handbuch und die mitgelieferten Anleitungen missachten, haben den Eindruck erhalten, dass die Nutzung der Scriptlösung Voraussetzung für einen Betrieb an der CCU ist und haben die ressourcenschonende autarke Implementierung der Profilsteuerung mangels Kenntnis nicht benutzt.

Die Tatsache, dass der diesbezügliche Thread und die Lösung so langsam im Nirvana des Forums verschwindet, gibt mir bei diesem Standpunkt Recht.
twoxx hat geschrieben: In diesem Forum geht es um die Darstellung von technischen Lösungen und jeder muß für sich selbst entscheiden
was für ihn sinnvoll ist oder nicht.
100% ACK. Zu Information gehört aber auch eben der technische Hintergrund und die Randbedingungen, die in Deiner Anleitung eben etwas kurz gekommen sind. Neuanwender lesen hier nur Deine Anleitung und sind der Meinung, dass sie genau das brauchen, weil sie es eben mangels technischen Hintergrundes noch nicht anders beurteilen können. Potenziell können sie somit auch das Gegenteil (Energieverschwendung bei Wärmepumpen) erreichen. Und um um diese technische Aufklärung geht es mir.
twoxx hat geschrieben: Da Du meine Lösung selbst nicht ausprobiert hast, kannst Du auch nichts dazu sagen welchen Effekt meine Homematic-Lösung TATSÄCHLICH hat.
Ich brauch mir auch nicht mit einem Hammer auf den Daumen zu schlagen um zu wissen, dass es wehtut. Bestimmte Sachverhalte kann man auf Basis von Erfahrungen und Ausbildung beantworten. Wärmetranspotmechanismen gehören zu meinem beruflichen Background, bin aber kein Heizungsbauer.
twoxx hat geschrieben: Allein schon Deine Aussage das es durch die PWM Pausen nicht ausreichend warm werden kann und dann vielleicht automatisch an der Vorlauftemperatur gedreht wird zeigt, das Du Dich
mit meiner Lösung nicht ausreichend beschäftigt hast.
Ersteres sind physikalische Grundlagen und zweiteres ist die logische Konsequenz, die sich aus dem beobachteten Verhalten für den Anwender ergibt.
twoxx hat geschrieben: Auf der ersten Seite meines Threads wird genau beschrieben, wie die Parameter meiner Lösung in solchen Fällen und anderen Fällen anzupassen sind OHNE an der Vorlauftemperatur zu schrauben.
Aber eben ohne die Hinweise auf mögliche Nebenwirkungen in bestimmten Konstellationen. Und der Einsatz von Wärmepumpen wir immer verbreiteter.
twoxx hat geschrieben: Du unterstellst immer noch, das es sich bei meiner Lösung um eine Variante der PWM handelt,..
Nö, Du beschreibst es so. Und welches Faktoren ich kenne, weiß ich wohl am besten. Und die Folgen einer zyklischen Unterbrechung der Wärmezufuhr kann jeder selbst bewerten.
twoxx hat geschrieben:In meinem Thread und in diesem Forum hat jeder die Möglichkeit Fragen zu stellen und so etwaige Wissenslücken zu schliessen,...
Da niemand weiß was er nicht weiß, kann er eben auch nicht gezielt danach fragen. Und die technischen Hintergrundinformationen und Entscheidungshilfen kamen in Deiner Darstellung etwas kurz.
twoxx hat geschrieben:.. davon abweichen was DU als sinnvoll ansiehst.
Es geht nicht darum, was ich irgendwie ansehe und schon gar nicht um mich, sondern um reine technische Fakten. Nicht mehr und nicht weniger. Zieh es bitte nicht ständig auf die persönliche Ebene. Ich beziehe mich ausschließlich auf technische Sachverhalte.

Gruß Xel66
Zuletzt geändert von Xel66 am 03.01.2018, 14:58, insgesamt 1-mal geändert.
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

twoxx
Beiträge: 534
Registriert: 16.03.2015, 18:57
Hat sich bedankt: 1 Mal
Danksagung erhalten: 26 Mal

Re: Fußbodenheizung - Steuerung/IR-Heizung-Steuerung

Beitrag von twoxx » 03.01.2018, 14:47

Xel66 hat geschrieben:
twoxx hat geschrieben:Meine Arbeit hier als überflüssig darzustellen ist unangebracht.
Du verstehst mich hier vorsätzlich mis. Es geht nicht darum, Deine Arbeit niederzumachen. Das liegt mir fern. Es geht mir um den technischen Hintergrund.

Warum benutzt Du dann Vokabeln wie "überflüssig" und "unnötig" und bewertest damit die hier dargestellte Lösung? Eine Bewertung ist hier im Forum nicht angebracht.
Bewerten muß jeder für sich selbst.

Xel66 hat geschrieben:
twoxx hat geschrieben: Da Du meine Lösung selbst nicht ausprobiert hast, kannst Du auch nichts dazu sagen welchen Effekt meine Homematic-Lösung TATSÄCHLICH hat.
Ich brauch mir auch nicht mit einem Hammer auf den Daumen zu schlagen um zu wissen, dass es wehtut. Bestimmte Sachverhalte kann man auf Basis von Erfahrungen und Ausbildung beantworten. Wärmetranspotmechanismen gehören zu meinem beruflichen Background, bin aber kein Heizungsbauer.
Nochmal: Wenn Du die Funktionsweise meiner Arbeit hier nicht ausreichend kennst, dann unterlasse irgendwelche Spekulationen aufgrund Deines "Erfahrungsschatzes".

Xel66 hat geschrieben:
twoxx hat geschrieben: Auf der ersten Seite meines Threads wird genau beschrieben, wie die Parameter meiner Lösung in solchen Fällen und anderen Fällen anzupassen sind OHNE an der Vorlauftemperatur zu schrauben.
Aber eben ohne die Hinweise auf mögliche Nebenwirkungen in bestimmten Konstellationen. Und der Einsatz von Wärmepumpen wir immer verbreiteter.
Auch das Thema Wärmepumpe habe ich entsprechend im Thread angesprochen.
Xel66 hat geschrieben:
twoxx hat geschrieben:.. davon abweichen was DU als sinnvoll ansiehst.
Es geht nicht darum, was ich irgendwie ansehe und schon gar nicht um mich, sondern um reine technische Fakten. Nicht mehr und nicht weniger. Zieh es bitte nicht ständig auf die persönliche Ebene. Ich beziehe mich ausschließlich auf technische Sachverhalte.

Jetzt widersprichst Du Dir selbst. Im vorigen Post hast Du noch geschrieben, dass es Dir genau darum geht, das DU diese Lösung als nicht sinnvoll ansiehst, obwohl ich
dich gebeten habe rein technische Szenarien zu beschreiben in welchem meine Lösung nicht funktioniert.
Und du bist derjenige der statt diese technischen Szenarien zu beschreiben, dann mittels Vokabeln wie "unnötig" und "überflüssig" Bewertungen abgibt- die gar nicht gefragt sind.
Das solltest Du einfach unterlassen, denn DU hast nicht zu bewerten ob und wann eine Lösung sinnvoll ist und wann nicht. Das muß jeder für sich selbst tun:
Xel66 hat geschrieben: twoxx hat geschrieben:
Ich habe gefragt für welche Szenarien einer FBH mit ERR die von mir entwickelte Homematic-Lösung nicht eingesetzt werden kann.
Xel66 hat geschrieben: Es geht nicht um's können, sondern um den unnötigen und überflüssigen Einsatz einer Scriptlösung in Anwendungsszenarien, die einer solchen Lösung nicht bedürfen. Und eine PWM-Steuerung kann sogar den Energieverbrauch erhöhen.

Für mich ist das Thema jetzt beendet, ich habe alles gesagt was es für mich zu sagen gibt.
- Charly - Raspymatic mit Redmatic, 420 Systemvariablen, 440 Programmen, 101 Direktverknüpfungen, 121 Geräten
- CCU3- Raspymatic mit Redmatic und Verbindung zur PV-Anlage/Wechselrichter
- Charly - Raspymatic mit Redmatic und Sprachsteuerung per Alexa

Xel66
Beiträge: 14165
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 585 Mal
Danksagung erhalten: 1500 Mal

Re: Fußbodenheizung - Steuerung/IR-Heizung-Steuerung

Beitrag von Xel66 » 04.01.2018, 18:38

twoxx hat geschrieben:Warum benutzt Du dann Vokabeln wie "überflüssig" und "unnötig" und bewertest damit die hier dargestellte Lösung?
Ich habe nicht die Lösung als solche so bezeichnet, sondern deren Einsatz in Systemen, die einer solchen Lösung nicht bedürfen. Die Systeme und technischen Begleitumstände habe ich mehrfach genau umrissen. Dein Gegenargument war: "wenn es der Anwender einsetzen will". Nun, der Wille ist des Anwenders Himmelreich. Genau so kann man auch Eskimos Kühlschränke und Scheichs Streusand verkaufen.
twoxx hat geschrieben: Nochmal: Wenn Du die Funktionsweise meiner Arbeit hier nicht ausreichend kennst, dann unterlasse irgendwelche Spekulationen aufgrund Deines "Erfahrungsschatzes".
Was berechtigt Dich, anderen (mir) den Mund zu verbieten? Vielleicht interessiert die geneigten Mitleser auch mal ein technischer Background. Coden kannst Du. Das hast Du schon bewiesen, und weiter?
twoxx hat geschrieben:Jetzt widersprichst Du Dir selbst.
Nö, mit dieser Formulierung kennzeichne ich meine freie Meinungsäußerung. Ein mir im Grundgesetz verbrieftes Grundrecht. Siehe auch oben. Aus dieser Meinungsäußerung kann jeder seine eigenen Informationen ziehen.
twoxx hat geschrieben:...obwohl ich
dich gebeten habe rein technische Szenarien zu beschreiben in welchem meine Lösung nicht funktioniert.
Habe ich, bereits mehrfach und ich wiederhole mich nicht noch einmal.
twoxx hat geschrieben: Und du bist derjenige der statt diese technischen Szenarien zu beschreiben, dann mittels Vokabeln wie "unnötig" und "überflüssig" Bewertungen abgibt- die gar nicht gefragt sind.
Das solltest Du einfach unterlassen, ...
Nochmal, es steht Dur nicht zu, mir irgenwelche Vorschriften zu machen. Du hast eine Lösung, und suchst krampfhaft ein Problem dazu. Ein Einsatz Deiner Lösung in Umgebungen, die dieser nicht bedürfen, ist aber genau das: nicht notwendig (Huch, eine weitere Bezeichnung für den gleichen Sachverhalt). Es mag Anwendungsszenarien geben, aber der erste Weg wäre, die technischen Randbedingungen (Vorlauftemperatur) zu optimieren. Deine Lösung ist vergleichbar, die Geschwindigkeit eines Autos auf gerader Strecke anstatt mit dem Gaspedal durch zusätzliches Bremsen zu regulieren. Das hat vergleichbare Nebenwirkungen. Das ist aber wohl nur zielführend, wenn es gar nicht anders geht.

Machen wir es mal andersrum. Lege mal einen einzigen nachvollziehbaren Grund (außer "weil der Anwender es will") dar, warum ein Anwender Dein Script in obig beschrieben Szenario einsetzen sollte, wenn die Mechanismen innerhalb des Scripts aus physikalischen Gründen gar nicht greifen können. Er verkompliziert seine Steuerung damit nur und macht sich gegenüber einer Direktverknüpfung nur von einer laufenden CCU abhängig. Was wäre der Nutzen/Sinn/Vorteil?
twoxx hat geschrieben: Für mich ist das Thema jetzt beendet, ich habe alles gesagt was es für mich zu sagen gibt.
Schön, es ist ja auch schon mehrfach alles geschrieben. Der geneigte Anwender mag sich seine eigenen Gedanken machen und Dein Script einsetzen oder auch nicht (wenn er es denn will).

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

maestrone
Beiträge: 3
Registriert: 13.11.2017, 09:42

Re: Fußbodenheizung - Steuerung/IR-Heizung-Steuerung

Beitrag von maestrone » 05.03.2018, 15:31

Hallo Twoxx

Danke für das wirklich gute Stück Software - danach suche ich schon sehr lange und lass dich nicht vom Weg abbringen...

Habe das ganze nun am vergangenen Wochenende umgesetzt (Wechsel von CCU1 auf CCU2, inkl. den wired Anpassungen), Auslöser war ein Teildefekt der restlichen Heizungssteuerung.

Ich beschreibe nun wie ich das ganze umgesetzt habe: HM Schaltaktor auf Digitaleingang der UVR die den gesamten Heizkreis des Hauses mit deinem Script ein bzw. ausschaltet. Resultat: Grandios!

Gestern war einer dieser Tage die früher meine Hütte zum kochen gebracht hat (nachts und morgens tiefe Aussentemperaturen, ab 9 Uhr starke, konstante und flache Sonneneinstrahlung). Dein Code hat das einwandfrei ausgebügelt und unter Anbetracht, dass viele Parameter noch nicht perfekt eingestellt sind wirklich erstaunlich gut. Überlege mir die ganze UVR komplett zu eliminieren und alles mit HM zu regeln (mit 1-Wire als Tempsensoren und CUXD als VL-Temp Mischersteuerung), damit ich besser auf die VL-Temperatur Einfluss nehmen kann.

Einziger Wermutstropfen: Ich musste die VL Temperatur leicht erhöhen. Ausgelegt war diese auf Dauerbetrieb des Heizkreises auf Wunschtemperatur. Durch das Takten deines Scriptes konnte die Wunschtemperatur nicht erreicht werden. Diese Erhöhung ist gegen die optimale Betriebsweise der Wärmepumpe.

Das macht Hunger auf mehr, meine Vorstellungen:
- Eine Intelligenz, die die Betriebsparameter selbständig erlernt und laufend überprüft
- Den Einbezug von Meteo-Vorhersagen für die Findung einer möglichst tiefen VL Temperatur und die dynamische Findung des unteren Arbeitspunktes
- Die Berechnung des optimalen Umschaltzeitpunkt von Normal- zur Absenktemperatur und umgekehrt, eventuell auch unter Einbezug der Meteo-Vorhersagen

An dieser Stelle, nochmals ein grosses Dankeschön an dich - wirklich grosses Kino!

Grüsse aus der Schweiz

S

GT2006
Beiträge: 58
Registriert: 17.02.2015, 20:00

Re: Fußbodenheizung - Steuerung/IR-Heizung-Steuerung

Beitrag von GT2006 » 05.03.2018, 16:57

Moin,

nun möchte ich mich hier auch einmal einklinken.

Vor 2,5 Jahren, als wir ins Haus einzogen, hatte ich mir fest vorgenommen, die FB mit Stellantrieben und Wandthermostaten (HM-Classic) zu installieren. Und dann kam immer etwas dazwischen, so dass bis heute noch nichts umgesetzt wurde.

Jetzt beschäftige ich mich seit einigen Wochen wieder mit dem Thema und bin auf diesen Thread gestossen.

Meine FB läuft eigentlich ganz gut. Montag bis Freitag läuft sie von 5:30 bis 8:00 und dann wieder von 14 Uhr bis 18 Uhr, restliche Zeit in der Nachtabsenkung. Die Temperatur, auch bei -12 Grad Aussentemperatur sind vollkommen in Ordnung und schwanken zwischen 19 Grad und 20,5 Grad. Genau so möchten wir es haben. Am Wochenende läuft die FB von 6 Uhr bis 18 Uhr, restliche Zeit wieder Nachtabsenkung.

Weil eben die FB eigentlich ganz gut läuft, habe ich dann auch wieder von der Idee, der Steuerung mit Stellantrieben, Abstand genommen.

Da ich aber an den sehr sonnigen, sehr kalten Tagen zu Hause im Homeoffice war, ist mir aufgefallen, wieviel Energie die Sonne dann doch hat. Die Räume mit direkter Sonneneinstrahlung hatten quasi sofort 2 bis 3 Grad mehr. Meine Heizung im Keller hat natürlich weiter fleissig geheizt.

Also, nun doch wieder Einzelraumsteuerung ?

Nun gut, ich werde es mal ausprobieren, vorhanden sind ja Aktoren und Stellantriebe sowie Wandthermostate, die WTs sind sowieso schon installiert.

Die Aussentemperatur kann ich mir per BSB-Lan von der Zentralheizung abgreifen, siehe hier: viewtopic.php?f=47&t=33564 , ich habe also VOLLZUGRIFF auf meine Gasheizung.

MEINE FRAGE:
Würde es Sinn machen, der Gasheizung meine Raumtemperaturen zu übermitteln ? Oder würde ich dann zusammen mit dieser FB-Lösung eine ÜBER-Regelung verursachen ?
Wie ist Eure Einschätzung ?

Gruss
Jan

twoxx
Beiträge: 534
Registriert: 16.03.2015, 18:57
Hat sich bedankt: 1 Mal
Danksagung erhalten: 26 Mal

Re: Fußbodenheizung - Steuerung/IR-Heizung-Steuerung

Beitrag von twoxx » 05.03.2018, 21:28

maestrone hat geschrieben:Hallo Twoxx

Danke für das wirklich gute Stück Software - danach suche ich schon sehr lange und lass dich nicht vom Weg abbringen...

Habe das ganze nun am vergangenen Wochenende umgesetzt (Wechsel von CCU1 auf CCU2, inkl. den wired Anpassungen), Auslöser war ein Teildefekt der restlichen Heizungssteuerung.

Ich beschreibe nun wie ich das ganze umgesetzt habe: HM Schaltaktor auf Digitaleingang der UVR die den gesamten Heizkreis des Hauses mit deinem Script ein bzw. ausschaltet. Resultat: Grandios!

Gestern war einer dieser Tage die früher meine Hütte zum kochen gebracht hat (nachts und morgens tiefe Aussentemperaturen, ab 9 Uhr starke, konstante und flache Sonneneinstrahlung). Dein Code hat das einwandfrei ausgebügelt und unter Anbetracht, dass viele Parameter noch nicht perfekt eingestellt sind wirklich erstaunlich gut. Überlege mir die ganze UVR komplett zu eliminieren und alles mit HM zu regeln (mit 1-Wire als Tempsensoren und CUXD als VL-Temp Mischersteuerung), damit ich besser auf die VL-Temperatur Einfluss nehmen kann.

Einziger Wermutstropfen: Ich musste die VL Temperatur leicht erhöhen. Ausgelegt war diese auf Dauerbetrieb des Heizkreises auf Wunschtemperatur. Durch das Takten deines Scriptes konnte die Wunschtemperatur nicht erreicht werden. Diese Erhöhung ist gegen die optimale Betriebsweise der Wärmepumpe.

Das macht Hunger auf mehr, meine Vorstellungen:
- Eine Intelligenz, die die Betriebsparameter selbständig erlernt und laufend überprüft
- Den Einbezug von Meteo-Vorhersagen für die Findung einer möglichst tiefen VL Temperatur und die dynamische Findung des unteren Arbeitspunktes
- Die Berechnung des optimalen Umschaltzeitpunkt von Normal- zur Absenktemperatur und umgekehrt, eventuell auch unter Einbezug der Meteo-Vorhersagen

An dieser Stelle, nochmals ein grosses Dankeschön an dich - wirklich grosses Kino!

Grüsse aus der Schweiz

S


Hallo Maestrone,

vielen Dank für Deine anerkennenden Worte!

Ich werde Deine Vorschläge am kommenden Wochenende näher betrachten.

Zu Deiner aktuellen Situation:

Du schreibst, dass Deine gewöhnliche VL-Temperatur so niedrig ist, dass die Solltemperatur nicht erreicht wird.

Du möchtest auch, dass die Stellantriebe bei "Ist-Temperatur = Solltemperatur" geöffnet sind und bleiben.

Ich habe für Deine Fälle das Script hier abgewandelt. Leider kann ich es momentant nicht testen, weshalb ich Dich bitten möchte den Test bei Dir durchzuführen.

Code: Alles auswählen

!--------Steuerung Fussbodenheizung
    !----- RaumreglerEGBuro und Aktor identifizieren
    string RaumreglerEGBuro = "BidCos-RF.XXXXXXXXXXX";
    string AktorEGBuro = "BidCos-RF.XXXXXXXXXXXX";
    string AktorkanalEGBuro ="XXX";
    !----Ausführintervall Script und diverses festlegen
    dom.GetObject("SicherheitsheizzeitEGBuro").State(240.000); !---- Heizzeit, falls errechnete Heizzeit im Minus
    dom.GetObject("SchaltschwelleniedertempEGBuro").State(190.000); !--- Sofern errechnete Schaltzeit kleiner, dann nicht einschalten
    dom.GetObject("SchaltschwellehochtempEGBuro").State(190.000); !---- Sofern errechnete Schaltzeit kleiner, dann nicht einschalten
    dom.GetObject("ScriptwiederholungEGBuromax").State(5.0); !-----------Wiederholung des Scripts bis Wärmeerhaltung
    dom.GetObject("ScriptwiederholungEGBuroHeizzeit").State(241.0); !---- Heizzeit bei Wärmeerhaltung
    !----- Temperaturen feststellen
    dom.GetObject("isttemperaturEGBuro").State((0.0000 + dom.GetObject(RaumreglerEGBuro#":2.ACTUAL_TEMPERATURE").Value()));
    dom.GetObject("solltemperaturEGBuro").State((0.0000 + dom.GetObject(RaumreglerEGBuro#":2.SET_TEMPERATURE").Value()));
    var schaltzustandEGBuro = dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".STATE").Value();
    !------ GrenzTemperaturen berechnen
    dom.GetObject("hochtempEGBuro").State((0.000 + dom.GetObject("solltemperaturEGBuro").Value() + 0.5));
    dom.GetObject("toleranzniederEGBuro").State(1.0);
    dom.GetObject("niedertempEGBuro").State((0.000 + dom.GetObject("solltemperaturEGBuro").Value() - dom.GetObject("toleranzniederEGBuro").Value()));
    dom.GetObject("hochstillEGBuro").State((0.000 + dom.GetObject("solltemperaturEGBuro").Value() + 0.1));
    dom.GetObject("niederstillEGBuro").State((0.000 + dom.GetObject("solltemperaturEGBuro").Value() - 0.2));
    dom.GetObject("toleranzEGBuro").State((0.000 + dom.GetObject("hochtempEGBuro").Value() - dom.GetObject("niedertempEGBuro").Value()));
    dom.GetObject("EGBuroFBTempDiff2").State(dom.GetObject("EGBuroFBTempDiff").Value());
    if ((dom.GetObject("EGBuroFBTempDiff").Value()) <= 0.000)
    {
    dom.GetObject("EGBuroFBTempDiff").State(0.010);
    WriteLine("TempDiff kleiner gleich 0"); WriteLine(dom.GetObject("EGBuroFBTempDiff").Value());
    }
    else
    {
    WriteLine ("TempfDiff größer 0"); WriteLine(dom.GetObject("EGBuroFBTempDiff").Value());
    }
    !---------------------- Einschaltzeit berechnen -----------------
    if ((dom.GetObject("isttemperaturEGBuro").Value()) <= (dom.GetObject("solltemperaturEGBuro").Value()))
    {
    WriteLine("Isttemperatur kleinergleich solltemperatur");
    dom.GetObject("heizleistungEGBuro").State((0.0000 + ((((dom.GetObject("solltemperaturEGBuro").Value() + 0.2000) - dom.GetObject("isttemperaturEGBuro").Value()) / dom.GetObject("toleranzEGBuro").Value()) * 100.0000)));
    dom.GetObject("heizzeit1EGBuro").State((0.0000 + ((dom.GetObject("ScriptintervallEGBuro").Value() * dom.GetObject("heizleistungEGBuro").Value()) / 100.0000)));
    dom.GetObject("einschaltzeitvergleichtempEGBuro").State((0.0000 + ((dom.GetObject("EGBuroFBTempDiff").Value() * dom.GetObject("heizzeit1EGBuro").Value()) / dom.GetObject("EGBuroDiffStartEndHeizzeit").Value())))
    dom.GetObject("OrigHeizEGBuro").State(dom.GetObject("heizzeit1EGBuro").Value());
    if (((dom.GetObject("toleranzEGBuro").Value() * dom.GetObject("heizleistungEGBuro").Value()) / 100.0000) >= dom.GetObject("einschaltzeitvergleichtempEGBuro").Value())
    {
    WriteLine("heizzeit im original übernommen"); dom.GetObject("heizzeitEGBuro").State((dom.GetObject("heizzeit1EGBuro").Value() * 60.0000));
    }
    else
    {
    WriteLine("reduzierte heizzeit übernommen");
    dom.GetObject("tempdifferenzkalkrealEGBuro").State((0.0000 + (dom.GetObject("einschaltzeitvergleichtempEGBuro").Value() - ((dom.GetObject("toleranzEGBuro").Value() * dom.GetObject("heizleistungEGBuro").Value()) / 100.0000))));
    dom.GetObject("reduzierungszeitEGBuro").State(0.0000 + ((dom.GetObject("tempdifferenzkalkrealEGBuro").Value() * dom.GetObject("EGBuroDiffStartEndHeizzeit").Value()) / dom.GetObject("EGBuroFBTempDiff").Value()));
    dom.GetObject("neueheizzeitEGBuro").State((0.0000 + (dom.GetObject("heizzeit1EGBuro").Value() - dom.GetObject("reduzierungszeitEGBuro").Value())));
    if (dom.GetObject("neueheizzeitEGBuro").Value() <= 0.0000)
    {
    dom.GetObject("heizzeitEGBuro").State((0.0000 + dom.GetObject("SicherheitsheizzeitEGBuro").Value())); WriteLine("sicherheitshalber 4 Minuten heizen");
    }
    else
    {
    dom.GetObject("heizzeitEGBuro").State((0.0000 + (dom.GetObject("neueheizzeitEGBuro").Value() * 60.0000))); WriteLine("neueheizzeit übernommen");
    }
    }
    }
    else
    {
    WriteLine("Isttemperatur größer solltemperatur");
    dom.GetObject("heizleistungEGBuro").State((0.0000 + (((dom.GetObject("hochtempEGBuro").Value() - dom.GetObject("isttemperaturEGBuro").Value()) / dom.GetObject("toleranzEGBuro").Value()) * 100.0000)));
    dom.GetObject("heizzeit1EGBuro").State((0.0000 + ((dom.GetObject("ScriptintervallEGBuro").Value() * dom.GetObject("heizleistungEGBuro").Value()) / 100.0000)));
    dom.GetObject("einschaltzeitvergleichtempEGBuro").State((0.0000 + (dom.GetObject("EGBuroFBTempDiff").Value() * dom.GetObject("heizzeit1EGBuro").Value() / dom.GetObject("EGBuroDiffStartEndHeizzeit").Value())));
    dom.GetObject("OrigHeizEGBuro").State(dom.GetObject("heizzeit1EGBuro").Value());
    if (((dom.GetObject("toleranzEGBuro").Value() * dom.GetObject("heizleistungEGBuro").Value()) / 100.0000) >= dom.GetObject("einschaltzeitvergleichtempEGBuro").Value())
    {
    WriteLine("heizzeit im original übernommen"); dom.GetObject("heizzeitEGBuro").State((dom.GetObject("heizzeit1EGBuro").Value() * 60));
    }
    else
    {
    WriteLine("reduzierte heizzeit übernommen");
    dom.GetObject("tempdifferenzkalkrealEGBuro").State(0.0000 + (dom.GetObject("einschaltzeitvergleichtempEGBuro").Value() - ((dom.GetObject("toleranzEGBuro").Value() * dom.GetObject("heizleistungEGBuro").Value()) / 100.0000)));
    dom.GetObject("reduzierungszeitEGBuro").State(0.0000 + ((dom.GetObject("tempdifferenzkalkrealEGBuro").Value() * dom.GetObject("EGBuroDiffStartEndHeizzeit").Value()) / dom.GetObject("EGBuroFBTempDiff").Value()));
    dom.GetObject("neueheizzeitEGBuro").State(0.0000 + (dom.GetObject("heizzeit1EGBuro").Value() - dom.GetObject("reduzierungszeitEGBuro").Value()));
    if (dom.GetObject("neueheizzeitEGBuro").Value() <= 0.0000)
    {
    dom.GetObject("heizzeitEGBuro").State(0.0000 + dom.GetObject("SicherheitsheizzeitEGBuro").Value()); WriteLine("sicherheitshalber 4 Minuten heizen");
    }
    else
    {
    dom.GetObject("heizzeitEGBuro").State(0.0000 + (dom.GetObject("neueheizzeitEGBuro").Value() * 60.0000)); WriteLine("neueheizzeit übernommen");
    }
    }
    }
    !-----------------------Heizzeit in Systemvariable schreiben
    dom.GetObject("EGBuroFBEinschaltzeit").State(dom.GetObject("heizzeitEGBuro").Value());
    dom.GetObject("EGBuroFBeinschaltzeitvergleichtemp").State(dom.GetObject("einschaltzeitvergleichtempEGBuro").Value());

    !------------------- Künftige Temperatur bei doppelter Schaltzeit vorausrechnen
    dom.GetObject("tempvorausrechnungEGBuro").State(0.0000 + ((dom.GetObject("EGBuroFBTempDiff2").Value() * (dom.GetObject("ScriptintervallEGBuro").Value() * 2.000) / dom.GetObject("EGBuroDiffStartEndHeizzeit").Value())));
    dom.GetObject("NeueisttemperaturEGBuro").State(0.0000 + dom.GetObject("isttemperaturEGBuro").Value() + dom.GetObject("tempvorausrechnungEGBuro").Value());
    !--------------TEST Temperaturen anzeigen
    !----- Schaltungen ausführen
    if ((dom.GetObject("isttemperaturEGBuro").Value() < dom.GetObject("hochtempEGBuro").Value()) && (dom.GetObject("isttemperaturEGBuro").Value() > dom.GetObject("niedertempEGBuro").Value()))
     {
    if ((dom.GetObject("EGBuroFBVergleichTemp").Value() == dom.GetObject("isttemperaturEGBuro").Value()) && (dom.GetObject("isttemperaturEGBuro").Value() > dom.GetObject("solltemperaturEGBuro").Value()))
    {
    dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value()); WriteLine("Ist = Vergleichstemperatur");
    if (schaltzustandEGBuro == "true")
       {
        WriteLine("ist eingeschaltet und soll ausgeschaltet sein"); dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".STATE").State(0); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
        }
        else
        {
         WriteLine("ist ausgeschaltet und soll ausgeschaltet sein"); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
         }
    }
    else
    {
     WriteLine("innerhalb toleranz"); dom.GetObject("EGBuroFBTempIstinToleranz").State(true);
      if ((dom.GetObject("isttemperaturEGBuro").Value() <= dom.GetObject("hochstillEGBuro").Value()) && (dom.GetObject("isttemperaturEGBuro").Value() >= dom.GetObject("niederstillEGBuro").Value()))
      {
       WriteLine("innerhalb stille");

	   if ((dom.GetObject("isttemperaturEGBuro").Value() <= dom.GetObject("solltemperaturEGBuro").Value()) )
{
	   if (schaltzustandEGBuro == "true")
       {
        WriteLine("ist eingeschaltet und soll eingeschaltet sein"); dom.GetObject("EGBuroFBTempIstinToleranz").State(true); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
        }
        else
        {
         WriteLine("ist eingeschaltet und soll eingeschaltet sein"); dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".ON_TIME").State(36000); dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".STATE").State(1); dom.GetObject("EGBuroFBTempIstinToleranz").State(true); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
         }
	   }
else	    
	{   
        if (schaltzustandEGBuro == "true")
       {
        WriteLine("ist eingeschaltet und soll ausgeschaltet sein"); dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".STATE").State(0); dom.GetObject("EGBuroFBTempIstinToleranz").State(true); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
        }
        else
        {
         WriteLine("ist ausgeschaltet und soll ausgeschaltet sein"); dom.GetObject("EGBuroFBTempIstinToleranz").State(true); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
         }
}
		 }
       else
       {
       WriteLine("ausserhalb stille");
       if (dom.GetObject("isttemperaturEGBuro").Value() < dom.GetObject("niederstillEGBuro").Value())
       {
        if (dom.GetObject("heizzeitEGBuro").Value() < dom.GetObject("SchaltschwelleniedertempEGBuro").Value())
        {
        WriteLine("Schaltzeit zu klein");dom.GetObject("EGBuroFBTempIstinToleranz").State(true);
        if (schaltzustandEGBuro == "true")
        {
        WriteLine("ist eingeschaltet und soll eingeschaltet sein"); dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".ON_TIME").State(36000); dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".STATE").State(1); dom.GetObject("EGBuroFBTempIstinToleranz").State(true); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
        }
        else
        {
         WriteLine("ist ausgeschaltet und soll eingeschaltet sein"); dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".ON_TIME").State(36000); dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".STATE").State(1);dom.GetObject("EGBuroFBTempIstinToleranz").State(true); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
         }
        }
        else
        {
        WriteLine("kleiner niederstill"); dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".ON_TIME").State(36000); dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".STATE").State(1); dom.GetObject("EGBuroFBTempIstinToleranz").State(true); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
        }
       }
        else
        {
        if (dom.GetObject("EGBuroFBVergleichTemp").Value() < dom.GetObject("isttemperaturEGBuro").Value())
        {
        dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value()); WriteLine("über hochstill gestiegen");
        if (schaltzustandEGBuro == "true")
        {
        WriteLine("ist eingeschaltet und soll ausgeschaltet sein"); dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".STATE").State(0); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
        }
        else
        {
         WriteLine("ist ausgeschaltet und soll ausgeschaltet sein"); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
         }
         }
        else
        {
        if (dom.GetObject("heizzeitEGBuro").Value() < dom.GetObject("SchaltschwellehochtempEGBuro").Value())
        {
        WriteLine("Schaltzeit zu klein"); dom.GetObject("EGBuroFBTempIstinToleranz").State(true);
        if (schaltzustandEGBuro == "true")
       {
        WriteLine("ist eingeschaltet und soll ausgeschaltet sein"); dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".STATE").State(0); dom.GetObject("EGBuroFBTempIstinToleranz").State(true); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
        }
        else
        {
         WriteLine("ist ausgeschaltet und soll ausgeschaltet sein"); dom.GetObject("EGBuroFBTempIstinToleranz").State(true); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
         }
        }
        else
        {
         WriteLine("größer als hochstill"); dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".ON_TIME").State(dom.GetObject("heizzeitEGBuro").Value()); dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".STATE").State(1); dom.GetObject("EGBuroFBTempIstinToleranz").State(true); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
         }
         }
       }
      }
    }
    }
    else
      {
      if (dom.GetObject("isttemperaturEGBuro").Value() >= dom.GetObject("hochtempEGBuro").Value())
      {
      WriteLine("Isttemperatur größer als hochtemp");
      if (schaltzustandEGBuro == "true")
       {
        if (dom.GetObject("NeueisttemperaturEGBuro").Value() <= dom.GetObject("solltemperaturEGBuro").Value())
        {
         WriteLine("Neue Isttemp kleiner gleich Solltemperatur");
         WriteLine("ist eingeschaltet und soll eingeschaltet sein");
         dom.GetObject("EGBuroFBTempIstinToleranz").State(false); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
         }
         else
         {
         WriteLine("Neue Isttemp grösser Solltemperatur");
         WriteLine("ist eingeschaltet und soll ausgeschaltet sein"); dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".STATE").State(0); dom.GetObject("EGBuroFBTempIstinToleranz").State(false); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
         }
        }
        else
        {
        if (dom.GetObject("NeueisttemperaturEGBuro").Value() <= dom.GetObject("solltemperaturEGBuro").Value())
        {
         WriteLine("Neue Isttemp kleiner gleich Solltemperatur");
         WriteLine("ist ausgeschaltet und soll eingeschaltet sein");
    dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".ON_TIME").State(36000);
         dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".STATE").State(1); dom.GetObject("EGBuroFBTempIstinToleranz").State(false); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
    dom.GetObject("EGBuroFBEinschaltzeit").State(888);
         }
         else
         {
         WriteLine("Neue Isttemp grösser Solltemperatur");
         WriteLine("ist ausgeschaltet und soll ausgeschaltet sein"); dom.GetObject("EGBuroFBTempIstinToleranz").State(false); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
         }
         }
      }
      else
      {
       if (dom.GetObject("isttemperaturEGBuro").Value() == dom.GetObject("niedertempEGBuro").Value())
      {
       if (schaltzustandEGBuro == "true")
       {
        if (dom.GetObject("NeueisttemperaturEGBuro").Value() >= dom.GetObject("niederstillEGBuro").Value())
        {
         WriteLine("Neue Isttemp größer gleich Niederstill");
         WriteLine("ist eingeschaltet und soll ausgeschaltet sein");
         dom.GetObject("EGBuroFBTempIstinToleranz").State(false); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
         }
         else
         {
         WriteLine("Neue Isttemp kleiner Niederstill");
         WriteLine("ist eingeschaltet und soll eingeschaltet sein");
         dom.GetObject("EGBuroFBTempIstinToleranz").State(false); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
         }
        }
        else
        {
         if (dom.GetObject("NeueisttemperaturEGBuro").Value() >= dom.GetObject("niederstillEGBuro").Value())
        {
         WriteLine("Neue Isttemp größer gleich Niederstill");
         WriteLine("ist ausgeschaltet und soll eingeschaltet sein"); dom.GetObject("EGBuroFBTempIstinToleranz").State(false); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
		 dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".ON_TIME").State(36000);  dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".STATE").State(1);
         }
         else
         {
         WriteLine("Neue Isttemp kleiner Niederstill");
         WriteLine("ist ausgeschaltet und soll eingeschaltet sein");
    dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".ON_TIME").State(36000);  dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".STATE").State(1);dom.GetObject("EGBuroFBTempIstinToleranz").State(false); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
    dom.GetObject("EGBuroFBEinschaltzeit").State(888);
         }
         }
        }
       else
       {
       WriteLine("Isttemperatur ist kleiner als niedertemp");
       if (schaltzustandEGBuro == "true")
       {
        if (dom.GetObject("NeueisttemperaturEGBuro").Value() >= dom.GetObject("niederstillEGBuro").Value())
        {
         WriteLine("Neue Isttemp größer gleich Niederstill");
         WriteLine("ist eingeschaltet und soll ausgeschaltet sein");
         dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".STATE").State(0); dom.GetObject("EGBuroFBTempIstinToleranz").State(false); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
         }
         else
         {
         WriteLine("Neue Isttemp kleiner Niederstill");
         WriteLine("ist eingeschaltet und soll eingeschaltet sein");
         dom.GetObject("EGBuroFBTempIstinToleranz").State(false); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
         }
        }
        else
        {
         if (dom.GetObject("NeueisttemperaturEGBuro").Value() >= dom.GetObject("niederstillEGBuro").Value())
        {
         WriteLine("Neue Isttemp größer gleich Niederstill");
         WriteLine("ist ausgeschaltet und soll eingeschaltet sein"); dom.GetObject("EGBuroFBTempIstinToleranz").State(false); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
         }
         else
         {
         WriteLine("Neue Isttemp kleiner Niederstill");
         WriteLine("ist ausgeschaltet und soll eingeschaltet sein");
    dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".ON_TIME").State(36000);
    dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".STATE").State(1); dom.GetObject("EGBuroFBTempIstinToleranz").State(false); dom.GetObject("EGBuroFBVergleichTemp").State(dom.GetObject("isttemperaturEGBuro").Value());
    dom.GetObject("EGBuroFBEinschaltzeit").State(888);
         }
         }
       }
      }
    }
    if ((dom.GetObject("solltemperaturEGBuro").Value() < 5.600) && (dom.GetObject("ScriptwiederholungEGBuromax").Value() == dom.GetObject("ScriptwiederholungEGBuro").Value()) && (dom.GetObject("Aussentemp").Value() == 2.0))
    {
    dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".ON_TIME").State(dom.GetObject("ScriptwiederholungEGBuroHeizzeit").Value()); dom.GetObject(AktorEGBuro#":"#AktorkanalEGBuro#".STATE").State(1); dom.GetObject("ScriptwiederholungEGBuro").State(0.0);
    dom.GetObject("EGBuroFBEinschaltzeit").State(999);
    }
    else
    {
    WriteLine("nix");
    dom.GetObject("ScriptwiederholungEGBuro").State(dom.GetObject("ScriptwiederholungEGBuro").Value() + 1.0);
    if (dom.GetObject("ScriptwiederholungEGBuro").Value() > dom.GetObject("ScriptwiederholungEGBuromax").Value())
    {
    dom.GetObject("ScriptwiederholungEGBuro").State(0.0);
    }
    else
    {
    dom.GetObject("ScriptwiederholungEGBuro").State(dom.GetObject("ScriptwiederholungEGBuro").Value());
    }
    }
    WriteLine("Ende");

Stelle bitte die Vorlauf-Temperatur für den Test wieder auf den ursprünglich von Dir gewünschten Wert.
Das Script ersetzt hier im Test einfach das bisher von Dir verwendete Script. Bitte bewahre jedoch Dein Original-Script weiter auf, falls das Neue nicht zufriedenstellen läuft UND:

Falls dieses Script bei den momentan niedrigen Aussentemperaturen zu dem gewünschten und bisher mit dem alten Script auch erreichten Ergebnis führt, ABER bei höheren/normaleren Aussentemperaturen und Sonneneinstrahlung dann evtl. trotzdem zu einem zu starken Aufheizen des Hauses führt.........---> ist evtl. eine weitere Lösung die, dass Du das CCU2- Steuerprogramm aussentemperaturabhängig so abwandelst, dass es je nach Bedarf zwischen dem bisherigen Script (bei normaler Aussentemperatur und damit stärkerem Sonneneinstrahlungseffekt) und dem neuen Script (bei niedrigen Aussentemperaturen und damit geringerem Sonneneinstrahlungseffekt) wechselt.


Beispiel:
Quasi: Wenn Aussentemperatur <= - 10 Grad Celsius dann: Script NEU
sonst wenn
Aussentempertur > -10 Grad Celsius dann: Script ALT
- Charly - Raspymatic mit Redmatic, 420 Systemvariablen, 440 Programmen, 101 Direktverknüpfungen, 121 Geräten
- CCU3- Raspymatic mit Redmatic und Verbindung zur PV-Anlage/Wechselrichter
- Charly - Raspymatic mit Redmatic und Sprachsteuerung per Alexa

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“