Hallo,
nachdem mit Udo's Hilfe meine Stromtankstelle mit einem Zwischenstecker in Abhängigkeit der anliegenden PV-Leistung AN- oder AUS-geschaltet wird (https://knx-user-forum.de/forum/supp...n-lassen/page2) möchte ich nun einen Schritt weiter gehen und die Ladeleistung noch verändern. Dies geschieht über einen weiteren Raspberry mit Openhab, der verschiedene Relais der Wallbox schaltet.
Der Wallbox-Raspberry erhält drei Werte:
- Item "Manu" wenn mit voller Leistung geladen werden soll vom Hausteuerungs-Raspberry
- Item "Automatisch" wenn nur mit überschüssiger PV-Leistung geladen werden soll vom Haussteuerungs-Raspberry. Dort ist auch die Rule hinterlegt, welche Item "Automatisch" auch wieder abschaltet.
- Item "aktLeistungberechnet" die Leistung welche über den Hauszähler geht über http-Binding
Die Items "Strom6" und "Strom10" schalten dann die jeweiligen Relais. Sind beide Items OFF, wird mit max. Stromstärke geladen. Sind beide Items ON, wird nur mit 6Ampere geladen, liegt an der Bauart der Wallbox. Das Item "Ladestation" schaltet den Ladestrom komplett aus bzw. ein.
Was nicht funktioniert, ist die Veränderung der Ladestromstärke, das Item "Strom6" bleibt im Automatik-Modus immer an. Schalte ich auf manuell um, schaltet das Item wie gewollt aus. Hier wäre der Code, komplett:
Denke es passt jetzt. Versuche stehen noch aus, sobald die Sonne scheint.
nachdem mit Udo's Hilfe meine Stromtankstelle mit einem Zwischenstecker in Abhängigkeit der anliegenden PV-Leistung AN- oder AUS-geschaltet wird (https://knx-user-forum.de/forum/supp...n-lassen/page2) möchte ich nun einen Schritt weiter gehen und die Ladeleistung noch verändern. Dies geschieht über einen weiteren Raspberry mit Openhab, der verschiedene Relais der Wallbox schaltet.
Der Wallbox-Raspberry erhält drei Werte:
- Item "Manu" wenn mit voller Leistung geladen werden soll vom Hausteuerungs-Raspberry
- Item "Automatisch" wenn nur mit überschüssiger PV-Leistung geladen werden soll vom Haussteuerungs-Raspberry. Dort ist auch die Rule hinterlegt, welche Item "Automatisch" auch wieder abschaltet.
- Item "aktLeistungberechnet" die Leistung welche über den Hauszähler geht über http-Binding
Die Items "Strom6" und "Strom10" schalten dann die jeweiligen Relais. Sind beide Items OFF, wird mit max. Stromstärke geladen. Sind beide Items ON, wird nur mit 6Ampere geladen, liegt an der Bauart der Wallbox. Das Item "Ladestation" schaltet den Ladestrom komplett aus bzw. ein.
Was nicht funktioniert, ist die Veränderung der Ladestromstärke, das Item "Strom6" bleibt im Automatik-Modus immer an. Schalte ich auf manuell um, schaltet das Item wie gewollt aus. Hier wäre der Code, komplett:
Code:
import org.joda.time.* import org.openhab.core.library.types.* import org.openhab.core.persistence.* import org.openhab.model.script.actions.* import org.openhab.model.script.actions.Timer import org.joda.time.DateTime import java.lang.Math rule "Laden automatisch EIN_AUS" when Item Automatisch changed or Item Manu changed from ON to OFF then if (Automatisch.state==ON) { // wenn genug Leistung vorhanden dass automatische Ladung EIN sendCommand(Ladestation, ON) // lasse Ladestation an sendCommand(Strom6, ON) // reduziere Ladestrom auf 6 Ampere } else // wenn nicht genug Leistung sendCommand(Ladestation, OFF) // schalte Ladestation AUS end rule "Laden erzwingen" when Item Manu changed then if (Manu.state==ON) { // wenn Ladung nötig sendCommand(Ladestation, ON) // schalte Ladestation EIN sendCommand(Strom6, OFF) // Lade mit 16 Ampere sendCommand (Strom10, OFF) } else { if (Automatisch.state==ON) { sendCommand(Strom6, ON) sendCommand(Strom10, OFF) } else { sendCommand(Ladestation, OFF) sendCommand(Strom6, ON) sendCommand(Strom10, OFF) } } end rule „Leistung anpassen“ when Item aktLeistungberechnet received update // jede Minute then if (Automatisch.state==ON) { if (aktLeistungberechnet.state<0){ // wenn Strom gekauft wird sendCommand(Strom6, ON) // gehe auf minimale Ladeleistung sendCommand(Strom10, OFF) } if (aktLeistungberechnet.state > 1500){ // wenn mehr als 1500W verkauft werden if (Strom6.state==ON){ // und mit 6 Ampere geladen wird sendCommand(Strom10, ON) // lade mit 10 Ampere sendCommand(Strom6, OFF) // schalte 6 Ampere aus } if (Strom10.state==ON){ // wenn mit 10 Ampere geladen wird sendCommand(Strom10,OFF) // schalte 10 Ampere aus und lades somit mit 16 Ampere } } } end
Kommentar