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.

Bonjour, alors je déterre ce sujet car je vois écrit le oueb regorge de tuto pour récupérer le token.
Alors je vais m’expliquer car je possède un roborock S8 pro ultra et en fait il tourne la nuit, mais j’ai désactivé le vidage du bac à poussière pour pas que cela fasse du bruit.
On m’a dit qu’avec HA il était possible de faire tout un tas de choses et par exemple lancer un vidage du bac à poussière automatiquement à une heure précise.
J’ai essayé de récupérer le token via fiddler, impossible. Ensuite on m’a dit qu’il était facile de le faire via xiaomi miio sauf que quand sur mon tel je configure mon aspi sur l’appli xiaomi home j’ai bien tout qui apparait, mais quand j’essaye d’e connecter l’intégration xiaomi mioo sur HA et que je rentre les codes ça se met en route et me donne une erreur « échec de la configuration »
du coup je me retrouve sans token. on m’as dit qu’il existait aussi une soluce via android mais je n’en n’ai pas.
Est-ce que quelqu’un aurait une solution pour créer ce que je souhaite faire ?
merci d’avance

de mémoire je l’avais récup grâce à ce github les tokens de mes appareils Xiaomi : GitHub - Maxmudjon/Get_MiHome_devices_token: Get Mi Home devices token Windows/MacOS app.