so läuft bei jetzt auch bei mir
wer es als js haben will:
/***************************************************************
* VW → ABRP Telemetry Script
* für ioBroker Javascript Adapter
*
* Funktionen:
* 1. Sendet Fahrzeugdaten alle 5 Minuten an ABRP
* 2. Sendet sofort wenn sich der SOC ändert
*
* Gesendete Daten:
* - SOC (Batteriestand)
* - GPS Position
* - Odometer
* - Batteriekapazität
* - Timestamp
*
* API:
* https://api.iternio.com/1/tlm/send
***************************************************************/
const apiKey = "API-KEY-von-iternio.com";
const token = "Token-aus-der-APP";
const vin = "VIN-des-Autos";
/***********************
* Datenpunkte
***********************/
const dp_soc = "vw-connect.0." + vin + ".status.charging.status.battery.stateOfChargeInPercent";
const dp_odometer = "vw-connect.0." + vin + ".mqtt.events.charging-completed.data.odometer";
const dp_lat = "vw-connect.0." + vin + ".status.position.parkingPosition.gpsCoordinates.latitude";
const dp_lon = "vw-connect.0." + vin + ".status.position.parkingPosition.gpsCoordinates.longitude";
/***********************
* Funktion zum Senden
***********************/
function sendToABRP(trigger) {
const soc = getState(dp_soc).val;
const odometer = getState(dp_odometer).val;
const lat = getState(dp_lat).val;
const lon = getState(dp_lon).val;
// Prüfen ob wichtige Daten vorhanden sind
if (soc === null || lat === null || lon === null) {
log("ABRP: Daten fehlen → kein Versand", "warn");
return;
}
const utc = Math.round(Date.now() / 1000);
const tlm = {
utc: utc,
soc: soc,
capacity: 85,
odometer: odometer,
lat: lat,
lon: lon
};
const url =
"https://api.iternio.com/1/tlm/send?api_key=" +
apiKey +
"&token=" +
token +
"&tlm=" +
encodeURIComponent(JSON.stringify(tlm));
httpGet(url, { timeout: 2000 }, function (err, response) {
if (err) {
log("ABRP Fehler: " + err, "error");
} else {
log("ABRP gesendet (" + trigger + "): " + JSON.stringify(tlm), "info");
}
});
}
/***********************
* 1️⃣ Alle 5 Minuten senden
***********************/
schedule("*/5 * * * *", function () {
sendToABRP("Timer");
});
/***********************
* 2️⃣ Senden wenn SOC sich ändert
***********************/
on({ id: dp_soc, change: "ne" }, function (obj) {
log("SOC Änderung erkannt: " + obj.state.val + "%", "info");
sendToABRP("SOC Änderung");
});