NEWS
Blockly/KNX - Wert wird 6 mal geschrieben
-
@tompador sagte: gespannt ob das klappt.
Ohne eine Hysterese, die etwas größer ist als die Leistungsaufnahme der Heizung, schaltet die Heizung bei Überschuss > 500 W (ohne Heizung) ständig ein und aus.
-
@paul53
Hallo und danke für den Beitrag. Das ist aktuell nicht der Fall und wir haben seit der Test läuft permanent mehr als 500W Überschuss. Wo genau liegt denn der Fehler der gemeint ist? Also zum einen, habe ich mir ja den Gedanken gemacht (und dazu auch recherchiert, ob ein Takten für einen Heizstab ein Problem ist). Zum anderen würde dieses Takten wenn überhaupt ja nur in dem Bereich auftreten wenn der Überschuss permanent im Bereich 500W zwischen kleiner und größer 500W umherspringt. Das könnte man aber mit ein wenig Feintuning verhindern, ich könnte das ja auch auf 800W setzen zum Beispiel, oder einen Mittelwert von bspw. einer Stunde bilden und diesen Wert nehmen. Da es aber keinen schlechten Einfluss auf den Heizstab hat wie gesagt, wird das vorerst in Kauf genommen. Ich kontrolliere den Wert ja zum Testen, und aktuell liegt der letzte Zeitstempel der Änderung fast eine Stunde zurück. Das hat aber damit zu tun, dass der Ausgang im KNX Aktor als Treppenlicht konfiguriert ist mit einer Zeit von einer Stunde (schnell duschen/baden oder einfach kurz aufheizen per Tastendruck).Ansonsten sehe ich nicht den Grund warum er ausschalten sollte, das sollte er nur machen wenn der Überschuss unter den Wunschwert fällt, oder habe ich den Block mit dem Falls/sonst falsch verstanden?
-
ok ich bin jetzt selbst drauf gekommen, aber bin verwundert, warum der Fall nicht eintritt. Denke es liegt daran, dass ich nicht den Überschuss genommen habe wie gesagt, sondern die Gesamtproduktion. Würde es hier wirklich um den Überschuss gehen, dann müsste eigentlich wie von dir gesagt die ganze Zeit hin und her takten, weil durch das Anschalten der Überschuss um 500W reduziert wird. Da muss ich noch mal bisschen überlegen... Ich war zu spät dran, wir haben aktuell fast 7,5 kw Überschuss. Ich muss das morgen mal früher beobachten, aber eigentlich sollte es so wie von dir beschrieben sein.
-
@tompador sagte: sehe ich nicht den Grund warum er ausschalten sollte
Wenn der Überschuss zwischen 500 und 1000 W ohne eingeschaltete Heizung ist, dann sinkt er im Moment des Einschaltens um 500 W, fällt also unter den Grenzwert und schaltet gleich wieder aus... ein... aus.
-
@tompador sagte: aktuell fast 7,5 kw Überschuss.
Vorschlag, der eine Hysterese (600 W) berücksichtigt, zu häufiges Schalten (kleine Wolke / Wolkenlücke) und das Überheizen des Raumes verhindert.
-
Hallo und danke für die Antwort. Leider fehlen mir hier die Grundlagen das nachzuvollziehen. Ich kann aktuell mit den grünen Delay-Kästen nichts anfangen. Ich würde es echt gern nachvollziehen, aber dazu muss ich denn bisschen nachgooglen. Ich finde es jedoch absolut spitze, dass du dir da so eine Mühe gemacht hast, das kostet ja auch Zeit.
Heute kam er tatsächlich ein wenig ins Takten wie angenommen. Aktuell ist es wieder aus dem Bereich raus, da genug Strom ankommt. Das mit dem Überhitzen ist jedoch kein Problem, habe da gestern ein Auge drauf gehabt und die Wunschtemperatur ja ersteinmal ein wenig niedriger mit 21°C angesetzt. Das scheint geklappt zu haben, da ich je jedes Mal eine Kontrolle habe ob die Temperatur kleiner ist als Wunschtemperatur, und ist das nicht der Fall sollte "sonst" ausgeführt werden.Wenn ich nun wirklich die Hysterese einbaue, dann würde das Takten verhindert, aber auf der anderen Seite hatte ich ja bereits angedeutet, dass das Takten dem Stab nichts ausmacht, ganz viele Regelungen arbeiten genau auf diese Weise. Wenn ich die Stellgröße jedoch von Gesamtproduktion auf Überschuss ändere sieht es anders aus, dann würde genau das eintreffen wie von dir genannt. Ich habe am Wochenende Besuch von einem ITler, vielleicht schauen wir uns das mal gemeinsam an, der kann mir das Skript bestimmt erklären.
-
@paul53
der Block "setze" ist bei mir nicht vorhanden. Da steht nur "Variable erstellen" das habe ich schon mal probiert, aber habe die Variable denn nicht in den Objekten gefunden... erneut gegoogled... das ist normal, die Variablen sind nur in Blockly vorhanden (dabei bin ich sofort auch über einen Thread gestolpert der über 3 Jahre alt ist in dem paul53 auch geholfen hat, klasse) Also ich schaffe es nicht mal in Blockly die Blöcke so zusammenzuschieben wie du. Ich kann lediglich oberflächlich Wenn/dann/sonst aus jahrelanger Excelspielerei... scheint zu wenig zu sein^^ Nein ich probiere es weiter. Wenigstens ersteinmal nachbauen und dann probiere ich das nachzuvollziehen. -
@paul53
ok, ich bin auf Kurs. Jedoch zwei Sekunden später schon wieder nicht. DelayOn und DelayOff. Was ist das ? bei mir erscheint nichts in dem Dropdown. Lediglich ein Häkchen. Wäre jetzt für mich naheliegend, dass hier eine Variable rein muss, jedoch müsste denn ja auch "ueberschuss" dort auftauchen. Ja mir ist auch klar, dass das letzten Endes die Blöcke sein werden die den Heizkörper an und aus schalten, muss ich die als Platzhalter verstehen und ersetzen durch einen Block der das Schaltobjekt auf true setzt?Ich bin froh hier im Anfängermodus zu sein. Es ist mir echt unangenehm. besten dank bis hierher
-
ok, habs gefunden. Man man man. Sorry. Ich brauch nen Grundkurs^^
-
So ich habe alles so weit ich konnte nachgebaut. Ich hoffe es hat dich nur max. 1/1000 der Zeit gekostet die ich benötigt habe.
Zu den Kommentaren, gerne korrigieren wenn ich Quatsch schreibe, ich schreibe das einfach mal so auf wie ich annehme, dass es gemeint ist:
Setzen der Variable "ueberschuss": zum Verständnis, da es bei Überschreiten der 500W Grenze (was träge passiert und schwankt) ständig zu on/off kommen würde 200W dazu um Takten zu vermeiden.
Die Delay-Geschichte: hier habe ich wirklich nicht einmal eine Idee wie das funktionieren soll. Hatte noch nie Kontakt damit. Wenn der Überschuss kleiner ist als gewünscht dann stop Verzögerung ein? sonst falls nicht? also ich bin da komplett raus. Soll das wegen Takten sein? Wozu eine Minute warten? Die 200W mehr wunschueberschuss sollten doch schon eine Wartezeit von einigen Minuten bringen? Auch wenn ich nun 700W habe, der Heizkörper geht an, dann mach ich die Waschmaschine an, der Restüberschuss von 200W ist sofort dahin, wieso soll der Heizkörper nun noch eine Minute laufen? In der Zeit bezahlen wir fast das 10 fache für den Strom, da wir in kaufen müssen. Oder geht es wegen der Wolken? Also für mich hat das Ausschalten wenn der Strom weg ist absoluten Vorrang. Der Betrieb des Teils ist purer Luxus, entweder mit PV-Strom oder das bleibt aus (-;
Setze FreigabePV auf: Den Vergleicher dahinter habe ich auch im Grundsatz nicht verstanden. Meine Schätzung wäre, dass an dieser Stelle FreigabePV auf den kleineren Wert verglichen zwischen Soll und Ist-Temperatur gesetzt wird. Wenn ich allerdings ein paar Zeilen weiter sehe, hier wird FreigabePV auf true oder false gesetzt? Da bin ich aktuell überfordert das zu verstehen. Ich meine nur bei Datenpunkten definieren zu müssen ob das nun numbers oder boolean ist, aber vielleicht ist das ja bei Variablen hier anders. Und wie man an dem Problem sieht, ich hab auch wenig Ahnung...
sonst falls wert >= sollwert + 0,5: Ich verstehe die 0,5 nicht. Wieso soll das Bad 0,5°C weiter geheizt werden als wunschtemperatur? Als Puffer für die Nacht? Falls ja, die Idee ist top, hatte ich auch schon. Würde bei viel Sonne tatsächlich einfach die Temperatur von Hand sogar einen ganzen Grad höher setzen und die Gebäudemasse als Speicher nutzen. Das wäre für mich allerdings unter Kategorie Feintuning. Die Temperatur ist heute nacht dort um 0,8 Grad gefallen obwohl unser Haus kurz vor Ultra gedämmt ist (beinahe Passivhaus) jedoch ist das Bad dummerweise auch der schlechteste Raum im ganzen Haus. Nordseite, nur die häflte der Wände gegen beheizte Räume, Decke ist auch gegen ungedämmten Dachboden... schrecklich.
Ich hoffe, du ärgerst dich nicht über den Rattenschwanz. Sorry, aber ich steige da echt noch nicht ganz durch. Vielen lieben Dank bis hierher und beste Grüße.
-
@tompador sagte nachgebaut.
Leider mit einem nicht zu viel: Die Heizung muss eingeschaltet sein, damit sie ausgeschaltet wird.
Zu "falls nicht Verzögerung delayOn": Das ist eine Sperre, die verhindert, dass Timeout mehrfach gestartet wird. Bei "stop delayOn" wird der Timeout abgebrochen und die Variable
delayOn
auf null gesetzt.Zu "sollwert +0,5": Dadurch wird eine Hysterese von 0,5 K verwendet, die verhindert, dass ständig hin- und her-geschaltet wird. Wegen der Hysterese muss die Variable
FreigabePV
beim Skriptstart initialisiert werden. -
Hallo, das "Nicht" habe ich entfernt. Kopierfehler. Sehr aufmerksam.
Das mit dem delay habe ich immer noch nicht verstanden. Das ist aber ein Grundlagenproblem. Auch wenn es mir schwer fällt, das nehme ich nun einfach so hin.
Das mit dem Sollwert allerdings habe ich verstanden. Mensch da hätte ich auch selbst drauf kommen können.
Beim Initialisieren von Variablen bin ich auch wieder raus. Gehört habe ich das schon mal, kann da aber nichts mehr mit anfangen. Ich frage mich nur was haben die Werte der Temperaturen die dahinter verglichen werden auf größer oder kleiner als mit true und false zu tun, was ja nun mal der eigentliche Zustand der Variable ist bzw. sein soll.
Es stimmt mich ein wenig traurig, die Lösung nicht selbst herbeigeführt zu haben, aber auf der anderen Seite sieht das nun alles sehr professionell aus und ich denke, das ist doch ein tolles Ergebnis. Ich gestehe mir ein, dass ich das so nicht hinbekommen hätte.
Vielleicht könntet ihr mir den folgenden Block einmal erklären, wie das delay funktioniert und vielleicht hilft mir das denn auch das Delay zu verstehen. Es geht mir hier insbesondere um den von mir genannten Punkt, der Heizkörper soll wirklich wenn der Überschuss weg ist auch sofort ausgehen, und nicht erst nach 5 Minuten oder 1 Minute.
Letzte Frage: Der Trigger ist in diesem Fall die Einspeisung, diese ändert sich ja im Grunde ständig. Wenn ich jetzt von Hand den Heizkörper ausschalte (zur Wiederholung, der schaltet sich aktuell immer nur für eine Stunde ein und geht dann von allein wieder aus) Dann würde er sich im Anschluss an das Ausschalten doch sofort bei der nächsten Änderung der Einspeisung wieder einschalten oder?
LG und besten dank bis hierher.
-
@tompador sagte: wenn der Überschuss weg ist auch sofort ausgehen, und nicht erst nach 5 Minuten oder 1 Minute.
Dann reagiert er aber auf jede kleine Wolke.
@tompador sagte in Blockly/KNX - Wert wird 6 mal geschrieben:
Dann würde er sich im Anschluss an das Ausschalten doch sofort bei der nächsten Änderung der Einspeisung wieder einschalten oder?
Ja, außer die Einspeisung ist so hoch, dass
delayOn
nicht gestoppt und die Verzögerung neu gestartet wird. -
Oh man, es ärgert mich gerade so sehr dieses Delay nicht nachvollziehen zu können. Daher kann ich auch nicht nachvollziehen wie das mit "der Einspeisung so hoch, das das delayOn nicht gestoppt wird..." auch nicht nachvollziehen. Allerdings wird der Fall ziemlich oft eintreten, da unsere Einspeisung regelmäßig sehr hoch ist. Deswegen ja auch dieses Skript, ich hab lieber im Bad denn einen warmen Hintern als 8 Cent vom Versorger zu bekommen^^. Also sollte ich den Ausgang vom KNX Schaltaktor lieber als normaler Öffner/Schließer konfigurieren, nicht als Treppenlicht für eine Stunde.
Wenn das Skript läuft würde ich noch einen weiteren Trigger über das alles packen, damit ich eine Möglichkeit habe das Skript über die Vis aus und einzuschalten, sowie auch von dort aus die Wunschdaten zu ändern. Das bekomme ich aber selbst hin meine ich. Hintergrund ist natürlich, dass ich das im Sommer nicht benötige.
Ich bin wirklich sehr dankbar und es fühlt sich nicht gut an, dass ich mich null dafür revanchieren kann. Letzten Endes hast du nun alles für mich gemacht plus meine doofen Fragen geduldig beantwortet. Gibt es irgendetwas wie ich mich erkenntlich zeigen kann? (In der Hoffnung, das Skript funktioniert, aktuell kann ich es nicht testen, da des permanent regnet und wir aktuell sogar Strom dazu kaufen müssen).
LG und besten Dank
-
@tompador sagte: da unsere Einspeisung regelmäßig sehr hoch ist.
Dann setze die beiden Grenzwerte höher, um unnötigen Bezug zu vermeiden.