Seite 1 von 1
Tibber - Rule zum Laden der Batterie wenn Strom am günstigsten
Verfasst: 7. Jan 2025 16:47
von oschwabe
ich kämpfe gerade mit einer Regel welche mir meinen Huawei Stromspeicher Nachts zu einem gewissen Grad lädt wenn es am günstigsten ist.
Aus dem Tibber Binding erhalte ich ein Array mit den Zeit/Preis Daten und ich finde mit einer ersten Regeln um 0:30am den Zeitpunkt wann der Strom am günstigsten ist. Der Zeitpunkt wird in ein Item geschrieben und der Inhalt hat heute so ausgesehen :
ITEM: Tibber_Cheapest_Time
VALUE: 2025-01-07T03:00:00.000+0100
Meine Regeln sieht so aus:
Code: Alles auswählen
rule "Load Battery at cheapest time to level"
when
Time is Tibber_Cheapest_Time
then
logInfo("MyRule", "Die Zielzeit wurde erreicht und Laden wird begonnen!")
if (Luna_night_load.state == "ON") //prüfen ob die Funktion für Nachtladen aktiv ist
{
luna_forcible_charge_discharge_setting_mode.sendCommand(1)
luna_force_charge_target_soc.sendCommand((Luna_night_load_target.state as DecimalType) * 10)
luna_force_charge_discharge.sendCommand(1)
}
end
Jemand einen Tipp warum die Rule heute morgen um 3 Uhr wieder nicht angesprungen ist?
OPENHAB 4.3.1
Raspberry 5 mit SSD
Re: Tibber - Rule zum Laden der Batterie wenn Strom am günstigsten
Verfasst: 7. Jan 2025 21:59
von peter-pan
Hast du schon versucht
nur über die Zeit zu triggern ?
In etwa so wie im
Tutorial beschrieben ?
Re: Tibber - Rule zum Laden der Batterie wenn Strom am günstigsten
Verfasst: 8. Jan 2025 04:38
von udo1toni
Wobei das Datum ja eigentlich passen sollte...
Andere Frage/Idee: Handelt es sich bei Tibber_Cheapest_Time auch um ein DateTime Item?
Re: Tibber - Rule zum Laden der Batterie wenn Strom am günstigsten
Verfasst: 8. Jan 2025 07:42
von oschwabe
habe heute Nacht das timeOnly ergänzt und auch die Definition des Items geprüft:
ITEM Value war heute Nacht: 2025-01-08T03:00:00.000+0100 bei 26,5 CENTS/kWh
Code: Alles auswählen
DateTime Tibber_Cheapest_Time "Tibber low price hour" {stateDescription=""[pattern="%1$td.%1$tm.%1$tY %1$tH:%1$tM"]}
Code: Alles auswählen
rule "load battery to predefined value when cheap"
when
Time is Tibber_Cheapest_Time timeOnly
then
logInfo("MyRule", "Die Zielzeit wurde erreicht und Laden wird begonnen!")
if (Luna_night_load.state == "ON") //prüfen ob die Funktion für Nachtladen aktiv ist
{
luna_forcible_charge_discharge_setting_mode.sendCommand(1)
luna_force_charge_target_soc.sendCommand((Luna_night_load_target.state as DecimalType) * 10)
luna_force_charge_discharge.sendCommand(1)
}
end
Darf vielleicht das stateDescription da nicht stehen und muss weg?
Auf jeden Fall wurde um 3 Uhr nicht geladen

Re: Tibber - Rule zum Laden der Batterie wenn Strom am günstigsten
Verfasst: 8. Jan 2025 17:00
von udo1toni
Nein,
stateDescription betrifft nur
.displayState, aber nicht
.state.
Time is wertet
.state aus.
Abgesehen davon steht
.displayState in der DSL (leider bisher) nicht zur Verfügung.
Andere Frage: bist Du sicher, dass die Rule nicht getriggert hat?
Steht das Logging für
org.openhab.core.model.script.MyRule auf INFO oder DEBUG (falls nicht gesetzt, wie sind die Eltern-Logger gesetzt, also org.openhab.core.model.script, org.openhab.core.model usw.)?
Taucht die Zeile, die von logInfo ausgegeben werden soll tatsächlich nicht zur passenden Uhrzeit in openhab.log auf?
Weil, die Anweisung
if(Luna_night_load.state == "ON") wird eventuell immer
false liefern, der Code wird also nicht ausgeführt.
Hintergrund: Ein .state ist ein Status. Du vergleichst hier aber mit einem String. also korrekt entweder
oder
Wobei ich davon ausgehe, dass es sich um ein Switch Item handelt.
Re: Tibber - Rule zum Laden der Batterie wenn Strom am günstigsten
Verfasst: 8. Jan 2025 17:09
von peter-pan
Ich hatte zwar auch, wie Udo, an einen anderen Item-Type gedacht,diese Theorie aber wieder verworfen.
Jetzt muss ich aber doch noch mal fragen; war der Wert in dem DateTime-Item wirklich
Wenn ja, dann kann das m.E. nicht funktionieren.
Edit: Vergiss das. Dadurch wird nur eineFehlermeldung erzeugt:
Code: Alles auswählen
2025-01-08 17:15:06.500 [WARN ] [b.core.model.script.actions.BusEvent] - Cannot convert '2025-01-08T03:00:00.000+0100 bei 26,5 CENTS/kWh' to a state type which item 'testTime' accepts: [DateTimeType, UnDefType].
Re: Tibber - Rule zum Laden der Batterie wenn Strom am günstigsten
Verfasst: 8. Jan 2025 17:40
von peter-pan
Ich hab das Ganze nochmal getestet. Dazu hab ich mir schnell zwei Regeln (eigentlich nur eine) angelegt:
Code: Alles auswählen
rule "ItemTrigger-Rule"
when
Time is testTime1 timeOnly
then
// dein Code - z. B. Alexa benutzen
// Show_TextToSpeechVolume.sendCommand(40)
// Show_TextToSpeech.sendCommand("Hallo Langschläfer, aber jetzt aufstehen")
// Show_TextToSpeechVolume.sendCommand(0)
logInfo("testTime1","testTime1 Zeit-Trigger ist {}",testTime1)
end
rule "test Datum"
when
Item Dummy_3 changed to ON
then
testTime1.postUpdate("2025-01-08T17:19:00.000+0100")
end
.items
Code: Alles auswählen
DateTime testTime1 "Zeit-Item für Tests, mit pattern" { stateDescription="pattern" [pattern="%1$tH:%1$tM"] } // Text-Rule
Mit der zweiten Regel hab ich das Datum gesetzt und das Ergebnis der ersten Regel (log) war:
Code: Alles auswählen
2025-01-08 17:19:00.458 [INFO ] [.openhab.core.model.script.testTime1] - testTime1 Zeit-Trigger ist testTime1 (Type=DateTimeItem, State=2025-01-08T17:19:00.000+0100, Label=Zeit-Item für Tests, mit pattern, Category=null)
Sicherheitshalber hab ich es auch noch mit - ohne timOnly - probiert

(also mit komplettem Datum) und auch das hat funktioniert, wie Udo es bereits vorhergesagt hat.
Code: Alles auswählen
2025-01-08 17:24:00.129 [INFO ] [.openhab.core.model.script.testTime1] - testTime1 Zeit-Trigger ist testTime1 (Type=DateTimeItem, State=2025-01-08T17:24:00.000+0100, Label=Zeit-Item für Tests, mit pattern, Category=null)
Der Grund muss also woanders liegen.
1) Ist die Regel auch wirklich im Ordner "openhab/rules" und ist der Name auch wirklich "xxxx.rules" ?
2) Hast du schon mal versucht die Regel mit einem "Dummy-Item" anzustossen ?
3) Hat die Datei auch das richtige Textformat ?
Mit welchem Editor arbeitest du denn ?
Re: Tibber - Rule zum Laden der Batterie wenn Strom am günstigsten
Verfasst: 8. Jan 2025 21:26
von oschwabe
Hallo zusammen,
der Wert des ITEMS war natürlich : '2025-01-08T03:00:00.000+0100' (ohne '). Die Cents habe ich nur zur Info hinzugefügt.
Udo hatte Recht, dass das Problem an der IF Abfrage liegt.
Ich habe wie von Peter-Pan beschrieben einmal nachgestellt - vielen Dank für den Denkanstoß - und sobald ich die " bei ON in der IF Anfrage entfernt habe ist die Rule durch gelaufen.
Da ich über 250 Things in meinem System habe, ist das Logging etwas schwierig und vor allem dann Nachts.
Ich lasse meine Scripts heute Nacht jetzt nochmals laufen und kann morgen früh dann berichten.
Re: Tibber - Rule zum Laden der Batterie wenn Strom am günstigsten
Verfasst: 9. Jan 2025 11:49
von peter-pan
Super.
Allerdings bin ich davon ausgegangen, dass die Regel überhaupt nicht triggert. Weil du geschrieben hast:
oschwabe hat geschrieben: ↑7. Jan 2025 16:47
Jemand einen Tipp warum die Rule heute morgen um 3 Uhr wieder nicht angesprungen ist?
Da müsste dann aber mindestens die "logInfo" erschienen sein, oder ?
