API Référence

106 commandes MQTT, reprises du dictionnaire d’actions de l’application.

Chaque commande est un message JSON publié sur le topic de commande de l'appareil : action, params, et un request_id qui corrèle la réponse publiée sur camera/{camera}/response. Le même dictionnaire est accessible par broadcast Android (Tasker, MacroDroid).

MQTTAndroid IntentsTaskerHome Assistant

Enregistrement & capture

4 commandes

caméradevice/{phoneId}/cameras/{camera}/command
capture_image

Capture une image fixe depuis la caméra. Accepte `"camera": "all"` pour capturer sur toutes les caméras connectées.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
exemple
{
  "action": "capture_image",
  "params": {
    "camera": 1003
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_recording_mode

Change le mode d'enregistrement sans démarrer de captation.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
modestringoui`continuous`, `motion` ou `timer`.
exemple
{
  "action": "set_recording_mode",
  "params": {
    "camera": 1003,
    "mode": "motion"
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
start_recording

Démarre un enregistrement. Accepte `"camera": "all"` pour un fan-out sur toutes les caméras.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
modestringnon`continuous`, `motion` ou `timer`. Défaut : `continuous`.
durationintnonDurée en secondes, pour le mode `timer`.
exemple
{
  "action": "start_recording",
  "params": {
    "camera": 1003,
    "mode": "continuous"
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
stop_recording

Arrête l'enregistrement en cours sur la caméra.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
exemple
{
  "action": "stop_recording",
  "params": {
    "camera": 1003
  },
  "request_id": "a1b2c3d4"
}

Vidéo & encodage

21 commandes

caméradevice/{phoneId}/cameras/{camera}/command
apply_camera_settings

Patch partiel des réglages caméra, indexé comme le message retenu `settings/current`. À préférer à `apply_video_settings`, dont les champs absents retombent sur des valeurs par défaut.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
exemple
{
  "action": "apply_camera_settings",
  "params": {
    "camera": 1003,
    "bitrate": 4000,
    "fps": 24
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
apply_encoding_settings

Applique le bloc d'encodage complet : mode de débit, bornes QP, intervalle d'image clé et profil H.264.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
modestringnon`CBR` ou `VBR`.
bitrateintnonDébit en kbps.
qp_minintnonBorne QP basse (VBR).
qp_maxintnonBorne QP haute (VBR).
i_frame_intervalintnonIntervalle entre images clés, en secondes.
h264_profilestringnon`BASELINE`, `MAIN` ou `HIGH`.
exemple
{
  "action": "apply_encoding_settings",
  "params": {
    "camera": 1003,
    "mode": "VBR",
    "qp_min": 22,
    "qp_max": 34
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
apply_video_settings

Applique résolution, cadence, débit et qualité en une seule commande.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
resolutionstringnonEx. `1920x1080`.
fpsintnonCadence d'encodage.
bitrateintnonDébit en kbps.
qualitystringnonPreset de qualité.
exemple
{
  "action": "apply_video_settings",
  "params": {
    "camera": 1003,
    "resolution": "1920x1080",
    "fps": 24,
    "bitrate": 4000
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
reset_camera_settings

Restaure les réglages d'usine de la caméra. Destructif : exige `confirm: true`.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
confirmbooleanouiDoit valoir `true`.
exemple
{
  "action": "reset_camera_settings",
  "params": {
    "camera": 1003,
    "confirm": true
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_bitrate

Change le débit d'encodage à chaud.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
bitrateintouiDébit en kbps.
exemple
{
  "action": "set_bitrate",
  "params": {
    "camera": 1003,
    "bitrate": 4000
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_bitrate_mode

Définit le mode de régulation du débit.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
modestringnon`CBR` ou `VBR`. Défaut : `VBR`.
exemple
{
  "action": "set_bitrate_mode",
  "params": {
    "camera": 1003,
    "mode": "CBR"
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_encoding_enabled

Active ou désactive l'encodage matériel.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
enabledbooleanoui
exemple
{
  "action": "set_encoding_enabled",
  "params": {
    "camera": 1003,
    "enabled": true
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_encoding_mode

Bascule l'encodeur entre débit constant et débit variable.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
modestringoui`CBR` ou `VBR`.
exemple
{
  "action": "set_encoding_mode",
  "params": {
    "camera": 1003,
    "mode": "VBR"
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_format

Change le format de sortie du capteur UVC (ex. MJPEG ou YUYV).

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
formatstringouiFormat capteur.
exemple
{
  "action": "set_format",
  "params": {
    "camera": 1003,
    "format": "MJPEG"
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_h264_profile

Choisit le profil H.264.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
profilestringnon`BASELINE`, `MAIN` ou `HIGH`. Défaut : `BASELINE`.
exemple
{
  "action": "set_h264_profile",
  "params": {
    "camera": 1003,
    "profile": "MAIN"
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_high_quality_mode

Bascule le préréglage haute qualité de l'encodeur.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
enabledbooleanoui
exemple
{
  "action": "set_high_quality_mode",
  "params": {
    "camera": 1003,
    "enabled": true
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_iframe_interval

Intervalle entre deux images clés, en secondes. Défaut : 3.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
intervalintnonIntervalle en secondes.
exemple
{
  "action": "set_iframe_interval",
  "params": {
    "camera": 1003,
    "interval": 3
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_recording_format

Choisit le conteneur d'enregistrement.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
formatstringouiConteneur de sortie.
exemple
{
  "action": "set_recording_format",
  "params": {
    "camera": 1003,
    "format": "mp4"
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_segment_duration

Durée d'un segment d'enregistrement avant rotation de fichier. Défaut : 10 minutes.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
minutesintouiDurée du segment en minutes.
exemple
{
  "action": "set_segment_duration",
  "params": {
    "camera": 1003,
    "minutes": 10
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_throttle_fps

Définit la cadence plafond appliquée par la limitation.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
fpsintouiCadence plafond.
exemple
{
  "action": "set_throttle_fps",
  "params": {
    "camera": 1003,
    "fps": 15
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_throttling

Active la limitation de cadence automatique.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
enabledbooleanoui
exemple
{
  "action": "set_throttling",
  "params": {
    "camera": 1003,
    "enabled": true
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_vbr_quality

Règle la qualité VBR par preset ou par bornes QP explicites.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
presetstringnonPreset de qualité VBR.
qp_minintnonBorne QP basse.
qp_maxintnonBorne QP haute.
exemple
{
  "action": "set_vbr_quality",
  "params": {
    "camera": 1003,
    "preset": "balanced"
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_video_codec

Choisit le codec vidéo. H.264 matériel est le codec retenu pour la fiabilité sur tout le parc.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
codecstringoui`H264`.
exemple
{
  "action": "set_video_codec",
  "params": {
    "camera": 1003,
    "codec": "H264"
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
update_fps

Change la cadence d'encodage.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
fpsintoui
exemple
{
  "action": "update_fps",
  "params": {
    "camera": 1003,
    "fps": 24
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
update_resolution

Change la résolution d'enregistrement. La hauteur est alignée sur le pas de l'encodeur matériel (1080 → 1072 sur certains SoC) : ce n'est pas une perte de définition annoncée.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
widthintoui
heightintoui
exemple
{
  "action": "update_resolution",
  "params": {
    "camera": 1003,
    "width": 1920,
    "height": 1080
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
update_settings

Met à jour les réglages image du capteur en un lot.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
brightnessintnon
contrastintnon
saturationintnon
sharpnessintnon
gainintnon
exemple
{
  "action": "update_settings",
  "params": {
    "camera": 1003,
    "brightness": 128,
    "contrast": 32
  },
  "request_id": "a1b2c3d4"
}

Réglages image

12 commandes

caméradevice/{phoneId}/cameras/{camera}/command
apply_image_settings

Applique les contrôles image du capteur UVC en un lot.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
brightnessintnon
contrastintnon
saturationintnon
sharpnessintnon
gainintnon
exemple
{
  "action": "apply_image_settings",
  "params": {
    "camera": 1003,
    "brightness": 140,
    "saturation": 60
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
apply_light_sensor_settings

Configure l'adaptation jour/nuit pilotée par le capteur de luminosité de l'appareil.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
exemple
{
  "action": "apply_light_sensor_settings",
  "params": {
    "camera": 1003,
    "enabled": true
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_brightness_threshold

Seuil de luminosité en dessous duquel la caméra bascule en réglage nuit.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
thresholdintoui
with_motionbooleannonNe bascule que si la détection de mouvement est active.
exemple
{
  "action": "set_brightness_threshold",
  "params": {
    "camera": 1003,
    "threshold": 30
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_dual_image_settings

Applique un jeu de réglages image distinct à l'aperçu et à l'enregistrement.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
enabledbooleanoui
brightnessintnon
contrastintnon
saturationintnon
sharpnessintnon
gainintnon
gammaintnon
hueintnon
white_balance_modestringnon
white_balance_temperatureintnonTempérature en kelvins.
exposure_modestringnon
exposure_valueintnon
exemple
{
  "action": "set_dual_image_settings",
  "params": {
    "camera": 1003,
    "enabled": true,
    "brightness": 150
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_exposure

Règle l'exposition, en automatique ou par valeur explicite.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
modestringoui`auto` ou `manual`.
valueintnonValeur d'exposition, en mode manuel.
exemple
{
  "action": "set_exposure",
  "params": {
    "camera": 1003,
    "mode": "auto"
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_focus

Règle la mise au point, en automatique ou par distance explicite.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
modestringoui`auto` ou `manual`.
distanceintnonDistance de mise au point, en mode manuel.
peakingbooleannonActive l'aide visuelle de mise au point.
exemple
{
  "action": "set_focus",
  "params": {
    "camera": 1003,
    "mode": "manual",
    "distance": 40
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_focus_peaking

Active l'aide visuelle de mise au point.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
enabledbooleannon
exemple
{
  "action": "set_focus_peaking",
  "params": {
    "camera": 1003,
    "enabled": true
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_gamma

Règle le gamma du capteur.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
valueintoui
exemple
{
  "action": "set_gamma",
  "params": {
    "camera": 1003,
    "value": 100
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_hue

Règle la teinte du capteur.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
valueintoui
exemple
{
  "action": "set_hue",
  "params": {
    "camera": 1003,
    "value": 0
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_white_balance

Règle la balance des blancs, en automatique ou par température de couleur explicite.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
modestringoui`auto` ou `manual`.
temperatureintnonTempérature en kelvins, en mode manuel.
exemple
{
  "action": "set_white_balance",
  "params": {
    "camera": 1003,
    "mode": "manual",
    "temperature": 4600
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_zoom

Règle le zoom optique ou numérique du capteur.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
valueintoui
exemple
{
  "action": "set_zoom",
  "params": {
    "camera": 1003,
    "value": 120
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
trigger_autofocus

Déclenche une passe d'autofocus immédiate.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
exemple
{
  "action": "trigger_autofocus",
  "params": {
    "camera": 1003
  },
  "request_id": "a1b2c3d4"
}

Détection de mouvement

5 commandes

caméradevice/{phoneId}/cameras/{camera}/command
apply_motion_settings

Configure la détection de mouvement : activation, sensibilité, pré et post-enregistrement.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
enabledbooleanoui
sensitivityintnon
minAreaintnonSurface minimale d'une zone en mouvement.
preRecordintnonSecondes conservées avant le déclenchement.
postRecordintnonSecondes conservées après la fin du mouvement.
exemple
{
  "action": "apply_motion_settings",
  "params": {
    "camera": 1003,
    "enabled": true,
    "sensitivity": 60,
    "postRecord": 10
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_human_detection

Configure la détection de présence humaine embarquée (réseau de neurones sur l'appareil, aucune image envoyée).

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
enabledbooleannon
interval_secondsintnonPériode entre deux inférences.
confidence_thresholdfloatnonSeuil de confiance retenu (0–1).
modestringnonMode d'exploitation du verdict.
confirm_window_msintnonFenêtre de confirmation avant de conclure à une présence.
exemple
{
  "action": "set_human_detection",
  "params": {
    "camera": 1003,
    "enabled": true,
    "confidence_threshold": 0.5
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_roi

Définit la zone d'intérêt : un rectangle, ou une grille de cellules activables individuellement.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
modestringnon`rect` ou `grid`.
xfloatnonOrigine X du rectangle (0–1).
yfloatnonOrigine Y du rectangle (0–1).
widthfloatnonLargeur du rectangle (0–1).
heightfloatnonHauteur du rectangle (0–1).
colsintnonColonnes de la grille.
rowsintnonLignes de la grille.
cellsarraynonCellules actives de la grille.
paddingintnonMarge appliquée autour de la zone.
exemple
{
  "action": "set_roi",
  "params": {
    "camera": 1003,
    "mode": "rect",
    "x": 0.2,
    "y": 0.3,
    "width": 0.5,
    "height": 0.4
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
start_analysis

Démarre l'analyse d'image sans enregistrer.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
exemple
{
  "action": "start_analysis",
  "params": {
    "camera": 1003
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
stop_analysis

Arrête l'analyse d'image.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
exemple
{
  "action": "stop_analysis",
  "params": {
    "camera": 1003
  },
  "request_id": "a1b2c3d4"
}

Diffusion RTSP / SRT

9 commandes

caméradevice/{phoneId}/cameras/{camera}/command
request_idr

Force l'encodeur à émettre une image clé immédiatement, pour qu'un nouveau lecteur ait un point de départ décodable sans attendre la prochaine image clé périodique.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
exemple
{
  "action": "request_idr",
  "params": {
    "camera": 1003
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
restart_all_rtsp

Redémarre la diffusion de toutes les caméras, avec un décalage possible entre chacune.

ParamTypeRequisDescription
camera_idsarraynonSous-ensemble de caméras à redémarrer.
stagger_msintnonDécalage entre deux redémarrages.
exemple
{
  "action": "restart_all_rtsp",
  "params": {
    "stagger_ms": 500
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
restart_rtsp_streaming

Redémarre la diffusion d'une caméra.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
delayintnonDélai avant relance, en millisecondes. Défaut : 1000.
exemple
{
  "action": "restart_rtsp_streaming",
  "params": {
    "camera": 1003,
    "delay": 1000
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_dynamic_fps

Change cadence et débit de diffusion à chaud, sans reconstruire la session.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
fpsintnonCadence. Défaut : 30.
bitrateintnonDébit en kbps.
exemple
{
  "action": "set_dynamic_fps",
  "params": {
    "camera": 1003,
    "fps": 20
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_rtsp_auto_restart

Active la relance automatique de la diffusion après une coupure.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
enabledbooleanoui
exemple
{
  "action": "set_rtsp_auto_restart",
  "params": {
    "camera": 1003,
    "enabled": true
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_rtsp_profile

Applique un profil de diffusion (résolution, cadence et débit cohérents).

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
profilestringouiNom du profil.
exemple
{
  "action": "set_rtsp_profile",
  "params": {
    "camera": 1003,
    "profile": "BALANCED"
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
start_rtsp_streaming

Démarre la diffusion live. Le transport par défaut est SRT ; RTSP reste disponible.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
profilestringnonProfil de qualité. Absent = profil persisté.
codecstringnon`H264` ou `auto`.
transportstringnon`SRT` ou `RTSP`. Absent = réglage persisté.
exemple
{
  "action": "start_rtsp_streaming",
  "params": {
    "camera": 1003,
    "transport": "SRT"
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
stop_rtsp_streaming

Arrête la diffusion live.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
exemple
{
  "action": "stop_rtsp_streaming",
  "params": {
    "camera": 1003
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
update_rtsp_profile

Met à jour le profil de diffusion en cours.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
profilestringouiNom du profil.
exemple
{
  "action": "update_rtsp_profile",
  "params": {
    "camera": 1003,
    "profile": "ECO"
  },
  "request_id": "a1b2c3d4"
}

Aperçu & monitoring

3 commandes

caméradevice/{phoneId}/cameras/{camera}/command
restart_preview

Ferme puis rouvre la caméra sans détruire son contrôleur. Sans effet si un enregistrement est en cours.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
exemple
{
  "action": "restart_preview",
  "params": {
    "camera": 1003
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_mjpeg_fast_path

Active le chemin rapide MJPEG du serveur HTTP local.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
enabledbooleanoui
exemple
{
  "action": "set_mjpeg_fast_path",
  "params": {
    "camera": 1003,
    "enabled": true
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
set_preview_settings

Configure l'aperçu indépendamment de l'enregistrement (moteur dual flux).

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
resolutionstringnon
fpsintnon
formatstringnon
exemple
{
  "action": "set_preview_settings",
  "params": {
    "camera": 1003,
    "resolution": "640x480",
    "fps": 15
  },
  "request_id": "a1b2c3d4"
}

Cycle de vie caméra

8 commandes

appareildevice/{phoneId}/cameras/0/command
add_internal_camera

Enregistre un objectif interne comme caméra pilotable. Une caméra USB apparaît au branchement ; un objectif interne est toujours physiquement là, son enregistrement est donc un acte explicite.

ParamTypeRequisDescription
cameraintnonObjectif visé (9001, 9002, 9003…). Absent = objectif arrière principal.
exemple
{
  "action": "add_internal_camera",
  "params": {
    "camera": 9001
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
cleanup_cameras

Purge les caméras fantômes restées enregistrées après un débranchement. Destructif : exige `confirm: true`.

ParamTypeRequisDescription
confirmbooleanouiDoit valoir `true`.
exemple
{
  "action": "cleanup_cameras",
  "params": {
    "confirm": true
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
disconnect_camera

Ferme la caméra côté logiciel, avec libération optionnelle du handle USB.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
release_usbbooleannonLibère aussi le handle USB.
exemple
{
  "action": "disconnect_camera",
  "params": {
    "camera": 1003,
    "release_usb": true
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
list_internal_cameras

Liste les objectifs internes de l'appareil (Camera2) disponibles à l'enregistrement.

exemple
{
  "action": "list_internal_cameras",
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
reconnect_camera

Rouvre une caméra précédemment fermée.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
exemple
{
  "action": "reconnect_camera",
  "params": {
    "camera": 1003
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
refresh_cameras

Relance la découverte des caméras branchées. Commande d'appareil : elle n'exige pas qu'une caméra soit déjà connue.

exemple
{
  "action": "refresh_cameras",
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
remove_internal_camera

Retire l'objectif interne de la liste des caméras pilotables.

exemple
{
  "action": "remove_internal_camera",
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
wake_device

Réveille le CPU de l'appareil. L'allumage de l'écran passe par le canal intent.

exemple
{
  "action": "wake_device",
  "request_id": "a1b2c3d4"
}

Lectures d'état

3 commandes

caméradevice/{phoneId}/cameras/{camera}/command
get_capabilities

Renvoie les capacités du capteur : résolutions, formats et contrôles UVC réellement supportés.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
exemple
{
  "action": "get_capabilities",
  "params": {
    "camera": 1003
  },
  "request_id": "a1b2c3d4"
}
caméradevice/{phoneId}/cameras/{camera}/command
get_settings

Renvoie les réglages courants de la caméra.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
exemple
{
  "action": "get_settings",
  "params": {
    "camera": 1003
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
get_storage_stats

Renvoie l'espace libre de chaque support de stockage détecté.

exemple
{
  "action": "get_storage_stats",
  "request_id": "a1b2c3d4"
}

Export S3 / MinIO

4 commandes

appareildevice/{phoneId}/cameras/0/command
configure_s3

Configure la destination d'export : bucket S3 AWS, instance MinIO auto-hébergée ou tout stockage compatible S3.

ParamTypeRequisDescription
access_keystringnon
secret_keystringnon
endpointstringnonURL du service, pour un stockage auto-hébergé.
bucketstringnonDéfaut : `kass-recorder`.
remote_prefixstringnonPréfixe des objets dans le bucket.
regionstringnonDéfaut : `us-east-1`.
use_sslbooleannon
wifi_onlybooleannonN'uploader que sur Wi-Fi. Défaut : `true`.
auto_upload_videosbooleannonUpload automatique des enregistrements finalisés.
auto_upload_snapshotsbooleannonUpload automatique des captures d'image.
chunk_size_mbintnonTaille des chunks, 5 à 100 Mo. Défaut : 5.
max_concurrentintnonUploads simultanés, 1 à 8.
max_retriesintnonTentatives de reprise, 0 à 10. Défaut : 3.
exemple
{
  "action": "configure_s3",
  "params": {
    "endpoint": "https://minio.exemple.net",
    "bucket": "kass-recorder",
    "wifi_only": true
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
get_s3_status

Renvoie l'état de la file d'upload et de la configuration de destination.

exemple
{
  "action": "get_s3_status",
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
upload_last_snapshot

Envoie la dernière capture d'image vers le stockage configuré.

exemple
{
  "action": "upload_last_snapshot",
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
upload_last_video

Envoie le dernier enregistrement finalisé vers le stockage configuré.

exemple
{
  "action": "upload_last_video",
  "request_id": "a1b2c3d4"
}

Warden

13 commandes

caméradevice/{phoneId}/cameras/{camera}/command
warden_assign_camera

Lie un profil à une caméra précise.

ParamTypeRequisDescription
cameraintnonIdentifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées.
profile_idstringoui
exemple
{
  "action": "warden_assign_camera",
  "params": {
    "profile_id": "12",
    "camera": 1003
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
warden_create_profile

Crée un profil d'automatisation. Les profils survivent aux redémarrages.

ParamTypeRequisDescription
namestringouiNom du profil.
exemple
{
  "action": "warden_create_profile",
  "params": {
    "name": "Garde de nuit"
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
warden_delete_profile

Supprime un profil.

ParamTypeRequisDescription
profile_idstringoui
exemple
{
  "action": "warden_delete_profile",
  "params": {
    "profile_id": "12"
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
warden_disable_profile

Désactive un profil sans le supprimer.

ParamTypeRequisDescription
profile_idstringoui
exemple
{
  "action": "warden_disable_profile",
  "params": {
    "profile_id": "12"
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
warden_dry_run_profile

Simule l'exécution d'un profil et renvoie les actions qui seraient jouées, sans rien exécuter.

ParamTypeRequisDescription
profile_idstringoui
exemple
{
  "action": "warden_dry_run_profile",
  "params": {
    "profile_id": "12"
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
warden_enable_profile

Active un profil.

ParamTypeRequisDescription
profile_idstringoui
exemple
{
  "action": "warden_enable_profile",
  "params": {
    "profile_id": "12"
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
warden_execute_profile

Exécute un profil immédiatement, sans attendre son déclencheur.

ParamTypeRequisDescription
profile_idstringoui
exemple
{
  "action": "warden_execute_profile",
  "params": {
    "profile_id": "12"
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
warden_get_profile

Renvoie un profil complet : règles, déclencheurs, conditions et actions.

ParamTypeRequisDescription
profile_idstringoui
exemple
{
  "action": "warden_get_profile",
  "params": {
    "profile_id": "12"
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
warden_list_profiles

Liste les profils d'automatisation présents sur l'appareil.

exemple
{
  "action": "warden_list_profiles",
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
warden_production_mode

Active ou coupe en bloc les profils déjà assignés. Ne porte volontairement aucun identifiant de caméra : réassigner un profil n'est pas sûr quand plusieurs caméras sont branchées.

ParamTypeRequisDescription
enabledbooleanoui
prefixstringnonNe vise que les profils dont le nom commence par ce préfixe.
exemple
{
  "action": "warden_production_mode",
  "params": {
    "enabled": true
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
warden_stop_all_profiles

Interrompt tous les profils en cours d'exécution.

exemple
{
  "action": "warden_stop_all_profiles",
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
warden_stop_profile

Interrompt un profil en cours d'exécution.

ParamTypeRequisDescription
profile_idstringoui
exemple
{
  "action": "warden_stop_profile",
  "params": {
    "profile_id": "12"
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
warden_update_profile

Met à jour un profil existant.

ParamTypeRequisDescription
profile_idstringoui
exemple
{
  "action": "warden_update_profile",
  "params": {
    "profile_id": "12"
  },
  "request_id": "a1b2c3d4"
}

Déplacement de l'appareil

4 commandes

appareildevice/{phoneId}/cameras/0/command
arm_device_motion

Arme la détection de déplacement et remet le verdict à zéro.

exemple
{
  "action": "arm_device_motion",
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
disarm_device_motion

Désarme la détection de déplacement.

exemple
{
  "action": "disarm_device_motion",
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
get_device_motion_status

Renvoie l'état de la détection de déplacement et le dernier verdict.

exemple
{
  "action": "get_device_motion_status",
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
set_device_motion

Configure la détection de déplacement du téléphone lui-même (accéléromètre) : seuil, durées de confirmation et de retour au calme, fréquence d'échantillonnage.

ParamTypeRequisDescription
enabledbooleannon
accel_threshold_ms2floatnonSeuil d'accélération, en m/s².
sustain_msintnonDurée au-dessus du seuil avant de conclure à un déplacement.
settle_msintnonDurée de calme avant de considérer le déplacement terminé.
sampling_hzintnonFréquence d'échantillonnage de l'accéléromètre.
fast_triggersbooleannonRéduit les fenêtres de confirmation.
exemple
{
  "action": "set_device_motion",
  "params": {
    "enabled": true,
    "accel_threshold_ms2": 2.5
  },
  "request_id": "a1b2c3d4"
}

Réseau & déploiement

4 commandes

appareildevice/{phoneId}/cameras/0/command
network_test

Sonde réseau active : mesure latence, gigue, débit et pertes entre l'appareil et le broker. Sert à valider une installation avant de quitter le site.

ParamTypeRequisDescription
duration_msintnonDurée de la mesure.
payload_size_kbintnonTaille des messages de test.
ping_interval_msintnonPériode entre deux sondes.
exemple
{
  "action": "network_test",
  "params": {
    "duration_ms": 10000
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
set_deployment_mode

Bascule l'appareil entre un déploiement en réseau local et un déploiement distant par VPN.

ParamTypeRequisDescription
modestringouiMode de déploiement.
exemple
{
  "action": "set_deployment_mode",
  "params": {
    "mode": "vpn"
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
start_loop

Demande la reprise du cycle radio de l'appareil. Le cycle est planifié par l'app d'automatisation du téléphone, pas par K7 Recorder : cette commande lui relaie la demande.

ParamTypeRequisDescription
suspendedbooleannon
reasonsarraynonMotifs joints à la demande.
exemple
{
  "action": "start_loop",
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
stop_loop

Demande la suspension du cycle radio de l'appareil, pour garder la liaison ouverte pendant une intervention.

ParamTypeRequisDescription
deadline_sintnonDurée de la suspension, en secondes.
exemple
{
  "action": "stop_loop",
  "params": {
    "deadline_s": 900
  },
  "request_id": "a1b2c3d4"
}

Réglages application

7 commandes

appareildevice/{phoneId}/cameras/0/command
apply_general_settings

Patch des réglages globaux de l'application : démarrage automatique, segmentation, débit et cadence par défaut, transport de diffusion, serveur HTTP, chemins de stockage, veille.

exemple
{
  "action": "apply_general_settings",
  "params": {
    "auto_start_recording": true,
    "segment_duration_ms": 600000
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
get_general_settings

Renvoie les réglages globaux de l'application.

exemple
{
  "action": "get_general_settings",
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
set_audio

Active la piste audio et choisit sa source.

ParamTypeRequisDescription
enabledbooleannon
sourcestringnonSource audio.
exemple
{
  "action": "set_audio",
  "params": {
    "enabled": true
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
set_device_code

Attribue son code à l'appareil. C'est ce code qui l'identifie dans une flotte.

ParamTypeRequisDescription
codestringouiK1 à K99, ou vide pour effacer.
exemple
{
  "action": "set_device_code",
  "params": {
    "code": "K7"
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
set_mqtt_credentials

Réécrit les identifiants du broker et reconstruit le client MQTT.

ParamTypeRequisDescription
usernamestringoui
passwordstringoui
exemple
{
  "action": "set_mqtt_credentials",
  "params": {
    "username": "…",
    "password": "…"
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
set_security

Configure la porte d'authentification des commandes. En mode `token`, le jeton doit accompagner la même commande.

ParamTypeRequisDescription
modestringnon`open` ou `token`. Défaut de l'application : `token`.
tokenstringnonJeton attendu, requis si `mode` vaut `token`.
exemple
{
  "action": "set_security",
  "params": {
    "mode": "token",
    "token": "…"
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
set_streaming_transport

Choisit le transport de diffusion par défaut. Défaut : SRT.

ParamTypeRequisDescription
transportstringoui`SRT` ou `RTSP`.
exemple
{
  "action": "set_streaming_transport",
  "params": {
    "transport": "SRT"
  },
  "request_id": "a1b2c3d4"
}

Système & maintenance

9 commandes

appareildevice/{phoneId}/cameras/0/command
get_logs

Renvoie les dernières lignes du journal de l'application.

ParamTypeRequisDescription
linesintnonNombre de lignes.
exemple
{
  "action": "get_logs",
  "params": {
    "lines": 200
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
purge_recordings

Supprime les enregistrements locaux. Destructif : exige `confirm: true`.

ParamTypeRequisDescription
confirmbooleanouiDoit valoir `true`.
older_than_daysintnonNe supprime que les fichiers plus anciens que N jours.
exemple
{
  "action": "purge_recordings",
  "params": {
    "confirm": true,
    "older_than_days": 30
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
reboot_device

Redémarre le téléphone. Destructif : exige `confirm: true`.

ParamTypeRequisDescription
confirmbooleanouiDoit valoir `true`.
exemple
{
  "action": "reboot_device",
  "params": {
    "confirm": true
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
restart_app

Redémarre l'application. Destructif : exige `confirm: true`.

ParamTypeRequisDescription
confirmbooleanouiDoit valoir `true`.
exemple
{
  "action": "restart_app",
  "params": {
    "confirm": true
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
set_thermal_governor

Active le régulateur thermique, qui dégrade la cadence quand l'appareil chauffe.

ParamTypeRequisDescription
enabledbooleanoui
exemple
{
  "action": "set_thermal_governor",
  "params": {
    "enabled": true
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
start_http_server

Démarre le serveur HTTP local (aperçu MJPEG, snapshot, listing des enregistrements). Désactivé par défaut : le pilotage passe par MQTT.

ParamTypeRequisDescription
portintnonPort d'écoute. Défaut : 8080.
exemple
{
  "action": "start_http_server",
  "params": {
    "port": 8080
  },
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
stop_http_server

Arrête le serveur HTTP local.

ParamTypeRequisDescription
forcebooleannon
exemple
{
  "action": "stop_http_server",
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
usb_diagnostics

Renvoie l'état du contrôleur USB de l'appareil : périphériques vus, adresses, mode hôte.

exemple
{
  "action": "usb_diagnostics",
  "request_id": "a1b2c3d4"
}
appareildevice/{phoneId}/cameras/0/command
usb_reset

Réinitialise le bus USB du téléphone. Coupe le bus : destructif comme les commandes de maintenance, mais adresse le contrôleur USB, pas une caméra.

ParamTypeRequisDescription
forcebooleannon
exemple
{
  "action": "usb_reset",
  "params": {
    "force": true
  },
  "request_id": "a1b2c3d4"
}