Roborock dagelijks automatisch laten stofzuigen

Gestart door Joost, 20 oktober 2019, 15:41:55

Vorige topic - Volgende topic

Joost

Onderstaand dzVents-script zorgt ervoor dat:

       
  • Indien je niet thuis bent (maar ook niet op vakantie bent) de Roborock stofzuiger iedere dag om 14 uur een rondje gaat stofzuigen op de turbo-stand.
  • Indien je op vakantie bent de Roborock stofzuiger op woensdag en zondag om 9 uur een rondje gaat stofzuigen op de maximale stand.

return {
   on = {
      timer = {
          'at 14:00',
          'at 09:00'
      }
   },
   execute = function(domoticz, device)
      --Declarations
      local StofzuigerState   = domoticz.devices(286) -- Xiaomi Vacuum status: Charging / Paused / Cleaning / Waiting / Back to home / Sleeping / In Error
      local StofzuigerCont    = domoticz.devices(287) -- Xiaomi Vacuum control: Clean(10) / Home(20) / Spot(30) / Pauze(40) / Stop(50) / Find(60)
      local StofzuigerFan    = domoticz.devices(288) -- Xiaomi Vacuum Fan: Quiet(10) / Balanced(20) / Turbo(30) / Max (40)
      local IemandThuis        = domoticz.devices(111) -- Iemand Thuis
      local Vakantie           = domoticz.devices(245) -- Thuis(10) / Slapen(20) / Weg(30) / Vakantie(40)
      local Time               = require('Time') --Time function
      local CurrentTime        = Time() --Current time
       
      --Function
      if (not IemandThuis.active) and Vakantie.level ~= 40 and (CurrentTime.matchesRule('at 14:00')) then -- When nobody home and no vacation
         StofzuigerFan.switchSelector(30) -- Set Fan Level to 30 =  'Turbo'
         StofzuigerCont.switchSelector(10) -- Set Control to 10 = 'Clean'
         domoticz.notify('Mi Vacuum Cleaner','The Vacuumcleaner has been turned on by Domoticz',domoticz.PRIORITY_NORMAL)
          elseif (Vakantie.level == 40 and CurrentTime.matchesRule('at 09:00 on sun,wed')) then
              StofzuigerFan.switchSelector(40) -- Set Fan Level to 30 =  'Max'
             StofzuigerCont.switchSelector(10) -- Set Control to 10 = 'Clean'
             domoticz.notify('Mi Vacuum Cleaner','The Vacuumcleaner has been turned on by Domoticz in vacation mode',domoticz.PRIORITY_NORMAL)
      end
   end
}



Auteur: rensbr

Joost

Onderstaand dzVents-script zorgt ervoor dat je een notificatie over de Roborock stofzuiger krijgt bij een bepaalde status.
Hiervoor moet je wel eerst een user variable van het type Integer en met de naam VacuumErrorNumber in Domoticz aanmaken.


return {
on = {
    devices = {
        286 -- Xiaomi Vacuum status
        }
},
execute = function(domoticz, device)
    --Declarations
    local StofzuigerState = domoticz.devices(286) -- Xiaomi Vacuum status: Charging / Paused / Cleaning / Waiting / Back to home / Sleeping / In Error
    local StofzuigerCont = domoticz.devices(287) -- Xiaomi Vacuum control: Clean(10) / Home(20) / Spot(30) / Pauze(40) / Stop(50) / Find(60)
    local StofzuigerFan = domoticz.devices(288) -- Xiaomi Vacuum Fan: Quiet(10) / Balanced(20) / Turbo(30) / Max (40) / Mop (50)
    local VacuumErrorNumber = domoticz.variables(51) -- Variable VacuumErrorNumber
   
--Function
print('Mi Vacuum status has changed')
if (StofzuigerState.rawData[1] == 'Back to home') then
domoticz.notify('Mi Vacuum Cleaner','The Vacuumcleaner is going back to dock',domoticz.PRIORITY_LOW)
StofzuigerFan.switchSelector(20) -- Set Fan Level to Balanced when done
end

if (StofzuigerState.rawData[1] == 'Charging') then
    domoticz.notify('Mi Vacuum Cleaner','The Vacuumcleaner is docked and charging',domoticz.PRIORITY_LOW)
end

if (StofzuigerState.rawData[1] == 'Cleaning') then
    domoticz.notify('Mi Vacuum Cleaner','The Vacuumcleaner is cleaning',domoticz.PRIORITY_LOW)
end

if (StofzuigerState.rawData[1] == 'In Error') then               
    if (VacuumErrorNumber < 5) then -- try to restart vacuum when in error for maximum 5 times
        VacuumErrorNumber.set(VacuumErrorNumber.value + 1)
        StofzuigerCont.switchSelector(10).checkFirst()
        else
            VacuumErrorNumber.set(0)
domoticz.notify('Mi Vacuum Cleaner','The Vacuumcleaner is in error',domoticz.PRIORITY_HIGH)
            end
end

if (StofzuigerState.rawData[1] == 'Paused') then
    domoticz.notify('Mi Vacuum Cleaner','The Vacuumcleaner is paused',domoticz.PRIORITY_HIGH)
end
end
}

Joost

Onderstaand dzVents-script zorgt ervoor dat de Roborock stofzuiger automatisch naar de vuilnisbak rond bij thuiskomst.
Hiervoor moet je wel eerst een user variable in Domoticz aanmaken van het type Integer en met de naam VacuumNumber.

return {
on = {
    devices = {
111  -- Somebody gets Home
},
variables = {
    52 -- VacuumNumber
    }
},
execute = function(domoticz, device)
--Declarations
local Home              = domoticz.devices(111) -- Somebody Home
local VacuumZones       = domoticz.devices(181) -- Xiaomi Vacuum Zones: Dock(0) / Hal(10) / Woonkamer(20) / Keuken(30) / Overloop(40)
                                                        -- Slaapkamer1(50) / Slaapkamer2(60) / Slaapkamer 3(70) / Prullenbak(80)
local VacuumNumber      = domoticz.variables(52) -- Variable VacuumNumber
local Time              = require('Time') --Time function
      local CurrentTime       = Time() --Current time
   
--Function
if (VacuumNumber >= 5) then
if (Home.active) then
        VacuumZones.switchSelector(80) -- Go to Zone Prullenbak
        domoticz.notify('Mi Vacuum Cleaner','The Vacuumcleaner is full and is going to trashbin',domoticz.PRIORITY_NORMAL)
        VacuumNumber.set(0)
        end
        end
end
}


Auteur: rensbr