This is a project to stream video from the Ava vacuum cleaner using the video_monitor binary and
go2rtc.
Tested on: Dreame L10s Ultra.
docker build -t vacuumstramer .
./run.sh makeCopy the vacuumstreamer.so, video_monitor, and configuration files to the vacuum robot:
ssh root@${VACUUM_ROBOT_IP} "mkdir -p /data/vacuumstreamer"
scp -O vacuumstreamer.so root@${VACUUM_ROBOT_IP}:/data/vacuumstreamer/vacuumstreamer.so
scp -O dist/usr/bin/video_monitor root@${VACUUM_ROBOT_IP}:/data/vacuumstreamer/video_monitor
scp -Or dist/ava/conf/video_monitor/ root@${VACUUM_ROBOT_IP}:/data/vacuumstreamer/ava_conf_video_monitorRun on the vacuum robot:
curl -L https://github.com/AlexxIT/go2rtc/releases/download/v1.9.9/go2rtc_linux_arm64 -o /data/vacuumstreamer/go2rtc
chmod +x /data/vacuumstreamer/go2rtcAlso copy the go2rtc config:
scp -O go2rtc.yaml root@${VACUUM_ROBOT_IP}:/data/vacuumstreamer/go2rtc.yamlOn the vacuum robot, run the following commands to configure vacuumstreamer on startup:
# workaround for missing certificate bug, see https://github.com/tihmstar/vacuumstreamer/issues/1 for details
cp -r /mnt/private /data/vacuumstreamer/mnt_private_copy && touch /data/vacuumstreamer/mnt_private_copy/certificate.bin
cat <<EOF >> /data/_root_postboot.sh
if [[ -f /data/vacuumstreamer/video_monitor ]]; then
mount --bind /data/vacuumstreamer/ava_conf_video_monitor /ava/conf/video_monitor
mount --bind /data/vacuumstreamer/mnt_private_copy /mnt/private
LD_PRELOAD=/data/vacuumstreamer/vacuumstreamer.so /data/vacuumstreamer/video_monitor > /dev/null 2>&1 &
/data/vacuumstreamer/go2rtc -c /data/vacuumstreamer/go2rtc.yaml > /dev/null 2>&1 &
fi
EOFCredits to @Uberi, source: https://anthony-zhang.me/blog/offline-robot-vacuum/