Magst Du uns verraten wie Du das gemacht hast?
Für meine Smarthome Lösung verwende ich OpenHAB als Basis. Das ist sehr viel weniger verbreitet als HomeAssistant, aber man kann die Regeln in JavaScript oder DSL programmieren und muss nicht solche grafischen drag & drop Scripting Dinger wie NodeRed verwenden.
Die Kommunikation mit Cupra Connect ist mittels CarConnectivity und den passenden Plugins für Cupra und MQTT gelöst.
Die Scripte selbst hören auf Items wie EV_DriveMode changed to "D" und dann ein paar andere Items die ich dazu einführen musste.
Allein nur für diese Temperaturregelung braucht es 3 Regeln (Rules) mit ca 200 Zeilen Code. Der Kern sieht aber wie folgt aus:
//------------------------------------------
// vehicle state change
rules.JSRule({
id: "CupraHoldTempTrigger",
triggers: [
triggers.ItemStateChangeTrigger("EV_VehicleState"),
],
execute: (event) =>
{
if (items.EV_CombinedState.state == "driving")
{
logger.info("Vehicle now DRIVING")
items.EV_ClimateTarget.sendCommand(22.0)
items.EV_DelayedTargetIncrease.postUpdate(ON) // this item will expire to OFF in 18 minutes
}
}
});
//------------------------------------------
// target increase triggered
rules.JSRule({
id: "CupraHoldTempRepeat",
triggers: [
triggers.ItemStateChangeTrigger("EV_DelayedTargetIncrease", OFF),
triggers.ItemStateChangeTrigger("EV_RepeatTargetIncrease", OFF),
],
execute: (event) =>
{
var temp = items.EV_ClimateTarget.numericState
if (items.EV_CombinedState.state == "driving" && temp < 25)
{
logger.info("Increase temperature by 0.5°")
temp += 0.5
items.EV_ClimateTarget.sendCommand(temp)
items.EV_RepeatTargetIncrease.postUpdate(ON) // this item will expire in 10 minutes to OFF
}
}
});
Alles anzeigen
Das ist leider keine Pfannen fertige Lösung wo man z.B. ein Docker-Image laden und starten kann. Es braucht noch mehr Code, um z.B. zuverlässig zu erkennen, dass sich das Fahrzeug jetzt bewegt. CupraConnect gibt manchmal Änderungen im Km-Stand zurück (so +/- 1 km), obwohl das Fahrzeug seit Tagen steht.