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