NEWS
Klimaanlage an bei PV Überschuss?!
-
Hey,
ich habe mir ein Blockly überlegt, bei dem meine 2 Klimainnengeräte bei PV Überschuss angeschaltet (und ggf. ausgeschaltet) werden sollen.
Javascript ist unten.
Die Idee: alle 30 Minuten wird geschaut ob (NOCH?) genug Überschuss da ist und dann ggf erstmal die eine und dann 5 Minuten später die andere Klimaanlage eingeschaltet. Das ganze soll nur zwischen April und September und nur bei einer Raumtemperatur über 22 Grad passieren.
Habe ich irgendwo einen Denkfehler :)?
Die Variablen setze ich einmalig am Anfang auf falsch für den Fall, dass die irgendwie "falsch" beschrieben wurden. Da passiert doch nichts mehr, wenn das Skript mal läuft?
Wie bekomme ich es gleichzeitig hin, dass die Anlagen zu ner bestimmten Uhrzeit ausgehen und nicht wieder an? Noch ne "Uhrzeit zwischen X und Y" als Bedingung ist klar. Aber wie schalte ich dann aus (ohne Ausschalter, würden die Anlagen ja anbleiben "über Nacht", da kein Überschuss mehr abgefragt werden würde). Derzeit schalten die halt spätestens 30 Minuten aus, nachdem kein Überschuss mehr da ist. Verbrauchen aber in der Zeit definitiv "Netzstrom", was schade ist.Es ist sehr schwer sich alles auszudenken, was falsch laufen könnte, wenn man selber ein Skript erstellt hat...
Mit der "Ungenauigkeit" von 30 Minuten (zufällig ne Wolke gerade dann da, etc) kann ich leben (sonst müsste ich noch ne Variable einfügen, die nach ein paar Minuten nochmals überprüft wird). Dafür Frage ich ja "oft genug" ab.
Vielen Dank im Voraus
Hier das ganze als Javascript umgewandelt:var KlimaSZlaeuft, KlimaWZlaeuft; KlimaSZlaeuft = false; KlimaWZlaeuft = false; schedule("*/30 * * * *", async function () { if ((new Date().getMonth() + 1) >= 4 && (new Date().getMonth() + 1) <= 9 && getState("hm-rpc.1.000C9BE98E7329.1.ACTUAL_TEMPERATURE").val > 22) { if (getState("rct.0.g_sync.p_ac_grid_sum_lp").val < -1000 && KlimaWZlaeuft == false || getState("rct.0.g_sync.p_ac_grid_sum_lp").val < 50 && KlimaWZlaeuft == true) { setState("melcloud.0.devices.50698608.control.power"/*Power*/, true); KlimaWZlaeuft = true; sendTo("telegram", "send", { text: 'Klimaanlage WZ an' }); } else { setState("melcloud.0.devices.50698608.control.power"/*Power*/, false); KlimaWZlaeuft = false; setState("melcloud.0.devices.50698663.control.power"/*Power*/, false); KlimaSZlaeuft = false; sendTo("telegram", "send", { text: 'Klimaanlagen aus' }); } await wait(300000); if (getState("rct.0.g_sync.p_ac_grid_sum_lp").val < -1000 && KlimaSZlaeuft == false || getState("rct.0.g_sync.p_ac_grid_sum_lp").val < 50 && KlimaSZlaeuft == true) { setState("melcloud.0.devices.50698663.control.power"/*Power*/, true); KlimaSZlaeuft = true; sendTo("telegram", "send", { text: 'Klimaanlage SZ an' }); } } });
-
@m-a-x sagte in Klimaanlage an bei PV Überschuss?!:
wie mache ich einen Screenshot vom ganzen Blockly?
indem Du die unnötigen Blöcke wie Telegram zusammenfaltest - rechte Maustaste auf den Block und eben dann zusammenfalten anklicken
-
@DJMarc75 Danke geht jetzt "gerade so noch" zu lesen denke ich
Habs oben korrigiert -
@m-a-x sagte: zufällig ne Wolke gerade dann da, etc
Das ist bei einem Abfrageintervall von 30 Minuten wirklich zufällig und daher nicht zu empfehlen.
Ist die Leistungsaufnahme des Klimagerätes nur 1 kW? Die Hysterese muss etwas größer sein, als die Leistungsaufnahme, damit im Grenzbereich des PV-Überschusses nicht ständig ein- und ausgeschaltet wird.
Vorschlag, bei dem kleine Wolken nicht gleich ausschalten und kleine Wolkenlücken nicht gleich einschalten: -
@paul53 Vielen Dank für dein Skript.
Ich habe vor "Umsetzung" aber Verständnisfragen:
Mein PV Überschuss ist leider ein "negativer" Wert. Also Wenn negativ = Einspeisung. Das muss ich also in deinem Skript anpassen, oder? Reicht da das "-" durch ein "+" zu ersetzen und weiter unten das >= durch ein <=, ja oder?Und die Klimaanlage zieht DERZEIT (ist ja noch kein Hochsommer) nur ca 500 Watt pro Gerät. Ich wollte priorisiert die Klimaanlage im Wohnzimmer einschalten (bei mehr als 1000 Einspeisung) und dann nach 5 Minuten - wenn die im Wohnzimmer also läuft - schauen ob immer noch mehr als 1000 eingespeist wird und nur dann die im Schlafzimmer dazu schalten
Diese "und nicht Wert vom Objekt Switch1" bedeuten im Prinzip das selbe wie "und Wert vom Objekt Switch = False"? also ist nur eleganter?
Und mein "Wunsch", das ganze abends ab ner bestimmten Uhrzeit nicht mehr auszuführen mache ich dann einfach mit ner Falls Abfrage der Uhrzeit direkt "unter" dem Trigger und setze bei "sonst" die Switch auf falsch, richtig :)?
Sorry für die vielen Nachfragen.
Ich verstehe es gerne, sodass ich bei Folgeskripten hoffentlich nicht mehr nachfragen muss -
@m-a-x sagte: Mein PV Überschuss ist leider ein "negativer" Wert.
Das ist durch 0 - Wert bereits berücksichtigt.
@m-a-x sagte in Klimaanlage an bei PV Überschuss?!:
abends ab ner bestimmten Uhrzeit nicht mehr auszuführen
Weshalb nach Uhrzeit? Wenn abends kein PV-Überschuss mehr vorhanden ist, wird ausgeschaltet.
@m-a-x sagte in Klimaanlage an bei PV Überschuss?!:
ca 500 Watt pro Gerät.
Es ist keine Multi-Splitanlage?
-
@paul53 sagte in Klimaanlage an bei PV Überschuss?!:
@m-a-x sagte: Mein PV Überschuss ist leider ein "negativer" Wert.
Das ist durch 0 - Wert bereits berücksichtigt.
Hmm. Dann habe ich es nicht verstanden. Wenn bei "Bezug-Einspeisung" ganz oben ein negativer Wert ist (sagen wir mal ich speise 1500 Watt ein. Also ist "Bezug-Einspeisung" = -1500. Dann wäre "Setze einspeisung auf 0 - Wert" also 1500. Demnach wird die "falls einspeisung <= 2000" ausgeführt. Wenn ich jetzt aber 2500 einspeise, wird diese Abfrage nicht mehr ausgeführt, oder verstehe ich das falsch? Müsste die Falls Abfrage dann nicht zum Beispiel >= 2000 heißen (und zwar, wenn die Klimageräte nur ab einer Einspeisung von über 2K loslegen sollen)?
Weshalb nach Uhrzeit? Wenn abends kein PV-Überschuss mehr vorhanden ist, wird ausgeschaltet.
ja stimmt. Da hast du recht. Sorry.
Es ist keine Multi-Splitanlage?
Doch. 2 Innengeräte an einem Außengerät. Allerdings verbraucht das Außengerät mehr, wenn mehr Innengeräte laufen (und zusätzlich ja auch das zweite Innengerät). Das wird scheinbar über die Frequenz des Motors gesteuert, wenn ich das richtig verstanden habe.
-
@m-a-x sagte: Demnach wird die "falls einspeisung <= 2000" ausgeführt.
Nein, dabei wird die verzögerte Ausführung gestoppt. Sonst bedeutet "einpeisung > 2000".
@m-a-x sagte in Klimaanlage an bei PV Überschuss?!:
2 Innengeräte an einem Außengerät.
Die Innengeräte verbrauchen nur wenige Watt. Der Kompressor im Außengerät hat die hohe Leistungsaufnahme.
-
@paul53 Hmm. ok. Der Klima"mann" war heute da und ich habe ihn extra nochmal gefragt, ob es "effizienter" ist, immer beide Innengeräte an zu schalten und er hat gesagt, das wäre egal, da das Außemngerät anteilig mehr verbraucht, wenn man das zweite Innengerät anschaltet.
Ich versuche es einfach mal mit deinem Skript und melde mich "hier" wenn irgendwas nicht so läuft wie erwatet Danke für die Erklärungen -
@m-a-x sagte: priorisiert die Klimaanlage im Wohnzimmer einschalten (bei mehr als 1000 Einspeisung) und dann nach 5 Minuten - wenn die im Wohnzimmer also läuft - schauen ob immer noch mehr als 1000 eingespeist wird und nur dann die im Schlafzimmer dazu schalten
Also 2-stufig? Stufe 1: Wohnzimmer; Stufe 2: Wohnzimmer + Schlafzimmer.
Das kann man berücksichtigen, auch beim Zurückschalten: -
@m-a-x sagte in Klimaanlage an bei PV Überschuss?!:
das wäre egal, da das Außemngerät anteilig mehr verbraucht, wenn man das zweite Innengerät anschaltet.
nein!
Bei zwei laufenden Innengeräten ist die Gesamtleistung nicht doppelt so hoch wie bei nur einem.Ich würde behaupten nur 150%, eher 130% der Leistung mit einem IG.
Höchstens kurzfristig in der Anlaufphase ist es etwas mehr.
ich fahre wegen der Anlaufphase auch versetzt, sehe aber zu möglichst mehrere gleichzeitig laufen zu haben.
Bestenfalls in niedriger Stufe. -
@paul53 sagte in Klimaanlage an bei PV Überschuss?!:
Also 2-stufig? Stufe 1: Wohnzimmer; Stufe 2: Wohnzimmer + Schlafzimmer.
Das kann man berücksichtigen, auch beim Zurückschalten:Ok. Das Skript verstehe ich jetzt "überhaupt nicht mehr" glaub ich. Bzw. ist Wohnzimmer und Schlafzimmer so richtig rum? Ich habe größte Probleme diese Delay zu verstehen. Ich lese es so, dass eine Verzögerung eingestellt wird, bis das darauf folgende ausgeführt wird? Hieße das nicht, dass das Wohnzimmer verzögert ausgeführt wird, aber das Schlafzimmer (sonst falls) sofort? Oder ist die Verzögerung genau andersrum zu verstehen?
Ich speicher mir das Skript auf jeden Fall mal "weg" und lasse dein erstes Skript ein paar Tage laufen. Vor allem, da @Homoran ja geschrieben hat, dass ich scheinbar falsch informiert bin, was den Verbrauch des zweiten Geräts betrifft.
Danke nochmals an euch für die schnelle Hilfe. -
@m-a-x sagte: Wohnzimmer verzögert ausgeführt wird, aber das Schlafzimmer (sonst falls) sofort? Oder ist die Verzögerung genau andersrum zu verstehen?
Wenn 5 Minuten lang die Einspeisung > 1000 W ist, wird das Wohnzimmergerät eingeschaltet. Wenn dann weitere 5 Minuten lang die Einspeisung > 1000 W ist, wird das Schlafzimmergerät dazugeschaltet (WZ ist bereits ein). Beim Ausschalten ist die Reihenfolge umgekehrt.
-
@paul53 Hab das zweite Skript von dir gestern doch noch umgesetzt und es scheint alles gut zu laufen.
Wenn ich jetzt auch noch schauen will, ob die Balkontür zu ist, setze ich diese Abfrage doch am Besten dahin, wo auch die Temperatur des Wohnzimmer abgefragt wird, oder? Denn wenn ich das ganz oben zu den Monaten 4-9 packe und während das Skript läuft jemand die Tür öffnet, dann hört das Skript auf und die Klimaanlage bleibt ggf. einfach an?!? -
@m-a-x sagte in Klimaanlage an bei PV Überschuss?!:
während das Skript läuft jemand die Tür öffnet,
das Skript läuft immer!
Soll die Klimaanlage tatsächlich immer ausgehen, wenn jemand die Tpr kurz aufmacht?
danach direkt wieder an?Das ist nicht gut!
Nich für den Kompressor und nicht für die Effektivität. -
@m-a-x sagte: Abfrage doch am Besten dahin, wo auch die Temperatur des Wohnzimmer abgefragt wird, oder?
Ja, wenn auch beim Öffnen der Tür das WZ-Gerät ausgeschaltet werden soll, dann zusätzlich per Öffnen-Trigger (ist größer als letztes).
-
Danke ihr zwei.
Korrekt, ich sollte auch hier einen 5-10 Minuten delay einbauen, damit ein kurzes Öffnen 'egalisiert' wird. -
@m-a-x sagte: delay einbauen, damit ein kurzes Öffnen 'egalisiert' wird.
Ja, etwa so:
-
@paul53 vielen lieben Dank abermals.
Jetzt hab ich noch ein Problem: Ich kann die Klimaanlage nicht mehr manuell anschalten wenn kein PV Überschuss da ist :)(bzw. schaltet sie sich halt aus)
Das würde ich jetzt mit ner Variable machen, die "wahr" geschaltet wird, wenn die Automatik die Klima anschaltet und "falsch" wenn die Klima manuell angeschaltet wurde? -
@m-a-x sagte in Klimaanlage an bei PV Überschuss?!:
Das würde ich jetzt mit ner Variable machen, die "wahr" geschaltet wird, wenn die Automatik die Klima anschaltet und "falsch" wenn die Klima manuell angeschaltet wurde?
ja!
Eigener Datenpunkt Typ Logikwert, Z.B. Klimaautomatik, per Button in der vis auf true/false setzen.
Dann ganz oben im falls ebenfalls abfragen mit ...und Klimaautomatik = trueDann läuft das Skript nicht wenn die Automatik abgeschaltet ist.
oder wenn es besser in deine Logik passt:
manual_override dann mit prüfung auf false