B Globals reference

Toutes les variables global.* du canvas LuvitRED, qui les écrit, qui les lit, leur valeur par défaut

Identité

VariableTypeDefaultSet parLu par
cloudgate_device_namestringcloudgate-terega-01startup_initbuild_dap_register, build_dap_token, build_dap_refresh, build_iobase_msg, build_health_msg
start_timeepochos.time() au bootstartup_init (avec or = persisté en RAM)build_health_msg (uptime calc)

Heartbeat & LoRa

VariableTypeDefaultSet parLu par
life_counterinteger 0-320000life_tick (++1/s, reset à 32000), life_restore (au boot)build_health_msg
lora_uplinks_countinteger0on_lora_message (++1/uplink)build_health_msg
last_lora_tsepoch0on_lora_messagebuild_health_msg (lora_status calc)
last_lora_deveuistringon_lora_message(non utilisé pour l'instant)
last_lora_rssi / last_lora_snrnumberon_lora_message(non utilisé pour l'instant)

IoBase & DAP

VariableTypeDefaultSet parLu par
iobase_hoststring'TODO_IOBASE_HOST'startup_init (à override par Terega)build_iobase_msg, build_health_msg
dap_hoststring'TODO_DAP_HOST'startup_init (à override par Terega)build_dap_register, build_dap_token, build_dap_refresh
iobase_tokenstring''handle_dap_resp (sur token/refresh OK), restore_dap_state (au boot)build_iobase_msg, build_health_msg (Bearer)
iobase_refresh_tokenstring''handle_dap_resp, restore_dap_statebuild_dap_refresh
dap_device_codestring''handle_dap_resp (sur register OK), restore_dap_statebuild_dap_token
dap_refreshingbooleanfalsebuild_dap_token, build_dap_refresh (set true), handle_dap_resp (reset false)build_dap_token, build_dap_refresh (mutex check)
dap_token_tsepoch0handle_dap_resp(observabilité only)
last_iobase_ok_tsepoch0handle_iobase_resp (sur 200)build_health_msg

IoBase body fields (per spec PDF v1.0)

VariableTypeDefaultÀ fournir Terega
iobase_equipment_modelstring'asystom_sentinel'OK
iobase_sitestring'TODO_SITE'OUI (ex: vandellans)
iobase_datasourcestring'TODO_DATASOURCE'OUI (ex: transportation)
iobase_metrics_defaultJSON array string'[]'OUI (ex: '["50001m_iot_pit002"]')
iobase_optionsstring''NON (champ optionnel spec)

Asystom Advisor (Basic Auth)

VariableTypeDefaultSet parLu par
asystom_urlstring'TODO_ASYSTOM_URL'startup_init (à override Patrick Duc)build_asystom_msg, build_asystom_dl_get
asystom_auth_b64string base64'TODO_BASE64_BASIC_AUTH'startup_init (à override Patrick Duc)build_asystom_msg, build_asystom_dl_get
asystom_networkstring'cloudgate-terega-01'startup_initbuild_asystom_msg (header X-Network)
asystom_clientstring'TODO_CLIENT'startup_init (à override Asystom)build_asystom_msg (body), build_asystom_dl_get (query param)
last_asystom_ok_tsepoch0handle_asystom_resp (sur 2xx)build_health_msg

CG admin / GSM metrics

VariableTypeDefaultSet parLu par
cg_admin_user / cg_admin_passstring'admin' / hardcoded fallbackstartup_initbuild_cg_login
cg_session_cookiestringnilhandle_cg_login (extrait Set-Cookie)build_cg_metrics
gsm_rssinumber (dBm)nilhandle_cg_metrics (kind=diag_wwan0)build_health_msg
gsm_signal_qualitynumbernilhandle_cg_metricsbuild_health_msg
gsm_operatorstringnilhandle_cg_metricsbuild_health_msg
gsm_technologystringnilhandle_cg_metricsbuild_health_msg
gsm_rfbandstringnilhandle_cg_metricsbuild_health_msg
modem_model / modem_manuf / modem_fwstringnilhandle_cg_metricsbuild_health_msg
wan_connectedbooleannilhandle_cg_metrics (kind=internet)handle_cg_metrics (transition false→true → trigger refresh DAP)
wan_connection_status / wan_ifacenumber / stringnilhandle_cg_metrics(observabilité)
last_metrics_tsepoch0handle_cg_metrics(observabilité)
cg_metrics_idxinteger0build_cg_metrics (rotation des endpoints)build_cg_metrics

Set globals manuellement (à la console Lua ou via inject)

Méthode rapide pour pivoter vers la prod après test mock — créer un inject + function nodes :

-- Function node "set_prod_globals"
global.iobase_host  = 'iobase.terega.fr'
global.dap_host     = 'dap.indaba.io'
global.iobase_site  = 'vandellans'
global.iobase_datasource = 'transportation'
global.iobase_metrics_default = '["50001m_iot_pit002","50001m_iot_tt002"]'

global.asystom_url      = 'https://advisor.asystom.cloud'
global.asystom_auth_b64 = '<base64-from-patrick>'
global.asystom_client   = 'terega'

p({tag='PROD_GLOBALS_SET'})
return msg

Wire : inject (manuel) → set_prod_globals. Tirer une fois après deploy. Les valeurs sont en RAM jusqu'au prochain reboot ou redeploy de fn_startup_init qui les ré-applique avec les or.

Persistance des globals
Les globals sont en RAM (sauf ceux explicitement persistés flash : life_counter, iobase_token, iobase_refresh_token, dap_device_code). Au reboot CG, les autres globals sont reset au default de fn_startup_init. Mettre à jour directement le code de fn_startup_init pour les valeurs prod afin qu'elles survivent un reboot.