prérequis :
- 1 aspi connecté et déjà intégré à HA ! (c’est un bon départ je trouve) et le oueb regorge de tuto pour récupérer le token et créer les cards lovelace du roborock par exemple.
- Node red (m’enfin !)
- Bot Telegram pour les notifs ou Pushbullet ou autre…
objectif :
Automatiser avec node red le démarrage du lundi au vendredi à 8h30 du robot aspirateur avec un deuxième lancement à 8h45 en cas d’annulation lors du premier. Un rappel en fin de journée pour vider le bac à poussière. Un avertissement de nettoyage des capteurs ou de changement des brosses avant usure (conformément à la doc du constructeur).
Nous allons donc utiliser simplement les nœuds par défaut Big Timer, Inject, events state et call service :
oui, c’est cliché mais mon aspi s’appel Cendrillon….sans commentaire…
Bref, importez le flux ci dessous:
Flow Node red à importer
[{« id »:« 4465a178.51911 »,« type »:« tab »,« label »:« Vacuum »,« disabled »:false,« info »:« »},{« id »:« befa0446.f18988 »,« type »:« server-state-changed »,« z »:« 4465a178.51911 »,« name »:« remplacement du filtre avant 150h »,« server »:« a537137.2d98df »,« version »:1,« exposeToHomeAssistant »:false,« haConfig »:[{« property »:« name »,« value »:« »},{« property »:« icon »,« value »:« »}],« entityidfilter »:« sensor.vacuum_cleanfilter »,« entityidfiltertype »:« exact »,« outputinitially »:false,« state_type »:« num »,« haltifstate »:« 140 »,« halt_if_type »:« num »,« halt_if_compare »:« gt »,« outputs »:2,« output_only_on_state_change »:true,« x »:180,« y »:320,« wires »:[[« 3671a14.88b2e5e »],[]]},{« id »:« 3671a14.88b2e5e »,« type »:« api-call-service »,« z »:« 4465a178.51911 »,« name »:« »,« server »:« a537137.2d98df »,« version »:1,« debugenabled »:false,« service_domain »:« notify »,« service »:« bot_telegram_bot »,« entityId »:« »,« data »:« {"message":"Prévoir changement du filtre de Cendrillon"} »,« dataType »:« json »,« mergecontext »:« »,« output_location »:« »,« output_location_type »:« none »,« mustacheAltTags »:false,« x »:600,« y »:320,« wires »:[[]]},{« id »:« f9b2197f.710b68 »,« type »:« server-state-changed »,« z »:« 4465a178.51911 »,« name »:« remplacement brosse principale avant 300h »,« server »:« a537137.2d98df »,« version »:1,« exposeToHomeAssistant »:false,« haConfig »:[{« property »:« name »,« value »:« »},{« property »:« icon »,« value »:« »}],« entityidfilter »:« sensor.vacuum_cleanmainbrush »,« entityidfiltertype »:« exact »,« outputinitially »:false,« state_type »:« num »,« haltifstate »:« 290 »,« halt_if_type »:« num »,« halt_if_compare »:« gt »,« outputs »:2,« output_only_on_state_change »:true,« x »:210,« y »:380,« wires »:[[« 503e8009.bd816 »],[]]},{« id »:« 503e8009.bd816 »,« type »:« api-call-service »,« z »:« 4465a178.51911 »,« name »:« »,« server »:« a537137.2d98df »,« version »:1,« debugenabled »:false,« service_domain »:« notify »,« service »:« bot_telegram_bot »,« entityId »:« »,« data »:« {"message":"Prévoir changement de la brosse principale de Cendrillon"} »,« dataType »:« json »,« mergecontext »:« »,« output_location »:« »,« output_location_type »:« none »,« mustacheAltTags »:false,« x »:600,« y »:380,« wires »:[[]]},{« id »:« 37a4c8f1.a04158 »,« type »:« server-state-changed »,« z »:« 4465a178.51911 »,« name »:« Brosse latérale avant 200h »,« server »:« a537137.2d98df »,« version »:1,« exposeToHomeAssistant »:false,« haConfig »:[{« property »:« name »,« value »:« »},{« property »:« icon »,« value »:« »}],« entityidfilter »:« sensor.vacuum_cleansidebrush »,« entityidfiltertype »:« exact »,« outputinitially »:false,« state_type »:« num »,« haltifstate »:« 180 »,« halt_if_type »:« num »,« halt_if_compare »:« gt »,« outputs »:2,« output_only_on_state_change »:true,« x »:150,« y »:260,« wires »:[[« 32f06f9.9ef2b9 »],[]]},{« id »:« 32f06f9.9ef2b9 »,« type »:« api-call-service »,« z »:« 4465a178.51911 »,« name »:« »,« server »:« a537137.2d98df »,« version »:1,« debugenabled »:false,« service_domain »:« notify »,« service »:« bot_telegram_bot »,« entityId »:« »,« data »:« {"message":"Prévoir changement de la brosse latérale de Cendrillon"} »,« dataType »:« json »,« mergecontext »:« »,« output_location »:« »,« output_location_type »:« none »,« mustacheAltTags »:false,« x »:600,« y »:260,« wires »:[[]]},{« id »:« c28fb212.53b03 »,« type »:« server-state-changed »,« z »:« 4465a178.51911 »,« name »:« Nettoyage des capteurs »,« server »:« a537137.2d98df »,« version »:1,« exposeToHomeAssistant »:false,« haConfig »:[{« property »:« name »,« value »:« »},{« property »:« icon »,« value »:« »}],« entityidfilter »:« sensor.vacuum_sensordirtyleft »,« entityidfiltertype »:« exact »,« outputinitially »:false,« state_type »:« num »,« haltifstate »:« 25 »,« halt_if_type »:« num »,« halt_if_compare »:« gt »,« outputs »:2,« output_only_on_state_change »:true,« x »:140,« y »:440,« wires »:[[« 3d1d4eb9.fb1582 »],[]]},{« id »:« 3d1d4eb9.fb1582 »,« type »:« api-call-service »,« z »:« 4465a178.51911 »,« name »:« »,« server »:« a537137.2d98df »,« version »:1,« debugenabled »:false,« service_domain »:« notify »,« service »:« bot_telegram_bot »,« entityId »:« »,« data »:« {"message":"Nettoyer les capteurs de Cendrillon"} »,« dataType »:« json »,« mergecontext »:« »,« output_location »:« »,« output_location_type »:« none »,« mustacheAltTags »:false,« x »:600,« y »:440,« wires »:[[]]},{« id »:« 907a5172.f2ee5 »,« type »:« bigtimer »,« z »:« 4465a178.51911 »,« outtopic »:« Cendrillon »,« outpayload1 »:« on »,« outpayload2 »:« off »,« name »:« Demarrage de Cendrillon »,« comment »:« »,« lat »:« 47.685183 »,« lon »:« 3.03961 »,« starttime »:« 510 »,« endtime »:« 525 »,« starttime2 »:« 510 »,« endtime2 »:« 525 »,« startoff »:0,« endoff »:0,« startoff2 »:0,« endoff2 »:0,« offs »:0,« outtext1 »:« Cendrillon ON »,« outtext2 »:« Cendrillon OFF »,« timeout »:1440,« sun »:false,« mon »:true,« tue »:true,« wed »:true,« thu »:true,« fri »:true,« sat »:false,« jan »:true,« feb »:true,« mar »:true,« apr »:true,« may »:true,« jun »:true,« jul »:true,« aug »:true,« sep »:true,« oct »:true,« nov »:true,« dec »:true,« day1 »:0,« month1 »:0,« day2 »:0,« month2 »:0,« day3 »:0,« month3 »:0,« day4 »:0,« month4 »:0,« day5 »:0,« month5 »:0,« day6 »:0,« month6 »:0,« d1 »:0,« w1 »:0,« d2 »:0,« w2 »:0,« d3 »:0,« w3 »:0,« d4 »:0,« w4 »:0,« d5 »:0,« w5 »:0,« d6 »:0,« w6 »:0,« xday1 »:0,« xmonth1 »:0,« xday2 »:0,« xmonth2 »:0,« xday3 »:0,« xmonth3 »:0,« xday4 »:0,« xmonth4 »:0,« xday5 »:0,« xmonth5 »:0,« xday6 »:0,« xmonth6 »:0,« xd1 »:0,« xw1 »:0,« xd2 »:0,« xw2 »:0,« xd3 »:0,« xw3 »:0,« xd4 »:0,« xw4 »:0,« xd5 »:0,« xw5 »:0,« xd6 »:0,« xw6 »:0,« suspend »:false,« random »:false,« repeat »:true,« atstart »:true,« odd »:false,« even »:false,« x »:150,« y »:60,« wires »:[[],[],[« c0260e86.1480e »]]},{« id »:« c0260e86.1480e »,« type »:« api-call-service »,« z »:« 4465a178.51911 »,« name »:« »,« server »:« a537137.2d98df »,« version »:1,« debugenabled »:false,« service_domain »:« vacuum »,« service »:« start »,« entityId »:« vacuum.xiaomi_vacuum_cleaner »,« data »:« »,« dataType »:« json »,« mergecontext »:« »,« output_location »:« »,« output_location_type »:« none »,« mustacheAltTags »:false,« x »:390,« y »:60,« wires »:[[« 2944a47a.0a722c »]]},{« id »:« dc6e0734.008ef8 »,« type »:« api-call-service »,« z »:« 4465a178.51911 »,« name »:« Vider Cendrillon »,« server »:« a537137.2d98df »,« version »:1,« debugenabled »:false,« service_domain »:« notify »,« service »:« bot_telegram_bot »,« entityId »:« »,« data »:« {"message":"Cendrillon est pleine"} »,« dataType »:« json »,« mergecontext »:« »,« output_location »:« »,« output_location_type »:« none »,« mustacheAltTags »:false,« x »:380,« y »:160,« wires »:[[]]},{« id »:« 2944a47a.0a722c »,« type »:« api-current-state »,« z »:« 4465a178.51911 »,« name »:« Cendrillon a fini »,« server »:« a537137.2d98df »,« version »:1,« outputs »:2,« halt_if »:« docked »,« halt_if_type »:« str »,« halt_if_compare »:« is »,« override_topic »:false,« entity_id »:« vacuum.xiaomi_vacuum_cleaner »,« state_type »:« str »,« state_location »:« payload »,« override_payload »:« msg »,« entity_location »:« data »,« override_data »:« msg »,« blockInputOverrides »:false,« x »:620,« y »:60,« wires »:[[],[]]},{« id »:« 83cbd7e8.dbec98 »,« type »:« inject »,« z »:« 4465a178.51911 »,« name »:« Cendrillon est pleine »,« topic »:« »,« payload »:« »,« payloadType »:« date »,« repeat »:« »,« crontab »:« 50 17 * * 1,2,3,4,5 »,« once »:false,« onceDelay »:0.1,« x »:160,« y »:160,« wires »:[[« dc6e0734.008ef8 »]]},{« id »:« a537137.2d98df »,« type »:« server »,« z »:« »,« name »:« Home Assistant »}]
parcourez entièrement le paramétrage de ces nœuds :
Big Timer :
Inject timestamp :
Remplacer ‹ bot_telegram_bot › par le nom de votre bot_telegram_bot (voila voila) ou autre Domain: ‹ notify › et modifier les horaires en fonction de vos besoins :
Améliorations:
-vous pouvez faire un lien avec votre flow sur les zones afin que l’aspi ne lance pas lorsque vous êtes encore dans votre logement par exemple….etc.…
Vidéo de démo de l’intégration:
Glop !