Stockage de la map avec Valetudo RE Dans un prmier temps il faut installer le dépot à partir de GitHub, toutes ces commandes ne sont pas à faire sur l'aspirateur, elles sont à faire sur une machine linux pour pouvoir émuler un serveur Web afin de pouvoir avoir accès à la carte évitant de surcharger l'aspirateur en allant charcher la carte via l'Url par défaut prévue à cet effet. root@SERVER-SQUEEZE:/opt# cd /opt root@SERVER-SQUEEZE:/opt# git clone https://github.com/rand256/valetudo-mapper.git root@SERVER-SQUEEZE:/opt# cd /opt/valetudo-mapper/ root@SERVER-SQUEEZE:/opt/valetudo-mapper# npm install editer le fichier config.json root@SERVER-SQUEEZE:/opt/valetudo-mapper# vi config.json copier le code ci-dessous : { "mqtt": { "identifier": "Xiaomi_Etage", "topicPrefix": "Aspirateur_Etage", "autoconfPrefix": "Aspi_Etage", "broker_url": "mqtt://user:password@Adresse_Ip_Broker_Mqtt:Port_Broker_Mqtt", "caPath": "", "mapSettings": { "drawPath": true, "drawCharger": true, "drawRobot": true, "drawForbiddenZones": true, "drawVirtualWalls": true, "border": 2, "scale": 4, "gradientBackground": true, "colors": { "floor": "transparent", "obstacle_weak": "rgba(0,0,0,0.1)", "obstacle_strong": "hsl(120, 20%, 50%)", "path": "#333333" } }, "mapDataTopic": "Aspirateur_Etage/Xiaomi_Etage/map_data", "minMillisecondsBetweenMapUpdates": 4000, "publishMapImage": true, "publishMapData": true }, "webserver": { "enabled": true, "port": 3030 } } Création du service : root@SERVER-SQUEEZE:/opt/valetudo-mapper# cd /etc/systemd/system root@SERVER-SQUEEZE:/etc/systemd/system# touch valetudo-mapper.service // editer le fichier précedement créé root@SERVER-SQUEEZE:/etc/systemd/system# vi valetudo-mapper.service dans le fichier coller le code ci-dessous : [Unit] Description=valetudo-mapper After=network.target [Service] ExecStart=/usr/bin/npm start WorkingDirectory=/opt/votre_repertoire/valetudo-mapper StandardOutput=inherit StandardError=inherit Restart=always User=root [Install] WantedBy=multi-user.target modifier les droits du fichier en question : root@SERVER-SQUEEZE:/etc/systemd/system# chmod 755 valetudo-mapper.service pour que le service démarre automatiquement après boot du systéme : root@SERVER-SQUEEZE:/etc/systemd/system# systemctl enable valetudo-mapper.service démarrer le service : root@SERVER-SQUEEZE:/etc/systemd/system# systemctl start valetudo-mapper.service arrêter le service : root@SERVER-SQUEEZE:/etc/systemd/system# systemctl stop valetudo-mapper.service Verifier si le service est bien démarré : root@SERVER-SQUEEZE:/etc/systemd/system# journalctl -u valetudo-mapper.service -f Vous avez désormais une image disponible a l'adresse suivante : http://adresse_IP:3030/api/map/image C'est cette image qu'il faut aller chercher grâce au code du widget ci-dessous :
Parcours
Ce widget est de type info, donc applicable sur une commande de type info. Ci-dessous le code à mettre dans le fichier config.json { "spots": [], "areas": [], "ztimers": [], "mqtt": { "enabled": true, "identifier": "Xiaomi_Etage", "topicPrefix": "Aspirateur_Etage", "autoconfPrefix": "Jeedom", "broker_url": "mqtt://user:password@Adresse_Ip_Broker_Mqtt:Port_Broker_Mqtt", "caPath": "", "provideMapData": true, "mapSettings": { "drawPath": true, "drawCharger": true, "drawRobot": true, "border": 2, "scale": 4, "gradientBackground": true, "crop_x1": 30, "crop_y1": 70, "crop_x2": 440, "crop_y2": 440, "colors": { "floor": "transparent", "obstacle_weak": "rgba(0,0,0,0.1)", "obstacle_strong": "hsl(120, 20%, 50%)", "path": "#333333" } }, "mapDataTopic": "Aspirateur_Etage/Xiaomi_Etage/map_data", "minMillisecondsBetweenMapUpdates": 3000, "publishMapImage": true, "publishMapData": true, "qos": 1 }, "dummycloud": { "spoofedIP": "203.0.113.1", "bindIP": "127.0.0.1" }, "webInterface": { "localization": "fr", "hideMapReload": true }, "httpAuth": { "enabled": false, "username": "valetudo", "password": "valetudo" }, "telegramBot": { "enabled": false, "token": "", "password": "", "host": "", "proxy": "", "clients": [], "sendConsumables": true, "sendConsumablesEvery": false }, "allowSSHKeyUpload": true, "map_upload_host": "http://127.0.0.1" }