API Référence

50+ commandes unifiées — MQTT, HTTP, Android Intents.

MQTTHTTP RESTAndroid IntentsTaskerHome Assistant

Enregistrement & Détection

8 commandes

POST/api/record/start
start_recording

Démarre l'enregistrement sur la caméra spécifiée.

ParamTypeRequisDescription
cameraintnonIndex de la caméra (0–3). Défaut : 0.
modestringnon"continuous" ou "motion". Défaut : "continuous".
exemple
{"action": "start_recording", "camera": 0, "mode": "continuous"}
POST/api/record/stop
stop_recording

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

ParamTypeRequisDescription
cameraintnonIndex de la caméra. Défaut : 0.
exemple
{"action": "stop_recording", "camera": 0}
POST/api/record/capture
capture_image

Capture une image JPEG instantanée depuis la caméra.

ParamTypeRequisDescription
cameraintnonIndex de la caméra. Défaut : 0.
qualityintnonQualité JPEG (0–100). Défaut : 90.
exemple
{"action": "capture_image", "camera": 0, "quality": 90}
POST/api/motion/sensitivity
set_motion_sensitivity

Règle la sensibilité de détection de mouvement.

ParamTypeRequisDescription
valueintouiSensibilité de 1 (faible) à 10 (élevée).
cameraintnonIndex de la caméra. Défaut : 0.
exemple
{"action": "set_motion_sensitivity", "camera": 0, "value": 5}
POST/api/motion/roi
set_roi

Définit les zones d'intérêt (ROI) pour la détection de mouvement.

ParamTypeRequisDescription
zonesarrayouiListe de zones [{x, y, width, height}] en % de l'image.
cameraintnonIndex de la caméra. Défaut : 0.
exemple
{"action": "set_roi", "camera": 0, "zones": [{"x": 10, "y": 20, "width": 50, "height": 60}]}
GET/api/motion/state
get_motion_state

Retourne l'état actuel de la détection de mouvement.

exemple
{"action": "get_motion_state", "camera": 0}
POST/api/motion/post-record
set_post_record_duration

Durée d'enregistrement après la fin du mouvement détecté.

ParamTypeRequisDescription
secondsintouiDurée en secondes (0–300).
exemple
{"action": "set_post_record_duration", "seconds": 30}
POST/api/motion/enable
enable_motion_recording

Active ou désactive le mode enregistrement sur détection de mouvement.

ParamTypeRequisDescription
enabledbooleanouitrue pour activer, false pour désactiver.
cameraintnonIndex de la caméra. Défaut : 0.
exemple
{"action": "enable_motion_recording", "enabled": true, "camera": 0}

Réseau / Stream

6 commandes

POST/api/stream/rtsp/start
start_rtsp_streaming

Démarre le flux RTSP via MediaMTX.

ParamTypeRequisDescription
cameraintnonIndex de la caméra. Défaut : 0.
pathstringnonChemin RTSP. Défaut : "cam0".
exemple
{"action": "start_rtsp_streaming", "camera": 0, "path": "cam0"}
POST/api/stream/rtsp/stop
stop_rtsp_streaming

Arrête le flux RTSP.

ParamTypeRequisDescription
cameraintnonIndex de la caméra. Défaut : 0.
exemple
{"action": "stop_rtsp_streaming", "camera": 0}
POST/api/stream/mjpeg/start
start_http_streaming

Démarre le serveur HTTP MJPEG local.

ParamTypeRequisDescription
portintnonPort HTTP. Défaut : 8080.
cameraintnonIndex de la caméra. Défaut : 0.
exemple
{"action": "start_http_streaming", "camera": 0, "port": 8080}
POST/api/stream/mjpeg/stop
stop_http_streaming

Arrête le serveur HTTP MJPEG.

ParamTypeRequisDescription
cameraintnonIndex de la caméra. Défaut : 0.
exemple
{"action": "stop_http_streaming", "camera": 0}
GET/api/stream/status
get_stream_status

Retourne l'état de tous les flux actifs.

exemple
{"action": "get_stream_status"}
POST/api/stream/quality
set_stream_quality

Configure la qualité du flux de prévisualisation (séparé de l'enregistrement).

ParamTypeRequisDescription
widthintouiLargeur du flux en pixels.
heightintouiHauteur du flux en pixels.
fpsintnonImages par seconde. Défaut : 15.
exemple
{"action": "set_stream_quality", "width": 640, "height": 480, "fps": 15}

Encodage

7 commandes

POST/api/encoding/resolution
set_resolution

Définit la résolution d'enregistrement.

ParamTypeRequisDescription
widthintouiLargeur en pixels.
heightintouiHauteur en pixels.
cameraintnonIndex de la caméra. Défaut : 0.
exemple
{"action": "set_resolution", "camera": 0, "width": 1920, "height": 1080}
POST/api/encoding/fps
set_fps

Définit le nombre d'images par seconde.

ParamTypeRequisDescription
valueintouiFPS : 1, 5, 10, 15, 24, 25, 30, 60.
cameraintnonIndex de la caméra. Défaut : 0.
exemple
{"action": "set_fps", "camera": 0, "value": 30}
POST/api/encoding/bitrate
set_bitrate

Définit le débit binaire d'encodage en bits/s.

ParamTypeRequisDescription
valueintouiDébit en bits/s. Ex: 5000000 = 5 Mbps.
modestringnon"cbr" (constant) ou "vbr" (variable). Défaut : "cbr".
exemple
{"action": "set_bitrate", "value": 5000000, "mode": "cbr"}
POST/api/encoding/codec
set_video_codec

Sélectionne le codec vidéo d'enregistrement.

ParamTypeRequisDescription
codecstringoui"h264", "h265" ou "av1".
exemple
{"action": "set_video_codec", "codec": "h265"}
POST/api/encoding/h264-profile
set_h264_profile

Définit le profil H.264 (seulement si codec = h264).

ParamTypeRequisDescription
profilestringoui"baseline", "main" ou "high".
exemple
{"action": "set_h264_profile", "profile": "high"}
POST/api/encoding/segment
set_segment_duration

Définit la durée de segmentation automatique des fichiers vidéo.

ParamTypeRequisDescription
minutesintouiDurée en minutes par segment (0 = pas de segmentation).
exemple
{"action": "set_segment_duration", "minutes": 30}
GET/api/encoding/status
get_encoding_status

Retourne la configuration d'encodage actuelle.

exemple
{"action": "get_encoding_status"}

Capteur UVC

8 commandes

POST/api/uvc/brightness
set_brightness

Ajuste la luminosité de la caméra UVC.

ParamTypeRequisDescription
valueintouiValeur de -64 à +64.
cameraintnonIndex de la caméra. Défaut : 0.
exemple
{"action": "set_brightness", "camera": 0, "value": 10}
POST/api/uvc/contrast
set_contrast

Ajuste le contraste de la caméra UVC.

ParamTypeRequisDescription
valueintouiValeur de 0 à 100.
cameraintnonIndex de la caméra. Défaut : 0.
exemple
{"action": "set_contrast", "camera": 0, "value": 50}
POST/api/uvc/saturation
set_saturation

Ajuste la saturation des couleurs.

ParamTypeRequisDescription
valueintouiValeur de 0 à 100.
cameraintnonIndex de la caméra. Défaut : 0.
exemple
{"action": "set_saturation", "camera": 0, "value": 60}
POST/api/uvc/gain
set_gain

Règle le gain du capteur (amplification signal).

ParamTypeRequisDescription
valueintouiValeur de 0 à 100.
cameraintnonIndex de la caméra. Défaut : 0.
exemple
{"action": "set_gain", "camera": 0, "value": 20}
POST/api/uvc/zoom
set_zoom

Règle le niveau de zoom optique (si supporté par la caméra).

ParamTypeRequisDescription
valueintouiValeur de 1 (min) à max supporté.
cameraintnonIndex de la caméra. Défaut : 0.
exemple
{"action": "set_zoom", "camera": 0, "value": 1}
POST/api/uvc/white-balance
set_white_balance

Définit la balance des blancs (température Kelvin).

ParamTypeRequisDescription
kelvinintnonTempérature en Kelvin (2800–6500). Omis = auto.
autobooleannontrue pour activer l'auto white balance.
exemple
{"action": "set_white_balance", "kelvin": 4000}
GET/api/uvc/lux
get_lux_value

Lit la valeur du capteur de luminosité ambiante (Lux).

exemple
{"action": "get_lux_value"}
GET/api/uvc/capabilities
get_uvc_capabilities

Retourne les contrôles UVC supportés par la caméra connectée.

ParamTypeRequisDescription
cameraintnonIndex de la caméra. Défaut : 0.
exemple
{"action": "get_uvc_capabilities", "camera": 0}

Système

7 commandes

POST/api/system/wake
wake_device

Réveille l'écran et maintient l'appareil actif.

exemple
{"action": "wake_device"}
GET/api/system/status
get_status

Retourne l'état complet du système : caméras, enregistrement, stockage, réseau.

exemple
{"action": "get_status"}
POST/api/system/cameras/refresh
refresh_cameras

Force la détection et reconnexion des caméras USB/UVC.

exemple
{"action": "refresh_cameras"}
POST/api/system/cameras/disconnect
disconnect_camera

Déconnecte proprement une caméra par son index.

ParamTypeRequisDescription
cameraintouiIndex de la caméra à déconnecter.
exemple
{"action": "disconnect_camera", "camera": 1}
GET/api/system/storage
get_storage_info

Retourne les informations des espaces de stockage disponibles.

exemple
{"action": "get_storage_info"}
POST/api/system/storage/priority
set_storage_priority

Définit l'ordre de priorité des stockages (fallback automatique).

ParamTypeRequisDescription
orderarrayouiOrdre : ["usb", "sd", "internal"].
exemple
{"action": "set_storage_priority", "order": ["usb", "sd", "internal"]}
POST/api/system/restart
restart_app

Redémarre l'application Kass Recorder.

exemple
{"action": "restart_app"}

MQTT

6 commandes

POST/api/mqtt/broker
set_mqtt_broker

Configure l'adresse du broker MQTT.

ParamTypeRequisDescription
hoststringouiAdresse IP ou hostname du broker.
portintnonPort MQTT. Défaut : 1883.
usernamestringnonNom d'utilisateur MQTT.
passwordstringnonMot de passe MQTT.
exemple
{"action": "set_mqtt_broker", "host": "192.168.1.10", "port": 1883}
GET/api/mqtt/status
get_mqtt_status

Retourne l'état de la connexion MQTT.

exemple
{"action": "get_mqtt_status"}
POST/api/mqtt/topic
set_mqtt_topic

Configure le préfixe des topics MQTT.

ParamTypeRequisDescription
prefixstringouiPréfixe topic. Défaut : "kass/recorder".
exemple
{"action": "set_mqtt_topic", "prefix": "home/surveillance"}
POST/api/mqtt/publish
publish_mqtt

Publie un message personnalisé sur un topic MQTT.

ParamTypeRequisDescription
topicstringouiTopic MQTT complet.
payloadstringouiContenu du message.
retainbooleannonRetain le message. Défaut : false.
exemple
{"action": "publish_mqtt", "topic": "home/cam1/status", "payload": "ok"}
POST/api/mqtt/disconnect
disconnect_mqtt

Déconnecte proprement le client MQTT.

exemple
{"action": "disconnect_mqtt"}
POST/api/mqtt/reconnect
reconnect_mqtt

Force la reconnexion au broker MQTT.

exemple
{"action": "reconnect_mqtt"}

Automatisation / Warden

8 commandes

POST/api/warden/rules
create_warden_rule

Crée une règle d'automatisation dans le Warden Engine.

ParamTypeRequisDescription
triggerstringoui"schedule", "motion", "network", "battery", "timer".
actionstringouiAction à exécuter (ex: "start_recording").
conditionobjectnonConditions optionnelles (ex: {"battery_above": 20}).
exemple
{"action": "create_warden_rule", "trigger": "motion", "rule_action": "start_recording", "condition": {"camera": 0}}
GET/api/warden/rules
list_warden_rules

Liste toutes les règles d'automatisation actives.

exemple
{"action": "list_warden_rules"}
POST/api/warden/rules/delete
delete_warden_rule

Supprime une règle d'automatisation par son identifiant.

ParamTypeRequisDescription
rule_idstringouiIdentifiant de la règle à supprimer.
exemple
{"action": "delete_warden_rule", "rule_id": "rule_abc123"}
POST/api/warden/rules/toggle
enable_warden_rule

Active ou désactive une règle Warden sans la supprimer.

ParamTypeRequisDescription
rule_idstringouiIdentifiant de la règle.
enabledbooleanouitrue pour activer, false pour désactiver.
exemple
{"action": "enable_warden_rule", "rule_id": "rule_abc123", "enabled": false}
POST/api/automation/intent
send_intent

Envoie un Android Intent pour déclencher une action (Tasker / MacroDroid).

ParamTypeRequisDescription
actionstringouiAction Intent. Ex: "com.kass.recorder.START".
extrasobjectnonExtras de l'Intent (key-value pairs).
exemple
{"action": "send_intent", "intent_action": "com.kass.recorder.START", "extras": {"camera": "0"}}
POST/api/automation/upload
trigger_cloud_upload

Déclenche l'export des enregistrements vers S3 / MinIO.

ParamTypeRequisDescription
wifi_onlybooleannonLimiter l'upload au Wi-Fi. Défaut : true.
pathstringnonChemin spécifique à uploader (omis = tout).
exemple
{"action": "trigger_cloud_upload", "wifi_only": true}
GET/api/automation/upload/status
get_upload_status

Retourne l'état de la file d'upload S3 / MinIO.

exemple
{"action": "get_upload_status"}
POST/api/automation/s3/config
configure_s3

Configure les paramètres d'export S3 / MinIO.

ParamTypeRequisDescription
endpointstringouiURL du bucket S3 ou instance MinIO.
bucketstringouiNom du bucket.
access_keystringouiClé d'accès S3.
secret_keystringouiClé secrète S3.
regionstringnonRégion AWS. Défaut : "us-east-1".
exemple
{"action": "configure_s3", "endpoint": "https://minio.local:9000", "bucket": "surveillance"}