mirror of
https://forge.chapril.org/tykayn/wololo
synced 2025-10-09 17:02:46 +02:00
split utils, separate IRVE guess
This commit is contained in:
parent
b4c28335b2
commit
a732edc228
12 changed files with 460 additions and 363 deletions
109
mappings/irve.utils.ts
Normal file
109
mappings/irve.utils.ts
Normal file
|
@ -0,0 +1,109 @@
|
|||
import config from "../config";
|
||||
import custom_utils from "./utils";
|
||||
|
||||
const { debugLog, find_max_in_string, boolToAddable } = custom_utils
|
||||
|
||||
|
||||
function detectSocketOutputFromFeaturePoint(options: {
|
||||
pointKeyName: string,
|
||||
mappingKeys: any,
|
||||
featurePoint: any,
|
||||
newProperties: any,
|
||||
originalValue: string
|
||||
}) {
|
||||
|
||||
const { pointKeyName, mappingKeys, featurePoint, newProperties, originalValue } = options
|
||||
let intOriginalValue = parseInt(originalValue)
|
||||
|
||||
// trouver à quel socket ça correspond
|
||||
// si y'a plusieurs sockets, utiliser socket:max:output
|
||||
let we_use_max_output = false;
|
||||
let has_prise_type_2: boolean = custom_utils.isTruthyValue(featurePoint.properties.prise_type_2) || false
|
||||
let has_prise_type_combo_ccs: boolean = custom_utils.isTruthyValue(featurePoint.properties.prise_type_combo_ccs) || false
|
||||
let prise_type_chademo: boolean = custom_utils.isTruthyValue(featurePoint.properties.prise_type_chademo) || false
|
||||
let prise_type_ef: boolean = custom_utils.isTruthyValue(featurePoint.properties.prise_type_ef) || false
|
||||
let prise_type_e: boolean = custom_utils.isTruthyValue(featurePoint.properties.prise_type_e) || false
|
||||
let prise_type_autre: boolean = custom_utils.isTruthyValue(featurePoint.properties.prise_type_autre) || false
|
||||
|
||||
let countOfSockets = (boolToAddable(has_prise_type_2) + boolToAddable(has_prise_type_combo_ccs) + boolToAddable(prise_type_chademo) +
|
||||
boolToAddable(prise_type_ef) + boolToAddable(prise_type_autre) + boolToAddable(prise_type_e)
|
||||
);
|
||||
if (countOfSockets > 0) {
|
||||
we_use_max_output = true;
|
||||
}
|
||||
// ajouter les tags de socket newProperties
|
||||
// certains producteurs de données donnent des énumérations de puissances
|
||||
// on prend la valeur max
|
||||
let converted_value = find_max_in_string(originalValue.replaceAll('.00', '').replaceAll(',', '.'))
|
||||
|
||||
// do not limit accepted values
|
||||
let out = ''
|
||||
let out_number = 0
|
||||
|
||||
if (intOriginalValue < config.irve_max_output) {
|
||||
// rajouter l'unité de puissance kW dans la valeur
|
||||
out_number = converted_value
|
||||
out = converted_value + ' kW'
|
||||
|
||||
} else {
|
||||
// prise en charge des valeurs en Watts et non en kW.
|
||||
debugLog('too high kW value detected', originalValue)
|
||||
if (intOriginalValue > 1000 && intOriginalValue < (config.irve_max_output * 1000)) {
|
||||
|
||||
let kilowatts = (converted_value / 1000).toFixed(2);
|
||||
out = ('' + kilowatts + ' kW').replaceAll('.00', '')
|
||||
debugLog('valeurs en Watts out', out, 'original:', originalValue)
|
||||
|
||||
}
|
||||
}
|
||||
out = (out).replaceAll('.0', '')
|
||||
|
||||
|
||||
if (has_prise_type_combo_ccs && countOfSockets === 1) {
|
||||
newProperties['socket:type2_combo:output'] = out;
|
||||
|
||||
}
|
||||
|
||||
if (we_use_max_output) {
|
||||
newProperties['charging_station:output'] = out;
|
||||
} else {
|
||||
if (has_prise_type_2 && prise_type_e) {
|
||||
newProperties['socket:type_2:output'] = out;
|
||||
|
||||
debugLog('2 prises, attribuer la plus haute valeur à la type 2', out)
|
||||
}
|
||||
// deviner les décomptes de sockets
|
||||
if (countOfSockets === 1) {
|
||||
|
||||
if (has_prise_type_2) {
|
||||
newProperties['socket:type_2:output'] = out;
|
||||
newProperties['socket:type_2'] = 1;
|
||||
|
||||
|
||||
}
|
||||
if (has_prise_type_combo_ccs) {
|
||||
newProperties['socket:type2_combo:output'] = out;
|
||||
newProperties['socket:type2_combo'] = 1;
|
||||
|
||||
|
||||
}
|
||||
if (prise_type_chademo) {
|
||||
newProperties['socket:chademo:output'] = out;
|
||||
newProperties['socket:chademo'] = 1;
|
||||
|
||||
}
|
||||
if (prise_type_e) {
|
||||
newProperties['socket:typee:output'] = out;
|
||||
newProperties['socket:typee'] = 1;
|
||||
|
||||
}
|
||||
} else {
|
||||
debugLog('no sockets')
|
||||
}
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
export {
|
||||
detectSocketOutputFromFeaturePoint
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue