Node-RED - ROBOROCK automatiser le passage de votre robot aspirateur + rappels usure des consommables

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 :

image

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 :

image

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 !

Vous pourrez ensuite personnaliser votre card :

image

et faire une automation avec un nœud Call service :

{
« command »: « app_goto_target »,
« params »: [
27522,
28625
]
}

pour allez à la poubelle à l’heure que vous aurez choisie

1 « J'aime »

Salut pour changé de vitesse d’aspirateur tu fait comment ?

Salut,

Wow le déterrage 3 ans après :rofl:
Tu peux régler soit manuellement par le sélecteur de vitesse dans les options de l’entité de l’aspirateur, soit en appelant le service « vacuum.set_fan_speed ».

Justement ça je l’avais trouvée « vacuum.set_fan_speed », c’est comment dire la puissance que je veut mode turbo ou mode silencieux que j’arrive pas a faire.