NEWS
Blockly Script GPIO Inverter und Wärmepumpe
-
Hallo zusammen,
ich hoffe ihr könnt mir bei meinem Problem helfen.
Ich habe seit ca. 5 Jahren einen IOBroker auf Rasp4 laufen, mit dem ich mein Smarthome betreibe.
Seit diesem Jahr habe ich auch eine Photovoltaikanlage (Wechselrichter von Sungrow).
Den Wechselrichter habe ich über Modbus eingebunden und erhalte auch gewisse Werte.
Meine Wärmepumpe hat einen SG-Ready Eingang (potentialfreier Kontakt).
Dieser ist über ein Relais mit dem Raspberry GPIOPin17 verbunden.Nun brauche ich ein Script, das folgendes macht.
Wenn die PV-Leistung einen Schwellwert (z.B.500Watt) überschreitet, soll der GPIOPin17 (und damit das Relais) kurzzeitig (ca. 200ms -> Impuls) geschaltet werden.
Wenn die PV-Leistung den gleichen Schwellwert unterschreitet, soll der GPIOPin17 (und damit das Relais) kurzzeitig (ca. 200ms -> Impuls) geschaltet werden.Klingt im Prinzip einfach, mein Problem ist, dass ich Blockly wohl nicht ganz verstanden habe.
Die Schaltung, die ich erstellt habe, schaltet leider bei jeder Wertänderung bzw. Aktualisierung, also eigentlich immer, wenn ein neuer PV-Leistungswert über Modbus übertragen wird.
Ich möchte aber, dass das Relais nur dann schaltet, wenn der Schwellwert über- oder unterschritten wird.Ich freue mich auf euren Input!
Viele Grüße
Nico
-
@nico-k sagte in Blockly Script GPIO Inverter und Wärmepumpe:
Die Schaltung, die ich erstellt habe, schaltet leider bei jeder Wertänderung bzw. Aktualisierung, also eigentlich immer, wenn ein neuer PV-Leistungswert über Modbus übertragen wird.
kann ich anhand deines Blocklys nicht nachvollziehen
-
-
@nico-k sagte in Blockly Script GPIO Inverter und Wärmepumpe:
Wenn die PV-Leistung einen Schwellwert (z.B.500Watt) überschreitet,
du reagierst suf jede Änderung über dem Schwellwert!
nicht nur bei der ersten Überschreitungim sonst falls haben weitere Trigger Bausteine nichts zu suchen.
du musst eine Hysterese einbauen, etwas größer als der erwartete Verbrauch
immer größer-kleiner 100 wird zum ständigen Flackern führen -
Wie kann ich den nur auf den ersten Wert reagieren? Also mit welchem Triggerblock?
-
Ich habe nun den Triggerblock komplett entfernt und nur die If Anweisung gelassen.
Das scheint wohl zu funktionieren. Triggert nicht bei jeder Änderung, sondern nur beim überschreiten/unterschreiten des Schwellwerts. -
@nico-k sagte in Blockly Script GPIO Inverter und Wärmepumpe:
Wie kann ich den nur auf den ersten Wert reagieren? Also mit welchem Triggerblock?
Trigger ist der selbe!
du musst nur in der Logik abfangen ob er bereits lief, z.B. mit einer Sperrvariablen -
Wobei das ist so auch nicht richtig.
-
@nico-k
Du schaltest mittels eines Impulses die Wärmepumpe ein und aus? Woher weist du, ob der Impuls gerade ein- oder ausschaltet? -
@nico-k sagte: Wobei das ist so auch nicht richtig.
Wenn die Wärmepumpe keine Rückmeldung liefert, ob sie läuft, muss ein eigener DP "WP" manuell synchronisiert werden.
Vorschlag:
So reagiert die Wärmepumpe allerdings auf jede kleine Wolke / Wolkenlücke.
-
Ich habe das jetzt wie folgt gelöst.
Läuft bereits mehrere Tage stabil und schaltet nicht unnötig. -
@paul53 Das ist eine gute Frage!
Ich werde am kommenden WE die Wärmepumpe beobachten und die Signale überwachen.
Ich hoffe, dass seitens Wärmepumpe irgendeine Rückmeldung (ein Bit oder Wert) übermittlet wird, welches ich abfangen kann und als Rückmeldung nutze.
Dann werde ich mein Script entsprechend erweitern.