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).
Enregistrement & capture
4 commandes
Capture une image fixe depuis la caméra. Accepte `"camera": "all"` pour capturer sur toutes les caméras connectées.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
{
"action": "capture_image",
"params": {
"camera": 1003
},
"request_id": "a1b2c3d4"
}Change le mode d'enregistrement sans démarrer de captation.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| mode | string | oui | `continuous`, `motion` ou `timer`. |
{
"action": "set_recording_mode",
"params": {
"camera": 1003,
"mode": "motion"
},
"request_id": "a1b2c3d4"
}Démarre un enregistrement. Accepte `"camera": "all"` pour un fan-out sur toutes les caméras.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| mode | string | non | `continuous`, `motion` ou `timer`. Défaut : `continuous`. |
| duration | int | non | Durée en secondes, pour le mode `timer`. |
{
"action": "start_recording",
"params": {
"camera": 1003,
"mode": "continuous"
},
"request_id": "a1b2c3d4"
}Arrête l'enregistrement en cours sur la caméra.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
{
"action": "stop_recording",
"params": {
"camera": 1003
},
"request_id": "a1b2c3d4"
}Vidéo & encodage
21 commandes
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.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
{
"action": "apply_camera_settings",
"params": {
"camera": 1003,
"bitrate": 4000,
"fps": 24
},
"request_id": "a1b2c3d4"
}Applique le bloc d'encodage complet : mode de débit, bornes QP, intervalle d'image clé et profil H.264.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| mode | string | non | `CBR` ou `VBR`. |
| bitrate | int | non | Débit en kbps. |
| qp_min | int | non | Borne QP basse (VBR). |
| qp_max | int | non | Borne QP haute (VBR). |
| i_frame_interval | int | non | Intervalle entre images clés, en secondes. |
| h264_profile | string | non | `BASELINE`, `MAIN` ou `HIGH`. |
{
"action": "apply_encoding_settings",
"params": {
"camera": 1003,
"mode": "VBR",
"qp_min": 22,
"qp_max": 34
},
"request_id": "a1b2c3d4"
}Applique résolution, cadence, débit et qualité en une seule commande.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| resolution | string | non | Ex. `1920x1080`. |
| fps | int | non | Cadence d'encodage. |
| bitrate | int | non | Débit en kbps. |
| quality | string | non | Preset de qualité. |
{
"action": "apply_video_settings",
"params": {
"camera": 1003,
"resolution": "1920x1080",
"fps": 24,
"bitrate": 4000
},
"request_id": "a1b2c3d4"
}Restaure les réglages d'usine de la caméra. Destructif : exige `confirm: true`.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| confirm | boolean | oui | Doit valoir `true`. |
{
"action": "reset_camera_settings",
"params": {
"camera": 1003,
"confirm": true
},
"request_id": "a1b2c3d4"
}Change le débit d'encodage à chaud.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| bitrate | int | oui | Débit en kbps. |
{
"action": "set_bitrate",
"params": {
"camera": 1003,
"bitrate": 4000
},
"request_id": "a1b2c3d4"
}Définit le mode de régulation du débit.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| mode | string | non | `CBR` ou `VBR`. Défaut : `VBR`. |
{
"action": "set_bitrate_mode",
"params": {
"camera": 1003,
"mode": "CBR"
},
"request_id": "a1b2c3d4"
}Active ou désactive l'encodage matériel.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| enabled | boolean | oui |
{
"action": "set_encoding_enabled",
"params": {
"camera": 1003,
"enabled": true
},
"request_id": "a1b2c3d4"
}Bascule l'encodeur entre débit constant et débit variable.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| mode | string | oui | `CBR` ou `VBR`. |
{
"action": "set_encoding_mode",
"params": {
"camera": 1003,
"mode": "VBR"
},
"request_id": "a1b2c3d4"
}Change le format de sortie du capteur UVC (ex. MJPEG ou YUYV).
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| format | string | oui | Format capteur. |
{
"action": "set_format",
"params": {
"camera": 1003,
"format": "MJPEG"
},
"request_id": "a1b2c3d4"
}Choisit le profil H.264.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| profile | string | non | `BASELINE`, `MAIN` ou `HIGH`. Défaut : `BASELINE`. |
{
"action": "set_h264_profile",
"params": {
"camera": 1003,
"profile": "MAIN"
},
"request_id": "a1b2c3d4"
}Bascule le préréglage haute qualité de l'encodeur.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| enabled | boolean | oui |
{
"action": "set_high_quality_mode",
"params": {
"camera": 1003,
"enabled": true
},
"request_id": "a1b2c3d4"
}Intervalle entre deux images clés, en secondes. Défaut : 3.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| interval | int | non | Intervalle en secondes. |
{
"action": "set_iframe_interval",
"params": {
"camera": 1003,
"interval": 3
},
"request_id": "a1b2c3d4"
}Choisit le conteneur d'enregistrement.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| format | string | oui | Conteneur de sortie. |
{
"action": "set_recording_format",
"params": {
"camera": 1003,
"format": "mp4"
},
"request_id": "a1b2c3d4"
}Durée d'un segment d'enregistrement avant rotation de fichier. Défaut : 10 minutes.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| minutes | int | oui | Durée du segment en minutes. |
{
"action": "set_segment_duration",
"params": {
"camera": 1003,
"minutes": 10
},
"request_id": "a1b2c3d4"
}Définit la cadence plafond appliquée par la limitation.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| fps | int | oui | Cadence plafond. |
{
"action": "set_throttle_fps",
"params": {
"camera": 1003,
"fps": 15
},
"request_id": "a1b2c3d4"
}Active la limitation de cadence automatique.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| enabled | boolean | oui |
{
"action": "set_throttling",
"params": {
"camera": 1003,
"enabled": true
},
"request_id": "a1b2c3d4"
}Règle la qualité VBR par preset ou par bornes QP explicites.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| preset | string | non | Preset de qualité VBR. |
| qp_min | int | non | Borne QP basse. |
| qp_max | int | non | Borne QP haute. |
{
"action": "set_vbr_quality",
"params": {
"camera": 1003,
"preset": "balanced"
},
"request_id": "a1b2c3d4"
}Choisit le codec vidéo. H.264 matériel est le codec retenu pour la fiabilité sur tout le parc.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| codec | string | oui | `H264`. |
{
"action": "set_video_codec",
"params": {
"camera": 1003,
"codec": "H264"
},
"request_id": "a1b2c3d4"
}Change la cadence d'encodage.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| fps | int | oui |
{
"action": "update_fps",
"params": {
"camera": 1003,
"fps": 24
},
"request_id": "a1b2c3d4"
}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.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| width | int | oui | |
| height | int | oui |
{
"action": "update_resolution",
"params": {
"camera": 1003,
"width": 1920,
"height": 1080
},
"request_id": "a1b2c3d4"
}Met à jour les réglages image du capteur en un lot.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| brightness | int | non | |
| contrast | int | non | |
| saturation | int | non | |
| sharpness | int | non | |
| gain | int | non |
{
"action": "update_settings",
"params": {
"camera": 1003,
"brightness": 128,
"contrast": 32
},
"request_id": "a1b2c3d4"
}Réglages image
12 commandes
Applique les contrôles image du capteur UVC en un lot.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| brightness | int | non | |
| contrast | int | non | |
| saturation | int | non | |
| sharpness | int | non | |
| gain | int | non |
{
"action": "apply_image_settings",
"params": {
"camera": 1003,
"brightness": 140,
"saturation": 60
},
"request_id": "a1b2c3d4"
}Configure l'adaptation jour/nuit pilotée par le capteur de luminosité de l'appareil.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
{
"action": "apply_light_sensor_settings",
"params": {
"camera": 1003,
"enabled": true
},
"request_id": "a1b2c3d4"
}Seuil de luminosité en dessous duquel la caméra bascule en réglage nuit.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| threshold | int | oui | |
| with_motion | boolean | non | Ne bascule que si la détection de mouvement est active. |
{
"action": "set_brightness_threshold",
"params": {
"camera": 1003,
"threshold": 30
},
"request_id": "a1b2c3d4"
}Applique un jeu de réglages image distinct à l'aperçu et à l'enregistrement.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| enabled | boolean | oui | |
| brightness | int | non | |
| contrast | int | non | |
| saturation | int | non | |
| sharpness | int | non | |
| gain | int | non | |
| gamma | int | non | |
| hue | int | non | |
| white_balance_mode | string | non | |
| white_balance_temperature | int | non | Température en kelvins. |
| exposure_mode | string | non | |
| exposure_value | int | non |
{
"action": "set_dual_image_settings",
"params": {
"camera": 1003,
"enabled": true,
"brightness": 150
},
"request_id": "a1b2c3d4"
}Règle l'exposition, en automatique ou par valeur explicite.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| mode | string | oui | `auto` ou `manual`. |
| value | int | non | Valeur d'exposition, en mode manuel. |
{
"action": "set_exposure",
"params": {
"camera": 1003,
"mode": "auto"
},
"request_id": "a1b2c3d4"
}Règle la mise au point, en automatique ou par distance explicite.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| mode | string | oui | `auto` ou `manual`. |
| distance | int | non | Distance de mise au point, en mode manuel. |
| peaking | boolean | non | Active l'aide visuelle de mise au point. |
{
"action": "set_focus",
"params": {
"camera": 1003,
"mode": "manual",
"distance": 40
},
"request_id": "a1b2c3d4"
}Active l'aide visuelle de mise au point.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| enabled | boolean | non |
{
"action": "set_focus_peaking",
"params": {
"camera": 1003,
"enabled": true
},
"request_id": "a1b2c3d4"
}Règle le gamma du capteur.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| value | int | oui |
{
"action": "set_gamma",
"params": {
"camera": 1003,
"value": 100
},
"request_id": "a1b2c3d4"
}Règle la teinte du capteur.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| value | int | oui |
{
"action": "set_hue",
"params": {
"camera": 1003,
"value": 0
},
"request_id": "a1b2c3d4"
}Règle la balance des blancs, en automatique ou par température de couleur explicite.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| mode | string | oui | `auto` ou `manual`. |
| temperature | int | non | Température en kelvins, en mode manuel. |
{
"action": "set_white_balance",
"params": {
"camera": 1003,
"mode": "manual",
"temperature": 4600
},
"request_id": "a1b2c3d4"
}Règle le zoom optique ou numérique du capteur.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| value | int | oui |
{
"action": "set_zoom",
"params": {
"camera": 1003,
"value": 120
},
"request_id": "a1b2c3d4"
}Déclenche une passe d'autofocus immédiate.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
{
"action": "trigger_autofocus",
"params": {
"camera": 1003
},
"request_id": "a1b2c3d4"
}Détection de mouvement
5 commandes
Configure la détection de mouvement : activation, sensibilité, pré et post-enregistrement.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| enabled | boolean | oui | |
| sensitivity | int | non | |
| minArea | int | non | Surface minimale d'une zone en mouvement. |
| preRecord | int | non | Secondes conservées avant le déclenchement. |
| postRecord | int | non | Secondes conservées après la fin du mouvement. |
{
"action": "apply_motion_settings",
"params": {
"camera": 1003,
"enabled": true,
"sensitivity": 60,
"postRecord": 10
},
"request_id": "a1b2c3d4"
}Configure la détection de présence humaine embarquée (réseau de neurones sur l'appareil, aucune image envoyée).
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| enabled | boolean | non | |
| interval_seconds | int | non | Période entre deux inférences. |
| confidence_threshold | float | non | Seuil de confiance retenu (0–1). |
| mode | string | non | Mode d'exploitation du verdict. |
| confirm_window_ms | int | non | Fenêtre de confirmation avant de conclure à une présence. |
{
"action": "set_human_detection",
"params": {
"camera": 1003,
"enabled": true,
"confidence_threshold": 0.5
},
"request_id": "a1b2c3d4"
}Définit la zone d'intérêt : un rectangle, ou une grille de cellules activables individuellement.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| mode | string | non | `rect` ou `grid`. |
| x | float | non | Origine X du rectangle (0–1). |
| y | float | non | Origine Y du rectangle (0–1). |
| width | float | non | Largeur du rectangle (0–1). |
| height | float | non | Hauteur du rectangle (0–1). |
| cols | int | non | Colonnes de la grille. |
| rows | int | non | Lignes de la grille. |
| cells | array | non | Cellules actives de la grille. |
| padding | int | non | Marge appliquée autour de la zone. |
{
"action": "set_roi",
"params": {
"camera": 1003,
"mode": "rect",
"x": 0.2,
"y": 0.3,
"width": 0.5,
"height": 0.4
},
"request_id": "a1b2c3d4"
}Démarre l'analyse d'image sans enregistrer.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
{
"action": "start_analysis",
"params": {
"camera": 1003
},
"request_id": "a1b2c3d4"
}Arrête l'analyse d'image.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
{
"action": "stop_analysis",
"params": {
"camera": 1003
},
"request_id": "a1b2c3d4"
}Diffusion RTSP / SRT
9 commandes
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.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
{
"action": "request_idr",
"params": {
"camera": 1003
},
"request_id": "a1b2c3d4"
}Redémarre la diffusion de toutes les caméras, avec un décalage possible entre chacune.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera_ids | array | non | Sous-ensemble de caméras à redémarrer. |
| stagger_ms | int | non | Décalage entre deux redémarrages. |
{
"action": "restart_all_rtsp",
"params": {
"stagger_ms": 500
},
"request_id": "a1b2c3d4"
}Redémarre la diffusion d'une caméra.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| delay | int | non | Délai avant relance, en millisecondes. Défaut : 1000. |
{
"action": "restart_rtsp_streaming",
"params": {
"camera": 1003,
"delay": 1000
},
"request_id": "a1b2c3d4"
}Change cadence et débit de diffusion à chaud, sans reconstruire la session.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| fps | int | non | Cadence. Défaut : 30. |
| bitrate | int | non | Débit en kbps. |
{
"action": "set_dynamic_fps",
"params": {
"camera": 1003,
"fps": 20
},
"request_id": "a1b2c3d4"
}Active la relance automatique de la diffusion après une coupure.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| enabled | boolean | oui |
{
"action": "set_rtsp_auto_restart",
"params": {
"camera": 1003,
"enabled": true
},
"request_id": "a1b2c3d4"
}Applique un profil de diffusion (résolution, cadence et débit cohérents).
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| profile | string | oui | Nom du profil. |
{
"action": "set_rtsp_profile",
"params": {
"camera": 1003,
"profile": "BALANCED"
},
"request_id": "a1b2c3d4"
}Démarre la diffusion live. Le transport par défaut est SRT ; RTSP reste disponible.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| profile | string | non | Profil de qualité. Absent = profil persisté. |
| codec | string | non | `H264` ou `auto`. |
| transport | string | non | `SRT` ou `RTSP`. Absent = réglage persisté. |
{
"action": "start_rtsp_streaming",
"params": {
"camera": 1003,
"transport": "SRT"
},
"request_id": "a1b2c3d4"
}Arrête la diffusion live.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
{
"action": "stop_rtsp_streaming",
"params": {
"camera": 1003
},
"request_id": "a1b2c3d4"
}Met à jour le profil de diffusion en cours.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| profile | string | oui | Nom du profil. |
{
"action": "update_rtsp_profile",
"params": {
"camera": 1003,
"profile": "ECO"
},
"request_id": "a1b2c3d4"
}Aperçu & monitoring
3 commandes
Ferme puis rouvre la caméra sans détruire son contrôleur. Sans effet si un enregistrement est en cours.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
{
"action": "restart_preview",
"params": {
"camera": 1003
},
"request_id": "a1b2c3d4"
}Active le chemin rapide MJPEG du serveur HTTP local.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| enabled | boolean | oui |
{
"action": "set_mjpeg_fast_path",
"params": {
"camera": 1003,
"enabled": true
},
"request_id": "a1b2c3d4"
}Configure l'aperçu indépendamment de l'enregistrement (moteur dual flux).
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| resolution | string | non | |
| fps | int | non | |
| format | string | non |
{
"action": "set_preview_settings",
"params": {
"camera": 1003,
"resolution": "640x480",
"fps": 15
},
"request_id": "a1b2c3d4"
}Cycle de vie caméra
8 commandes
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.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Objectif visé (9001, 9002, 9003…). Absent = objectif arrière principal. |
{
"action": "add_internal_camera",
"params": {
"camera": 9001
},
"request_id": "a1b2c3d4"
}Purge les caméras fantômes restées enregistrées après un débranchement. Destructif : exige `confirm: true`.
| Param | Type | Requis | Description |
|---|---|---|---|
| confirm | boolean | oui | Doit valoir `true`. |
{
"action": "cleanup_cameras",
"params": {
"confirm": true
},
"request_id": "a1b2c3d4"
}Ferme la caméra côté logiciel, avec libération optionnelle du handle USB.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| release_usb | boolean | non | Libère aussi le handle USB. |
{
"action": "disconnect_camera",
"params": {
"camera": 1003,
"release_usb": true
},
"request_id": "a1b2c3d4"
}Liste les objectifs internes de l'appareil (Camera2) disponibles à l'enregistrement.
{
"action": "list_internal_cameras",
"request_id": "a1b2c3d4"
}Rouvre une caméra précédemment fermée.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
{
"action": "reconnect_camera",
"params": {
"camera": 1003
},
"request_id": "a1b2c3d4"
}Relance la découverte des caméras branchées. Commande d'appareil : elle n'exige pas qu'une caméra soit déjà connue.
{
"action": "refresh_cameras",
"request_id": "a1b2c3d4"
}Retire l'objectif interne de la liste des caméras pilotables.
{
"action": "remove_internal_camera",
"request_id": "a1b2c3d4"
}Réveille le CPU de l'appareil. L'allumage de l'écran passe par le canal intent.
{
"action": "wake_device",
"request_id": "a1b2c3d4"
}Lectures d'état
3 commandes
Renvoie les capacités du capteur : résolutions, formats et contrôles UVC réellement supportés.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
{
"action": "get_capabilities",
"params": {
"camera": 1003
},
"request_id": "a1b2c3d4"
}Renvoie les réglages courants de la caméra.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
{
"action": "get_settings",
"params": {
"camera": 1003
},
"request_id": "a1b2c3d4"
}Renvoie l'espace libre de chaque support de stockage détecté.
{
"action": "get_storage_stats",
"request_id": "a1b2c3d4"
}Export S3 / MinIO
4 commandes
Configure la destination d'export : bucket S3 AWS, instance MinIO auto-hébergée ou tout stockage compatible S3.
| Param | Type | Requis | Description |
|---|---|---|---|
| access_key | string | non | |
| secret_key | string | non | |
| endpoint | string | non | URL du service, pour un stockage auto-hébergé. |
| bucket | string | non | Défaut : `kass-recorder`. |
| remote_prefix | string | non | Préfixe des objets dans le bucket. |
| region | string | non | Défaut : `us-east-1`. |
| use_ssl | boolean | non | |
| wifi_only | boolean | non | N'uploader que sur Wi-Fi. Défaut : `true`. |
| auto_upload_videos | boolean | non | Upload automatique des enregistrements finalisés. |
| auto_upload_snapshots | boolean | non | Upload automatique des captures d'image. |
| chunk_size_mb | int | non | Taille des chunks, 5 à 100 Mo. Défaut : 5. |
| max_concurrent | int | non | Uploads simultanés, 1 à 8. |
| max_retries | int | non | Tentatives de reprise, 0 à 10. Défaut : 3. |
{
"action": "configure_s3",
"params": {
"endpoint": "https://minio.exemple.net",
"bucket": "kass-recorder",
"wifi_only": true
},
"request_id": "a1b2c3d4"
}Renvoie l'état de la file d'upload et de la configuration de destination.
{
"action": "get_s3_status",
"request_id": "a1b2c3d4"
}Envoie la dernière capture d'image vers le stockage configuré.
{
"action": "upload_last_snapshot",
"request_id": "a1b2c3d4"
}Envoie le dernier enregistrement finalisé vers le stockage configuré.
{
"action": "upload_last_video",
"request_id": "a1b2c3d4"
}Warden
13 commandes
Lie un profil à une caméra précise.
| Param | Type | Requis | Description |
|---|---|---|---|
| camera | int | non | Identifiant de la caméra (entier, ex. 1003). Obligatoire dès que plusieurs caméras sont connectées. |
| profile_id | string | oui |
{
"action": "warden_assign_camera",
"params": {
"profile_id": "12",
"camera": 1003
},
"request_id": "a1b2c3d4"
}Crée un profil d'automatisation. Les profils survivent aux redémarrages.
| Param | Type | Requis | Description |
|---|---|---|---|
| name | string | oui | Nom du profil. |
{
"action": "warden_create_profile",
"params": {
"name": "Garde de nuit"
},
"request_id": "a1b2c3d4"
}Supprime un profil.
| Param | Type | Requis | Description |
|---|---|---|---|
| profile_id | string | oui |
{
"action": "warden_delete_profile",
"params": {
"profile_id": "12"
},
"request_id": "a1b2c3d4"
}Désactive un profil sans le supprimer.
| Param | Type | Requis | Description |
|---|---|---|---|
| profile_id | string | oui |
{
"action": "warden_disable_profile",
"params": {
"profile_id": "12"
},
"request_id": "a1b2c3d4"
}Simule l'exécution d'un profil et renvoie les actions qui seraient jouées, sans rien exécuter.
| Param | Type | Requis | Description |
|---|---|---|---|
| profile_id | string | oui |
{
"action": "warden_dry_run_profile",
"params": {
"profile_id": "12"
},
"request_id": "a1b2c3d4"
}Active un profil.
| Param | Type | Requis | Description |
|---|---|---|---|
| profile_id | string | oui |
{
"action": "warden_enable_profile",
"params": {
"profile_id": "12"
},
"request_id": "a1b2c3d4"
}Exécute un profil immédiatement, sans attendre son déclencheur.
| Param | Type | Requis | Description |
|---|---|---|---|
| profile_id | string | oui |
{
"action": "warden_execute_profile",
"params": {
"profile_id": "12"
},
"request_id": "a1b2c3d4"
}Renvoie un profil complet : règles, déclencheurs, conditions et actions.
| Param | Type | Requis | Description |
|---|---|---|---|
| profile_id | string | oui |
{
"action": "warden_get_profile",
"params": {
"profile_id": "12"
},
"request_id": "a1b2c3d4"
}Liste les profils d'automatisation présents sur l'appareil.
{
"action": "warden_list_profiles",
"request_id": "a1b2c3d4"
}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.
| Param | Type | Requis | Description |
|---|---|---|---|
| enabled | boolean | oui | |
| prefix | string | non | Ne vise que les profils dont le nom commence par ce préfixe. |
{
"action": "warden_production_mode",
"params": {
"enabled": true
},
"request_id": "a1b2c3d4"
}Interrompt tous les profils en cours d'exécution.
{
"action": "warden_stop_all_profiles",
"request_id": "a1b2c3d4"
}Interrompt un profil en cours d'exécution.
| Param | Type | Requis | Description |
|---|---|---|---|
| profile_id | string | oui |
{
"action": "warden_stop_profile",
"params": {
"profile_id": "12"
},
"request_id": "a1b2c3d4"
}Met à jour un profil existant.
| Param | Type | Requis | Description |
|---|---|---|---|
| profile_id | string | oui |
{
"action": "warden_update_profile",
"params": {
"profile_id": "12"
},
"request_id": "a1b2c3d4"
}Déplacement de l'appareil
4 commandes
Arme la détection de déplacement et remet le verdict à zéro.
{
"action": "arm_device_motion",
"request_id": "a1b2c3d4"
}Désarme la détection de déplacement.
{
"action": "disarm_device_motion",
"request_id": "a1b2c3d4"
}Renvoie l'état de la détection de déplacement et le dernier verdict.
{
"action": "get_device_motion_status",
"request_id": "a1b2c3d4"
}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.
| Param | Type | Requis | Description |
|---|---|---|---|
| enabled | boolean | non | |
| accel_threshold_ms2 | float | non | Seuil d'accélération, en m/s². |
| sustain_ms | int | non | Durée au-dessus du seuil avant de conclure à un déplacement. |
| settle_ms | int | non | Durée de calme avant de considérer le déplacement terminé. |
| sampling_hz | int | non | Fréquence d'échantillonnage de l'accéléromètre. |
| fast_triggers | boolean | non | Réduit les fenêtres de confirmation. |
{
"action": "set_device_motion",
"params": {
"enabled": true,
"accel_threshold_ms2": 2.5
},
"request_id": "a1b2c3d4"
}Réseau & déploiement
4 commandes
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.
| Param | Type | Requis | Description |
|---|---|---|---|
| duration_ms | int | non | Durée de la mesure. |
| payload_size_kb | int | non | Taille des messages de test. |
| ping_interval_ms | int | non | Période entre deux sondes. |
{
"action": "network_test",
"params": {
"duration_ms": 10000
},
"request_id": "a1b2c3d4"
}Bascule l'appareil entre un déploiement en réseau local et un déploiement distant par VPN.
| Param | Type | Requis | Description |
|---|---|---|---|
| mode | string | oui | Mode de déploiement. |
{
"action": "set_deployment_mode",
"params": {
"mode": "vpn"
},
"request_id": "a1b2c3d4"
}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.
| Param | Type | Requis | Description |
|---|---|---|---|
| suspended | boolean | non | |
| reasons | array | non | Motifs joints à la demande. |
{
"action": "start_loop",
"request_id": "a1b2c3d4"
}Demande la suspension du cycle radio de l'appareil, pour garder la liaison ouverte pendant une intervention.
| Param | Type | Requis | Description |
|---|---|---|---|
| deadline_s | int | non | Durée de la suspension, en secondes. |
{
"action": "stop_loop",
"params": {
"deadline_s": 900
},
"request_id": "a1b2c3d4"
}Réglages application
7 commandes
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.
{
"action": "apply_general_settings",
"params": {
"auto_start_recording": true,
"segment_duration_ms": 600000
},
"request_id": "a1b2c3d4"
}Renvoie les réglages globaux de l'application.
{
"action": "get_general_settings",
"request_id": "a1b2c3d4"
}Active la piste audio et choisit sa source.
| Param | Type | Requis | Description |
|---|---|---|---|
| enabled | boolean | non | |
| source | string | non | Source audio. |
{
"action": "set_audio",
"params": {
"enabled": true
},
"request_id": "a1b2c3d4"
}Attribue son code à l'appareil. C'est ce code qui l'identifie dans une flotte.
| Param | Type | Requis | Description |
|---|---|---|---|
| code | string | oui | K1 à K99, ou vide pour effacer. |
{
"action": "set_device_code",
"params": {
"code": "K7"
},
"request_id": "a1b2c3d4"
}Réécrit les identifiants du broker et reconstruit le client MQTT.
| Param | Type | Requis | Description |
|---|---|---|---|
| username | string | oui | |
| password | string | oui |
{
"action": "set_mqtt_credentials",
"params": {
"username": "…",
"password": "…"
},
"request_id": "a1b2c3d4"
}Configure la porte d'authentification des commandes. En mode `token`, le jeton doit accompagner la même commande.
| Param | Type | Requis | Description |
|---|---|---|---|
| mode | string | non | `open` ou `token`. Défaut de l'application : `token`. |
| token | string | non | Jeton attendu, requis si `mode` vaut `token`. |
{
"action": "set_security",
"params": {
"mode": "token",
"token": "…"
},
"request_id": "a1b2c3d4"
}Choisit le transport de diffusion par défaut. Défaut : SRT.
| Param | Type | Requis | Description |
|---|---|---|---|
| transport | string | oui | `SRT` ou `RTSP`. |
{
"action": "set_streaming_transport",
"params": {
"transport": "SRT"
},
"request_id": "a1b2c3d4"
}Système & maintenance
9 commandes
Renvoie les dernières lignes du journal de l'application.
| Param | Type | Requis | Description |
|---|---|---|---|
| lines | int | non | Nombre de lignes. |
{
"action": "get_logs",
"params": {
"lines": 200
},
"request_id": "a1b2c3d4"
}Supprime les enregistrements locaux. Destructif : exige `confirm: true`.
| Param | Type | Requis | Description |
|---|---|---|---|
| confirm | boolean | oui | Doit valoir `true`. |
| older_than_days | int | non | Ne supprime que les fichiers plus anciens que N jours. |
{
"action": "purge_recordings",
"params": {
"confirm": true,
"older_than_days": 30
},
"request_id": "a1b2c3d4"
}Redémarre le téléphone. Destructif : exige `confirm: true`.
| Param | Type | Requis | Description |
|---|---|---|---|
| confirm | boolean | oui | Doit valoir `true`. |
{
"action": "reboot_device",
"params": {
"confirm": true
},
"request_id": "a1b2c3d4"
}Redémarre l'application. Destructif : exige `confirm: true`.
| Param | Type | Requis | Description |
|---|---|---|---|
| confirm | boolean | oui | Doit valoir `true`. |
{
"action": "restart_app",
"params": {
"confirm": true
},
"request_id": "a1b2c3d4"
}Active le régulateur thermique, qui dégrade la cadence quand l'appareil chauffe.
| Param | Type | Requis | Description |
|---|---|---|---|
| enabled | boolean | oui |
{
"action": "set_thermal_governor",
"params": {
"enabled": true
},
"request_id": "a1b2c3d4"
}Démarre le serveur HTTP local (aperçu MJPEG, snapshot, listing des enregistrements). Désactivé par défaut : le pilotage passe par MQTT.
| Param | Type | Requis | Description |
|---|---|---|---|
| port | int | non | Port d'écoute. Défaut : 8080. |
{
"action": "start_http_server",
"params": {
"port": 8080
},
"request_id": "a1b2c3d4"
}Arrête le serveur HTTP local.
| Param | Type | Requis | Description |
|---|---|---|---|
| force | boolean | non |
{
"action": "stop_http_server",
"request_id": "a1b2c3d4"
}Renvoie l'état du contrôleur USB de l'appareil : périphériques vus, adresses, mode hôte.
{
"action": "usb_diagnostics",
"request_id": "a1b2c3d4"
}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.
| Param | Type | Requis | Description |
|---|---|---|---|
| force | boolean | non |
{
"action": "usb_reset",
"params": {
"force": true
},
"request_id": "a1b2c3d4"
}