//native
type Enode = {
token: string
}
export async function main(
auth: Enode,
userId: string,
body: {
vendor?:
| 'APSYSTEMS'
| 'CSISolar'
| 'Deye'
| 'ENPHASE'
| 'FOXESS'
| 'FRONIUS'
| 'GOODWE'
| 'GROWATT'
| 'Hoymiles'
| 'HUAWEI'
| 'INVT'
| 'SMA'
| 'SOFAR'
| 'SOLAREDGE'
| 'SOLARK'
| 'SOLAX'
| 'SOLIS'
| 'SOLPLANET'
| 'SUNGROW'
| 'SUNSYNK'
| 'TESLA'
| 'TSUN'
| 'AUDI'
| 'BMW'
| 'HONDA'
| 'HYUNDAI'
| 'JAGUAR'
| 'LANDROVER'
| 'KIA'
| 'MERCEDES'
| 'MINI'
| 'NISSAN'
| 'PEUGEOT'
| 'PORSCHE'
| 'RENAULT'
| 'SEAT'
| 'SKODA'
| 'VOLKSWAGEN'
| 'VOLVO'
| 'FORD'
| 'OPEL'
| 'DS'
| 'TOYOTA'
| 'LEXUS'
| 'CITROEN'
| 'CUPRA'
| 'VAUXHALL'
| 'FIAT'
| 'RIVIAN'
| 'NIO'
| 'CHEVROLET'
| 'GMC'
| 'CADILLAC'
| 'XPENG'
| 'TADO'
| 'MILL'
| 'ADAX'
| 'ECOBEE'
| 'SENSIBO'
| 'HONEYWELL'
| 'RESIDEO'
| 'MITSUBISHI'
| 'MICROMATIC'
| 'NIBE'
| 'PANASONIC'
| 'TOSHIBA'
| 'DAIKIN'
| 'NEST'
| 'FUJITSU'
| 'BOSCH'
| 'NETATMO'
| 'ZAPTEC'
| 'EASEE'
| 'WALLBOX'
| 'EO'
| 'CHARGEAMPS'
| 'EVBOX'
| 'GOE'
| 'CHARGEPOINT'
| 'ENELX'
| 'OHME'
| 'GARO'
| 'SCHNEIDER'
| 'PODPOINT'
vendorType:
| ('vehicle' & {})
| ('charger' & {})
| ('hvac' & {})
| ('inverter' & {})
| ('battery' & {})
| ('meter' & {})
language:
| 'browser'
| 'da-DK'
| 'de-DE'
| 'en-US'
| 'en-GB'
| 'es-ES'
| 'fi-FI'
| 'fr-FR'
| 'it-IT'
| 'nb-NO'
| 'nl-NL'
| 'nl-BE'
| 'pt-PT'
| 'ro-RO'
| 'sv-SE'
scopes:
| 'battery:control:operation_mode'
| 'battery:read:data'
| 'battery:read:location'
| 'charger:control:charging'
| 'charger:read:data'
| 'hvac:control:mode'
| 'hvac:read:data'
| 'inverter:read:data'
| 'inverter:read:location'
| 'meter:read:data'
| 'meter:read:location'
| 'vehicle:control:charging'
| 'vehicle:read:data'
| 'vehicle:read:location'[]
redirectUri: string
colorScheme?: 'system' | 'light' | 'dark'
}
) {
const url = new URL(`https://enode-api.production.enode.io/users/${userId}/link`)
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer ' + auth.token
},
body: JSON.stringify(body)
})
if (!response.ok) {
const text = await response.text()
throw new Error(`${response.status} ${text}`)
}
return await response.json()
}
Submitted by hugo697 581 days ago