möchte mich zuerst vorstellen weil es mein erster Eintrag ist. Mein Name ist Norbert und ich bin 46 Jahre alt.
habe dieses Jahr eine PV und Klimaanlage Zuhause montiert und wollte diese beiden Anlagen mittels Hardware und der Software von Fronius miteinander verbinden. Leider kam es nach der Installation ganz anders, d.h. die Daikin Schnittstelle die meine Hardware benötigt hätte, wurde schon vom WLAN der Daikin Klimaanlage verwendet, deshalb habe ich eine andere Lösung suchen müssen um beide Komponenten miteinander zu verbinden.
nach kurzer Recherche bin ich auf OpenHab gestoßen und hab hier schon viel gelesen und auch umsetzen können (Danke). Leider bin ich nun zu einem Punkt gekommen wo ich Eure Hilfe benötige.
Ich hab eine Regel geschrieben die mir bei Über- und Unterschreiten eines Sollwertes per Telegram informiert. Die Regel funktioniert auch.
hier die Regel
Code: Alles auswählen
rule "Produktion"
when
Time cron "0 30 21 ? * * *"
then
sendTelegram("bot1", "%.6s kW wurden Heute produziert", fronius_powerinverter_a7b6bf8b_inverterdatachanneldayenergy.state.toString)
sendTelegram("bot1", "%.6s MW wurden dieses Jahr produziert", fronius_powerinverter_a7b6bf8b_inverterdatachannelyear.state.toString)
end
rule "Strom_wird_zugekauft_verkauft"
when
Item fronius_powerinverter_a7b6bf8b_inverterdatachannelpac changed
then
if(!(previousState instanceof Number)) {
logWarn("stromkauf","previousState keine gültige Zahl! ({})",previousState)
return;
}
if(!(newState instanceof Number)) {
logWarn("stromkauf","newState keine gültige Zahl! ({})",newState)
return;
}
if(previousState >= 1000 && newState < 1000 && daikin_ac_unit_192_168_178_59_power.state == ON)
sendTelegram("bot1", "%.6s W wird produziert, du kannst die Klima ausschalten", fronius_powerinverter_a7b6bf8b_inverterdatachannelpac.state.toString)
else if(previousState <= 2000 && newState > 2000 && daikin_ac_unit_192_168_178_59_power.state == OFF)
sendTelegram("bot1", "%.6s W wird produziert, Klima einschalten", fronius_powerinverter_a7b6bf8b_inverterdatachannelpac.state.toString)
end
Code: Alles auswählen
var Timer fronius_power_low = null
rule "Produktion"
when
Time cron "0 30 21 ? * * *"
then
sendTelegram("bot1", "%.6s kW wurden Heute produziert", fronius_powerinverter_a7b6bf8b_inverterdatachanneldayenergy.state.toString)
sendTelegram("bot1", "%.6s MW wurden dieses Jahr produziert", fronius_powerinverter_a7b6bf8b_inverterdatachannelyear.state.toString)
end
rule "Strom_wird_zugekauft_verkauft"
when
Item fronius_powerinverter_a7b6bf8b_inverterdatachannelpac changed
then
if(!(previousState instanceof Number)) {
logWarn("stromkauf","previousState keine gültige Zahl! ({})",previousState)
return;
}
if(!(newState instanceof Number)) {
logWarn("stromkauf","newState keine gültige Zahl! ({})",newState)
return;
}
if(previousState >= 2000 && newState < 2000 && daikin_ac_unit_192_168_178_59_power.state == ON)
sendTelegram("bot1", "%.6s W wird produziert, warte noch", fronius_powerinverter_a7b6bf8b_inverterdatachannelpac.state.toString)
fronius_power_low?.cancel
fronius_power_low = createTimer(now.plusMinutes(5), [|
if(newState < 2000 && daikin_ac_unit_192_168_178_59_power.state == ON){
sendTelegram("bot1", "PV Leistung seit 5 Minuten zu gering")
fronius_power_low = null}
])
else if(previousState <= 2000 && newState > 2000 && daikin_ac_unit_192_168_178_59_power.state == OFF){
sendTelegram("bot1", "%.6s W wird produziert, Klima einschalten", fronius_powerinverter_a7b6bf8b_inverterdatachannelpac.state.toString)}
end
was hab ich Falsch gemacht oder wie kann ich die nochmalige Abfrage machen?
vielen Dank,
Norbert